X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fresources%2Fresources.h;h=82d2f4c6798e4a9019380894b314aa56ad9aed57;hp=3036c2f463ef44425d0a4f48939a84fb363aae37;hb=fe2fc291a4fc618425c64112c9ffd3519f0b8a3e;hpb=dccad64b2ec82249d850b9745614042171499972 diff --git a/source/resources/resources.h b/source/resources/resources.h index 3036c2f4..82d2f4c6 100644 --- a/source/resources/resources.h +++ b/source/resources/resources.h @@ -12,6 +12,7 @@ class Mesh; class Module; class Program; class ResourceManager; +class Scene; class Texture2D; /** @@ -20,15 +21,29 @@ application-specific collection. */ class Resources: virtual public DataFile::Collection { +public: + class Loader: public DataFile::DerivedObjectLoader + { + public: + Loader(Resources &); + + private: + void scene(const std::string &); + }; + private: TextureFilter default_tex_filter; float default_tex_anisotropy; bool srgb_conversion; ResourceManager *resource_manager; + static Resources *global_resources; + public: - Resources(); + Resources(bool = true); + virtual ~Resources(); + static Resources &get_global(); static const DataFile::CollectionSource &get_builtins(); void set_default_texture_filter(TextureFilter); @@ -45,9 +60,13 @@ public: protected: Material *create_material(const std::string &); Mesh *create_mesh(const std::string &); + Scene *create_scene(const std::string &); Texture2D *create_texture2d(const std::string &); Module *create_module(const std::string &); Program *create_program(const std::string &); + + template + void set_debug_name(const std::string &, T &); }; } // namespace GL