]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/imageloader.cpp
Add some state checking to ImageLoader
[libs/gui.git] / source / graphics / imageloader.cpp
index b2a126e79df5de3f64864fc5942f6f51a13ffc5b..2c6ce217381f4dcbf1f33bec50104eeee6c1987c 100644 (file)
@@ -22,7 +22,8 @@ namespace Msp {
 namespace Graphics {
 
 ImageLoader::ImageLoader():
-       source(0)
+       source(0),
+       state(INITIAL)
 { }
 
 ImageLoader::~ImageLoader()
@@ -83,6 +84,15 @@ ImageLoader *ImageLoader::open_io(IO::Seekable &io)
        return loader;
 }
 
+void ImageLoader::load(Image::Data &data)
+{
+       if(state>=FINISHED)
+               throw logic_error("already loaded");
+
+       load_(data);
+       state = FINISHED;
+}
+
 ImageLoader::Registry &ImageLoader::get_registry()
 {
        static Registry registry;