X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgraphics%2Fdevil%2Fdevilloader.cpp;h=a6693080748a001b87612615920e477e642b1018;hb=054fca09f0bbd64fdbd6406a0643de938a9cd4fb;hp=e837154ecc3ed4730ba4d469a7023c8ce0724418;hpb=b74b0945b2e19c32f05d8bcb016cc9434c99979d;p=libs%2Fgui.git diff --git a/source/graphics/devil/devilloader.cpp b/source/graphics/devil/devilloader.cpp index e837154..a669308 100644 --- a/source/graphics/devil/devilloader.cpp +++ b/source/graphics/devil/devilloader.cpp @@ -101,7 +101,7 @@ bool DevilLoader::detect(const string &sig) return type!=IL_TYPE_UNKNOWN; } -void DevilLoader::load(Image::Data &data) +void DevilLoader::load_headers_(Image::Data &data) { ilSetRead(0, 0, eof, get, read, seek, tell); ilBindImage(id); @@ -125,13 +125,21 @@ void DevilLoader::load(Image::Data &data) data.width = ilGetInteger(IL_IMAGE_WIDTH); data.height = ilGetInteger(IL_IMAGE_HEIGHT); data.stride = data.width*ilGetInteger(IL_IMAGE_BYTES_PER_PIXEL); + + ilBindImage(0); + ilResetRead(); +} + +void DevilLoader::load_pixels_(Image::Data &data) +{ + ilBindImage(id); + unsigned data_size = data.stride*data.height; data.pixels = new char[data_size]; ILubyte *il_data = ilGetData(); copy(il_data, il_data+data_size, data.pixels); ilBindImage(0); - ilResetRead(); } } // namespace Graphics