Allegro.cc - Online Community

Allegro.cc Forums » Programming Questions » preloaded resources

This thread is locked; no one can reply to it. rss feed Print
preloaded resources
JeriXNet
Member #14,368
June 2012
avatar

I'm using Allegro 5.1.2 and have all resources embedded in exe through zip.
On application start I unpack archive and get files one by one already loaded in memory.
So there is simple question I didn't found answer to (on site, wiki or forums):
Can allegro use that already preloaded data for resources somehow? Maybe through ALLEGRO_FILE_INTERFACE???
thx in advance;)

Arthur Kalliokoski
Second in Command
February 2005
avatar

Do you have the examples? Check out ex_memfile.c.

Also in the manual: http://www.allegro.cc/manual/5/memfile.html

They all watch too much MSNBC... they get ideas.

JeriXNet
Member #14,368
June 2012
avatar

Oh, thank you, that's just what I was needed:)
Wondering about why I didn't find it by myself...

SiegeLord
Member #7,827
October 2006
avatar

You can also skip the manual unpacking step and mount the archive directly with PhysFS (using PHYSFS_mountMemory) and then use the standard Allegro loading functions via the PhysFS addon.

PHYSFS_mountMemory(zip_data_ptr, zip_data_length, NULL, ".zip", NULL, 0);
al_set_physfs_file_interface();
al_load_bitmap("blah.bmp") // Will try loading from the zip file first

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

JeriXNet
Member #14,368
June 2012
avatar

"You can also skip the manual unpacking step and mount the archive directly with PhysFS (using PHYSFS_mountMemory [icculus.org])"

Yep, I saw this function on physfs manual, but it is now only in unstable version of physfs 2.1.0.
I've tried out the function, but there was many strange run-time errors and I rolled back to 2.0.2.

Now I'm using minizip from zlib distribution and "Justin Fletcher very simple implementation of a memory access method for the ioapi code (ioapi_mem_c.zip)" from here
and that all works perfectly!

P.S. sorry for my english

Go to: