Allegro 5.0.0rc4 released!
Peter Wang

Changes from 5.0.0 RC3 to 5.0.0 RC4 (December 2010)

The main developers this time were: Trent Gamblin, Matthew Leverton,
Elias Pschernig, Peter Wang.


- d3d: Don't generate intermediate resize events during modal resize loop.

- Optimize D3D9 driver by caching blender state and scissor rectangle so
redundant calls to D3D9 functions are avoided (Michał Cichoń).

- gl: Use glGenerateMipmapEXT to generate mipmaps when FBOs are used.

- x11: Don't restore display mode if another fullscreen display is active.


- iphone: Reverse button/axis events that were swapped at some point.

File I/O:

- Change the way user code implements new ALLEGRO_FILE structures.
This adds al_create_file_handle and al_get_file_userdata.

- Implement default ungetc behavior - used if the interface does not supply
its own.

- Add al_fopen_interface.

Memfile addon:

- Implement ungetc.

- Add rw file modes.

- Rename header to allegro_memfile.h.

- Add documentation.

Image I/O addon:

- Fix endian issues in TGA and Mac OS X image loaders.


- Use _NSGetExecutablePath for al_get_standard_path(ALLEGRO_EXENAME_PATH) on
OS X (Jeff Connelly).

- Minor bug fixes and documentation updates.

Matthew Leverton

All examples (with the exception of ex_fs_resize), demos, and tests appeared to run correctly on Ubuntu 10.10 64-bit.

Windows binaries are up.


I suggest that we should include .7z package for downloads.
.7z has much better compress rate, so that the slow internet
connection will take less time to download.

here is the compareation:
allegro-5.0.0-rc4-msvc-9.0.7z 11,445,185 bytes 39,415,252 bytes


I think the zip downloads could be smaller than that, but 7z would still be smaller.

There is the issue that not everyone has a program to extract anything but ZIPs however.


Nice work! Will there be a RC5, or will you be going for a final release of 5.0.0?


It depends on how many issues pop up. If not too many, then the next release will be 5.0.0.

Nathan Letwory

For 7z archives you can create self-extracting versions. These work very well, and I have used it with good success for my test builds of Blender.



For 7z archives you can create self-extracting versions. These work very well

On more than one platform?


MSVC is on more than one platform?

Nathan Letwory

You can't run a 7z self-extracting archive on linux if it is created on windows, but you can extract it with 7z. But you can create self-extracting archives for linux too :)

7z a archivename.bin dirwithcontents/

Extract by running ./archivename.bin



We're talking about precompiled Windows binaries anyway. ;)

Trent Gamblin

I don't think I'd use the self extracting archives, but I do think it would be good to move to (or at least complement the existing archives with) 7zip archives. You can extract them on all platforms, you get much better compression ratios.. And 7zip for windows is already a must have program IMO.

Michał Cichoń

Personally I hate installers. They can do anything, and 'anything' isn't something I like. Archives are just data, you know what to expect from them and generally you know on what you're standing on. More, you can get only that part you're interested in without wasting time and space for installing, copying, uninstalling.

Self-extracting archives may sound as good idea, but it actually isn't. Not for SDKs, not for developers.

Crazy Photon

I am with Trent in that having 7zip archives is a good idea.

Been trying rc4 for the last few days, so far so good. Good job guys! :)


In the code below, when using OpenGL I get a grey square for the image, but with D3D I don't see anything drawn(the font and rectangle draw fine). If the either the draw font or the draw primitives code is commented out I get a grey square. The font is one from the examples.

