Allegro.cc - Online Community

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

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

Once again, I present to you the newest release of the WIP branch of Allegro. This time there were a lot more new features added than during the previous release, because, as everybody knows, it's much more fun to add new bugs rather than fix old ones. Just kidding, we fixed plenty of old bugs too ;). Some of the features are pretty nifty, such as the clipboard support.

We had quite a few new contributors this time around, and in fact most of the changed lines of code were not even done by the old team! That's pretty exciting.

Download the sources here.

Download the Windows dependencies here.

Download the Windows binaries here.

Once again, I changed the format of the MSVC binaries. Now all of the dependencies are statically linked, including the MSVC runtime. The only exception are the debug builds of Allegro, which link the dynamic runtime still. Hopefully this works well for everybody. The motivation for that was that people probably don't care what Allegro does under the hood, so we shouldn't burden people by making these dependencies explicit. Another new thing is that we now have MSVC 2015 binaries.

MinGW and Ubuntu binaries are not yet ready and will be made in the coming days.

EDIT: Homebrew is also now available.

Enjoy!

Changes from 5.1.11 to 5.1.12 (September 2015)

The main developers this time were: Bruce Pascoe, Beoran, Elias Pschernig, SiegeLord, Trent Gamblin.

Graphics

  • Add al_set_blend_color and al_set_blender, for additional blending modes.


  • Add ALLEGRO_MAXIMIZED display flag.


  • Add al_reparent_bitmap, al_get_bitmap_x/y. This allows changing the offset of a sub-bitmap.


  • Make ALLEGRO_PIXEL_FORMAT_ANY_NO_ALPHA actually pick a format without an alpha channel.


  • Add al_premul_rgba and al_premul_rgba_f convenience functions for dealing with pre-multiplied alpha blending mode.

Input

  • Fix key auto-repeat on modern X11 versions.


  • Fix mis-detection of some joysticks on Android.

Android port

  • Fix a crash when minimizing the app before Allegro has been initialized.

Linux port

  • Add al_get_x_window_id (Robert MacGregor)

OSX port

  • Fix some deprecated API usage.

Windows port

  • Fix a dangling pointer issue resulting in crashes when resizing on Windows 10.

Build system

  • Build with multiple processors when using MSVC.


  • Make XInput2/touch input optional on Linux.

Documentation

  • Various documentation improvements.


  • Fix some badly formatted flags (Rodolfo Lam).

Other

  • Allow injecting Allegro events into event queses using al_emit_user_event (Ryan Roden-Corrent)


  • Add al_set_new_window_title and al_get_new_window_title.


  • Add al_get_clipboard_text, al_set_clipboard_text and al_clipboard_has_text.


  • Add al_resume_timer (Ryan Roden-Corrent).


  • Add al_get_cpu_count and al_get_ram_size.

Audio addon

Font addon

  • Add al_draw_glyph, al_get_glyph_width, al_get_glyph_dimensions and al_get_glyph_advance. These functions are useful when additional control is needed when drawing text.


  • Add al_set_fallback_font.

Image addon

  • Add al_register_bitmap_identifier, al_identify_bitmap and al_identify_bitmap_f. This allows detecting the bitmap type by looking at the initial few bytes in the file rather than relying solely on the extension.


  • Allow saving bitmaps with uppercase extensions (Daniel).

Native dialog addon

  • Fix crashes when creating menus with sub-menus (Todd Cope).

Video addon

  • Allow using both Ffmpeg and Theora backends simultaneously.


  • Reduce latency of al_get_video_frame for the Theora backend.


  • Make the Theora backend send the ALLEGRO_VIDEO_FRAME_SHOW events.


  • Rename al_get_video_width/height to al_get_video_scaled_width/height which now return the aspect corrected size of the video frame.


  • Rename al_pause_video/al_is_video_paused to al_get/set_video_playing.


  • Add ALLEGRO_EVENT_VIDEO_FINISHED event.


  • Remove ALLEGRO_EVENT_VIDEO_FRAME_ALLOC event.


  • Remove al_get_video_aspect_ratio.

Examples

  • New examples: ex_reparent, ex_inject_events, ex_clipboard, ex_cpu, ex_timer_pause.

SHA256SUMS

3b66fbce9ae86f17b589eecea4406fd1d291dfa4e766a7a8cff1e0f0aba265d9  allegro-5.1.12.7z
78d1056d6cc0e4527ef35646f612a80456442a7866445ca7cf61a11bd64e79c0  allegro-5.1.12.tar.gz
0922bcf44b755a905ab60a0301377f4a0c352cfc10041c3972e20c4714a55fa8  allegro-5.1.12.zip
e09b5cf2172ead8fee77aad06636abdb1bc6411225a8e9d4a937a174646b7f48  allegro_deps-msvc2013-x64-1.2.0.zip
49fff173228f93b2cc00e1f5c00cdb7ce783a7290ce3c7d23d24c17c46c238df  allegro_deps-msvc2013-x86-1.2.0.zip
a3cdbe5ce773bc220cd11d2d878e653cd338b60c4d8f8ca762cf79949d92a127  allegro_deps-msvc2015-x64-1.2.0.zip
01d38b807dd0549e8d29ea75354e817a34b57adfb7b5b420b4b7d71a8ac873d3  allegro_deps-msvc2015-x86-1.2.0.zip
8492fd417dc8f6918538d0e139a87110397244ddbac8ab7cf238f3d88af60114  allegro-msvc2013-x64-5.1.12.zip
ef6a505f8aac954c547071b544b8081f56d3a5784eca7c97818274f451e88a1d  allegro-msvc2013-x86-5.1.12.zip
bf4a4d897eca4b4f2d354c929cb1d6546e473f6274cf0c68c4bbc684aac9f584  allegro-msvc2015-x64-5.1.12.zip
be255d45b2dc1909ad40fa442bab6fbc4472a76c79e7513efe1c9a404754d435  allegro-msvc2015-x86-5.1.12.zip

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

Mark Oates
Member #1,146
March 2001
avatar

I'm super excited. This one has gotten a lot of action, and is the first version collaborated on github if I'm correct. :)

I've really been looking forward to this one:

SiegeLord said:

Allow injecting Allegro events into event queses using al_emit_user_event (Ryan Roden-Corrent)

Of course, these are super neat and will make it into my code:

Quote:

Add al_get_clipboard_text, al_set_clipboard_text and al_clipboard_has_text.

Not something I would think I'd ever use, but I'm glad the pre-multiplied variants have made it in.

Also these will probably replace my existing equivalents:

Quote:

Add al_draw_glyph, al_get_glyph_width, al_get_glyph_dimensions and al_get_glyph_advance. These functions are useful when additional control is needed when drawing text.

Oh no! The manual is missing some of the new function signatures.

Arvidsson
Member #4,603
May 2004

Thanks for the awesome work everyone! I'm gonna try it out soon.

Elias
Member #358
May 2000

Oh no! The manual is missing some of the new function signatures [liballeg.org].

Works now 8-)

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

Yodhe23
Member #8,726
June 2007

Kudos to you all (and Kang thinks this is a pretty nice release too.) :)

www.justanotherturn.com

torhu
Member #2,727
September 2002
avatar

On Windows, al_get_cpu_count seems to return the number of logical processors, as opposed to the number of physical cores. Is it the same on other platforms? Should this be documented?

I think it's ok for it to work this way, it's the same as Java's Runtime.availableProcessors() method.

Thomas Fjellstrom
Member #476
June 2000
avatar

I think it's pretty normal to just report number of logical processors. It's fairly safe to assume you can use all logical processors as if they are physical cores unless you are doing some super duper heavy calculations that HT would only make slower. Games though tend to do enough waiting that HT will only accelerate work loads.

It might make sense to add a "al_get_physical_cpu_count" or something equivalent, in case you really care.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

amarillion
Member #940
January 2001
avatar

Awesome! I'll give it a try.

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

SiegeLord
Member #7,827
October 2006
avatar

Bumping the thread so I can edit it when I finally get around to making more binaries so I can edit the OP >_<.

"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

Thread locks too soon!

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

jmasterx
Member #11,410
October 2009

Thread locks too soon!

ISWYDT :D

Edgar Reynaldo
Member #8,592
May 2007
avatar

How do I get the library, the demos, and the examples all to build statically without depending on the C or C++ std libraries? I've tried several different flags, trying these first in cmake-gui :
CMAKE_EXE_LINKER_FLAGS -static-libgcc -static-libstdc++
CMAKE_MODULE_LINKER_FLAGS -static-libgcc -static-libstdc++

With these flags set, it builds the static library, and then fails to build the cosmic protector demo, which is C++. It fails because of redefinition errors in std::string and __gxx_personality_v0 due to relinking the std library somehow.

This is MinGW 4.8.1 on Vista. The CMake options are :
CMAKE_C_FLAGS
CMAKE_CXX_FLAGS
CMAKE_EXE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS

So what should I be using?

Thomas Fjellstrom
Member #476
June 2000
avatar

Libraries should not be statically linked against any other libraries that are going to be used from other code. Otherwise you get symbols being redefined in multiple object files.

A static allegro library should not link to anything. (imo)

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

Edgar Reynaldo
Member #8,592
May 2007
avatar

If I compile with no flags present for any of the aforementioned cmake variables then the examples all depend on lib_gcc_sw-2.dll or whatever and libstdc++-6.dll. I want them to be static linked to the CRTs as well.

Thomas Fjellstrom
Member #476
June 2000
avatar

You don't link the libraries against any lib at all. GCC won't do it either unless you force it. It'll leave the symbols as undefined. When you go to link your actual program, you tell it to link to everything statically.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

Linley Henzell
Member #3,963
October 2003

Thanks for the work, everyone!

GullRaDriel
Member #3,861
September 2003
avatar

Well done guys !!

I'll take my testing tour soon :-D

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

Elias
Member #358
May 2000

You can use -static instead. It's usually a bad idea to use that in Linux, but I find my mingw .exes created with it work fine and don't depend on any DLLs.

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

Gideon Weems
Member #3,925
October 2003

The font add-on got some really nice additions this time around. Thank you to all involved! :D

Rodolfo Lam
Member #16,045
August 2015

Congratulations on the release!

Now SiegeLord, just to confirm, the change you made to the way allegro is built means that we no longer have to download the allegro-deps folder from Gna! anymore? Or I misunderstood the post?

SiegeLord
Member #7,827
October 2006
avatar

You only need them if you do static linking. For dynamic linking, you just need Allegro's DLLs.

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

Rodolfo Lam
Member #16,045
August 2015

OK Great!, so that is a weight off, was writing a guide to help someone install the library here, when I though that I missed to explain the installation of the dependencies ;D

tobing
Member #5,213
November 2004
avatar

Nice. I was slightly worried some time but then I found that the git repository was moved, so I'm back on track now.

I think I really like the clipboard stuff, in fact someone has asked me about using the clipboard just this week.

During compiling with VS2013, I found a compile error in bitmap_io.c, so I'l attach a patch for this.

Elias
Member #358
May 2000

Thanks, applied it: https://github.com/liballeg/allegro5/commit/413279

Interesting though that neither clang nor gcc even warn about the missing * - I guess it might even be optional in the standard just MSVC requires it.

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

SiegeLord
Member #7,827
October 2006
avatar

I wonder how I didn't hit this when making the binaries... the 2013 archives definitely have the allegro core library in them...

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

 1   2 


Go to: