Allegro 5.2.5 released!
SiegeLord

{"name":"611923","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/3\/a\/3a0a3fc0681b4f8136d6dcbee6ca20f3.png","w":940,"h":620,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/3\/a\/3a0a3fc0681b4f8136d6dcbee6ca20f3"}611923

You know what keeps happening again and again? That's right, it's Allegro 5 releases! It's literally been exactly a year since the previous release, it's amazing how much time gets taken up by having a day job!

Anyway, as always you can download the sources and MinGW binaries on GitHub (get dependencies here). You can MSVC binaries from Nuget and Ubuntu binaries from a PPA. Homebrew binaries are forthcoming.

Here's the changelog:

Changes from 5.2.4 to 5.2.5 (February 2019)

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:

  • Fix OpenGL version reporting after display creation.

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:

  • Fix OpenGL version reporting after display creation.

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:

  • Sebastian Krzyszkowiak has spent a lot of effort to making the SDL backend usable as a nearly fully featured Allegro backend. You can use it on platforms native Allegro implementations do not support (such as emscripten, etc.).

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:

  • Allow modules to loop properly when the user hasn't specified loop points. (Todd Cope)

Audio addon:

  • Better support for big endian. (Douglas Mencken)

TTF addon:

  • Added support of HarfBuzz in FreeType (Arves100).

Documentation:

  • Source links now point to the correct commit on GitHub.


  • General improvements and clarifications.

Examples:

  • Add ex_blend_target.

Windows Dependencies:

The Windows dependencies got upgraded to their newest versions.

  • libpng 1.6.30 -> 1.6.36

  • freetype 2.8 -> 2.9.1

  • libjpeg-turbo 1.5.2 -> 2.0.1

  • physfs 2.0.3 -> 3.0.1

  • dumb 0.9.3 -> 2.0.3

  • libogg 1.3.2 -> 1.3.3

  • libvorbis 1.3.5 -> 1.3.6

  • opus 1.2.1 -> 1.3

  • opusfile 0.8 -> 0.11

  • libwebp 1.0.2 new

SHA256SUMS

95af0d9f712ae26aeab8764d48787f6cfca36e52788fb5ffc6543c1e7762feae  allegro-5.2.5.0.7z
ee97ede13540d1545b10fc63319ccb2bf8e9f8c104abad9ae718abff0444fad5  Allegro.5.2.5.0.nupkg
59968da34a0353913868b8299aaff9520d19a3b0960c6406be8323a6ac9bb719  allegro-5.2.5.0.tar.gz
74722a072e2c94bd25a3ae5a6e71f0950dd7635d575c41d8bead4d079574ac86  allegro-5.2.5.0.zip
70f49ce0e7aa2fd84b02e3a0d327d05f0df2a3a0734526d344513121e6c8ae83  Allegro.5.2.5.1.nupkg
131728627c4fcd2c0757fea393caae5189747b49ef9c0f2f146472c96f5dcee6  AllegroDeps.1.8.0.0.nupkg
692e5fb67d5fedcfa847063ce35ca0b8778a363ab2cc79b10142a19aaced5521  AllegroDeps.1.9.0.0.nupkg
6d32bea9f0e435cd0bf27375ef5c64f3df55edcd6a685a54a45bd7a0a8736c32  allegro_deps-i686-w64-mingw32-gcc-7.4.0-posix-dwarf-1.8.0.zip
2bf32e440d460ac1bc847547561290878584fe025cdbf6f6b719d4706ab5a971  allegro_deps-i686-w64-mingw32-gcc-7.4.0-posix-dwarf-1.9.0.zip
51f26999273ee18d88c18b6ab48f6b3fd96f9913b9ce2a443df768a0ce27bdc5  allegro_deps-x86_64-w64-mingw32-gcc-8.2.1-posix-seh-1.8.0.zip
05b30a518afeac87876282dee52b2fcee4403401499795dab77f069563789dee  allegro_deps-x86_64-w64-mingw32-gcc-8.2.1-posix-seh-1.9.0.zip
58fc2b25813c41b0b347248802f585615590873645921e0454b6e21854acd429  allegro-i686-w64-mingw32-gcc-7.4.0-posix-dwarf-dynamic-5.2.5.0.zip
6ff46889861274cc2a26181718da936fbce9f817397774d5a5b538797933f035  allegro-i686-w64-mingw32-gcc-7.4.0-posix-dwarf-dynamic-5.2.5.1.zip
9b18bc9c8784481e7f29624ac28e9298f2d7193ce4338c1db31a315be336cbad  allegro-i686-w64-mingw32-gcc-7.4.0-posix-dwarf-static-5.2.5.0.zip
da8fc4e89125342a35ada8c92d9d35c3531d416816d66b579519527e1a2aed48  allegro-i686-w64-mingw32-gcc-7.4.0-posix-dwarf-static-5.2.5.1.zip
ac163856de158e0b421bcef966961502735cc156c05b21a597f45c49a7b298cf  allegro-x86_64-w64-mingw32-gcc-8.2.1-posix-seh-dynamic-5.2.5.0.zip
a4462700f12cfb27d5f892939bf16dc7ba1f62d17992d2b9336581204bc96288  allegro-x86_64-w64-mingw32-gcc-8.2.1-posix-seh-dynamic-5.2.5.1.zip
7b32144c41e48d7bda35c53a03b5c17f9b6d0b14557e705e878358e161d049a4  allegro-x86_64-w64-mingw32-gcc-8.2.1-posix-seh-static-5.2.5.0.zip
67a840cad4ae13b910bb38eb01161c31829882136751a1dc6a5a25edf6005edc  allegro-x86_64-w64-mingw32-gcc-8.2.1-posix-seh-static-5.2.5.1.zip

Chris Katko

I just want to say I really appreciate the work you guys put into these.

I went looking through SDL documentation the other day and honestly, I wonder why people actually use it over Allegro / SDL was more popular. The API is rather ugly, they split the library into many sub-libraries just like Allegro (libmixer is a completely separate download from sdl!??!!), and they don't offer many functions that Allegro does.

dthompson
SiegeLord said:

LORD OF CINDER FALLEN

Excellent work, downloading now :)

