Allegro.cc - Online Community

Allegro.cc Forums » Allegro Development » Allegro 5.2.0 released!

This thread is locked; no one can reply to it. rss feed Print
 1   2   3   4 
Allegro 5.2.0 released!
SiegeLord
Member #7,827
October 2006
avatar

It has been 14 years since Allegro 5 was first announced and nearly 5 years and 2 months since version 5.0 was released. After many years of development in the unstable branch, I am excited to announce that a new stable version of Allegro is ready for release!

Allegro 5.2 brings forth many features from the 5.1 branch and exposes them with a stable interface with guaranteed source and binary compatibility. This includes things like shader support, limited support for 3D game development, video playback, Android and (functioning) iOS support. Some features, however, are not quite ready for prime time and therefore remain unstable. To avoid the codebase divergence that prevented 5.0 from receiving many bugfixes from the 5.1 branch, these unstable features coexist in the same branch, but must be opted into before being used.

This release would not have been possible without the help of the many people who have contributed to Allegro over the years. In addition to the 'core' developers that have been around since time immemorial, many of the most exciting features of Allegro have been contributed by people who started using Allegro relatively recently. Even without making code contributions, simple users of Allegro who made suggestions, bug reports and simply used the code have also been invaluable to making Allegro as high quality as it is today.

In many ways, the game development community have abandoned native libraries like Allegro. Despite this downturn, many still create great games with Allegro as foundation, and I think Allegro still has a niche to fill. Allegro 5.2 is an important milestone, but it is not the end of the road. There are still many bugs to fix, features to add and games to write.

Check out the source archives here.

MSYS2 binaries are available here with the dependency packages available here.

You can grab the MSVC Nuget package here.

Ubuntu and homebrew will be updated in the coming days.

On a technical note, Allegro 5.2 is source but not binary compatible with Allegro 5.0. Additionally, the semantics of some functions have changed, but hopefully not in a way that affects most programs.

Changes from 5.1.13.1 to 5.2.0 (April 2016)

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

  • Haptic API is now unstable.

Android port

  • Fixed bogus display destruction on Android which previously caused zombie states.

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

  • Install PDB files when building with MSVC.

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

  • Add a stability system where some unstable APIs need to be opted into by defining 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

  • Add an option to pre-cache the glyphs, useful for platforms where the current algorithm is buggy (typically some Android devices).

Video addon

  • Temporarily remove FFmpeg backend, as it was too buggy, didn't build and was too hard to fix.

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.

SHA256SUMS

dd47d4a72e8a81e947c303d6cebf5056bba1e56f77339ce5481e5d33bf0841ce  Allegro.5.2.0.0.nupkg
fc8ef6597461f11adaf43b95329ea4a825cd387659643f4046f0b2f07fcd7c53  allegro-5.2.0.7z
af5a69cd423d05189e92952633f9c0dd0ff3a061d91fbce62fb32c4bd87f9fd7  allegro-5.2.0.tar.gz
7890acb70eb05edf4ec99e9b63b60c22af7bf387e34f023207ad1c4fa56484b8  allegro-5.2.0.zip
c1e272f2e2f6be80cb567829ebaa10efec854e44a8da7d0d8b02a9143b5d2dbb  allegro-mingw-gcc5.3.0-x64-5.2.0.zip
aee66be54bec6dca60ae6f6f892a447aae2d17e29b29d110bb29fee73947830c  allegro-mingw-gcc5.3.0-x86-5.2.0.zip

