- Online Community Forums » Allegro Development » Allegro 5.1.2 released!

This thread is locked; no one can reply to it. rss feed Print
 1   2 
Allegro 5.1.2 released!
Peter Wang
Member #23
April 2000


Changes from 5.1.1 to 5.1.2 (May 2012)

The main developers this time were: Thomas Fjellstrom, Trent Gamblin,
Elias Pschernig, Peter Wang.


   * Add userdata to Windows window callbacks and rename the functions
     (Matthew Leverton).

   * Fix ALLEGRO_STATIC_ASSERT collisions from different files included
     in the same translation unit. Reported by tobing.

   * Make al_ustr_empty_string const correct.

   * Fix many memory leak/warnings on MacOS X (Pär Arvidsson).


   * Make stdio al_fopen implementation set proper errno on failure.

   * Make al_get_standard_path(ALLEGRO_TEMP_PATH) treat environment
     values as directory names even without a trailing slash on Unix.

   * Fix typo preventing get_executable_name from using System V procfs
     correctly. Reported by Max Savenkov.


   * Fixed bug on Windows where two SWITCH_IN events were fired when
     window was minimized/restored (Michael Swiger).

   * Fixed inverted al_toggle_display_flag(ALLEGRO_NOFRAME) logic under
     Windows as well as a bug where repeatedly setting the flag to on
     would make the window grow bigger and bigger (Michael Swiger).

   * Fixed inverted al_toggle_display_flag(ALLEGRO_NOFRAME) logic in

   * Rename al_toggle_display_flag to al_set_display_flag, retaining
     the older name for compatibility.

   * Add ALLEGRO_FRAMELESS as a preferred synonym for the confusing

   * Set WM_NAME for some window managers (X11).

   * Disable the idle timer on iOS (screen lock) when entering airplay

   * Make al_destroy_display handle display disconnection properly. The
     user will need to clean up then call al_destroy_display after


   * Added al_get_parent_bitmap (Paul Suntsov).

   * Make blitting from backbuffer work when using multisampling on

   * Redefine pixel format LUMINANCE_8 as SINGLE_CHANNEL_8.

   * Map SINGLE_CHANNEL_8 to red channel only. Fix some software pixel
     format conversion bugs previously present with the LUMINANCE_8

   * Added al_create_custom_bitmap.

   * Remove ALLEGRO_PRESERVE_TEXTURE flag. The idea is to always
     preserve textures unless directed otherwise by the user with

   * Added al_clear_depth_buffer and al_set_render_state functions.

   * Force al_create_bitmap to not create oversized bitmaps, to
     mitigate integer overflow problems.

   * Removed initial black frame on all Allegro programs.


   * Fix null pointer dereference if backbuffer creation fails.
     Reported by Max Savenkov.

   * Made the ALLEGRO_OPENGL_FORWARD_COMPATIBLE flag work with

   * Texture should be 'complete' (min/mag and wrap set) before

   * Restore matrix manipulation code for unlocking backbuffer in GL
     <1.4 case.

   * Fixed a bug in al_unlock_bitmap where the pixel alignment
     mistakenly was used as row length.

   * Never set the projection when using programmable pipeline mode
     unless a program object is bound.

   * Do not preserve bound texture state.

   * Disable GL_NORMAL_ARRAY in non-programmable pipeline mode.

   * Fixed typo in names of some OpenGL extension functions.

   * Display list of OpenGL extensions in allegro.log also for OpenGL

   * Check for OES_texture_npot as well for non-power-of-two support.

   * Fix loading of some textures on iOS.


   * Fixed a bug in the D3D driver where separate alpha blending was
     being tested for when it shouldn't have been (Max Savenkov).

   * Do not manage depth stencil surface.

   * Arrange code so that sleep and hibernate work using the release
     and restore callbacks.

   * Fix device reset problem in D3D.

   * Make sub-bitmap restore properly on lost device.


   * Increase max number of joystick "sticks". Due to analogue buttons
     being mapped to axes, the number of sticks on a single device may
     be much higher than expected.

   * Monitor /dev/input instead of /dev on Linux for hotplugging
     joysticks (Jon Rafkind).

   * Do not permanently change the locale for the X11 keyboard driver.
     Set LC_CTYPE only, not LC_ALL.

   * Update ALLEGRO_MOUSE_STATE even if mouse emulation event source
     isn't attached to an event queue (Android and iOS).

   * Don't report shakes at program start accidentally (iOS).

Android port:

   * Many graphics-related changes (too many to list).

   * Make Android port always choose a double buffered graphics mode.

   * Don't force 16-bit mode if no COLOR_SIZE specified.

   * Go fullscreen (no title/status bar).

     instead of SWITCH_IN/OUT.

   * Add an APK file driver for reading assets directly from Android
     app bundles.

   * Additions and fixes to accelerometer and orientation code.

   * Support for volume keys.

   * Added a dummy mouse driver, enough to get al_get_mouse_state

   * Improve compatibility of touch input emulation driver with iOS
     touch input emulation.

   * Add al_android_get_os_version().

   * Fix linking problem on Android 2.2 and below.

   * Update and clean up sample project.

Audio addon:

   * Fix desychronization due to inaccurate sample positions when
     resampling. Thanks to _Bnu for discovering the issue and Paul
     Suntsov for devising the correct solution.

   * Fix linear interpolation across audio stream buffer fragments.

   * Add stub OpenSL driver (Jon Rafkind).

Image addon:

   * Improved accuracy of un-alpha-premultiplying in the native OSX
     bitmap loader.

   * Improve compatibility of BMP loader. In particular, support
     bitmaps with V2-V5 headers and certain alpha bit masks.

   * Improve robustness of BMP loader against some corrupt files.

   * Fix TGA loader using more memory than necessary. Reported by Max

   * Image loading in Android now works.

Font addon:

   * Use user set pixel format for fonts.

TTF addon:

   * Added ALLEGRO_TTF_NO_AUTOHINT font loading flag to disable the
     Auto Hinter which is enabled by default in newer version of
     FreeType (Michał Cichoń).

   * Unlock glyph cache page at end of text_length and
     get_text_dimensions (jmasterx).

Primitives addon:

   * Use GL_REPEAT so textures can be tiled again.

   * Always set the texture due to missing glGetInteger on some GLES
     1.0/1.1 devices.

Native dialogs addon:

   * Only call SetMenu from within the window thread (Matthew Leverton).

   * Clear mouse state after dialogs or else it gets messed up (OSX).

   * Fix some warnings in gtk_dialog.c.

Build system:

   * Added OSX Framework support for the monolith library.

   * Make examples build with monolith build.

   * Add WANT_ANDROID_LEGACY to allow compiling for older Android


   * a5teroids: Added high scores and other improvements. New graphics
     by Tony Huisman.

   * Add ex_file_slice.

   * Add ex_resample_test.

   * Add ex_depth_mask.

   * ex_audio_props: Add bidir button.

   * ex_joystick_events: Support hotplugging and fix display of 3-axis

   * ex_polygon: Test al_draw_filled_polygon_with_holes.

   * ex_get_path: Test al_set_exe_name.

   * Made the skater demo run from within xcode.

   * Add test_driver -no-display flag. (Tobias Hansen)

   * Add test_driver -force-opengl-2.0 option.

   * Make .png and .tga loading tests to not require a backbuffer with
     an alpha channel.


   * Many minor bug fixes.

   * Many documentation updates.

   * Fix whatis entries of man pages. (Tobias Hansen)

b73da10cbb8a132b81fd8b420e35b96c  allegro-
1783780166d9b8193f998de01a9ba185  allegro-5.1.2.tar.gz

Thanks to AMCerasoli for the image.

Arthur Kalliokoski
Second in Command
February 2005

All the examples I tried so far work, but my brain is too fried ATM to mess with it in depth.

“Throughout history, poverty is the normal condition of man. Advances which permit this norm to be exceeded — here and there, now and then — are the work of an extremely small minority, frequently despised, often condemned, and almost always opposed by all right-thinking people. Whenever this tiny minority is kept from creating, or (as sometimes happens) is driven out of a society, the people then slip back into abject poverty. This is known as "bad luck.”

― Robert A. Heinlein

Member #14,318
May 2012

I'm curious, are there any plans to implement full screen apps feature of OSX Lion? And say you wanted to have the menubar of your game's window to disappear - the OSX Quicktime player does this - which parts of allegro would you have to hack?

Member #358
May 2000

I'd look in the src/macosx folder, most likely src/macosx/osxgl.m. Do you have some sample code from Apple which enables that button? It's probably easy to integrate then for someone knowing the code.

"Either help out or stop whining" - Evert

Member #11,410
October 2009

Looks like this does it:

[window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenPrimary];

Member #358
May 2000

Thanks for finding this. I made a patch so all resizeable windows have the fullscreen button:

1index 8bfdbc7..cdb3c39 100644 2--- a/src/macosx/osxgl.m 3+++ b/src/macosx/osxgl.m 4@@ -804,7 +804,11 @@ static void osx_get_opengl_pixelformat_attributes(ALLEGRO_DISPLAY_OSX_WIN *dpy) 5 styleMask: mask 6 backing: NSBackingStoreBuffered 7 defer: NO 8- screen: screen]; 9+ screen: screen 10+ ]; 11+ if (dpy->parent.flags & ALLEGRO_RESIZABLE) { 12+ [win setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary]; 13+ } 14 NSOpenGLPixelFormat* fmt = 15 [[NSOpenGLPixelFormat alloc] initWithAttributes: dpy->attributes]; 16 ALOpenGLView* view = [[ALOpenGLView alloc] initWithFrame: rc];

I think it can be applied as is. Anything speaking against it? If not I'll apply it.

"Either help out or stop whining" - Evert

Member #794
November 2000

Elias said:

Anything speaking against it? If not I'll apply it.

NSWindowCollectionBehaviorFullScreenPrimary is Lion+ only ( We need to define it ourselves on older versions (EDIT: when compiling against older versions of the SDK that is), other than that I don't think there's a problem.

Member #358
May 2000

Can we make a compile-time check for the used SDK somehow? Then if you have the 10.7 or 10.8 SDK this is done else not. (I suppose Apple doesn't support running code compiled with a higher SDK on an older OSX anyway so no need for a runtime check.)

"Either help out or stop whining" - Evert

Member #14,318
May 2012

Great work guys. The disappearing title bar that Quicktime has is triggered by MGUIVisibilityNeverAutohide [set to 0 or 1]. I'm thinking if this property is available with regular windows then we can just toggle it on. If normal windows don't have that property then Quicktime's window could be used. The feature is absolutely worth it if you ask me :)

Michał Cichoń
Member #11,736
March 2010

Windows build is available. It took almost 20 minutes to prepare. i7 waaay faster than Core 2 Duo. :)

Enjoy your's Allegro!


"God starts from scratch too"
Windows Allegro Build Repo:

Member #794
November 2000

Elias said:

Can we make a compile-time check for the used SDK somehow? Then if you have the 10.7 or 10.8 SDK this is done else not.

I don't remember the details off the top of my head, but we already do (or did) that for older versions of the SDK. I think what we did is check whether a particular OS X version number define exists.

I think this should work:

#ifndef MAC_OS_X_VERSION_10_7 /* Defined on 10.7 (Lion) and up.
#define NSWindowCollectionBehaviorFullScreenPrimary (1<<7)

Probably best to just do that in the relevant source file.

Member #1,739
December 2001

Pondered the dilemma of getting enough people to test development versions of Allegro. Then I got the idea of combining testing with hacks.

When you want people to test a WIP/Beta/RC arrange a speedhack requiring all entries to be developed with the latest unstable and award extra points for discovering bugs.

Member #5,213
November 2004

I'm doing my development on the most recent SVN of 5.1. Almost always, at least, I don't sync every day and I keep a last know good version, so I can go back if something is wrong. 8-)

Member #11,955
May 2010

Windows build is available.

No man... And what about the new addonds?

Michał Cichoń
Member #11,736
March 2010

I would be happy to provide them. Hovewer first I do need to resolve dependencies in a dynamic manner. That mean CG, ffdshow, D3DX9/D3DCompiler all has to be loaded dynamically. For today, there is no code which does that. I think I can make a loader for 5.1.3 and then it may be merged down to 5.1.2.

At the moment I can easily add video addon with ogv support only. Are you interested?

"God starts from scratch too"
Windows Allegro Build Repo:

Member #11,955
May 2010

No don't worry, my current project already has a lot of 'interesting' stuffs that I need to think about, mostly multiplayer stuff, so I promised to myself to keep with my actual design and do not add absolutely anything else, for that reason I don't really need it, I just wanted to make some tests and stuff. But if I'm sure about some aspects of my next videogame (yes, after a finis this one) is that it will have a video introduction and shaders. So I hope to use Allegro 5.2 in my new version. Thanks for the offer anyway hommie! :)

Member #358
May 2000

Can you also provide a .zip with the dependencies? Things like freetype headers and so on. Basically enough to allow someone to compile their own allegro from source, but without the need to download/compile anything else.

"Either help out or stop whining" - Evert

Michał Cichoń
Member #11,736
March 2010

There you go. I'm not sure if OpenAL-Soft will work for every compiler in this build, but it's included anyway.


"God starts from scratch too"
Windows Allegro Build Repo:

Member #358
May 2000

Ohh, thanks, that will help me a lot next time I try to compile SVN under Windows.

"Either help out or stop whining" - Evert

Max Savenkov
Member #4,613
May 2004

I can't run game in fullscreen mode on Windows with 5.1.2 with either DirectX or OpenGL. DirectX crashes when setting transform matrix and OpenGL can't find adapter in tls. I will investigate further and see if maybe I built Allegro in some wrong way...

EDIT: Got it. I was trying to create a full-screen display with bigger resolution than maximum supported by my monitor. I wonder if Allegro can detect such situations and return NULL instead of display pointer that does not work? But I guess it depends on drivers.

Peter Wang
Member #23
April 2000

al_create_display is not supposed to return an invalid pointer other than NULL, so that would be a bug.

Karadoc ~~
Member #2,749
September 2002

I don't know if I'll ever forgive git for recommending present imperative tense for commit messages. It's a bizarre way to write a log, and apparently no everyone likes it...


Member #3,110
January 2003

I don't know if I'll ever forgive git for recommending present imperative tense for commit messages. It's a bizarre way to write a log, and apparently no everyone likes it...


Febreze (and other air fresheners actually) is just below perfumes/colognes, and that's just below dead skunks in terms of smells that offend my nose. | +Me
Windows 8 is a toned, stylish, polished professional athlete. But it’s wearing clown makeup, and that creates a serious image problem. ~PCWorld Article

Member #11,410
October 2009

Do you mean like:

Fixing the bug at line 22.

Instead of:

Fixed the bug at line 22.


Matthew Leverton
Supreme Loser
January 1999

This form: "Fix the bug at line 22."

I like it. >:(

 1   2 

Go to: