]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/texture2dmultisample.h
Check the flat qualifier from the correct member
[libs/gl.git] / source / core / texture2dmultisample.h
index cb086f0d85dbecaade0d227441ad16bab3a1d838..8e234835e182fee9f6845b3ed4783a5ec7f00cde 100644 (file)
@@ -1,31 +1,40 @@
 #ifndef MSP_GL_TEXTURE2DMULTISAMPLE_H_
 #define MSP_GL_TEXTURE2DMULTISAMPLE_H_
 
-#include "texture.h"
+#include "texture2dmultisample_backend.h"
 
 namespace Msp {
 namespace GL {
 
-class Texture2DMultisample: public Texture
+/**
+Two-dimensional multisample texture, consisting of a rectancular array of
+texels with multiple samples each.
+
+The contents of multisample textures can not be set through API.  Their primary
+use is as Framebuffer attachments.
+
+Multisample textures can't have mipmaps.
+*/
+class Texture2DMultisample: public Texture2DMultisampleBackend
 {
+       friend Texture2DMultisampleBackend;
+
 private:
-       unsigned width;
-       unsigned height;
-       unsigned samples;
+       unsigned width = 0;
+       unsigned height = 0;
+       unsigned samples = 0;
 
 public:
-       Texture2DMultisample();
-
-       void storage(PixelFormat fmt, unsigned wd, unsigned ht, unsigned sm);
+       /** Sets storage dimensions, format and sample count and allocates memory
+       for the texture. */
+       void storage(PixelFormat, unsigned wd, unsigned ht, unsigned sm);
 
+       virtual void image(unsigned, const void *);
        virtual void image(const Graphics::Image &, unsigned = 0);
 
        unsigned get_width() const { return width; }
        unsigned get_height() const { return height; }
-
-       virtual AsyncLoader *load(IO::Seekable &, const Resources * = 0) { return 0; }
-       virtual UInt64 get_data_size() const;
-       virtual void unload() { }
+       unsigned get_samples() const { return samples; }
 };
 
 } // namespace GL