]> git.tdb.fi Git - libs/gl.git/blobdiff - source/resources/resources.h
Rearrange soucre files into subdirectories
[libs/gl.git] / source / resources / resources.h
diff --git a/source/resources/resources.h b/source/resources/resources.h
new file mode 100644 (file)
index 0000000..6f04a26
--- /dev/null
@@ -0,0 +1,54 @@
+#ifndef MSP_GL_RESOURCES_H_
+#define MSP_GL_RESOURCES_H_
+
+#include <msp/datafile/collection.h>
+#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