class Texture2D: public Texture
{
public:
- class Loader: public Texture::Loader
+ class Loader: public Msp::DataFile::DerivedObjectLoader<Texture2D, Texture::Loader>
{
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);
/** 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. */
/** 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: