Releases: liballeg/allegro5
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.zz
as well as the
same but withjoystick_version
if 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_LEVEL
environment variable. This makes it easier to
enable logging on release builds. (SiegeLord) -
Add
al_ref_info
to convertALLEGRO_USTR_INFO
toALLEGRO_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_DELETE
and 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_WINDOW
not 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_TEXTURE
flag
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_STREAM
s 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_playing
return false beforeal_start_video
(SiegeLord) -
Make
ALLEGRO_VIDEO
work 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_attached
andal_get_voice_has_attached
(TRDario) -
Fix
al_set_audio_stream_playmode
return 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_leds
andal_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_borders
for Windows and Linux (Elias Pschernig + SiegeLord)
TTF:
- Fixes for
al_get_glyph_width
,al_get_glyph_al_get_glyph
when 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_name
return 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 = false
inallegro5.cfg
and then listen and respect
ALLEGRO_EVENT_DISPLAY_HALT/RESUME_DRAWING
events (#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/OUT
events (#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_ALTGR
modifier (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_FOLDER
is 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_state
crash (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_slice
mode 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_MINIMAL
suffix 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_namespace
inLINK_FLAGS
(danielnachun). -
Make
al_get/set_window_position
work 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_PeepEvents
for event handling, to improve performance. -
Improve joysticks support (Issue #1326) (Connor Clark).
-
Fix mouse axis setter (Connor Clark).
Linux:
- Use
clock_gettime
withCLOCK_MONOTONIC
instead 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
.tga
from 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_threads
crash under D3D. -
Add
ex_audio_devices
. -
Update
ex_palette
to 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_UP
andALLEGRO_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_INDEX
flag for bitmaps. -
Add
ALLEGRO_OPENGL_CORE_PROFILE
display 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_DEVICECHANGE
rather 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_JOYSTICKS
to 32 andDEVICE_BUFFER_SIZE
to 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_ribbon
whennum_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 -
[email protected]. -
Add Emscripten-powered examples to https://liballeg.org/examples_demos.html.
Examples:
-
ex_audio_simple
now displays instructions and supports bidirectional looping. -
Add default files to some audio examples.