1#include <allegro5/allegro.h> 2#include <allegro5/allegro_image.h> 3#include <allegro5/allegro_primitives.h> 4#include <allegro5/allegro_font.h> 5 6int main() 7{ 8 if(!al_init()) 9 return 1; 10 11 if(!al_install_keyboard()) 12 return 1; 13 14 if(!al_init_primitives_addon()) 15 return 1; 16 17 if(!al_init_image_addon()) 18 return 1; 19 20 al_init_font_addon(); 21 22 al_set_new_display_option(ALLEGRO_VSYNC, 1, ALLEGRO_SUGGEST); 23 //al_set_new_display_flags(ALLEGRO_OPENGL); 24 25 ALLEGRO_DISPLAY* display = al_create_display(200, 200); 26 27 if(!display) 28 return 1; 29 30 ALLEGRO_EVENT_QUEUE* queue = al_create_event_queue(); 31 32 if(!queue) 33 { 34 al_destroy_display(display); 35 return 1; 36 } 37 38 al_register_event_source(queue, al_get_keyboard_event_source()); 39 al_register_event_source(queue, al_get_display_event_source(display)); 40 41 ALLEGRO_BITMAP* image = al_create_bitmap(20, 20); 42 43 if(!image) 44 { 45 al_destroy_event_queue(queue); 46 al_destroy_display(display); 47 return 1; 48 } 49 50 ALLEGRO_FONT* font = al_load_bitmap_font("bmpfont.tga"); 51 52 if(!font) 53 { 54 al_destroy_bitmap(image); 55 al_destroy_event_queue(queue); 56 al_destroy_display(display); 57 return 1; 58 } 59 60 al_set_target_bitmap(image); 61 al_clear_to_color(al_map_rgba(255, 255, 255, 255)); 62 al_set_target_bitmap(al_get_backbuffer(display)); 63 al_clear_to_color(al_map_rgb(0, 0, 0)); 64 65 al_draw_text(font, al_map_rgb(255, 0, 0), 0.0f, 0.0f, 0, "Hello"); 66 67 al_draw_rectangle(45.0f, 45.0f, 75.0f, 75.0f, al_map_rgb(255, 255, 255), 1.0f); 68 al_set_blender(ALLEGRO_DEST_MINUS_SRC, ALLEGRO_ALPHA, ALLEGRO_ONE); 69 al_draw_rectangle(45.0f, 45.0f, 75.0f, 75.0f, al_map_rgba(255, 255, 255, 64), 1.0f); 70 al_set_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_INVERSE_ALPHA); 71 72 al_draw_tinted_bitmap(image, al_map_rgba(255, 255, 255, 255), 50.0f, 50.0f, 0); 73 74 al_set_blender(ALLEGRO_DEST_MINUS_SRC, ALLEGRO_ALPHA, ALLEGRO_ONE); 75 al_draw_tinted_bitmap(image, al_map_rgba(255, 255, 255, 128), 50.0f, 50.0f, 0); 76 77 al_flip_display(); 78 79 al_wait_for_event(queue, 0); 80 81 al_destroy_font(font); 82 al_destroy_bitmap(image); 83 al_destroy_event_queue(queue); 84 al_destroy_display(display); 85 86 return 0; 87}

Peter Wang

Thanks for the test case. The bug is due to the change "Optimize D3D9 driver by caching blender state and scissor rectangle so redundant calls to D3D9 functions are avoided."


I searched both here and the wiki but can not find the answer to this question. I had thought it had been answered in the past but just could not find it.

I'm using the prebuilt windows binaries with VS 2008, and when I try to use the audio and acodec plugins, my program opens the ogg file and the allegro.log file shows that the stream is opened and set to play, but I get no sound at all. I had the same problem with the acodec and audio examples when I built A5 from SVN.

I won't be using the audio for a while but just wondered if this is an isolated problem.


Michał Cichoń

Fix is on SVN.


Just a quick question about the SVN versions. Are the 5.0.0RC4 sources still located in the 4.9 branch on SVN or are they in a new 5.0.0 branch?


Matthew Leverton

Short answer: 5.0

All new code is committed to the 5.1 branch first.

Whatever is needed for 5.0 is committed back to the 5.0 branch at release time by Peter. So fixes might not be on 5.0 yet.

Thread #605937. Printed from