% 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 git repository.


Changes from 5.1.13 to 5.1.13.1 (February 2016)
============================================

The main developers this time were: SiegeLord.

Image addon:

  - Fix regression in bitmap loading when compiled under MSVC.


Changes from 5.1.12 to 5.1.13 (January 2016)
============================================

The main developers this time were: Julian Smythe, Elias Pschernig and
Peter Hull.

Graphics:

  - Add `al_get_opengl_program_object` (SiegeLord).

Input:

  - Fix spurious triggering of the mouse grab key when it wasn't otherwise set
    (SiegeLord).

Android port:

  - Avoid multiple HALT/RESUME events on Android (Max Savenkov).

  - Implement `al_get_monitor_info` for Android (Reuben Bell).

  - Fix Android crash on file access.

  - Implement ALLEGRO_FULLSCREEN_WINDOW on Android.

  - Fix crash if display is destroyed while the app is switched out.

  - Add support for x86_64 Android.

  - Add `al_android_set_apk_fs_interface`.

Linux port:

  - Allow using OpenGL ES in X11.

  - Fix the initial display size not being correct sometimes (SiegeLord).

  - Fix a race condition in the XInput joystick driver (Trent Gamblin).

OSX port:

  - Fix various memory leaks.

  - Fix `al_set_window_title`.

  - Fix a lot of decrepid and deprecated code.

  - Fix single buffer flip display (SiegeLord).

Windows port:

  - Fix Windows UNC path handling.

  - Fix clipboard nul-termination issues (Trent Gamblin).

  - Set the window title immediately upon window creation (SiegeLord).

Build system:

  - Define CMAKE_FIND_ROOT_PATH for i686-w64-mingw32 cross compiler
    (Martijn van Iersel).

  - Allow building with older CMakes again (SiegeLord).

  - Do not catche compile tests' failure (Bruce Pascoe).

  - Add a way to statically link the runtime with MinGW (SiegeLord).

  - Don't link the MSVC C runtime at all when requesting a static runtime and
    building a static library (SiegeLord).

Documentation:

  - Add links to the source code of the definitions of the most API entries.

  - Fix sidebar generation with modern Pandoc (Boris Carvajal).

Python:

  - Fix ordering issue for HAPTIC* structs.

  - Fix missing ALLEGRO_PRIM_ATTR_NUM.

Other:

  - Add a 'none' debug level to turn off logging entirely in debug builds
    (SiegeLord).

  - Reconfigure logging after the configuration files are loaded (SiegeLord).

  - Fix al_set_new_window_title() off-by-1 (Bruce Pascoe).

  - Don't call al_get_time() before system is installed (SiegeLord).

Audio addon:

  - Add `al_get_default_voice` and `al_set_default_voice`.

  - Flush the pulse audio stream rather than draining it, fixing some audio
    breaks (SiegeLord).

  - Fill audio stream fragments with silence in the audio addon rather than in
    the acodec addon, fixing some garbage output (SiegeLord).

  - Fix possible deadlock when destroying audio streams (SiegeLord).

Acodec addon:

  - Don't read past the audio chunk's end when streaming wav files (SiegeLord).

  - Turn off allegro_acodec dynamic loading by default, fixing a common footgun (Bruce Pascoe).

Image addon:

  - An enormous amount of work supporting reading of esoteric (and not) BMP
    format variants (palletted, GIMP-style, etc). New tests were added using the
    manual bmp suites.

Native dialog addon:

  - Update code to work with modern OSX versions.

  - Clean up menu handling on OSX.


Changes from 5.1.11 to 5.1.12 (September 2015)
==============================================

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

Graphics:

  - Add `al_set_blend_color` and `al_set_blender`, for additional blending modes.

  - Add `ALLEGRO_MAXIMIZED` display flag.

  - Add `al_reparent_bitmap`, `al_get_bitmap_x/y`. This allows changing the
    offset of a sub-bitmap.

  - Make `ALLEGRO_PIXEL_FORMAT_ANY_NO_ALPHA` actually pick a format without an
    alpha channel.

  - Add `al_premul_rgba` and `al_premul_rgba_f` convenience functions for
    dealing with pre-multiplied alpha blending mode.

Input:

  - Fix key auto-repeat on modern X11 versions.

  - Fix mis-detection of some joysticks on Android.

Android port:

  - Fix a crash when minimizing the app before Allegro has been initialized.

iOS port:

Linux port:

  - Add `al_get_x_window_id` (Robert MacGregor)

OSX port:

  - Fix some deprecated API usage.

Windows port:

  - Fix a dangling pointer issue resulting in crashes when resizing on Windows
    10.

Build system:

  - Build with multiple processors when using MSVC.

  - Make XInput2/touch input optional on Linux.

Documentation:

  - Various documentation improvements.

  - Fix some badly formatted flags (Rodolfo Lam).

