X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fresources%2Fresources.h;fp=source%2Fresources%2Fresources.h;h=6f04a26088b1a4d0768185440d1c1ef98ad9b850;hb=7aaec9a70b8d7733429bec043f8e33e02956f266;hp=0000000000000000000000000000000000000000;hpb=bec07999d95b76f4b47cffcc564d0cd0afc0435e;p=libs%2Fgl.git diff --git a/source/resources/resources.h b/source/resources/resources.h new file mode 100644 index 00000000..6f04a260 --- /dev/null +++ b/source/resources/resources.h @@ -0,0 +1,54 @@ +#ifndef MSP_GL_RESOURCES_H_ +#define MSP_GL_RESOURCES_H_ + +#include +#include "texture.h" + +namespace Msp { +namespace GL { + +class Material; +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. */ + DEPRECATED void set_srgb_conversion(bool); + + DEPRECATED bool get_srgb_conversion() const { return srgb_conversion; } + + void set_resource_manager(ResourceManager *); + +protected: + Material *create_material(const std::string &); + Mesh *create_mesh(const std::string &); + Texture2D *create_texture2d(const std::string &); + Program *create_program(const std::string &); +}; + +} // namespace GL +} // namespace Msp + +#endif