namespace Msp {
namespace GL {
+/**
+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_samples() const { return samples; }
virtual AsyncLoader *load(IO::Seekable &, const Resources * = 0) { return 0; }
- virtual std::uint64_t get_data_size() const;
+ virtual std::size_t get_data_size() const;
virtual void unload() { }
};