Releases: liballeg/allegro5
5.2.11.1
5.2.11
Changes from 5.2.10.1 to 5.2.11 (November 2025)
Core
- Remove tabs and trailing spaces from source files (SiegeLord)
- Disable DebugOutputString on windows for logs by default (#1548) (SiegeLord)
- Fixed initialization of the resize event thread when calling
al_initafteral_uninstall_system(Kevin Wellwood) - Add "gamepad" support. This uses the community sourced SDL controller database. See ex_joystick_events for how to use this. (SiegeLord)
- Fix assorted issues with joystick hotplugging (SiegeLord)
- Add locks to avoid stale clipboard text (#1629) (Steve Fosdick)
- Reset the
GL_UNPACK_ROW_LENGTHafter unlocking certain bitmaps (SiegeLord,
Alan_Roxdale)
MacOS
- Use a faster method of scrolling to the bottom for MacOS text logs (#1610)
(SiegeLord) - Fix static linking (SiegeLord)
- Fix
al_set_mouse_xyon high resolution MacOS displays (SiegeLord) - Add partial support for OpenGL 3 displays. Bitmap drawing works, but primitives addon does not (j-w-c-b)
- Fix Segfault with Japanese keyboards (John Wood)
- Remove the native MacOS image loader, it had too many limitations (#1531) (SiegeLord)
Windows
- Handle DSERR_NODRIVER when reporting error in DirectSound driver (Andrew
Kravchuk) - Don't set WM_EX_TOPMOST for Direct3D FULLSCREEN windows (SiegeLord)
- Make Python binding work on Windows (Mikhail Titov)
Linux
- Fixed memory leak (Helodity)
- Fix crash when using the LC_CTYPE=eo.ut8 on X11 (#1651) (SiegeLord)
- Improve behavior when the display is disconnected (SiegeLord)
TTF addon
- Add color emoji support (Elias Pschernig)
Audio addon
- Fix a race between detaching instances from mixers and reading from them (SiegeLord)
Image addon
- Fix loading of padded PCX files (Mikhail Titov)
Video addon
- Add
al_open_video_f(jarroddavis68)
Primitives addon
- Move the most of the implementation into the core. This should be feature-neutral, but will enable future unification (#1003) (SiegeLord)
- Populate the UV coordinates for the vertices in many high-level primitives which enables some shader effects. See
ex_primexample for how this looks. (Helodity, SiegeLord)
Documentation
- Document
ALLEGRO_MOUSE_STATE.display(j-w-c-b) - Remove GETTER/SETTER from generated docs (j-w-c-b)
- Fix the the return value of
al_insert_menu_item(#1648) (SiegeLord)
Build system
- CMake improvements (Cristian Le)
- Export build tree with CMake to ease debugging (Mikhail Titov)
- Allow using SIMD instruction sets besides SSE (Mikhail Titov)
- Check vcpkg locations for dependencies (Mikhail Titov)
- Assorted CI improvements (SiegeLord, Mikhail Titov)
Examples
ex_joystick_hotpluggingis now more exciting (SiegeLord)
5.2.10.1
Note: The Windows binaries are intentionally the same as 5.2.10, as the changes only affect the source packages and MacOS.
Changes from 5.2.10 to 5.2.10.1 (December 2024)
MacOS
- Fix some corner cases in the new keyboard input system (SiegeLord)
- Fix version-based conditional compilation (Rhys-T)
Packaging
- Fix the package script to check for makeinfo, this prevents malformed source
achives from being created (as happened in 5.2.10) (SiegeLord)
5.2.10.0
Changes from 5.2.9.1 to 5.2.10 (November 2024)
Core
-
Add a compatibility config option,
keyboard_version=xx.yy.zzas well as the
same but withjoystick_versionif it is necessary to restore the old
behavior. This enables us to fix bugs with the input system, while providing
a mechanism to restore old buggy behavior temporarily (SiegeLord) -
Assorted timer improvements (Connor Clark)
-
Optimize inverse transformations. (SiegeLord)
-
Fix the handling of the new window title in
ALLEGRO_STATE(#1562)
(Alexandre Martins) -
Add
ALLEGRO_TRACE_LEVELenvironment variable. This makes it easier to
enable logging on release builds. (SiegeLord) -
Add
al_ref_infoto convertALLEGRO_USTR_INFOtoALLEGRO_USTR
(SiegeLord) -
Add
al_get_display_adapter(#1578) (SiegeLord) -
Add
al_get_render_state(Mark Oates)
MacOS
-
Don't use usage numbers as joystick button ids on OSX. (#1527) (SiegeLord)
-
Enable deadkey handling on MacOS (SiegeLord).
-
Map numpad delete to
ALLEGRO_KEY_PAD_DELETEand the weird ISO section key
toALLEGRO_KEY_BACKSLASH2(#1523) (SiegeLord)
Windows
-
Fix key events when using modifiers (#1430, #1504) (SiegeLord)
-
Fix undesirable deadzone when using analog joysticks (geecab)
-
Use the correct monitor when restoring fullscreen window when using OpenGL
(SiegeLord) -
Fix
ALLEGRO_FULLSCREEN_WINDOWnot working in certain conditions (SiegeLord)
Linux
-
Fix joystick initialization when overriding IO (#1572) (Alexandre Martins)
-
Make sure the bitmap for the initial icon is created as a memory bitmap
(#1571) (SiegeLord)
Android
-
Add more joystick buttons (#1482) (Alexandre Martins)
-
Fix corruption of bitmaps created with the
ALLEGRO_NO_PRESERVE_TEXTUREflag
when the application loses focus (#1492) (Alexandre Martins) -
Fix a concurrency issue related to
al_acknowledge_drawing_halt(Alexandre Martins) -
Add
al_android_open_fd(Alexandre Martins) -
Assorted improvements (Alexandre Martins)
iPhone:
- Fix build (Todd Cope)
Audio addon:
- Add MacOS support for listing output devices (Aldrik Ramaekers)
Acodec addon:
-
Prefill
ALLEGRO_AUDIO_STREAMs with data (SiegeLord) -
Add OpenMPT support. This is meant to replace DUMB, as DUMB is not
maintained. You can use the compatibility config optionacodec_prefer_dumb
to temporarily make DUMB the preferred handler for module files, if Allegro
is built with both DUMB and OpenMPT. Some modules may sound different under
OpenMPT. (SiegeLord)
Native dialog addon:
-
Add Android support (Alexandre Martins)
-
Auto-scroll the native textlog on MacOS (SiegeLord)
-
Fix monospace fonts on MacOS in the native textlog (SiegeLord)
-
Improve the patterns arg in
al_create_native_file_dialog(SiegeLord)- Support for multiple pattern sets (Windows/Linux)
- Supports for custom pattern set descriptions (Windows/Linux)
- Support for MIME types on MacOS
- Remove the implicit catch-all pattern on Windows (the "All files
."), it was inconsistent with other platforms. - Make MacOS do a better job at extracting the file extension
- Improve documentation overall
Video addon:
-
Make
al_is_video_playingreturn false beforeal_start_video(SiegeLord) -
Make
ALLEGRO_VIDEOwork with the automatic destruction system (SiegeLord)
Build system:
-
Reproducible build support (Andreas Rönnquist)
-
Fix multiarch install location (Andreas Rönnquist)
Examples:
-
Remove VLAs to improve Visual Studio support (Jeff Linahan, SiegeLord)
-
Fix opaque black background pixels in explosion sprites in the Shooter demo
(tstoeter)
5.2.9.1
5.2.9.0
Android:
-
Fix back button/gesture (alemart)
-
Implement
al_get_joystick_name(alemart) -
Great many assorted fixes (alemart)
Audio:
-
Add
al_get_mixer_has_attachedandal_get_voice_has_attached(TRDario) -
Fix
al_set_audio_stream_playmodereturn value and interaction with looping audio streams (Cody Licorish) -
Send PulseAudio silence if the attached mixer is stopped (SiegeLord)
Acodec:
-
voc memory leak fixes (TRDario)
-
Fix internal looping for mod files (SiegeLord)
Build system:
-
Add a target for copying examples, letting you build the demo without the examples (SiegeLord).
-
Improve CMake scripts (Gilad Reich)
-
Support the newer WebP library which is split into two (SiegeLord).
Core:
-
Add
al_can_set_keyboard_ledsandal_can_get_mouse_cursor_position
(TRDario) -
Allow outputting logs to STDOUT via ALLEGRO_TRACE environment variable
(SiegeLord) -
Add
al_get_current_shader(TRDario) -
Add
al_get_window_bordersfor Windows and Linux (Elias Pschernig + SiegeLord)
TTF:
- Fixes for
al_get_glyph_width,al_get_glyph_al_get_glyphwhen interacting with zero-width/zero-height glyphs (Connor Clark)
MacOS:
-
Don't close submenus on click (Todd Cope)
-
Fix disabling menu items (Todd Cope)
-
Add support for filtering by file extensions in the native file dialog (Todd
Cope) -
Textlog improvements (Connor Clark)
-
Fix improper display boundary for cursors (Connor Clark)
-
Make
al_get_joystick_namereturn the name of the joystick (Todd Cope) -
Fix off-by-one error for hat switches (Connor Clark)
-
Add a workaround for live resizing not working. Enable it via
[osx] allow_live_resize = falseinallegro5.cfgand then listen and respect
ALLEGRO_EVENT_DISPLAY_HALT/RESUME_DRAWINGevents (#1350) (SiegeLord + Elias Pschernig)
Linux:
-
Fix fullscreen window creation (#1349) (SiegeLord)
-
Fix some X11 + fullscreen window interaction (#1358) (SiegeLord)
-
Allow setting higher quality icons (SiegeLord + Trent Gamblin)
-
Improve
DISPLAY_SWITCH_IN/OUTevents (#1390, #1367) (SiegeLord) -
Work on improving Window positioning (Elias Pschernig)
-
Fix creating an initially maximized window (SiegeLord)
-
Enable toggling and setting maximized/frameless modes when menus are used
(SiegeLord) -
Fix popup menu (#1280) (SiegeLord)
-
Make AltGr (right Alt) toggle the
ALLEGRO_KEYMOD_ALTGRmodifier (SiegeLord)
Windows:
-
Fix drawable area mouse hiding state being out of sync (#1388) (SiegeLord)
-
Fix some oddities with Shift + Alt on Windows (#1348)
-
Work on improving Window positioning (SiegeLord)
-
Make native file dialog respect the initial directory when
ALLEGRO_FILECHOOSER_FOLDERis set (José Carlos HR) -
Fix the client area changing size on Windows when restoring a window (#1433)
(SiegeLord) -
Fix crashes with menus and Windows (#1381) (SiegeLord)
-
Fix keyboard modifier keys + char events (#1504, #1430) (SiegeLord)
SDL:
-
Fix touch ids (Sebastian Krzyszkowiak)
-
Fix
al_get_mouse_statecrash (Elias Pschernig) -
Implement
al_create_mouse_cursor(Connor Clark) -
Implement
al_get_monitor_dpi(Elias Pschernig)
Documentation:
- Assorted clarifications and improvements (various)
5.2.8.0
Changes from 5.2.7 to 5.2.8 (June 2022)
The main developers this time were: SiegeLord, Elias Pschernig,
Sebastian Krzyszkowiak, Julian Smythe.
Build system:
-
Add a configuration summary. Currently this mostly reports the addon features.
-
Fix build failure with sanitizers enabled.
-
Remove
-Wdeclaration-after-statement, MSVC had support for this for a while
now. -
Bump minimum CMake version to 3.0.
Core:
-
Add
al_fopen_slicemode to prevent seek on close (Karl Robillard). -
Allow configuring bitmap wrapping via
al_set_new_bitmap_wrap.
Graphics:
-
Reject creating bitmaps with negative width or height (Peter Hull).
-
Add a minimal shader implementation for GLSL. Minimal shader supports fewer
features, but is faster (Issue #1120). Select it via the_MINIMALsuffix to
the shader platforms.
Emscripten:
-
Improve emscripten instructions for building demos (Connor Clark).
-
Fix usage of SDL_Init for emscripten (Issue #1322) (Connor Clark).
OSX:
-
Fix a few thread-related crashes.
-
Don't use
-flat_namespaceinLINK_FLAGS(danielnachun). -
Make
al_get/set_window_positionwork on Retina displays
Windows:
-
Fix flickering when creating multisampling displays under DirectX.
-
Fix multisampling selection on Windows with OpenGL.
-
Fixed a bug which freezes and crashes the window in Windows OpenGL
(HerrNamenlos123). -
Allow specifying shader model 3_0 for HLSL shaders (Issue #1154).
SDL:
-
Ignore touch events from indirect touch devices.
-
Use
SDL_PeepEventsfor event handling, to improve performance. -
Improve joysticks support (Issue #1326) (Connor Clark).
-
Fix mouse axis setter (Connor Clark).
Linux:
- Use
clock_gettimewithCLOCK_MONOTONICinstead ofgettimeofday
(check-switch-26).
Android:
- Update Gradle to 5.0.
Audio addon:
-
Add
ALLEGRO_PLAYMODE_LOOP_ONCE(Issue #1309). -
Add
al_play_audio_stream, a 'simple' API endpoint for audio stream playback.
Acodec addon:
-
Fix Vorbis/Opus support under MSVC + Clang.
-
Add audio identification /
al_identify_sample. -
Use regular seeking for Ogg streams. The old one did cross-fades, causing
unexpected behavior in certain cases (Issue #1310). -
Enable looping for modules.
Audio addon:
- Allow identifying and listing audio devices via new API:
al_get_num_audio_output_devices,al_get_audio_output_device,
al_get_audio_device_name(Aldrik Ramaekers).
Color addon:
- Add linear and oklab color spaces to the color addon.
Font addon:
- Fix declaration of al_draw_multiline_textf() as a PRINTFUNC (check-switch-26).
Image addon:
-
Prevent RLE data in corrupt
.tgafrom overflowing the buffer (Peter Hull). -
PCX loader validation (Peter Hull).
-
Windows BMP - Make more robust to crashing (Peter Hull).
-
Fix DDS compressed image loading when image dimensions are not multiple of
block size (check-switch-26).
Native Dialog addon:
- Fix native dialogs addon compatibility with older GTK+ versions
(Andrew Kravchuk).
TTF addon:
- Fixed TTF rendering when using transforms (check-switch-26).
PhysFS addon:
- Fix incorrect error handling in
PHYSFS_close(j-w-c-b).
Video addon:
-
Allow identifying video files via a magic number, exposed via
al_identify_video(Issue #1262). -
Fix
al_is_video_addon_initalized(Jayson).
Documentation:
-
Document some reasonable defaults for
al_create_mixer/al_create_voice. -
Refactor the audio docs to highlight the simple API better.
Misc:
- Fix a few data race issues, in an effort to fix ex_threads crashes on Linux.
Examples:
-
Allow exiting from
ex_audio_timer(BillKek) -
Add the Allegro 4 "shooter" demo.
-
Fix
ex_threadscrash under D3D. -
Add
ex_audio_devices. -
Update
ex_paletteto build with Emscripten (Issue #1318). -
Improve
ex_stream_seek. -
Improve
ex_windows.
5.2.7.0
Changes from 5.2.6 to 5.2.7 (March 2021)
The main developers this time were: SiegeLord, Peter Hull, Elias Pschernig,
Aldrik Ramaekers, Andreas Rönnquist.
Build system:
-
Allow generating projects with a suffix (lorry-lee).
-
Fix build under Clang-CL in Visual Studio.
Core:
-
Avoid some undefined behavior errors.
-
Return key modifiers in
ALLEGRO_EVENT_KEY_UPandALLEGRO_EVENT_KEY_DOWN. -
Allow calling
al_map_*color functions before Allegro is initialized. -
Allow minimum bitmap size to be something other than 16 on non-Android
platforms (controlled viaallegro5.cfg). -
Add
al_get_monitor_refresh_rate(only implemented on Windows for now).
Graphics:
-
Fix
ALLEGRO_KEEP_INDEXflag for bitmaps. -
Add
ALLEGRO_OPENGL_CORE_PROFILEdisplay flag.
Emscripten:
- The experimental Emscripten support (via the SDL backend) is now documented
inREADME_sdl.txt.
OSX:
-
Move more Cocoa operations to the main thread.
-
Explicitly link CoreVideo to fix the static build.
Windows:
-
Issue #1125: Speed up OpenGL extension detection (Tobias Scheuer).
-
Use Unicode APIs when enumerating joysticks.
-
Use
WM_DEVICECHANGErather than polling to detect joystick hotlugging,
reducing input drops and lags (Todd Cope). -
Fix joystick polling period.
-
Restore WinXP compatibility by using slightly older API when loading shared
libraries (Julian Smythe). -
Fix build with HLSL disabled (Julian Smythe).
-
Raise DirectInput
MAX_JOYSTICKSto 32 andDEVICE_BUFFER_SIZEto 128.
SDL:
- Issue #1224: Fix bug in SDL voice driver.
Audio addon:
- Allows playing sounds in reverse by specifying a negative speed.
Acodec addon:
- Fix edge-case looping in Ogg Vorbis stream (Cody Licorish)
Audio addon:
- Use more sensible values for PulseAudio's playback buffer, potentially
resolving some crashes and high CPU usage.
Native Dialog Addon:
- Migrate from GTK2 to GTK3. Sadly, we lose menu icons as GTK3 dropped support
for them.
TTF addon:
-
Allow initializing TTF addon before the Font addon.
-
Shut-down the TTF addon automatically in
al_uninstall_system.
PhysFS addon:
-
Fix handling of native path separators.
-
Stop using deprecated PhysFS API.
Primitives addon:
-
Fix segfault in
al_draw_ribbonwhennum_segments > 128(Rodolfo Borges). -
Issue 1215: Correctly handle small scales when determining subdivision level
for high level primitives (Robin Heydon).
Documentation:
-
Fix LaTeX errors in the generation of the reference manual PDF.
-
Add links to examples into the reference manual.
-
Allow pressing 'S' to focus the search bar in the docs.
-
Assorted documentation improvements.
Misc:
-
Add a security policy and an associated private security mailing list -
allegro-security@lists.liballeg.org. -
Add Emscripten-powered examples to https://liballeg.org/examples_demos.html.
Examples:
-
ex_audio_simplenow displays instructions and supports bidirectional looping. -
Add default files to some audio examples.