X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgraphics%2Fimageloader.cpp;h=fa6fcf802b2a57eb6d852e34c6363d375e521ba4;hb=054fca09f0bbd64fdbd6406a0643de938a9cd4fb;hp=b2a126e79df5de3f64864fc5942f6f51a13ffc5b;hpb=7672cbffb3efd3cce448f85a5e0acd4bed7ec0dd;p=libs%2Fgui.git diff --git a/source/graphics/imageloader.cpp b/source/graphics/imageloader.cpp index b2a126e..fa6fcf8 100644 --- a/source/graphics/imageloader.cpp +++ b/source/graphics/imageloader.cpp @@ -22,7 +22,8 @@ namespace Msp { namespace Graphics { ImageLoader::ImageLoader(): - source(0) + source(0), + state(INITIAL) { } ImageLoader::~ImageLoader() @@ -83,6 +84,26 @@ ImageLoader *ImageLoader::open_io(IO::Seekable &io) return loader; } +void ImageLoader::load(Image::Data &data) +{ + if(state>=FINISHED) + throw logic_error("already loaded"); + + if(state=HEADERS_LOADED) + throw logic_error("headers already loaded"); + + load_headers_(data); + state = HEADERS_LOADED; +} + ImageLoader::Registry &ImageLoader::get_registry() { static Registry registry;