#include <string>
#include <msp/linal/vector.h>
-#include "texture.h"
+#include "texture3d_backend.h"
namespace Msp {
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<Texture3D, Texture::Loader>
{
unsigned height;
unsigned depth;
unsigned levels;
- unsigned allocated;
- Texture3D(GLenum);
+ Texture3D(unsigned);
public:
Texture3D();
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. */