namespace Graphics {
ImageLoader::ImageLoader():
- source(0)
+ source(0),
+ state(INITIAL)
{ }
ImageLoader::~ImageLoader()
return loader;
}
+void ImageLoader::load(Image::Data &data)
+{
+ if(state>=FINISHED)
+ throw logic_error("already loaded");
+
+ if(state<HEADERS_LOADED)
+ load_headers_(data);
+ load_pixels_(data);
+ state = FINISHED;
+}
+
+void ImageLoader::load_headers(Image::Data &data)
+{
+ if(state>=HEADERS_LOADED)
+ throw logic_error("headers already loaded");
+
+ load_headers_(data);
+ state = HEADERS_LOADED;
+}
+
ImageLoader::Registry &ImageLoader::get_registry()
{
static Registry registry;