Allegro 5.0.10 released!
Peter Wang

https://sourceforge.net/projects/alleg/files/allegro/5.0.10/

Quote:

Changes from 5.0.9 to 5.0.10 (June 2013)
========================================

The main developers this time were: Trent Gamblin, Paul Suntsov, Peter Wang.

Core:

- Register system interface even if no display driver available on Windows.

Displays:

- Don't crash in al_create_display if there is no display driver.

- Don't crash at shutdown if there is no display driver (Windows).

- Don't fail init if both D3D, GL drivers unavailable (Windows).

- Run fullscreen toggle on main thread (OS X).

- Destroy the backbuffer bitmap when destroying the display (OS X).

- Switch to new NSTrackingArea API (OS X).

- Check availability of fullscreen button on window frame at run-time (OS X).

Graphics:

- Add ALLEGRO_SRC_COLOR, ALLEGRO_DEST_COLOR, ALLEGRO_INVERSE_SRC_COLOR,
ALLEGRO_INVERSE_DEST_COLOR blending modes (initially by Jon Rafkind and
Elias Pschernig).

- Let al_destroy_bitmap implicitly untarget the bitmap on the calling
thread.

- Use memory bitmap drawing when either bitmap is locked (OpenGL).

- Add const qualifiers to glUniform*v() functions (Aaron Bolyard).

Input:

- al_set_mouse_xy on Windows resulted in the mouse getting set to the wrong
position in windowed modes.

- Scale the user supplied mouse cursor if it's too big (Windows).

- Fix mouse warping on OS X.

- Fix mouse warping in Linux evdev mouse driver.

Audio addon:

- pulseaudio: Use smaller buffer size by default, and make it configurable.

- pulseaudio: Clean up state transitions.

- Fix looping in Ogg Vorbis stream (Todd Cope).

- Enable the use of the unpatched DirectX SDK to build Allegro with MinGW.

Color addon:

- Fix al_color_rgb_to_html blue component (Jeff Bernard).

Font addons:

- Make al_init_ttf_addon return true for subsequent calls.

Primitives addon:

- Disallow 3 component vectors for ALLEGRO_PRIM_TEX_COORD.

- Check that the vertex declaration is valid before creating it.

- Respect filter settings of textures in the D3D backend.

Build system:

- Do not install most internal header files.

- Do not search for and link with unneeded X libraries.

Examples:

- ex_audio_timer: New example.

Other:

- Minor fixes.

- Various documentation updates.

- A lot of code refactoring.

MD5SUMS
89110c288c4a1c1eb7e18951bca0f817  allegro-5.0.10.7z
bf51a90e158ff8b1cec0514ef70195cf  allegro-5.0.10.tar.gz
4a061a98d1a702f8b903f422c3804141  allegro-5.0.10.zip

Mark Oates

A lot of work in this one! :o

My favorite:

Quote:

- Add ALLEGRO_SRC_COLOR, ALLEGRO_DEST_COLOR, ALLEGRO_INVERSE_SRC_COLOR,
ALLEGRO_INVERSE_DEST_COLOR blending modes (initially by Jon Rafkind and
Elias Pschernig).

Gideon Weems

Are most people installing both the stable (5.0) and unstable (5.1) branches? I'm running unstable only and don't want to miss out on anything.

Todd Cope

I am running unstable only here. Development happens on the 5.1 branch and relevant changes are brought back into the 5.0 branch. You won't miss anything if you stick with 5.1.

Mark Oates

I just grab whatever Michał builds :P

I prefer the unstable, because it's the bleeding-edge of features.

Gideon Weems

... So all the updates here have already been included in the latest unstable release (5.1.8). That makes sense.

Thank you!

Exiled

Can we get a Windows Binary made? The bug with al_set_mouse_xy in windowed mode in 5.0.9 is preventing me from further development on my game. :/

Michał Cichoń
Trent Gamblin

Thanks Michał! :D

Exiled

Ah! Thanks so much, Michal! :D

Vanneto

Whenever I see one of these threads and no Michal post, I wonder to myself "What the fuck am I going to do now?"

Thanks from me too!

beoran

Sorry to be so clueless but I'm wondering since I'm not a windows user. Is it really that hard to build allegro yourself on windows? ??? On Linux, building is rather easy.

Matthew Leverton

The base Allegro is easy to build, but all of the dependencies with an easy-to-distribute monolithic version? No.

SiegeLord

Windows support feels like an afterthought in most of A5 dependencies. I made a guide to install A5 and the dependencies from source with MinGW, but that only worked predictably after I patched the dependency sources myself: it was a pain to figure out. The main offender is autotools, which leads me to predict that compiling everything with MSVC might be easier.

Trent Gamblin

I don't use the builds myself, I'm just thanking Michal for putting in the time to help people that need them.

beoran

OK, I see. It's the dependencies that cause some problems. Could anything be done about that? If some libraries have non-restrictive licenses that are compatible with Allegro's it might be possible to vendor them...

Of course, I also think Michał is doing a great job in providing the windows builds.

ArekXV

Hi. I hope I'm not asking too much but could I ask you to compile a version for MSVC2010? It seems to be the one missing here this time, and I would need that exact version.

Thanks! :)

Michał Cichoń

I wonder about missing 2k10 version too. I hope I just forgot to put it on ftp. I will check that on Friday.

Edit:

There it is. Fixed build for Windows. Sorry for troubles.

allegro-5.0.10-mingw-4.5.0.7z
allegro-5.0.10-mingw-4.5.2.7z
allegro-5.0.10-mingw-4.6.1-tdm.7z
allegro-5.0.10-mingw-4.6.2.7z
allegro-5.0.10-mingw-4.7.0.7z
allegro-5.0.10-msvc-10.0.7z
allegro-5.0.10-msvc-11.0.7z
allegro-5.0.10-msvc-9.0.7z

Apollo_EE

Will you be adding a compiled version for 4.7.1-tdm in the near future?

Vanneto

Whats wrong with using the one for 4.7.0?

beoran

That's another thing I've been wondering about as of lately: who do so many people still use allegro 4.x? What is allegro 5 missing that makes 4 more attractive?

Thomas Fjellstrom
beoran said:

who do so many people still use allegro 4.x? What is allegro 5 missing that makes 4 more attractive?

Existing code?

But those two are talking about mingw/gcc 4.7.1 there's no such thing as allegro 4.7 :)

Apollo_EE

I thought adding the -tdm would give it away that I was talking about MinGW 4.7.1-tdm.

Trent Gamblin

I don't understand why people use the "tdm" version of MinGW in the first place...

Michał Cichoń
beoran said:

That's another thing I've been wondering about as of lately: who do so many people still use allegro 4.x? What is allegro 5 missing that makes 4 more attractive?

Backward compatibility.

Apollo_EE said:

Will you be adding a compiled version for 4.7.1-tdm in the near future?

There you go:
allegro-5.0.10-mingw-4.7.1-tdm.7z

I don't understand why people use the "tdm" version of MinGW in the first place...

In my case, it defaults to link static run-time and produce executables without unwanted MinGW DLL. For games this is a good thing, I think.

Trent Gamblin

In my case, it defaults to link static run-time and produce executables without unwanted MinGW DLL. For games this is a good thing, I think.

`-static-libgcc -static-libstdc++` is all you need with regular MinGW.

Note: I don't even build my libraries with those switches, just the game.

Michał Cichoń

That's true. I cannot recall more arguments. I just know people are using it.

Apollo_EE

Thanks Michal. I tested it and it works great. Just had to link openal and libwinmm.a which seemed to be unnecessary in 5.0.6, but everything is working nicely again.

LennyLen

I don't understand why people use the "tdm" version of MinGW in the first place...

At one point (I'm not sure if it's still the case), they were releasing newer versions of GCC before the MinGW team were.

ArekXV

Thanks Michal for MSVC2010 version! :D

Here's a contribution from me. :)

Allegro 5.0.10 - Compiled CHM API reference
https://www.dropbox.com/s/8oazl79tyfoad6n/allegro-5.0.10-doc.7z

Enjoy! :)

Edgar Reynaldo

@ArekXV
Hey, nice contribution with the CHM docs!

It would be awesome if allegro's build system was capable of producing a CHM manual as well. How much work would that be? Are there any good guides for writing hhc / hhp files? I forget what all is involved in making chm docs.

Michał Cichoń

If someone is looking for GCC for windows there is one up to date version prepared by Stephan T. Lavavej there. It is up to date in order to test newest C++ features.

Trent Gamblin

Interesting. The guy works for Microsoft and maintains a version of GCC. :D.

ArekXV

Well you have HTML Help Workshop which is free, it's not that difficult to understand. You have a HHP file which is a project file, HHC is a content file and there is also an index file which is not required, but helpful.

Here's what I've done. :)

1. Download the whole API reference from allegro site using wget - you can get it for windows here - http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-setup.exe
I've used this commad:
wget.exe --recursive --no-clobber --page-requisites --html-extension --convert-links --restrict-file-names=windows --domains alleg.sourceforge.net --no-parent alleg.sourceforge.net/a5docs/5.0.10

After it's finished it will create folder structure:
alleg.sourceforge.net/a5docs/5.0.10

You can stop here if you don't need the CHM version. HTML files work okay. :)

Then I've made a simple ruby script for making HHP, HHC and index files so that I don't have to add all of those content file index and stuff by myself, you can get it here:
https://www.dropbox.com/s/2tn6j5pv8unz6n5/generateHHP.7z

You put it inside:
alleg.sourceforge.net/a5docs/

And run it, enter folder name, which in this case is 5.0.10 and it will generate HHP, HHC and index files in it. It will also remove searchbox from all html files because javascript doesn't work very well in CHM.

After that you just run the chmproject.hhp file and compile the file which should be saved inside:
alleg.sourceforge.net/a5docs/

And that's it. :)

Also here's 5.1.8 - Compiled CHM api:
https://www.dropbox.com/s/3lka1o1xzwr0cxg/allegro-5.1.8-doc.7z

Peter Wang

Allegro sources come with pregenerated documentation so there is no need top scrape the web site.

ArekXV

Haven't really looked at it. I see it now. :)

You can skip the download step and put the contents of generateHHP.7z into docs/html of allegro source. :)

Run generateHHP.bat and enter refman as folder name.

Rest is the same. :)

HTML Help Workshop is available here - http://go.microsoft.com/fwlink/?LinkId=14188

EDIT:

I've made a batch script which automatically generates necessary files and compiles CHM file.

All you need to do is to put the contents into docs/html of allegro source run generateCHM.bat and press Enter to begin.

Get it here:
https://www.dropbox.com/s/93queu1a4nvv4wc/generateCHM.7z

Please note that HTML Help Workshop needs to be installed for this to work. This script will look for it in Program Files directory.

angelvet

Are there any chance to have allegro build for Visual Studio 2012 with Windows XP (v110_xp) toolset?

ArekXV

You can use standard MSVC2012 version for that, it's the same - http://targonski.nazwa.pl/thedmd/allegro/5.0.10/allegro-5.0.10-msvc-11.0.7z

angelvet

ArekXV thanks for reply.

With this build there is one small problem, it is not targeting Windows XP operating system.
According to this post http://blogs.msdn.com/b/vcblog/archive/2012/10/08/10357555.aspx
To target Windows XP application and its dependencies must be built with v110_xp platform toolset selected.

Please reply if I'm missing something.

Michał Cichoń

I will look at XP compatible build on Friday or Saturday.

angelvet

Thanks.

ArekXV

Hmm you might be missing something here. I've tried compiling my project in MSVC2012 with Visual Studio 2012 - Windows XP (v110_xp) toolset and it compiled without any problems.

Again, I used this version - http://targonski.nazwa.pl/thedmd/allegro/5.0.10/allegro-5.0.10-msvc-11.0.7z

Can you write what kind of errors are you getting exactly?

angelvet

This is not a compilation or linking issue, application just not running on Windows XP system, it is not compatible with it.

Did you try to run your application on Windows XP? Is it working?

Probably you'll get some error that I had:

---------------------------
Main.exe - Entry Point Not Found
---------------------------
The procedure entry point K32GetModuleFileNameExA could not be located in the dynamic link library KERNEL32.dll.
---------------------------
OK
---------------------------

ArekXV

That's not Allegro's issue (probably), you're probably using something which uses Process Status API, i.e. psapi.lib. I had a similar problem, you need to define a preprocessor directive:

#SelectExpand
1#define PSAPI_VERSION 1

Also you can try this:

#SelectExpand
1 #define PASAPI_VERSION 1 2 #undef K32EnumProcesses 3 #undef K32EnumProcessModules 4 #undef K32EnumProcessModulesEx 5 #undef K32GetModuleBaseNameA 6 #undef K32GetModuleBaseNameW 7 #undef K32GetModuleFileNameExA 8 #undef K32GetModuleFileNameExW 9 #undef K32GetModuleInformation 10 #undef K32EmptyWorkingSet 11 #undef K32QueryWorkingSet 12 #undef K32QueryWorkingSetEx 13 #undef K32InitializeProcessForWsWatch 14 #undef K32GetWsChanges 15 #undef K32GetWsChangesEx 16 #undef K32GetMappedFileNameW 17 #undef K32GetMappedFileNameA 18 #undef K32EnumDeviceDrivers 19 #undef K32GetDeviceDriverBaseNameA 20 #undef K32GetDeviceDriverBaseNameW 21 #undef K32GetDeviceDriverFileNameA 22 #undef K32GetDeviceDriverFileNameW 23 #undef K32GetProcessMemoryInfo 24 #undef K32GetPerformanceInfo 25 #undef K32EnumPageFilesW 26 #undef K32EnumPageFilesA 27 #undef K32GetProcessImageFileNameA 28 #undef K32GetProcessImageFileNameW

Now I'm not 100% sure but I don't think that Allegro uses Process Status API.

Main cause for this error is because versions of Windows after Windows XP have moved functions (like those named upwards) from Process Status API (psapi.lib) to main kernel32.lib to gain more speed.

If Allegro uses psapi.lib then that's other story, and then it needs to be recompiled with MSVC2012 - Windows XP toolchain WITH preprocessor directive PSAPI_VERSION=1

Check your other libraries you are or might be using as well, if any of them are using psapi.lib then they should need to be recompiled too.

Michał Cichoń

I managed to experiment with XP mode but weekend passed before I put a build together on that. There is a chance I will be near my dev PC tomorrow so I give it a try.

angelvet

Yes you right.

But if allegro don't use PSAPI explicitly, it may use it implicitly via winmm or shell32 etc. libraries it linked with.

I think that even just small example allegro app won't run on xp with current build.

Thread #612814. Printed from Allegro.cc