Changes from 5.1.8 to 5.1.9 (January 2015)

The main developers this time were: Trent Gamblin, SiegeLord, Elias Pschernig.

Core

Fix OSX backend on OSX 10.10 (lordnoriyuki).

Simplify how sub-bitmaps interact with their parent bitmaps. You can now destroy a sub-bitmap at any time (not only before the parent is destroyed). Additionally, when the parent is converted using al_convert_bitmap, all the sub-bitmaps are also automatically converted.

Switch to using unicode Win32 (e.g. this fixes using al_set_window_title with unicode strings).

Add some Linux WM hints so make Allegro windows work more smoothly (especially with Unity).

Filesystem

Add al_fprintf (DanielH and Tobias Scheuer).

Add al_for_each_fs_entry, a convenience function that helps enumerating the contents of a directory more easily using a callback function (Beoran).

Input

Graphics

Add block compression pixel formats (ALLEGRO_PIXEL_FORMAT_COMPRESSED_RGBA_DXT1/DXT3/DXT5) for compressed video bitmaps. This includes an API to fetch compressed block size ( al_get_pixel_block_width/height/size) as well as API to load and unload compressed bitmap data without paying a runtime compression cost ( al_lock_bitmap_blocked). Unfortunately, due to patent concerns this last feature is disabled for OpenGL (if you think those concerns don't apply to you, you can enable it by passing -DWANT_OPENGL_S3TC_LOCKING=1 to cmake).

Make real fullscreen modes work on OS X again. May not be perfect still. (thanks to SDL).

Shaders

Don't clobber the 0'th texture unit in OpenGL and Direct3D. This simplifies working with shaders.

I agree that al_draw_multiline_* series implements a fantastic and long-awaited feature. (The new sub-bitmap functionality also falls into this category.) At the same time, simple bug fixes and documentation additions improve Allegro just as much as feature additions. It's great to see both.

Thank you, devs and everyone involved! You guys are awesome!

Here are a few compiler warnings being discussed in #allegro (using freetype2 2.5.5-1 and ffmpeg 1:2.5.2-2):

By default, you can load non-compressed textures and compress them on the fly. Check out ex_compressed as it does exactly that. This is typically 3-4x slower than keeping them un-compressed. That's why typically you want to compress them ahead of time (also the quality varies between GPUs so you might get better quality if you compress them yourself ahead of time).

By default you cannot load pre-compressed textures with OpenGL (you can load them fine in D3D) unless you compile Allegro with that feature enabled.

Yea,texture compression is cool, but due to the patent problems of DXTC it's probably a good idea to try and implement support in the future for ETC and ASTC which are not patent-encumbered. Should be faster than waiting for the patent to lapse

Yeah, the other compression algorithms may not be supported on all desktops, but that's entirely out of our hands. We'll have to wait until OpenGL implementations catch up. With some conditional compilation, etc, and maybe a query interface to heck which compression algorirthms are available, this could be solved without too much of a hassle.

and my unofficial Allegro 5.1.9 binary distribution. It comes with src, static linked example programs, dlls and static and dynamic libraries for most every dependency, and debug and release versions for Allegro 5. You need 7zip to unpack it. Once installed right click on the 7z file in Explorer and select 'Extract here' or wherever you want it.

Edit: Tried it out with MinGW 4.8.1, had too many compile errors. I think certain libraries are missing from this like OpenAL. Reverting back to 5.0.10 and MinGW 4.7.0. I'll have to see if I can't figure out how to compile this beast. :/

Edit: Tried it out with MinGW 4.8.1, had too many compile errors. I think certain libraries are missing from this like OpenAL. Reverting back to 5.0.10 and MinGW 4.7.0. I'll have to see if I can't figure out how to compile this beast. :/

But I never compiled OpenAL. Wait, I have it. I don't know if cmake linked against this openal or another version I had installed so I will rebuild openal and allegro. OpenAL would only compile a shared version with cmake but is now included in the headers and libs and bin directories. I also recompiled the examples to be debug static link. I then recompiled the debug and release shared and static monolith versions of allegro 5.1.9.

Great stuff... but now Sourceforge is temporarily offline. It's as if I was not meant to use this version. I'll try again later.

Edit: Okay, I got it downloaded and installed. My game compiled okay with it (I am curious, I staticly link my libs, so libOpenAL.dll.a confused me as there wasn't a static version, the game runs, but will this need the dll? It seemed to run without it <confused>)

The game ran with no problems or errors when compiled with MinGW 4.7.0 and Allegro 5.1.8 (I had recently started using 5.1.8, I used to use 5.0.10), this was compiled with a fresh MinGW 4.8.1-4 and the Allegro you supplied.

Anyhow, game ran fine, but when I went to exit the game it froze. Even in debug mode it wouldn't show me which line this happened on (Code::Blocks) so after some crude searching I narrowed it down to this line:

Most of the time when it froze, the only way to shut it down was to close the console screen (if I ran it in release mode, which has no console, than I was screwed, only the task manager could shut it down then). There was two times it crashed that a message momentarily flickered on the screen (closed the console, then a message appeared and the console would close before I could read it). The second time this happened I hit my printscreen and captured it.

(most text is from my game, just the assertion failed line is new){"name":"609239","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/1\/2\/1293fca4dd91c95e8656623d288c57b7.jpg","w":651,"h":312,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/1\/2\/1293fca4dd91c95e8656623d288c57b7"}

Edit: also, my game now requires "libogg-0.dll" to run, even though it is statically linked.

Edit: Just tested my editor as well (which is separate from the main game and uses no sound effects at all) and it actually exits okay, but the al_create_native_file_dialog() function doesn't work at all for saving, only loading.

Here's my code, this works with 5.1.8 no problem (except there is no default filename, which is the main reason I want 5.1.9 to work)...
file_dialog = al_create_native_file_dialog(".//level001.dp2", "Save Level", "*.DP2", ALLEGRO_FILECHOOSER_SAVE);

Changed ".//" to "//" at the start and it brought up the dialog for saving, but still no default filename at all. file_dialog =al_create_native_file_dialog("//level001.dp2", "Save Level", "*.DP2", ALLEGRO_FILECHOOSER_SAVE);