Edit: I'm getting Opus issues- harks back to NiteHackr in the 5.2.4 release thread. No linker errors though; just a failure to load the stream at runtime. I've got libopus0 and libopusfile0 installed.

Using -lopusfile -lopus doesn't seem to help, and ldd reports that my executable doesn't depend on either library. Am I missing something?

GullRaDriel

Maybe the version is too low ?

opus 1.2.1 -> 1.3

opusfile 0.8 -> 0.11

Peter Hull
SiegeLord said:

You know what keeps happening again and again?

Is there a regular release schedule or did something particular happen (or was it just a quiet day in Siege Mansions? ;) )

Edgar Reynaldo

{"name":"free-MrBurnsExcellent.gif","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/2\/e\/2eccb8911cadf337a09b8b56863d7806.gif","w":280,"h":210,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/2\/e\/2eccb8911cadf337a09b8b56863d7806"}free-MrBurnsExcellent.gif

dthompson

Maybe the version is too low ?

I think SiegeLord was just pointing out the updates to the Windows dependencies bundled in allegro_winpkg. Does anyone know the minimum required versions of libopus/libopusfile? I've got 1.12/0.9 respectively.

ldd reports that compiling with Ubuntu 18.04's stock Allegro 5.2.3 adds libopus.so and libopusfile.so to my executable's dependencies.

Neil Roy

Nice work.

Edgar Reynaldo

There's a comment on liballeg about some commits not being in 5.2.5 yet, so I'm delaying my binaries a bit.

I can't get theora to build this time. It's being cranky...

dthompson

Xiph.org is clearly ruining our builds. They must be stopped.

{"name":"611933","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/c\/fc4b63d61968168737fdd660894777c4.jpg","w":1275,"h":673,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/c\/fc4b63d61968168737fdd660894777c4"}611933

Edgar Reynaldo

I think I'm just gonna build from master. But there's an important patch for 4.4.3 that I want to include.

SiegeLord

There's a comment on liballeg about some commits not being in 5.2.5 yet, so I'm delaying my binaries a bit.

All the commits that should be there are in fact there.

Edgar Reynaldo

https://github.com/liballeg/allegro5/compare/5.2.5.0...master

So the OpenGL version reporting and selection is not meant to be committed?

SiegeLord

That doesn't show what you think it does. Here are the commits in the release: https://github.com/liballeg/allegro5/commits/5.2.5.0

Edgar Reynaldo

I wonder why they don't agree?

Peter Hull

My guess: if you rebase a commit then it's not the same commit (different hash)?

SiegeLord

https://github.com/liballeg/allegro5/compare/5.2.5.0...master shows the commits that were added to master since the last common commit between it and 5.2.5 branch. https://github.com/liballeg/allegro5/compare/5.2.5.0..master shows the differences between the tips of both branches, but not commits (not sure how it would show that).

Edgar Reynaldo

EDIT 5
There was a bug in PhysFS 3.0.1 that has been fixed and superceded by PhysFS 3.0.2. I updated the binaries to use the new version of physfs. The bug would cause physfs_init to fail on Windows 10. See https://github.com/liballeg/allegro5/issues/1029 for details.

The links stayed the same, but the files were updated. So if you downloaded binaries from before today (03/19/2019 16:20 GMT) please download them again.

Binaries are forthcoming. I couldn't get opus and openssl to build with MSYS alone, so I won't be providing them. Pretty much everything else you could think of will be included.

32 bit first, and then 64 bit as I have time.

EDIT
Here's 32 bit Allegro 5.2.5 built with GCC 8.1 using MinGW-W64.

Allegro525_GCC81_MinGW-W64_i686_posix_dwarf.7z
EDIT4
NM. xD

It includes all the dependencies, debugging and release dynamic and static allegro monoliths, example programs, demos, test programs, chm manual, and a batch script to setup a build environment and to run the examples and demos and tests.

I'm in the middle of updating my compile guide too. Gave it a fresher look and better formatting.

And oh yeah, here's a couple tasty treats for you :

Allegro525 CHM Manual

CMake 3.14rc4 CHM Manual

EDIT
It seems there is a bug in PhysFS that makes physfs_init return 0 and fail in version 3.0.1. As soon as it is fixed I will update all the packages.

Rodolfo Lam

Oh my! A CMake manual in CHM format? Thanks!

SiegeLord

I've updated the Nuget and MinGW packages to deal with the PhysFS issue on Windows 10. PhysFS is now version 3.0.2.

Thread #617757. Printed from Allegro.cc