"For in much wisdom is much grief: and he that increases knowledge increases sorrow."-Ecclesiastes 1:18
[SiegeLord's Abode][Codes]:[DAllegro5]:[RustAllegro]

Bruce Pascoe
Member #15,931
April 2015
avatar

Awesome, Allegro 5.2.0 is finally gold, it's been a long time coming. :) Now let's see if Debian can get their act together and upgrade their Allegro packages. I'm still running against 5.0.10 for my Ubuntu releases. :-/

Yodhe23
Member #8,726
June 2007

As always well done everyone, and many thanks.

www.justanotherturn.com

GullRaDriel
Member #3,861
September 2003
avatar

Well done !

Regarding the audio addon:

Fix sporadic deadlocks => was this the cause of lags when recording ? Nothing was loss thanks to the queue but I had some lags with 5.1 when reading packets from the record buffer. It was like frozen for seconds, after what it continues to work but is there is huge lag between record input and given record samples.

Recorder API is now unstable => which mean it's still under active development ?

"Code is like shit - it only smells if it is not yours"
Allegro Wiki, full of examples and articles !!

Polybios
Member #12,293
October 2010

Excellent! :D

Niunio
Member #1,975
March 2002
avatar

Cool! But I have two questions:

What does "is now unstable" means?

Is it still working on WinXP? I've proposed myself to release a new version of Allegro.pas before TINS 2016 and unfortunately the only computer available is a WinXP one.

-----------------
Current projects: Allegro.pas | MinGRo

Polybios
Member #12,293
October 2010

"Unstable API" means: It's there, but still under development, i.e. the API is not guaranteed to be around in the next version. It could change or be removed completely.

As to the 5.2 release, it means that developers didn't think those parts were "mature" enough to be introduced as something the next releases would have to be compatible to. So they were marked as "unstable". This is what "is now unstable" means.

There are short notes in the docs why the specific API is considered unstable, too. For example, about audio recording :

Unstable API: The API may need a slight redesign.

About haptics:

Unstable API: Perhaps could be simplified due to limited support for all the exposed features across all of the platforms. Awaiting feedback from users.

Instead of marking the whole 5.1 branch as "unstable", there is now only one branch with parts of it marked as unstable. Note it's about API.

Niunio
Member #1,975
March 2002
avatar

Thanks for the explanation, Polybios. :)

I've just download it and installed at the office (fortunately, my job is in a game development studio now 8-)) and I've found a problem in my Xubuntu 14.04.4. May be I should send a bug report.

Thing is that some examples and the Skate demonstration game raise a segment violation if no sound support is available. Initially, I compiled it without OpenAL. Some examples as ex_haiku and the demonstration games except Skate just show a message that there are an error initialising audio, but the other just raised the segment violation. Once OpenAL were installed (I don't know why it wasn't) everything work.

Also I'm really glad that you rescued the 3D Allegro stuff. It makes me chuckle. :D

I'll test on WinXP later.

[edit]
I've just realised that today is April 1st... ::)

-----------------
Current projects: Allegro.pas | MinGRo

MiquelFire
Member #3,110
January 2003
avatar

Well, knowing Allegro 5's history, it's a good release date.

---
Febreze (and other air fresheners actually) is just below perfumes/colognes, and that's just below dead skunks in terms of smells that offend my nose.
MiquelFire.red | +Me
Windows 8 is a toned, stylish, polished professional athlete. But it’s wearing clown makeup, and that creates a serious image problem. ~PCWorld Article

Audric
Member #907
January 2001

