void raw_data(const std::string &);
void storage(PixelFormat, unsigned, unsigned, unsigned);
+ void storage_levels(PixelFormat, unsigned, unsigned, unsigned, unsigned);
};
private:
unsigned width;
unsigned height;
unsigned depth;
+ unsigned levels;
unsigned allocated;
protected:
public:
Texture3D();
- /** Defines storage structure for the texture. Must be called before an
- image can be uploaded. Once storage is defined, it can't be changed. */
- void storage(PixelFormat fmt, unsigned wd, unsigned ht, unsigned dp);
+ /** Defines storage structure for the texture. If lv is zero, the number
+ of mipmap levels is automatically determined from storage dimensions.
+
+ Must be called before an image can be uploaded. Once storage is defined,
+ it can't be changed. */
+ void storage(PixelFormat fmt, unsigned wd, unsigned ht, unsigned dp, unsigned lv = 0);
/** Allocates storage for the texture. The contents are initially
undefined. If storage has already been allocated, does nothing. */
height times its depth.
Deprecated in favor of the base class version.*/
- void load_image(const std::string &fn, int dp = -1);
+ DEPRECATED void load_image(const std::string &fn, int dp = -1);
using Texture::load_image;
If srgb is true and storage is determined by this call, then an sRGB pixel
format will be used. */
- virtual void image(const Graphics::Image &, bool = false);
+ virtual void image(const Graphics::Image &, unsigned, bool = false);
+
+ using Texture::image;
unsigned get_width() const { return width; }
unsigned get_height() const { return height; }