X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fresources.h;h=238d6c544c373c4fdde4848784600a6246e8a1b1;hp=8871c16e0b2648767bc3586727982d8c0bcfa296;hb=94ee5852b42b05559069596e205dc2f000e6153f;hpb=b30209f7d9c984ee03df779446fa4ad5f9334865 diff --git a/source/resources.h b/source/resources.h index 8871c16e..238d6c54 100644 --- a/source/resources.h +++ b/source/resources.h @@ -7,20 +7,43 @@ namespace Msp { namespace GL { +class Mesh; +class Program; +class ResourceManager; class Texture2D; +/** +A collection class for GL resources. Most useful as a base class for an +application-specific collection. +*/ class Resources: virtual public DataFile::Collection { private: TextureFilter default_tex_filter; + float default_tex_anisotropy; + bool srgb_conversion; + ResourceManager *resource_manager; public: Resources(); + 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. */ + void set_srgb_conversion(bool); + + bool get_srgb_conversion() const { return srgb_conversion; } + + void set_resource_manager(ResourceManager *); protected: + Mesh *create_mesh(const std::string &); Texture2D *create_texture2d(const std::string &); + Program *create_program(const std::string &); }; } // namespace GL