http://sourceforge.net/projects/alleg/files/allegro-unstable/5.1.2/
{"name":"606072","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/6\/3\/6358c0578c13ec83b3c2c1457b6f2506.png","w":960,"h":540,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/6\/3\/6358c0578c13ec83b3c2c1457b6f2506"}
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.
Core:
* 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).
Filesystem:
* 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.
Displays:
* 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
X11.
* 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
ALLEGRO_NOFRAME flag.
* Set WM_NAME for some window managers (X11).
* Disable the idle timer on iOS (screen lock) when entering airplay
mode.
* Make al_destroy_display handle display disconnection properly. The
user will need to clean up then call al_destroy_display after
receiving ALLEGRO_EVENT_DISPLAY_DISCONNECTED (iOS).
Graphics:
* Added al_get_parent_bitmap (Paul Suntsov).
* Make blitting from backbuffer work when using multisampling on
Windows/D3D.
* 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
format.
* Added al_create_custom_bitmap.
* Remove ALLEGRO_PRESERVE_TEXTURE flag. The idea is to always
preserve textures unless directed otherwise by the user with
ALLEGRO_NO_PRESERVE_TEXTURE.
* 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.
OpenGL:
* Fix null pointer dereference if backbuffer creation fails.
Reported by Max Savenkov.
* Made the ALLEGRO_OPENGL_FORWARD_COMPATIBLE flag work with
al_draw_bitmap.
* Texture should be 'complete' (min/mag and wrap set) before
glTexImage2D.
* 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
3.0.
* Check for OES_texture_npot as well for non-power-of-two support.
* Fix loading of some textures on iOS.
Direct3D:
* 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.
Input:
* 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).
* Generate ALLEGRO_EVENT_DISPLAY_HALT_DRAWING, RESUME_DRAWING events
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
working.
* 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
Savenkov.
* 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
platforms.
Examples:
* 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
sticks.
* 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.
Other:
* Many minor bug fixes.
* Many documentation updates.
* Fix whatis entries of man pages. (Tobias Hansen)
MD5SUMS b73da10cbb8a132b81fd8b420e35b96c allegro-5.1.2.7z 1783780166d9b8193f998de01a9ba185 allegro-5.1.2.tar.gz 15ed5d8746f2c046532a833b851eb2a9 allegro-5.1.2.zip
Thanks to AMCerasoli for the image.
All the examples I tried so far work, but my brain is too fried ATM to mess with it in depth.
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?
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.
Looks like this does it:
[window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenPrimary];
http://fredandrandall.com/blog/2011/09/08/how-to-make-your-app-open-in-full-screen-on-lion/
Thanks for finding this. I made a patch so all resizeable windows have the fullscreen button:
I think it can be applied as is. Anything speaking against it? If not I'll apply it.
Anything speaking against it? If not I'll apply it.
NSWindowCollectionBehaviorFullScreenPrimary is Lion+ only (https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/Reference/Reference.html). 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.
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.)
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
Windows build is available. It took almost 20 minutes to prepare. i7 waaay faster than Core 2 Duo. 
Enjoy your's Allegro!
allegro-5.1.2-mingw-4.5.0.7z
allegro-5.1.2-mingw-4.5.2.7z
allegro-5.1.2-mingw-4.6.1-tdm.7z
allegro-5.1.2-mingw-4.6.2.7z
allegro-5.1.2-msvc-10.0.7z
allegro-5.1.2-msvc-9.0.7z
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.
Yes.
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.
EDIT:
I think this should work:
#ifndef MAC_OS_X_VERSION_10_7 /* Defined on 10.7 (Lion) and up. #define NSWindowCollectionBehaviorFullScreenPrimary (1<<7) #endif
Probably best to just do that in the relevant source file.
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.
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.
Windows build is available.
No man... And what about the new addonds?
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?
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!
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.
There you go. I'm not sure if OpenAL-Soft will work for every compiler in this build, but it's included anyway.
contrib-mingw-4.5.0.7z
contrib-mingw-4.5.2.7z
contrib-mingw-4.6.1-tdm.7z
contrib-mingw-4.6.2.7z
contrib-msvc-10.0.7z
contrib-msvc-9.0.7z
Ohh, thanks, that will help me a lot next time I try to compile SVN under Windows.
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.
al_create_display is not supposed to return an invalid pointer other than NULL, so that would be a bug.
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...
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...
Wha?
Do you mean like:
Fixing the bug at line 22.
Instead of:
Fixed the bug at line 22.
?
This form: "Fix the bug at line 22."
I like it.
Wha?
Notice that in the change log in the first post, some items are written in past tense (eg. "Fixed foo") whereas others are written in present imperative tense (eg. "Fix foo"). I think the inconsistency looks pretty bad.
The developers of git use the imperative style and suggest that others use it too, but in many circumstances the imperative style feels very unnatural to many people, and so the git advice is often ignored - hence the inconsistency.
Here is a stack overflow discussion about it.
If I ever saw a First World problem...
If I ever saw a First World problem...
{"name":"606125","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/6\/0\/600a774f0780079a05ddce2974cff183.png","w":401,"h":396,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/6\/0\/600a774f0780079a05ddce2974cff183"}
I think in Allegro it depends on who the message is from and what that person felt like using at the time. There is no standard. We also still use SVN :X
I have no standard in my commit messages, and I think it's often unclear what I mean.
But I do always leave some message hinting at what I've done.
Heh, I was just wondering if Peter Wang might not be a native English speaker 
Map SINGLE_CHANNEL_8 to red channel only.
Could someone explain to me why? Or should I understand it as: "mapped only the red channel to SINGLE_CHANNEL_8"?
WANT_ANDROID_LEGACY
Out of curiosity (and because I maybe want to do an Android app in the future): which version is legacy? Does this imply a strong incentive to maintain the legacy, or is this the first step to perhaps dropping legacy support?
I'm gonna make a Git-build now... Wait, I mean: make Git-build now! :p
It's mapped to GL_RED. Because in GL 3.0+ that's the only single channel format. Before it was mapped to GL_LUMINANCE which they dropped.
Out of curiosity (and because I maybe want to do an Android app in the future): which version is legacy?
That was a bit of a hack initially. It shouldn't be necessary at all. I'm not sure it does much at the moment.
If I ever saw a First World problem...
Hey man, just because it's a first world problem doesn't mean it isn't a problem. Essentially everything discussed on this site is about first world problems!
Summarising the change log is the single most tedious and time consuming part of making a release. I don't want to complain too much as this is a volunteer project, but if you want to help me out:
Make small commits. This is good practice anyway, but as far as the change log goes it saves time splitting entries and prevents missing changes.
Provide context. Make the commit message clear without needing to look at the diff or the files that it touches.
Write complete sentences with proper capitalisation and punctuation so I don't have to fix them later. Ideally, the first sentence in the message can go directly in the change log.