X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Ftexture2d.h;h=c6654df69222859a0a284c468c9859a737127d8c;hb=be6ffe96ecb4707599fe1a6f620c348760213d46;hp=eba553b00c27089e44300424166afee3f8a6b54b;hpb=ada4b7614137221b64a00f31fde1498064e9fb19;p=libs%2Fgl.git diff --git a/source/core/texture2d.h b/source/core/texture2d.h index eba553b0..c6654df6 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,14 +32,11 @@ public: }; private: - class AsyncLoader; - - unsigned width; - unsigned height; - unsigned levels; + unsigned width = 0; + unsigned height = 0; + unsigned levels = 0; public: - Texture2D(ResourceManager * = 0); virtual ~Texture2D(); /** Defines storage structure for the texture. If lv is zero, the number @@ -63,12 +61,6 @@ public: image must match the defined storage. */ virtual void image(const Graphics::Image &, unsigned lv = 0); - using Texture::image; - -private: - void image(const Graphics::Image &, unsigned, bool); - -public: unsigned get_width() const { return width; } unsigned get_height() const { return height; } @@ -78,8 +70,8 @@ private: public: virtual Resource::AsyncLoader *load(IO::Seekable &, const Resources * = 0); - virtual std::uint64_t get_data_size() const; - virtual void unload(); + virtual std::size_t get_data_size() const; + using Texture2DBackend::unload; }; } // namespace GL