X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Ftexture2d.h;h=a2454b76b3e613dd552599a2e545d7aef4716d0a;hb=160e9eea29bd10034733d59507fa1bcca36be401;hp=b3a5a749bd8fe987b0078b8e5b6cdf47c4d9712b;hpb=6065f6622cc275dc0b20baaf7c267e71169d18f3;p=libs%2Fgl.git diff --git a/source/core/texture2d.h b/source/core/texture2d.h index b3a5a749..a2454b76 100644 --- a/source/core/texture2d.h +++ b/source/core/texture2d.h @@ -2,9 +2,8 @@ #define MSP_GL_TEXTURE2D_H_ #include -#include #include -#include "texture.h" +#include "texture2d_backend.h" namespace Msp { namespace GL { @@ -14,8 +13,10 @@ Two-dimensional texture. Consists of an array of texels in the shape of a rectangle. Texture coordinate have a range of [0, 1]. Coordinates outside of this range are subject to wrapping. This is the most common type of texture. */ -class Texture2D: public Texture +class Texture2D: public Texture2DBackend { + friend Texture2DBackend; + public: class Loader: public Msp::DataFile::DerivedObjectLoader { @@ -31,12 +32,9 @@ public: }; private: - class AsyncLoader; - unsigned width; unsigned height; unsigned levels; - unsigned allocated; public: Texture2D(ResourceManager * = 0); @@ -49,10 +47,6 @@ public: it can't be changed. */ void storage(PixelFormat fmt, unsigned wd, unsigned ht, 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. */ @@ -70,10 +64,6 @@ public: using Texture::image; -private: - void image(const Graphics::Image &, unsigned, bool); - -public: unsigned get_width() const { return width; } unsigned get_height() const { return height; } @@ -84,7 +74,7 @@ private: public: virtual Resource::AsyncLoader *load(IO::Seekable &, const Resources * = 0); virtual std::uint64_t get_data_size() const; - virtual void unload(); + using Texture2DBackend::unload; }; } // namespace GL