Allegro.cc - Online Community

Allegro.cc Forums » Programming Questions » Sprite loading problem

This thread is locked; no one can reply to it. rss feed Print
Sprite loading problem
auliszek
Member #12,875
May 2011

Hi

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

#SelectExpand
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?

weapon_S
Member #7,859
October 2006
avatar

auliszek
Member #12,875
May 2011

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
Member #8,592
May 2007
avatar

torhu
Member #2,727
September 2002
avatar

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

ALLEGRO_PATH appdir = al_get_standard_path(ALLEGRO_RESOURCES_PATH, ALLEGRO_NATIVE_PATH_SEP);
if (!appdir)
    return -6;
if (!al_change_directory(al_path_cstr(appdir)))
    return -7;
al_destroy_path(appdir);

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

auliszek
Member #12,875
May 2011

But when i do sth like:
al_load_bitmap("D:/C++/Allegro_drawing/Allegro_drawing/sprite.bmp");
it also doesn't load my sprite. Why is that? Its not a relative path then.

LennyLen
Member #5,313
December 2004
avatar

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.

auliszek
Member #12,875
May 2011

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?

Audric
Member #907
January 2001

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
Second in Command
February 2005
avatar

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

“Throughout history, poverty is the normal condition of man. Advances which permit this norm to be exceeded — here and there, now and then — are the work of an extremely small minority, frequently despised, often condemned, and almost always opposed by all right-thinking people. Whenever this tiny minority is kept from creating, or (as sometimes happens) is driven out of a society, the people then slip back into abject poverty. This is known as "bad luck.”

― Robert A. Heinlein

auliszek
Member #12,875
May 2011

Thanks guyz ;)

Go to: