]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/texture2darray.h
Check the flat qualifier from the correct member
[libs/gl.git] / source / core / texture2darray.h
index 21930f882e813a1240b5fe30eda5deb87b2c30f0..98cb1bdc13917871abcd21b2742ab0e367e57b46 100644 (file)
@@ -1,17 +1,18 @@
 #ifndef MSP_GL_TEXTURE2DARRAY_H_
 #define MSP_GL_TEXTURE2DARRAY_H_
 
-#include "texture3d.h"
+#include "texture2darray_backend.h"
 
 namespace Msp {
 namespace GL {
 
 /**
-An array of two-dimensional textures.  It's very much like a 3D texture, with
-two important differences: there's no filtering nor mipmapping along the third
-dimension.
+An array of two-dimensional textures.  It behaves much like a 3D texture, but
+mipmapping and filtering is not applied on the third dimension.  When sampling
+the texture, the third coordinate is not normalized and is rounded to the
+nearest integer to select the layer.
 */
-class Texture2DArray: public Texture3D
+class Texture2DArray: public Texture2DArrayBackend
 {
 public:
        class Loader: public Msp::DataFile::DerivedObjectLoader<Texture2DArray, Texture3D::Loader>
@@ -25,9 +26,11 @@ public:
                void external_image(unsigned, const std::string &);
        };
 
-       Texture2DArray();
-
+       /** Replaces contents of a single layer.  Allocated storage must exist.  The
+       image data is interpreted according to the storage format and must have
+       width and height matching the selected mipmap level. */
        void layer_image(unsigned, unsigned, const void *);
+
        void layer_image(unsigned, unsigned, const Graphics::Image &);
 
        unsigned get_layers() const { return get_depth(); }