Where's my mind control interface?
Congratulations guys! I may be a kind of old ghost, but I really appreciate this community (The most civil I've ever seen) and the continued efforts in actually implementing alternative propositions.

SiegeLord
Member #7,827
October 2006
avatar

Now let's see if Debian can get their act together and upgrade their Allegro packages.

I feel like the best solution would be to step up and send them a patch. The fact that you're on 5.0.10 and not 5.0.11 means they're not quite up to date even for 5.0... Once I make the Ubuntu 5.2 packages, perhaps I could send them as is to Debian (since that's where they came from originally anyway).

Recorder API is now unstable => which mean it's still under active development ?

We just need a hard look at it and see what's up with it. It might be fine as is. Did you have any issues with it (aside from that sample length issue; did you resolve it?)?

Niunio said:

Thing is that some examples and the Skate demonstration game raise a segment violation if no sound support is available.

Whoops... that's bad.

"For in much wisdom is much grief: and he that increases knowledge increases sorrow."-Ecclesiastes 1:18
[SiegeLord's Abode][Codes]:[DAllegro5]:[RustAllegro]

amarillion
Member #940
January 2001
avatar

Awesome!

--
Martijn van Iersel | My Blog | Sin & Cos | Tegel tilemap editor | TINS 2017

Gideon Weems
Member #3,925
October 2003

I thought you were playing games with my heart, when I looked at the date. Awesome!

GullRaDriel
Member #3,861
September 2003
avatar

When will it hit the Ubuntu depot ? There are no 5.2 yet ...*

Edit: all I can see is 5.0.11.2 !

"Code is like shit - it only smells if it is not yours"
Allegro Wiki, full of examples and articles !!

Chris Katko
Member #1,881
January 2002
avatar

There are no 5.2 yet ...*

That would be AMAZING to get an up-to-date Allegro stable release through package managers.

-----sig:
“Programs should be written for people to read, and only incidentally for machines to execute.” - Structure and Interpretation of Computer Programs

GullRaDriel
Member #3,861
September 2003
avatar

Yeah, I would love it too.

"Code is like shit - it only smells if it is not yours"
Allegro Wiki, full of examples and articles !!

Niunio
Member #1,975
March 2002
avatar

Tested on WinXP. Even my old notebook is able to run it nicely. :)

-----------------
Current projects: Allegro.pas | MinGRo

Peter Hull
Member #1,136
March 2001

I don't know what was done in the past but the first step would probably be to contact the Debian Package Maintainers and the Fedora maintainers. Not sure about Arch, Gentoo or any other distros, I've never used them.

Edgar Reynaldo
Member #8,592
May 2007
avatar

Peter Hull
Member #1,136
March 2001

Quick question, why has the nuget package become so much bigger? (47mb vs 73kb)
{"name":"610269","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/c\/0c7a1a526715cd30aca30c36cf58034c.jpg","w":630,"h":450,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/c\/0c7a1a526715cd30aca30c36cf58034c"}610269

GullRaDriel
Member #3,861
September 2003
avatar

Because of the new mind control ability of 5.2
;)

EDIT: building it on my Win7x64 installation. I'll report the state of audio recorder fragments and may test for Edgar's problem.

"Code is like shit - it only smells if it is not yours"
Allegro Wiki, full of examples and articles !!

SiegeLord
Member #7,827
October 2006
avatar

Quick question, why has the nuget package become so much bigger? (47mb vs 73kb)

PDB files, although I've no idea where the 73kb number comes from (maybe some sort of incremental download?). 5.1.13.0 package, for example, is 27.9 MB on my system (and 5.2.0 is indeed 47MB).

"For in much wisdom is much grief: and he that increases knowledge increases sorrow."-Ecclesiastes 1:18
[SiegeLord's Abode][Codes]:[DAllegro5]:[RustAllegro]

Chris Katko
Member #1,881
January 2002
avatar

Google has done some amazing work. They actually send differential updates that are tiny compared to the full thing. Like hundreds of kbytes and sometimes less. They actually have it aware of code building process and the resulting binary code sections and compress them separately. I don't recall the specifics but it was something crazy.

-----sig:
“Programs should be written for people to read, and only incidentally for machines to execute.” - Structure and Interpretation of Computer Programs

Elias
Member #358
May 2000

Why are they not using that for Android Studio updates?

--
"Either help out or stop whining" - Evert

Chris Katko
Member #1,881
January 2002
avatar

I missed a word in that last post. It's for Google Chrome:

https://www.chromium.org/developers/design-documents/software-updates-courgette

Quote:

Full update 10,385,920
bsdiff update 704,512
Courgette update 78,848

Check out article. They do all kinds of crazy pre-linking hinting tricks.

Quote:

Summary:

Courgette transforms the input into an alternate form where binary diffing is more effective, does the differential compression in the transformed space, and inverts the transform to get the patched output in the original format. With careful choice of the alternate format we can get substantially smaller updates.

Looks like it could be applied to anything else though!

-----sig:
“Programs should be written for people to read, and only incidentally for machines to execute.” - Structure and Interpretation of Computer Programs

 1   2   3   4 


Go to: