X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fresourcemanager.h;h=1e3cb54f3b439c72fe26811ccd546d6993743327;hb=47abe7c9e1633ca65f910a4db340724117a6f6e5;hp=fb4353350f4c2138a1b4a4d1d541b08bf1016f61;hpb=7db48f2836ec42c6e2dbeff336634a03bc6d7a62;p=libs%2Fgl.git diff --git a/source/resourcemanager.h b/source/resourcemanager.h index fb435335..1e3cb54f 100644 --- a/source/resourcemanager.h +++ b/source/resourcemanager.h @@ -28,8 +28,12 @@ private: std::string name; IO::Seekable *io; Resource::AsyncLoader *loader; + bool loaded; ManagedResource(Resource &); + + void start_loading(); + void finish_loading(); }; class LoadingThread: public Thread @@ -65,12 +69,13 @@ private: void terminate(); }; + typedef std::map ResourceMap; typedef std::list LoadQueue; LoadingPolicy policy; bool async_loads; - std::map resources; - std::list queue; + ResourceMap resources; + LoadQueue queue; LoadingThread thread; public: @@ -81,8 +86,10 @@ public: void set_async_loads(bool); void add_resource(Resource &); + void *get_data_for_resource(const Resource &); void set_resource_location(Resource &, DataFile::Collection &, const std::string &); - void load_resource(const Resource &); + void load_resource(Resource &); + void resource_used(const Resource &); void remove_resource(Resource &); void tick();