X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Ftexture3d.h;h=2498c52658e3279a2dc5cfcbff93e00ccbd05984;hb=f2bb1caa233930e1148613e9d5daa2c29b0fe271;hp=3538f6bba82018b85edd68a69f6686c52e991460;hpb=6065f6622cc275dc0b20baaf7c267e71169d18f3;p=libs%2Fgl.git diff --git a/source/core/texture3d.h b/source/core/texture3d.h index 3538f6bb..2498c526 100644 --- a/source/core/texture3d.h +++ b/source/core/texture3d.h @@ -3,7 +3,7 @@ #include #include -#include "texture.h" +#include "texture3d_backend.h" namespace Msp { namespace GL { @@ -12,8 +12,10 @@ namespace GL { Three-dimensional texture. Consists of an array of texels in the shape of a right cuboid. Texture coordinates have a principal range of [0, 1]. */ -class Texture3D: public Texture +class Texture3D: public Texture3DBackend { + friend Texture3DBackend; + public: class Loader: public Msp::DataFile::DerivedObjectLoader { @@ -29,15 +31,14 @@ public: }; protected: - unsigned width; - unsigned height; - unsigned depth; - unsigned levels; - unsigned allocated; + unsigned width = 0; + unsigned height = 0; + unsigned depth = 0; + unsigned levels = 0; - Texture3D(GLenum); + Texture3D(unsigned); public: - Texture3D(); + Texture3D() = default; /** Defines storage structure for the texture. If lv is zero, the number of mipmap levels is automatically determined from storage dimensions. @@ -46,10 +47,6 @@ public: 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. */ - void allocate(unsigned level); - /** Updates the contents of the entire texture. Storage must be defined beforehand. The image data must have dimensions and format matching the defined storage. */ @@ -67,8 +64,6 @@ public: storage. */ virtual void image(const Graphics::Image &, unsigned = 0); - using Texture::image; - unsigned get_width() const { return width; } unsigned get_height() const { return height; } unsigned get_depth() const { return depth; }