X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fresources%2Fresources.h;h=0633f3c74c802e51c2c4d163dd5d30d382a7e378;hb=e087bfd5a9a850db30c399e95ef3fd8ab48005d1;hp=6f04a26088b1a4d0768185440d1c1ef98ad9b850;hpb=7aaec9a70b8d7733429bec043f8e33e02956f266;p=libs%2Fgl.git diff --git a/source/resources/resources.h b/source/resources/resources.h index 6f04a260..0633f3c7 100644 --- a/source/resources/resources.h +++ b/source/resources/resources.h @@ -9,8 +9,10 @@ namespace GL { class Material; class Mesh; +class Module; class Program; class ResourceManager; +class Scene; class Texture2D; /** @@ -19,20 +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); - void set_default_texture_anisotropy(float); - /** Enables or disables sRGB conversion. If enabled, textures and material colors are converted from sRGB to linear color space when loaded. */ DEPRECATED void set_srgb_conversion(bool); @@ -42,10 +53,16 @@ public: void set_resource_manager(ResourceManager *); protected: - Material *create_material(const std::string &); + template + T *create_generic(const std::string &); + Mesh *create_mesh(const std::string &); Texture2D *create_texture2d(const std::string &); + Module *create_module(const std::string &); Program *create_program(const std::string &); + + template + static void set_debug_name(const std::string &, T &); }; } // namespace GL