]> git.tdb.fi Git - libs/gl.git/blobdiff - source/texture2d.h
Generalize shader interface handling
[libs/gl.git] / source / texture2d.h
index 35346e0091e2bbc8a24bf827bec4a96d921cbbd8..dce58a7873213e772381582e490c11363f8557b6 100644 (file)
@@ -22,7 +22,10 @@ public:
        {
        public:
                Loader(Texture2D &);
+               Loader(Texture2D &, Collection &);
        private:
+               void init();
+
                void image_data(const std::string &);
                void raw_data(const std::string &);
                void storage(PixelFormat, unsigned, unsigned);
@@ -45,7 +48,7 @@ public:
        /** Allocates storage for the texture.  The contents are initially
        undefined.  If storage has already been allocated, does nothing. */
        void allocate(unsigned level);
-       
+
        /** Uploads an image to the texture.  Storage must be defined beforehand.
        The image data must have dimensions and format compatible with the defined
        storage. */
@@ -60,13 +63,14 @@ public:
        /** Loads an image from a file and uploads it to the texture.  If storage
        has not been defined, it will be set to match the loaded image.  Otherwise
        the image must be compatible with the defined storage. */
-       void load_image(const std::string &fn);
+       void load_image(const std::string &fn, bool srgb = false);
 
-private:
-       void image(const Graphics::Image &);
+       /** Uploads an image to the texture.  If storage has not been defined, it
+       will be set to match the image.  Otherwise the image must be compatible with
+       the defined storage. */
+       void image(const Graphics::Image &, bool srgb = false);
 
-public:
-       unsigned get_width() const  { return width; }
+       unsigned get_width() const { return width; }
        unsigned get_height() const { return height; }
 
 private: