Opera 10 year anniversary - free gift!

Opera is celebrating its 10th anniversary.

And for its celebration they are giving registration codes for free.. just go to http://my.opera.com/community/party/ to get one for free ;)

Oh.. and congratulations to the Opera team for their survival in what is probably the most difficult software market :)

DevIL.NET 1.1 !

I’ve released DevIL.NET 1.1.
It’s a small update for a small library ;)

Included in this version :

Also the Visual C++ project is available for download now.

Go get it here! ;)

update:I’ve found a small bug in the LoadAndScale function (the filter setting is set after the scaling which is kinda stupid… Will be fixed later today :)

update 2:Bug fixed! ;)

Code Snippet I : Wrapper for CLR string to native string marshalling

A frequent (too much frequent) need in Managed C++ is going from System::String objects to char* or wchar_t* strings. The boring side of the marshalling is that the memory allocated with the StringToHGlobalxxx functions should be freed with a matching call to FreeHGlobal.

The solution is simple : using the power of C++ destructors we can create a temporary object for the entire time we need the string. Whenever the object goes out of scope, the string is automagically freed.

You can find the code (released to public domain) here.

Please note that assignments (and copy-constructor) are disabled (they are in an empty private method) to preserve the destruction safety (the free is thus execute once and only once).

As an example you can do :

void mystrcpy(char* dest, const System::String __gc* source)
{
strcpy(dest, StringAutoMarshal(source));
}

with no need to manage the marshalling manually.

Comments on pages!

I’ve added comments on pages :D
Also I’ve moved comments about pages which were in the announcements to the proper pages ;)

Next Page →