]> git.tdb.fi Git - libs/gl.git/blobdiff - source/resourcemanager.h
Make resource locations externally accessible
[libs/gl.git] / source / resourcemanager.h
index e83a61328e590c528d1c05f7157dea0d523e995d..f554b3484c7e006006d9b292bc803aea136f9e50 100644 (file)
@@ -31,6 +31,15 @@ public:
                LOAD_MANUALLY
        };
 
+       struct ResourceLocation
+       {
+               DataFile::Collection *collection;
+               std::string name;
+
+               ResourceLocation();
+               ResourceLocation(DataFile::Collection &, const std::string &);
+       };
+
 private:
        struct ManagedResource
        {
@@ -45,8 +54,7 @@ private:
                };
 
                Resource *resource;
-               DataFile::Collection *collection;
-               std::string name;
+               ResourceLocation location;
                IO::Seekable *io;
                Resource::AsyncLoader *loader;
                State state;
@@ -126,6 +134,8 @@ public:
        void add_resource(Resource &);
        void *get_data_for_resource(const Resource &);
        void set_resource_location(Resource &, DataFile::Collection &, const std::string &);
+       void set_resource_location(Resource &, const ResourceLocation &);
+       const ResourceLocation *get_resource_location(const Resource &) const;
        void load_resource(Resource &);
        bool is_resource_loaded(const Resource &);
        void resource_used(const Resource &);