Allegro changelog for 5.1.x series
**********************************

See `changes-5.0.txt' for changes in Allegro 5.0.x. These lists serve
as summaries; the full histories are in the Subversion repository.

Changes from 5.1.7 to 5.1.8 (January 2014)
******************************************

The main developers this time were: Beoran, SiegeLord, Trent Gamblin,
Markus Henschel, Peter Wang.

Core:

   * Allow MSVC to use DLL TLS but disable DLL TLS by default.

   * Do not include windows.h via allegro.h.

   * Fix some memory leaks on X11.


Graphics:

   * Spell ALLEGRO_DST_COLOR, ALLEGRO_INVERSE_DST_COLOR with "DEST"
     (with compatibility defines).

   * Fix bug which meant ALLEGRO_INVERSE_SRC_COLOR and
     ALLEGRO_INVERSE_DEST_COLOR never actually worked on D3D.

   * Fix horizontal and vertical shears which were not composing with
     translations correctly.

   * Optimise al_restore_state if saved target display/bitmap are
     unchanged.

   * Fix _al_display_settings_sorter ordering of indexes when scores
     are equal.

   * Use a minimum 16x16 texture workaround even on desktop OpenGL.

   * Propagate errors up OpenGL lock bitmap implementations.

   * Use proxy bitmap when locking writable backbuffer regions on GLES.

   * Clean up FBO creation during bitmap locking.

   * Move the half-pixel shift in D3D into the projection matrix. Use
     the texture dimensions to compute the half-pixel shift.

   * Fix al_get_d3d_texture_size returning zeros.

   * Remove ALLEGRO_FORCE_LOCKING flag.

   * Setup GL viewport and projection in al_acknowledge_resize on
     Android.

   * Improve implementation of display options on Android: use the same
     display setting scoring code as other ports; handle SUGGEST
     display options properly; map ALLEGRO_COLOR_SIZE to
     EGL_BUFFER_SIZE attributes.


Filesystem:

   * Add al_ferror and al_ferror. Initial patch by Tobias Scheuer.

   * Make al_fclose have a return value.

   * Check al_fclose return value in saving routines.

   * Make al_fopen_fd not leak a FILE handle in a failure path.

   * Make al_make_temp_file allocate temporary buffer to match the
     template.

   * android: Interpret the path to APK asset as AssetManager doesn't.

   * android: Correctly return -1 for APK asset file size if it can't
     be determined. A side-effect is that FreeType (via the TTF addon)
     can now load TTFs stored compressed in APK assets.

   * android: Support ungetc on APK file streams.

   * android: Fix EOF handling in AllegroInputStream.


Input:

   * Initial haptics API, only implemented on Linux to begin with.

   * Use Linux input API for joystick driver instead of deprecated
     joystick API.

   * Use Linux joystick driver on Android if OUYA model detected
     (Jonathan Lilliemarck).

   * Use thread for hotplugging joysticks on Linux instead of timerfd
     (due to Android).

   * Report unichar in KEY_CHAR events on Android. (Todd Cope)

   * Added some Android gaming key codes.

   * iOS touch coordinates need to be multiplied by contentScaleFactor.

   * Android touch input id 0 was incorrectly treated as invalid. (Max
     Savenkov)


Shaders:

   * Automatically call OnLostDevice and OnResetDevice on HLSL shaders.

   * Remove #version specifier from all shaders.


Audio addon:

   * Remove generic audio event source and AudioQueue events.

   * Don't queue silent fragments at start of new audio streams.

   * Make stream_read return correct number of filled samples when no
     data is available (zero).

   * A DirectSound voice could not be restarted once it has been
     stopped.

   * Fix crash when attaching empty stream to dsound voice.

   * Reset buffer position in stop instead of play in dsound voice.

   * Fix calculation of current sample position in dsound voice.

   * Reset audio stream when al_set_audio_stream_playing to false for
     voice and mixer cases, and make all fragments available for refill.

   * Emit stream fragment events when a stream is started.

   * Remove unnecessary reallocation of the channel matrix.

   * Add al_fill_silence.

   * Add al_get_audio_stream_played_samples.

   * Fix deadlock in Pulseaudio driver. Reported by Bluebird.

   * Let al_set_sample_instance_playing work for unattached instances
     and sample instances with no data set. Reported by Bluebird.

   * Enable the use of the unpatched DirectX SDK to build.


Audio codec addon:

   * Fix looping in Ogg Vorbis stream. (Todd Cope)

   * Seeking in wavs would always have returned success.


Image addon:

   * Fix many problems in Android native image loader, including:
     supporting ALLEGRO_NO_PREMULTIPLIED_ALPHA, respecting the new
     bitmap format, working for non-APK assets, not crashing on failure.

Native dialogs addon:

   * Change native menu ids from int to uint16_t due to limitation with
     Windows. (Matthew Leverton)

Primitives addon:

   * Rename the primitives buffer flags.

   * Simplify the prim buffer hints.

   * Simplify the al_create_vertex_buffer API.

   * Actually implement uninitialized vertex buffers.

   * Add indexed buffer API.

   * Polylines with ALLEGRO_LINE_CAP_CLOSED cap style did not draw
     correctly with thickness == 0.

   * Take into account the projection matrix when computing the scale
     of the high level primitives.

   * Replace enum arguments for al_draw_polyline and al_draw_polygon
     with integers to reduce chance of ABI issues.


TTF addon:

   * Fix a bug where some glyphs would be blank.

   * Allow glyph allocation to fail without crashing.


Android port:

   * Separate Allegro library Java code from the original example
     project for Android (Jonathan Lilliemarck).

   * Build Allegro library as a JAR.

   * Rename Java package to org.liballeg.android.

   * Change how the application shared library is specified. Override
     the AllegroActivity constructor instead of specifying in
     AndroidManifest.xml.

   * Add a method to tell if the user exited main in the Android Java
     code.

   * Add a fix for the case of launching another activity from your
     game on Android and then returning to the game after it finishes.

   * Refactoring and clean up.


iOS port:

   * Remove al_iphone_get/set_screen_scale as not really needed and
     confusing.

Build system:

   * Integrate Android port into build system, including building and
     launching examples for debugging.

   * Detect OpenGLES/2 libraries on Android.

   * Let clang use same options as gcc in build system.


Python:

   * Made the C-parser used in the Python API generator understand more
     type constructs. (Elias Pschernig)

Examples:

   * Make demos and most examples run (somewhat) on Android.

   * Add touch input support to various examples.

   * New examples: ex_file, ex_haptic, ex_haptic2, ex_touch_input.

   * ex_prim: Demonstrate indexed buffers.


Other:

   * More more minor bug fixes and changes.

   * Documentation updates.

   * Syntax highlight the C source examples and prototypes in the
     documentation.


Changes from 5.1.6 to 5.1.7 (May 2013)
**************************************

The main developers this time were: Peter Wang, Trent Gamblin.

Graphics:

   * Added al_horizontal_shear_transform, al_vertical_shear_transform
     (Jeff Bernard).

   * Make al_destroy_bitmap maintain the current display when
     untargeting the bitmap to be destroyed.

   * Delete al_create_custom_bitmap.

   * Delete al_ortho_transform compatibility macro.

   * Make al_get_d3d_texture_size fail instead of crash if passed a
     non-D3D bitmap.

   * Make al_get_opengl_texture_size return success code to match D3D.

   * Rename al_d3d_set_release/restore_callback to be consistent with
     existing naming, and pass the display as an argument.

   * Check availability of fullscreen button on window frame at
     run-time (OS X).


Input:

   * Fix mouse warping on OS X.

   * Fix mouse warping in Linux evdev mouse driver.


Audio addon:

   * pulseaudio: Use smaller buffer size by default, and make it
     configurable.

   * pulseaudio: Clean up state transitions.


Color addon:

   * Fix al_color_rgb_to_html blue component (Jeff Bernard).

   * Implement al_color_html_to_rgb and al_color_html more strictly.


Primitives addon:

   * Delete al_draw_polygon_with_holes.

   * Delete stride-less version of al_draw_polyline*.

   * Simplify interface of al_triangulate_polygon and
     al_draw_filled_polygon_with_holes.


Video addon:

   * Make al_seek_video return a result.

   * Fix crash when unable to open a Ogg video.

   * Don't scan to end of headers of unknown stream for Ogg video.

   * Stop reading at end of Ogg video.

   * Try to account for audio buffers in positioning of Ogg video.

   * Implement seek to beginning of file (only) in Ogg backend.

   * Replace deprecated av_find_stream_info() call (Nick Black).


Android port:

   * Fix some Android switch in/out and exit issues.

Build system:

   * Do not install most internal header files.

   * Do not search for and link with unneeded X libraries.


Examples:

   * ex_audio_timer: New example.

   * Revise and comment the ex_prim_shader example and shaders (Paul
     Suntsov).


Other:

   * Various documentation updates.

   * Minor fixes and much code refactoring.


Changes from 5.1.5 to 5.1.6 (March 2013)
****************************************

The main developers this time were: Trent Gamblin, Paul Suntsov, Peter
Wang.

Core:

   * Fix use of clobbered return value from setlocale() on X11.

   * Register system interface even if no display driver available on
     Windows.

   * Fix use of double math functions for float arguments (Nick Trout).


Shaders:

   * Revamped shader API. The shader API is now part of the core
     library, and the shader addon removed.

   * Shaders are now a per-bitmap property, set with al_use_shader. A
     bitmap without a set shader uses a default shader internally, that
     allows Allegro drawing functions to work as in non-programmable
     pipeline mode.

   * Shader variable setters operate on the shader of the target bitmap.

   * Rename ALLEGRO_USE_PROGRAMMABLE_PIPELINE to
     ALLEGRO_PROGRAMMABLE_PIPELINE.

   * Rename al_link_shader to al_build_shader.

   * Remove al_set_shader.

   * Remove the al_set_shader_*_array functions. These functions cannot
     be easily (or at all) implemented with the D3D backend.

   * Add al_get_shader_platform and al_get_default_shader_source.

   * Remove al_get_opengl_program_object, al_set_opengl_program_object,
     al_get_direct3d_effect, al_set_direct3d_effect.

   * Remove Cg shader backend.

   * Add macros for shader variable names (Jon Rafkind).


Displays:

   * Made al_get_display_mode return the closest thing to a pixel
     format possible with the WGL driver (tobing).

   * Move WGL context destruction out of the message pump thread and
     into the user/main thread.

   * Allow command-tab to work in fullscreen window mode on OS X.

   * Remove "user_reload" parameter from al_acknowledge_drawing_resume.

   * Don't crash in al_create_display if there is no display driver.

   * Don't crash at shutdown if there is no display driver (Windows).

   * Don't fail init if both D3D, GL drivers unavailable (Windows).

   * Sync bitmaps before resizing display to prevent changes being lost
     after the resize (D3D).

   * Load the D3D9X module during display creation and unload it when
     the D3D system shuts down.

   * Run fullscreen toggle on main thread (OS X).

   * Destroy the backbuffer bitmap when destroying the display (OS X).

   * Switch to new NSTrackingArea API (OS X).

   * Set ALLEGRO_NO_PRESERVE_TEXTURE on backbuffer (OpenGL).


Graphics:

   * Let al_destroy_bitmap implicitly untarget the bitmap on the
     calling thread.

   * Fix a bug where bitmap locking may change the target bitmap but
     not restore it back to NULL (OpenGL).

   * Use memory bitmap drawing when either bitmap is locked (OpenGL).

   * Fix a crash in D3D destroying sub-bitmaps.

   * Add const qualifiers to glUniform*v() functions (Aaron Bolyard).


Input:

   * Partially fix mouse buttons "sticking" on Mac, e.g. holding the
     mouse and toggling fullscreen window.

   * al_set_mouse_xy on Windows resulted in the mouse getting set to
     the wrong position in windowed modes

   * Scale the user supplied mouse cursor if it's too big (Windows).

   * Add key constants for some Android keys, those that are used in
     Xperia Play controls.


Audio addons:

   * Fix PulseAudio driver trying to connect to a non-existent server
     forever.

   * Avoid memory leaks with audio event source.

   * Use smaller buffer size for OpenSL.


Image addon:

   * Use Allegro built-in loaders in preference to OS X loaders for
     BMP/TGA/PCX. The OS X TGA loader doesn't support alpha and this is
     also more consistent.

Font addons:

   * Make al_init_font_addon return success value.

   * Make al_init_ttf_addon return true for subsequent calls.


Native dialogs addon:

   * Fix a crash on iOS due to threading/TLS issues geting the display
     (Nick Trout).

Primitives addon:

   * Speed up al_triangulate_polygon_with_holes.

   * Speed up drawing of the rounds for polylines.

   * Add custom vertex attributes to the primitives addon.

   * Replace vertex shader binary generated by vsa.exe (removed from
     DirectX SDKs for a while now) by that generated by fxc.exe.

   * A minor revamp of the HLSL default shader system in the primitives
     addon.

   * Fix a few incorrect usages of al_lock_vertex_buffer

   * Disallow 3 component vectors for ALLEGRO_PRIM_TEX_COORD.

   * Add a whole bunch of new ALLEGRO_PRIM_STORAGE values.

   * Primitives addon was ignoring the filter settings of textures in
     the D3D backend.


Android port:

   * Generate KEY_CHAR on Android.

   * Add key constants for Android.

   * Set target bitmap to display backuffer after program is resumed.

   * Use different functions for OpenGL ES 1 and OpenGL ES 2 on Android.


iOS port:

   * Support stencil buffer on iOS.

   * Remove unnecessary autorelease pools. There was a crash when using
     Airplay that goes away without the pools.

   * Make Airplay work the standard way most apps do unless the Allegro
     user explicitly creates a display on the second screen.

   * Don't autorotate displays other than device.

   * Fix some threading and memory issues.


Raspberry Pi port:

   * Allow for color size, depth and stencil sizes.

   * Support al_show_mouse_cursor and al_hide_mouse_cursor. Disabled as
     it sometimes ends up stuck on the screen until reboot.


Examples:

   * New examples: ex_prim_shader, ex_shader_target.

Other:

   * Various documentation updates.

   * Minor fixes and code refactoring.


Changes from 5.1.4 to 5.1.5 (January 2013)
******************************************

The main developers this time were: Trent Gamblin, Elias Pschernig, Jon
Rafkind, Peter Wang.

Ports:

   * Initial port to Raspberry Pi by Trent Gamblin.

Core:

   * Added an al_register_trace_handler function.

   * Clean up logging subsystem at shutdown (muhkuh).

   * Fix a problem with creating a display after Allegro is shut down
     then re-initialised on X11.


Displays:

   * Fix crashes when resizing a WGL fullscreen window.

   * Fix use of invalidated pointers in D3D driver when the first
     format fails.

   * Fix bug where setting the mouse cursor had no effect when the
     mouse was captured (mouse button held down).

   * Fix windows not having a minimise button when set to windowed
     state from fullscreen window state.

   * Respect ALLEGRO_FRAMELESS flag properly when toggling from
     fullscreen window state to windowed state (Windows).

   * Don't generate DISPLAY_LOST events when resizing a fullscreen
     display.

   * Fix al_set/get_window position on Windows so getting/setting to
     the same position continuosly doesn't move the window. (Michael
     Swiger)

   * Rename al_change_display_option to al_set_display_option.

   * Add al_set_display_icons (plural), implemented for X11 and Windows.

   * Add ALLEGRO_GTK_TOPLEVEL display flag for X11.

   * Fix window resizing when using shaders (X11).


Graphics:

   * Avoid null pointer dereference when setting a target bitmap after
     its video_texture has already been released (D3D).

   * Make d3d_lock_region fail immediately if _al_d3d_sync_bitmap
     failed, likely because the device was lost.

   * Set device_lost flag immediately when d3d_display_thread_proc
     finds the device is lost.

   * Fix OpenGL extensions being completely ignored on OS X.

   * Added a quick hack to fix bitmap locking on desktop OpenGL when
     using shaders.


Config:

   * Added al_remove_config_key and al_remove_config_section functions.

File I/O:

   * Fix al_read_directory crash on 64-bit Windows (simast).

Filesystem:

   * Keep absolute path in ALLEGRO_FS_ENTRYs so that later changes to
     the current working directory do not affect the interpretation of
     the path.

   * Set ALLEGRO_FILEMODE_HIDDEN properly on Unix.

   * Make sure stat mode bits are cleared in default implementation of
     al_update_fs_entry.

   * Support Unicode paths on Windows.

   * Change description of al_get_fs_entry_name about not returning
     absolute path if created from relative path; no longer true for
     either the default or Physfs implementations.


Audio addons:

   * Fix setting the speed of an audio stream after it was attached to
     the mixer (Paul Suntsov).

   * Shut down threads properly when when destroying FLAC and modaudio
     streams.


Font addon:

   * Avoid making x offset non-integral for ALLEGRO_ALIGN_CENTRE.

   * Make al_draw_justified_* respect ALLEGRO_ALIGN_INTEGER.


TTF addon:

   * Don't save the projection transform if no display is set.

Image addon:

   * Added a missing autorelease-pool to the OSX bitmap saving function
     (sleepywind).

   * Fix OSX native image loader for loading not-premultiplied RGB
     data. Previously the data was "de-multiplied", with possibly all
     information lost.

   * Fix OSX native image loader for loading bitmaps without an alpha
     channel. They appeared completely black previously.

   * Fixed loading interlaced .png files with libpng.


Native dialogs addon:

   * Do not unload of rich edit module when closing one text log window
     while another exists. Reported by URB753.

   * Use default colours for Windows text log implementation, avoiding
     problems when the previous custom colours failed, leading to black
     text on a nearly black background.

   * Add al_shutdown_native_dialog_addon.

   * Add native menu support on X11 (requires ALLEGRO_GTK_TOPLEVEL).

   * Add native menu support on OS X.


PhysicsFS addon:

   * Implement al_change_directory semantics (Todd Cope).

Primitives addon:

   * Fixed textured primitives when using shaders (OpenGL).

Shader addon:

   * Add dynamic loading of d3dx9_xx.dll (Michał Cichoń).

   * Add dynamic loading of Cg DLLs (Michał Cichoń).

   * Started implementing default shaders. Only GLSL so far.

   * Fix null pointer dereference in al_create_shader if backend init
     fails.


Android port:

   * Fix setting the current display on Android.

   * Don't set the backbuffer when setting up the OpenGL view.


Build system:

   * Rename allegro*-5.1.pc files to allegro*-5.pc. The new names will
     be available in future 5.0.x releases.

   * Generate and install allegro_shader pkg-config file.

   * Only generate and install pkg-config files for libraries that we
     build.


Examples:

   * ex_icon2: New example.

   * ex_shader_multitex: New example.

   * ex_shader: Choose shader platform on command-line; external shader
     sources.

   * ex_menu: Various changes.

   * speed: Avoid poor performance due to needless redraws.


Other:

   * Documentation updates, many thanks to beoran.

   * A lot of code refactoring.


Changes from 5.1.3 to 5.1.4 (October 2012)
******************************************

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

Graphics:

   * Fixed al_convert_bitmap using the target instead of the source
     format when converting its data.

   * Fix a crash in Direct3D in al_set_target_bitmap when switching
     from a memory target.

   * Fix a potential crash when drawing the screen to a bitmap with D3D.

   * WGL shouldn't need to preserve bitmaps.

   * Update the projection transform when setting up the OpenGL context
     on X11 (SiegeLord).

   * Lock bitmap to prevent slowness when creating a cursor from a
     non-memory bitmap on Windows.

   * Conditionally lock bitmap when creating cursor on X11 (previously
     it did so even if already locked).


Input:

   * Make al_install_touch_input fail under Windows if there is no
     touch device.

   * Temporary fix for delay after mouse warp on OS X.


File I/O:

   * Fix al_fputc on big-endian. Reported by Andreas Rönnquist and
     Tobias Hansen.

   * Make al_fputc return value like fputc when out of range.


Image addon:

   * gdiplus: Only preserve indexed images with KEEP_INDEX flag on.

Font addons:

   * Added ALLEGRO_ALIGN_INTEGER text drawing flag (Todd Cope).

   * Added a new al_get_font_ranges function.

   * Made TTF addon include padding on the top and left edges of pages
     (Todd Cope).


Audio addon:

   * Use programmatically generated interpolators. They cover an
     additional case which was missed and should be slightly more
     efficient.

   * Support linear interpolation for 16-bit mixers.

   * Add cubic interpolation for mixers (off by default).

   * Fix potential deadlock in stop_voice for OpenAL.

   * Fix potential deadlock in stop_voice for DirectSound.

   * Improve buffer filling behaviour for DirectSound, reducing pops
     and crackles significantly on slower machines.

   * Increase default buffer size for DirectSound to 8192 samples.


Android port:

   * Support ALLEGRO_KEYBOARD_STATE.

   * Fix return type of APK_tell (Todd Cope).

   * Allow use of OpenGL ES 2 under Android.


iOS port:

   * Make orientation changes work on iOS with SDK 6.

Build system:

   * Rename native dialog library back to allegro_dialog to match 5.0.

   * Install pkg-config files when cross-compiling on Unix.


Python:

   * Make the Python wrapper also check for the monolith DLL.

Examples:

   * ex_synth: Add button to save waveform to a file.

   * ex_multisample: Demonstrate using moving bitmaps.

   * Renamed a5teroids to Cosmic Protector


Other:

   * Minor bug fixes and documentation updates.

Changes from 5.1.2 to 5.1.3 (August 2012)
*****************************************

The main developers this time were: Dennis Busch, Trent Gamblin, Elias
Pschernig, Jon Rafkind, Paul Suntsov, Peter Wang.

Displays:

   * Rewrite D3D display format listing code, which was broken. This
     should re-enable multi-sampling and fix ex_depth_mask being slow
     with D3D.

   * Fixed a case where changing fullscreen mode in D3D via
     al_resize_display caused a crash and loss of loaded bitmaps
     information.

   * Fixed a case where changing fullscreen mode in OpenGL (on Windows)
     via al_resize_display cause nothing to be rendered after the mode
     change.

   * Fixed OpenGL (Windows) bitmap preservation between fullscreen mode
     changes.

   * Fixed missing/incorrect resize events under Windows.

   * Fixed ALLEGRO_FULLSCREEN_WINDOW under OS X.

   * Fix al_set_new_display_adapter on OS X.

   * Enable fullscreen icon on resizable windows on OS X 10.7 and up.

   * Added al_osx_get_window function (Dennis Gooden).


Graphics:

   * Rename al_ortho_transform to al_orthographic_transform and give it
     a more consistent parameter order.

   * Add al_perspective_transform and
     al_translate|scale|rotate_transform_3d.

   * al_draw_pixel was crashing when drawn on sub-bitmaps on OpenGL.

   * Make ogl_flush_vertex_cache disable GL_TEXTURE_2D state.

   * Don't use NSOpenGLPFAAccelerated unnecessarily (OS X).


Input:

   * Fix incorrect keyboard modifier flags after leaving and
     re-entering a window (Windows).

   * Fixed a bug with mouse enter/leave events for resized windows
     under OSX (Dennis Gooden).


Audio addon:

   * Add OpenSL ES driver for Android.

Font addons:

   * Add builtin font creation function.

   * Preserve projection transformation when caching glyphs in the TTF
     addon.


Image addon:

   * Don't include native image loader source files when the native
     image loaders are disabled.

Primitives addon:

   * Add vertex buffer API.

Native dialogs addon:

   * Run NSAlert on the main thread (OS X).

Android port:

   * Many bug and compatibility fixes.

   * Support al_inhibit_screensaver on Android.

   * Generate SWITCH_IN/OUT events on Android similar to iOS.

   * Support render state API on Android.

   * Make al_acknowledge_drawing_resume take a user callback parameter
     for interdependant textures.

   * Support building Android port for x86.

   * Add an ANDROID_APP_NAME CMake variable which will replace all
     org/liballeg/app and org_liballeg_app with your own app name


Build system:

   * Make the monolith dll under Windows use proper dll exports with
     MSVC.

   * Properly include the main addon in the monolith build.

   * Add Physfs and Cg include directories.


Examples:

   * Added new examples: ex_projection, ex_vertex_buffer.

Other:

   * Documented the allegro_main addon.

   * Various minor bug fixes and cleanups.


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)


Changes from 5.1.0 to 5.1.1 (February 2012)
*******************************************

The main developers were: Thomas Fjellstrom, Trent Gamblin, Matthew
Leverton, Elias Pschernig, Jon Rafkind, Peter Wang.

Ports:

   * Thomas Fjellstrom started an Android port. Displays, keys and
     touch events work.

Core:

   * Make al_ref_cstr, al_ref_ustr and al_ref_buffer return const
     ALLEGRO_USTR* instead of just an ALLEGRO_USTR* (Paul Suntsov).

Graphics:

   * Fixed a bug in the OpenGL driver when drawing the backbuffer
     outside the clipping rectangle of the target bitmap.

Displays:

   * Fixed a problem with wrong window size when restoring a minimised
     window, in code that was added to support window constraints
     (jmasterx).

   * Set ALLEGRO_MINIMIZED display flag on Windows (Zac Evans).

   * Prevent a deadlock during display creation on X.

   * Fallback to the 'old' visual selection method on X instead of
     crashing if the 'new' visual selection doesn't work.

   * Implement XEmbed protocol.

   * Add hot plug display support on iOS (Airplay and wired.)


Input:

   * Use the same logic in set_mouse_xy for FULLSCREEN_WINDOW as was
     used for FULLSCREEN. (Max OS X)

Audio addons:

   * Add audio recording API with implementations for ALSA, AudioQueue,
     DirectSound8 and PulseAudio.

   * Improve code to check that DLL symbols are loaded in the acodec
     addon. The old method was hacky and broke under -O2 using GCC
     4.6.1. (Paul Suntsov)


Image addon:

   * Some initial Android support.

   * Write libjpeg errors to Allegro log.


TTF addon:

   * Clear locked region so pixel borders aren't random garbage that
     can be seen sometimes with linear filtering on.

Video addon:

   * Added Ogg Theora/Vorbis backend.

   * Fixed a few warnings with ffmpeg version 0.7/0.8.


Build system:

   * Add monolith library option.

   * Detect the new MinGW cross-compiler in Ubuntu.


Examples:

   * Added new examples: ex_record, ex_record_name, ex_display_events.

   * ex_ogre3d: Make it work under Windows (AMCerasoli).

   * skater: small bug fixes, mouse support, add missing files for
     scrollers.

   * a5teroids: Support gamepads that report small non-zero values for
     sticks that are at rest.

   * Added pong example in Python.


Other:

   * Added index to HTML version of the reference manual.

   * Various documentation updates.

   * Other minor bug fixes.


Changes from 5.0.x to 5.1.0 (November 2011)
*******************************************

The main developers were: Michał Cichoń, Trent Gamblin, Matthew
Leverton, Elias Pschernig, Paul Suntsov, Peter Wang.

Core:

   * Added al_register_assert_handler.

   * Added API for registering callbacks to intercept window messages
     on Windows.


Graphics:

   * Added bitmap conversion API: al_convert_bitmap,
     al_convert_bitmaps, with bitmap flag ALLEGRO_CONVERT_BITMAP and
     display option ALLEGRO_AUTO_CONVERT_BITMAPS. Automatic bitmap
     conversion is enabled by default.

   * Added al_draw_tinted_scaled_rotated_bitmap_region.

   * Added new ALLEGRO_PIXEL_FORMAT_LUMINANCE_8 format.

   * Added a new bitmap flag ALLEGRO_KEEP_INDEX.

   * Separate bitmap loader flags from bitmap flags. This adds three
     functions: al_load_bitmap_flags, al_load_bitmap_flags_f and
     al_load_bitmap_font_flags.

   * Add ALLEGRO_SRC_COLOR, ALLEGRO_DST_COLOR blending modes (Jon
     Rafkind).

   * Add ALLEGRO_INVERSE_SRC_COLOR and ALLEGRO_INVERSE_DST_COLOR
     blending modes.

   * Made al_compose_transform do a full 3d multiply.

   * Added al_get_current_inverse_transform, al_ortho_transform,
     al_get_projection_transform, al_set_projection_transform.

   * Added al_reset_clipping_rectangle convenience function.

   * Added al_get_d3d_texture_size.

   * Added al_d3d_set_release_callback and al_d3d_set_restore_callback
     for release/restoring user d3d objects.


Displays:

   * Added al_get_display_orientation.

   * Added a new display option ALLEGRO_SUPPORTED_ORIENTATIONS to
     specify the supported orientations (default is just portrait as
     before).

   * Added al_change_display_option function, initially only for
     ALLEGRO_SUPPORTED_ORIENTATIONS.

   * Add two new display events (only implemented on iOS right now).
     ALLEGRO_EVENT_DISPLAY_HALT_DRAWING tells the app to stop all
     drawing and ALLEGRO_EVENT_DISPLAY_RESUME_DRAWING tells it it can
     start drawing again. SWITCH_OUT/IN on iOS were redefined from
     "going into/out of background" to "going active/inactive".

   * Added the function al_acknowledge_drawing_halt.

   * Added window size constraint functions (jmasterx).


Input:

   * Add API related to touch input. The implementation covers iDevices
     and Windows 7 drivers for touch input. A number of mouse emulation
     modes are provided.

Events:

   * Add al_pause_event_queue, al_is_event_queue_paused.

Filesystem:

   * Added al_fopen_slice.

   * Added al_set_exe_name which allows overriding Allegro's idea of
     the path to the current executable.


Audio addon:

   * Add mixer gain property and functions.

   * Add a 'global' audio event source, generating some audio events
     from the Audio Queues driver: AUDIO_ROUTE_CHANGE,
     AUDIO_INTERRUPTION, AUDIO_END_INTERRUPTION.


Native dialogs addon:

   * Add menus to native dialogs (Windows and GTK).

Primitives addon:

   * Add simple polygon triangulator and polygon drawing routines.

   * Added al_draw_polyline and al_draw_polyline_ex.

   * Added al_draw_filled_pieslice and al_draw_pieslice.

   * Added al_draw_elliptical_arc.


TTF addon:

   * Added al_load_ttf_font_stretch functions (tobing).

Shader addon:

   * Added a shader addon and programmable pipeline support.

Video addon:

   * Added a video player addon, currently using ffmpeg.

iOS port:

   * Added al_iphone_override_screen_scale, al_iphone_get_screen_scale,
     al_iphone_set_statusbar_orientation,
     al_iphone_get_last_shake_time, al_iphone_get_battery_level,
     al_iphone_get_window, al_iphone_get_view.

Examples:

   * Added new example programs: ex_audio_chain, ex_loading_thread,
     ex_menu, ex_palette, ex_polygon, ex_shader, ex_window_constraints,
     ex_video.

   * Added skater demo ported from Allegro 4.4.




Local Variables:
coding: utf-8
End:
