void load_external_image(Graphics::Image &, const std::string &);
private:
- void external_image(const std::string &);
- void external_image_srgb(const std::string &);
- void external_image_common(const std::string &);
+ void external_data(const std::string &);
+ void external_image(bool, const std::string &);
void generate_mipmap(bool);
void image_data(const std::string &);
void mipmap_levels(unsigned);
+ void raw_data(const std::string &);
};
public:
};
protected:
- enum FormatSwizzle
- {
- NO_SWIZZLE,
- R_TO_LUMINANCE,
- RG_TO_LUMINANCE_ALPHA,
- RGB_TO_BGR
- };
-
PixelFormat format;
PixelFormat storage_fmt;
- FormatSwizzle swizzle;
+ ComponentSwizzle swizzle;
bool use_srgb_format;
bool auto_gen_mipmap;
using TextureBackend::generate_mipmap;
+ /** Replaces contents of an entire mipmap level. Allocated storage must
+ exist. The image data is interpreted according to the storage format and
+ must have size matching the selected mipmap level. */
+ virtual void image(unsigned level, const void *) = 0;
+
/** Loads an image into the texture from a file. */
virtual void load_image(const std::string &, unsigned = 0);