Other:

   - Allow injecting Allegro events into event queses using
     `al_emit_user_event` (Ryan Roden-Corrent)

   - Add `al_set_new_window_title` and `al_get_new_window_title`.

   - Add `al_get_clipboard_text`, `al_set_clipboard_text` and
     `al_clipboard_has_text`.

   - Add `al_resume_timer` (Ryan Roden-Corrent).

   - Add `al_get_cpu_count` and `al_get_ram_size`.

Audio addon:

   - Add multiple voice support for the AQueue driver.

   - Fix a bug when `al_restore_default_mixer` was called multiple times.

Color addon:

Font addon:

  - Add `al_draw_glyph`, `al_get_glyph_width`, `al_get_glyph_dimensions` and
    `al_get_glyph_advance`. These functions are useful when additional control
    is needed when drawing text.

  - Add `al_set_fallback_font`.

Image addon:

  - Add `al_register_bitmap_identifier`, `al_identify_bitmap` and
    `al_identify_bitmap_f`. This allows detecting the bitmap type by looking at
    the initial few bytes in the file rather than relying solely on the
    extension.

  - Allow saving bitmaps with uppercase extensions (Daniel).

Native dialog addon:

  - Fix crashes when creating menus with sub-menus (Todd Cope).

Video addon:

  - Allow using both Ffmpeg and Theora backends simultaneously.

  - Reduce latency of `al_get_video_frame` for the Theora backend.

  - Make the Theora backend send the `ALLEGRO_VIDEO_FRAME_SHOW` events.

  - Rename `al_get_video_width/height` to `al_get_video_scaled_width/height`
    which now return the aspect corrected size of the video frame.

  - Rename `al_pause_video/al_is_video_paused` to `al_get/set_video_playing`.

  - Add `ALLEGRO_EVENT_VIDEO_FINISHED` event.

  - Remove `ALLEGRO_EVENT_VIDEO_FRAME_ALLOC` event.

  - Remove `al_get_video_aspect_ratio`.

Examples:

  - New examples: ex_reparent, ex_inject_events, ex_clipboard, ex_cpu,
    ex_timer_pause.


Changes from 5.1.10 to 5.1.11 (June 2015)
===========================================

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

Input:

  - Rename `al_get_haptic_active` to `al_is_haptic_active` for consistency.

  - Rename `al_get_num_haptic_effects` to `al_get_max_haptic_effects`.

  - Implement the missing `al_is_touch_input_haptic` function.

  - Move the loops parameter of `al_upload_and_play_haptic_effect` after the id
    to be consistent with `al_play_haptic_effect`.

OSX port:

  - Fix mouse warping in OSX.

  - Add retina display support to OSX.

Windows port:

  - Fix querying display modes before creating a display.

  - Make the Windows joystick implementation more fault tolerant.

  - Initialize display callbacks when creating faux fullscreen (Edgar Reynaldo).

Build system:

  - Fix the conditional compilation of sal.h (Edgar Reynaldo).

  - Don't look at WinSDK when we're not on MSVC, fixing MinGW builds when MSVC
    is installed as well.

  - Fix the static FLAC compile tests on Android and Windows.

  - Make the OSX frameworks install in the proper location again.

  - Add `WANT_STATIC_RUNTIME` CMake build option (currently MSVC-only).

Documentation:

  - Various documentation improvements.

Other:

  - Return a valid configuration from `al_get_system_config` before Allegro is
    installed. This allows you to override the various configuration options
    without using an on-disk `allegro5.cfg`.

  - Compile in the logging support in release modes by default. Now logging can
    be turned on in release builds without recompiling the program by editing
    the system configuration.

  - Detect file-overruns when saving configuration files (Bruce Pascoe).

Color addon:

  - When converting from YUV to RGB, clamp the returned values between 0 and 1.

Video addon:

  - Use an enum in place of magic numbers for `al_get_video_position` constants.



Changes from 5.1.9 to 5.1.10 (May 2015)
===========================================

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

Input:

  - Add `al_set_mouse_wheel_precision` and `al_get_mouse_wheel_precision`.

Graphics:

  - Added `al_transform_coordinates_3d`.

  - Added `al_build_camera_transform`.

  - Make the projection transform a bitmap local state. This removes
	`al_set_projection_transform` and `al_get_projection_transform`, and replaces
	them with `al_use_projection_transform` and
	`al_get_current_projection_transform` with similar semantics to the regular
	transforms.

OSX port:

  - Improved joystick axis layouts on Mac OS X, and added support for some
    dpards (Max Savenkov).

X11 port:

  - Fix some memory leaks (ElectricSolstice).

  - Make the XInput2 check more accurate (we require a specific version).

Windows port:

  - Remove taskbar hiding on Windows.

  - Fix high precision mice on Windows.

  - Fix some D3D conflicts with the OpenGL backend.

  - Remove the prohibition of building OpenGL-only DLLs.

  - Added LRESULT argument to WindowProc callback, fixing
    `al_win_add_window_callback` for some event types (Aaron Bolyard).

Android port:

  - Fix some memory leaks.

  - Make it possible to specify the Android target during building.

iOS port:

  - Add an XCode project to help build Allegro when CMake support fails.

  - Restore the CMake support.

  - Makes the examples run on the iOS simulator out of the box.

  - Various small fixes (Trent Gamblin, jmasterx).

  - Remove `al_iphone_get_last_shake_time` and a`l_iphone_get_battery_level`.

  - Hack around iOS not creating mipmaps (jmasterx).

  - If the supported orientation is `ALLEGRO_DISPLAY_ORIENTATION_UNKNOWN`,
    default to supporting all orientations.

  - Get Cosmic Protector to compile again.

Build system:

  - Revamp the detection of DirectX dependencies. Now it should work out of the
    box for at least MSVC and mingw-w64.

  - Fix GDIPlus finding script (pkrcel).

  - Bump the minimum version of CMake to 2.8.5.

Documentation:

  - Many documentation improvements, as always (special thanks to Polybios).

  - Make the PDF output prettier with better fonts and an up-to-date version
    number.

  - Make the Javascript search for online documentation support partial matches.

  - Make [section] links work in HTML.

  - Allow the docs to have more than 1024 entries (Allegro is getting huge!).

Other:

  - Make the test driver a little more resistant to failure.

  - Various fixes to the experimental SDL backend.

  - Update the CONTRIBUTORS.txt.

Audio addon:

  - Fix deadlock when destroying an audio stream soon after its creation.

  - Add VOC file support (pkrcel).

  - Disable processing of the XM zero-speed event.

  - Disable processing of module loop points if `ALLEGRO_PLAYMODE_ONCE` is set.

  - Fix a buffer overflow bug.

Image addon:

  - Fix loading of indexed + transparent PNGs with the libpng backend.

Dialog addon:

  - Fix some style issues with the Windows file dialog.

  - Fix a bug with multiple filenames with the Windows file dialog.

  - Change the semantics of the patterns in `al_create_native_file_dialog` to
    support future expansion of the patterns to support both AND and OR style
    filtering.

  - Make the GTK file selection dialog look like it's from 2004 (as opposed to
    mid-1990s).

TTF addon:

  - Fix some warnings.

  - Make the page size dynamic, allowing for fonts with up to 8192x8192 glyphs
    by default.

Examples:

  - New examples: ex_camera, ex_projection2.



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).

  - Fix for `al_get_standard_path` with Unicode (vkensou).

Input:

  - Add X11 touch driver (Ryan Gumbs).

  - Emulate mouse pressure for backends that don't support pressure.

  - Added Windows haptics driver, XInput joystick driver (Beoran).

  - Fix OSX joystick deinitialization.

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 thinks 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.

Android port:

  - Bump minimum Android API level from 10 to 12 (aka version 3.1).

  - Add controller support to the Android port. An accelerometer 'joystick'
	  is still the first joystick. Supports two analog sticks and 10 buttons (A B
	  X Y L1 R1 DPAD_L DPAD_R DPAD_U DPAD_D). Supports hotplugging and
	  theoretically multiple joysticks (needs testing).

  - Set correct orientation at startup on Android (thanks to Aikei_c).

Build system:

  - Various CMake fixes.

Other:

  - Add Travis and AppVeyor continuous integration support.

  - Fix a lot of memory leaks.

  - Many documentation improvements.

Audio addon:

  - Disallow attaching a mixer to itself.

  - Fix uni- and bi-directional looping of zero-length samples.

  - Fix/avoid all sound examples freezing on OSX with the aqueue driver.

Image addon:

  - Add functionality to load Direct Draw Surface files (.dds). Only
    compressed pixel formats are supported (DXT1, DXT3 and DXT5).

Dialog addon:

  - Fix native file dialog default paths on Windows (Edgar Reynaldo).

  - Fix unintended behaviour in `al_set_menu_item_flags` (Malcolm Harrow).

  - Fix some bugs with native menus in OSX.

Video addon:

  - Fix for now undefined AVCODEC_MAX_AUDIO_FRAME_SIZE (Dennis Busch).

TTF addon:

  - Fix a crashing bug in the TTF addon.

  - Make `al_load_ttf_font_stretch` return NULL if invalid width/height are
    passed.

Font addon:

  - Add multi line text output for the font addon (`al_draw_multiline_text`,
    `al_draw_multiline_textf` and `al_draw_multiline_ustr`).

Primitives addon:

  - Fix some sharp-angle polyline drawing bugs.

Examples:

  - New examples: ex_compressed, ex_font_multiline.

  - ex_dir: demonstrate `al_for_each_fs_entry`.

  - ex_haptic2: demonstrate hotplugging.



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.



<!-- vi: set sts=3 sw=3 et: -->
