These lists serve as summaries; the full histories are in the git repository.
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
and
ALLEGRO_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 via
allegro5.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:
README_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 and
DEVICE_BUFFER_SIZE
to 128.
SDL:
Audio addon:
Acodec addon:
Audio addon:
Native Dialog Addon:
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
when
num_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_simple
now displays instructions and
supports bidirectional looping.
Add default files to some audio examples.
The main developers this time were: SiegeLord, Peter Hull, Karthik Kumar Viswanathan, Elias Pschernig, Sebastian Krzyszkowiak, Doug Thompson, PmProg, RmBeer.
Core:
Fix timestamps being clamped to ints on touch inputs with X11.
Fix al_utf8_width argument type mismatch on platforms where
sizeof(int) != 4
.
Fix building for GNU/Linux without GNU extensions enabled
Some refactoring to simplify adding new drivers.
Graphics:
Fix for OpenGL version selection and reporting on Windows and X (Edgar Reynaldo).
Report OpenGL version in display options on Android, iOS and Raspberry Pi.
Fix creation of the bitmap depth buffer for non-square bitmaps (Kevin Wellwood).
Fix ALLEGRO_ALPHA_TEST_VALUE
not being interpreted
correctly.
Fix reported bitshifts for ARGB_4444
and
RGBA_4444
pixel formats.
Fix alpha test with the GLSL version.
Android:
Do not build Android examples outside of Android.
Use the cmake toolchain provided by the Android NDK.
Use FLAG_KEEP_SCREEN_ON instead of a wakelock for screensaver inhibition.
Use DisplayListener to listen to orientation changes.
Implement ALLEGRO_FRAMELESS
on Android. This hides
the navigation buttons and the bar on top.
Linux:
al_inhibit_screensaver
function.OSX:
Ensure system calls happen on the main thread.
Make things work on Catalina.
Hurd:
Windows:
Implement Windows version check using non-deprecated functions.
Abstract UNICODE vs ANSI string handling, switch to using UNICODE by default.
Enable debug window for DEBUGMODE
on
Windows.
SDL:
Fix requesting GLES profile on GL Allegro.
Add audio recorder implementation.
Don’t link with dl, it’s unnecessary.
Addons:
al_is_*_initialized
functions
(Mark Oates).Acodec addon:
Audio addon:
Allow calling al_destroy_audio_recorder
on
NULL.
Fix some stream garbage audio issues for high playback speeds.
Image addon:
Add support for FreeImage library.
Always prefer non-system image loaders.
Python wrapper:
Misc:
Add an .editorconfig
file.
Convert our internal Python scripts to Python 3.
Examples:
ex_draw_bitmap
- Add more options.The main developers this time were: Sebastian Krzyszkowiak, SiegeLord, Elias Pschernig, Bruce Pascoe, Aldrik Ramaekers, Firat Salgur.
Core:
Try to identify bitmap format for unknown extensions.
Add some missing OpenGL 4.3 functions.
Add al_create_thread_with_stacksize
to create
threads with a custom stack size. (Aldrik Ramaekers)
Add al_get_system_id
function, letting you
disambiguate platforms at runtime.
Graphics:
Add al_get_monitor_dpi
to query the DPI of a
monitor.
Add new API for making blender a bitmap-local state (like
transformations), which can simplify some code. See
al_set_bitmap_blender
and the related APIs. Also see the
ex_blend_target
example.
Added al_transpose_transform
. This is useful for
rotation transformations.
Rework internal GLES support for better portability.
Don’t force POT bitmaps on GLES.
Fix repeated bitmap locking on OpenGL.
Android:
Various documentation and other improvements (Christian Mauduit).
Fix OpenGL version reporting after display creation.
iOS:
Linux:
Improve linux joystick detections.
Fix a number of memory leaks/crashes in the audio addon when using pulseaudio/alsa. (Julian Smythe)
Fix compilation with Mesa 18.2.5 and later.
Fix OpenGL version reporting after display creation (Edgar Reynaldo).
Fix requesting specific OpenGL versions via display options (Edgar Reynaldo).
OSX:
Make al_get_monitor_info
return the correct values
for Retina displays.
Fix vsync on OSX 10.14+.
RaspberryPi:
Windows:
Fix toggling of menu checkboxes by id.
Fix al_draw_indexed_primitive
while using
Direct3D.
Fix crash when passing NULL
display to
al_show_native_file_dialog
while using
ALLEGRO_FILECHOOSER_FOLDER
.
Fix OpenGL version reporting after display creation (Edgar Reynaldo).
Fix requesting specific OpenGL versions via display options (Edgar Reynaldo).
SDL:
Addons:
Better logging when failing to load a resource.
Fix a memory leak when destroying a mixer with attached streams.
Fix a memory leak in the audio destroying a mixer with attached streams.
Acodec addon:
Audio addon:
TTF addon:
Documentation:
Source links now point to the correct commit on GitHub.
General improvements and clarifications.
Examples:
ex_blend_target
.The main developers this time were: Sebastian Krzyszkowiak, Elias Pschernig, SiegeLord
Core:
Fix errors when reading/writing 0 byte buffers (Bruce Pascoe).
Re-initialize TLS when Allegro is installed (Issue #865).
Add al_transform_coordinates_4d
.
Don’t initialize the trace mutex multiple times (Issue #874).
Fix 3D (non-projection) transforms with
al_hold_bitmap_drawing
.
Raspberry Pi port:
Android port:
Remove limit on the working directory length.
Fix ALLEGRO_MAXIMIZED
flag.
Fix build with older Android NDKs.
Remove glClear
hack for Android 2.1.
Linux port:
OSX port:
Audio addon:
Fix ALSA lag.
Add an option to use the desktop window when initializing DirectSound (Issue #877).
Font addon:
Native dialog addon:
Resize the display on Windows when hiding/showing the menu (Issue #860).
Detect when al_popup_menu
fails to actually work
under GTK (Issue #808).
Don’t clear the top-level menu when destroying the popup menu.
Build system:
Don’t link in libm on MSVC for DUMB (Issue #847).
Don’t use the LOCATION property (Issue #847).
Don’t use SYSTEM for DirectX includes.
Add hints for mingw-w64 path locations for DirectX includes/libs.
Python binding:
Lua binding:
Documentation:
Examples:
ex_camera
.The main developers this time were: Elias Pschernig, SiegeLord, Sebastian Krzyszkowiak, Vitaliy V. Tokarev, Simon Naarmann, Bruno Félix Rezende Ribeiro, Trent Gamblin).
Core:
Add al_path_ustr
(Bruce Pascoe).
Handle NULL sections more gracefully with the config API.
Add missing glStencilMaskSeparate prototype
(Aaron
Bolyard).
Add al_clear_keyboard_state
.
Don’t add blank lines before config sections when writing them out.
Fix fs_stdio_read_directory
appending an extra
slash.
Fix al_set_window_constraints
when the flag
ALLEGRO_MAXIMIZED is set.
Fix al_set_clipping_rectangle
when out-of-bounds
(Bruce Pascoe).
Enable blocked locking of S3TC formats unconditionally.
Raspberry Pi port:
Android port:
Replace the old build system that used deprecated tools with a new Gradle-based system.
Work around crashes on some Androids when an FBO is bound during
egl_SwapBuffers
.
Fix LocalRef leak when opening files using APK interface.
Remove -Wno-psabi switches from Toolchain-android.cmake.
Linux port:
Make three finger salute and LED toggle configurable.
Fix KEY_CHAR events under X11 with compose key enabled.
Fix clearing the ALLEGRO_MAXIMIZED
flag under
X11.
Add al_x_set_initial_icon
.
Free wm_hints in set_initial_icon
.
Read Allegro system config from ~/.allegro5rc on Unix.
Windows port:
Make bitmap contents persist again after device loss.
Add large file support for MSVC.
Only test cooperative lavel if device is known to be lost.
Don’t leak the D3DEffect
when attaching multiple
sources.
Fix al_get_monitor_info
(Tobias Scheuer).
OSX port:
Various fixes for OSX 10.6.
Fix some Bluetooth mice on OS X (Tom Bass).
Fixed deprecation warning when starting OSX console app (Tom Bass).
Fix OSX magic main with the LTO switch (Evert Glebbeek).
Audio addon:
Allow setting the buffer size for ALSA.
Don’t apply gain twice for sample instances and streams when pan
is not ALLEGRO_PAN_NONE
.
Disallow attaching mixers with different channel configurations.
Add al_set_sample_instance_channel_matrix
and
al_set_audio_stream_channel_matrix
.
Don’t free the extra pointer in DirectSound if voice fails to play for some reason.
Add al_lock_sample_id
and
al_unlock_sample_id
.
For OpenAL, detach from buffers before deleting.
Return true when seeking mod audio streams.
Acodec addon:
Free audio stream buffer in flac_stream_close.
Add DUMB 2.0 support.
Color addon:
Add XYZ, xyY, Lab and LCH color spaces.
Remove “purwablue” named color, add “rebeccablue”.
Native dialog addon:
Improve save dialogs under GTK driver.
Improved path behavior in GTK native file dialog ([bk]door.maus).
Enable ALLEGRO_FILECHOOSER_FOLDER
On Linux (Todd
Cope).
Use unique ids to identify menu items internally, fixing their event sources.
Make the native message box return 2 on Windows when cancel is pressed.
Image addon:
Set compression level to Z_DEFAULT_COMPRESSION
in
png saver by default.
Make PNG, JPEG compression level configurable.
Make PNG gamma value configurable.
Add WebP support with libwebp.
Video addon:
al_init_video_addon
after
al_shutdown_video_addon
was called.Build system:
Detect and link optional FreeType dependencies.
Add a CMake option to prefer static dependencies.
Fix SDL platform build.
Python binding:
Documentation:
Examples:
Fix various issues with ex_curl
.
Fix memory leak in ex_audio_simple
(Rm
Beer).
The main developers this time were: Trent Gamblin, SiegeLord, Elias Pschernig.
Core:
Don’t accumulate time in the timer while it is stopped.
Use dynamic OpenGL ES checks, so binaries produced on newer platforms don’t crash on older ones.
Destabilize the OpenGL extensions API (BREAKING CHANGE!).
Raspberry Pi port:
Add various optimizations.
Fix al_set_mouse_xy
under X.
Android port:
Fix buffer overrun and memory leak in the clipboard support.
Add WANT_GLES3 to disable some of the newer features on platforms where they aren’t supported.
Fix build in Android versions below 3.1.
Fix a crash when activity is destroyed/paused.
Allow building for android mips, arm64 and mips64.
Add al_android_get_jni_env
and
al_android_get_activity
utility functions.
Update manifest files for newer Android versions.
Windows port:
Hurd port:
OSX port:
Clear window to black when going in/out of fullscreen.
Fix window centering when going out of FULLSCREEN_WINDOW mode.
Fix OSX 10.12 build.
Allow 32 bit builds on OSX (MarcusCalhoun-Lopez).
Build system:
Fix issues with building on GCC6 on Windows.
Fix source directory littering while configuring the Android build.
Python binding:
Documentation:
Document the behavior of al_set_target_bitmap
with
respect to transformations (Edgar Reynaldo).
Fix typo in al_use_transform
docs (Ryan
Roden-Corrent).
Examples:
Add kerning to the al_get_glyph
example in
ex_ttf.
Various fixes in ex_camera (Erich Erstu).
The main developers this time were: Trent Gamblin, SiegeLord.
Core:
Enforce backwards compatibility in the version check, rather than erroneously allowing forwards compatiblity.
Temporarily remove new extensions in ALLEGRO_OGL_EXT_LIST as that broke ABI compatibility.
OSX port:
Windows port:
The main developers this time were: Elias Pschernig, Trent Gamblin, SiegeLord, Ryan Roden-Corrent, Boris Carvajal and Peter Hull.
Core:
Optimize bitmap holding a bit (Bruce Pascoe).
Add al_get/set_depth/samples
(OpenGL only for
now).
Optimize destruction performance when you have thousands of objects (e.g. sub-bitmaps).
Use low floating point precision for the OpenGL fragment shaders, which helps performance a lot on mobile platforms.
Don’t stop and join the timer thread when stopping the last timer (prevents unnecessary delay in this situation on some platforms).
Add al_backup_dirty_bitmap
and
al_backup_dirty_bitmaps
to more finely control when bitmap
context backup is performed.
Android port:
Fix Android app issues when woken up during sleep.
Specify the Android toolchain file on the command line now. ANDROID_NDK_TOOLCHAIN_ROOT now has to be specified in an environment variable.
OSX port:
Improve joystick enumeration (Todd Cope).
Make al_set_new_window_title
work
correctly.
Don’t send duplicate mouse move events.
Fix mouse warping behavior.
Exit fullscreen mode if ALLEGRO_FULLSCREEN_WINDOW is set when destroying a display (otherwise if you destroy and recreate display without terminating the program, a white window kicks around).
iOS port:
Make it compile again.
Don’t backup textures as it is unnecessary.
Update minimum iOS to version to 6.1.
Disable the native png loader in favor of libpng, as it is broken on Apple’s end.
Create library when creating the archive.
Windows port:
Fix the D3D target bitmap bug.
Clear display to black right away to avoid an ugly white flash.
Raspberry Pi port:
Linux port:
al_set_new_window_title
work correctly.Build system:
Use PROJECT_SOURCE_DIR and PROJECT_BINARY_DIR instead of CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR. This lets you use Allegro as a sub-project in your CMake project.
Fix GDIPlus finding in cmake-gui (Bruce Pascoe).
Add .gitignore and ignore build/ dir (Mark Oates).
Fix building examples with non-Allegro dependencies with the monolith build.
Documentation:
Other:
Add more #include
statements in Allegro headers, so
it’s easier to use them in isolation (Jordan Woehr).
Allow marking tests as being hardware only.
Prefix some private Allegro macros and types to not pollute the namespace.
Make set_shader_uniform api const-correct (Bruce Pascoe).
Audio addon:
al_set_sample_instance_length
.Acodec addon:
Allow file-backed audio streams to be restarted after they finish.
Add Opus codec support.
Image addon:
Native dialog addon:
Font addon:
Make al_get_text_dimensions
and
al_get_glyph_dimensions
return exact bounding boxes
(koro).
Add ALLEGRO_GLYPH
structure and
al_get_glyph
, allowing for some additional optimization
when drawing fonts.
Examples:
Add more controls to ex_audio_props
.
Add an example of using Enet with Allegro.
The main developers this time were: SiegeLord, Polybios, Mark Oates, Elias Pschernig and Jonathan Seeley.
Core:
Add al_is_event_source_registered
(koro).
Make destructors log messages more meaningful.
Mouse emulation API for touch devices is now unstable.
Rename al_convert_bitmaps
to
al_convert_memory_bitmaps
.
Input:
Android port:
OSX port:
Fix OSX mouse state position scaling.
Fix other various scaling issues.
Make toggling ALLEGRO_FRAMELESS work.
Fix an issue where fullscreen windows would occasionally leave empty space for the titlebar.
Fix incorrect debug assert in the audio addon.
Windows port:
Make Allegro apps DPI-aware by default, which means that they won’t be scaled by the OS.
Fix compilation for the CPU detection code on some compilers.
Don’t sync the D3D bitmap when locking with WRITE_ONLY.
Remove dsound.dll runtime loading.
Don’t link xinput and d3dx9 libraries (they are still required at runtime though if you’re using the relevant features).
Fix a bug where al_wait_for_event_timed can block despite 0 timeout (Aldo Nunez).
Build system:
Documentation:
Fix source links for API entries with multi-line prototypes.
Make the readme look prettier on GitHub.
Tons of assorted documentation improvements, especially for the audio addon.
Other:
ALLEGRO_UNSTABLE
before including Allegro
headers.Audio addon:
Fix sporadic deadlocks
Recorder API is now unstable.
Native dialog addon:
al_toggle_menu_item_flags
is now unstable.TTF addon:
Video addon:
Examples:
Make ex_vsync
less likely cause a seizure.
Make ex_draw_bitmap
and ex_touch_input
switch in/out on Android.
Add documentation to ex_bitmap
(Daniel
Johnson).
Improve ex_logo
text entry experience.