X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgraphics%2Fimageloader.h;h=1ad6cc8c895aad812264df8663920cd6a56f6528;hb=054fca09f0bbd64fdbd6406a0643de938a9cd4fb;hp=9dc17269ef7d8054224492ad792795f0ad133afd;hpb=7672cbffb3efd3cce448f85a5e0acd4bed7ec0dd;p=libs%2Fgui.git diff --git a/source/graphics/imageloader.h b/source/graphics/imageloader.h index 9dc1726..1ad6cc8 100644 --- a/source/graphics/imageloader.h +++ b/source/graphics/imageloader.h @@ -23,6 +23,14 @@ public: class ImageLoader { +public: + enum State + { + INITIAL, + HEADERS_LOADED, + FINISHED + }; + protected: class RegisterBase { @@ -56,6 +64,7 @@ protected: private: IO::Base *source; + State state; protected: ImageLoader(); @@ -65,7 +74,14 @@ public: static ImageLoader *open_file(const std::string &); static ImageLoader *open_io(IO::Seekable &); - virtual void load(Image::Data &) = 0; + virtual void load(Image::Data &); + virtual void load_headers(Image::Data &); +protected: + virtual void load_headers_(Image::Data &) = 0; + virtual void load_pixels_(Image::Data &) = 0; + +public: + State get_state() const { return state; } template static void register_loader();