Sprite loading problem


I was searching for the answer in many places but nobody could help me yet. like this:

1al_init(); 2 ALLEGRO_DISPLAY *display = al_create_display(640, 480); 3 al_set_window_title(display, "Allegro 5"); 4 al_clear_to_color(al_map_rgba(0, 0, 0, 255)); 5 // koniec inicjalizacji okna - jest ok. 6 7 if(!al_init_image_addon()) 8 return -1; 9 10 if(!al_filename_exists("D:/C++/Allegro_drawing/Allegro_drawing/sprite.bmp")) 11 return -4; 12 13 if(!al_is_system_installed()) 14 return -5; 15 16 ALLEGRO_BITMAP *img = al_load_bitmap("sprite.bmp"); 17 if(!img) 18 return -2;

Sprite is in the internal directory named like the project (as you can see). It always ends returning -2. I included needed header files.
So what could possibly go wrong?


"D:/C++/Allegro_drawing/Allegro_drawing/sprite.bmp" != "sprite.bmp"
What's your operating system?


Windows xp home

It is not equal in theory, but it is also the directory where main.cpp is. When i load font this way it works.

Edgar Reynaldo

If you use a relative path like sprite.bmp, then you have to run the program from the same directory as sprite.bmp, or the same directory as your program, if they're the same.


You can set the current directory to where the executable is like this, if that's where your data is:

if (!appdir)
    return -6;
if (!al_change_directory(al_path_cstr(appdir)))
    return -7;

If that doesn't work, maybe the BMP file is an a weird format?


But when i do sth like:
it also doesn't load my sprite. Why is that? Its not a relative path then.


As Torhu mentioned, the BMP file could be in a wrong format. Try loading/saving it with MS Paint, and see if the problem persists.


Yeah, this totally worked :D
Thx, but one more question - if for example i'm using photoshop to edit pictures, with what parameters i should save them with?


According to this thread, somebody had similar problem with a 32bit BMP, 24bit was fine.
If you can provide a sample non-loading bitmap, Allegro coders can have a look at what's the problem with such images.

(edit: From looking at the source, the load routine will only accept some very specific R G B bitmasks... for 32bit, only ARGB order is accepted.)

Arthur Kalliokoski

Photoshop should be able to save to .png or possibly .tga.


Thanks guyz ;)

Thread #607370. Printed from Allegro.cc