--- /dev/null
+#ifndef MSP_GL_TEXTURE2D_BACKEND_H_
+#define MSP_GL_TEXTURE2D_BACKEND_H_
+
+#include "texture.h"
+
+namespace Msp {
+namespace GL {
+
+class Buffer;
+
+class OpenGLTexture2D: public Texture
+{
+protected:
+ class AsyncLoader;
+
+ OpenGLTexture2D(ResourceManager *);
+
+ void allocate();
+ void sub_image(unsigned, int, int, unsigned, unsigned, const void *);
+ void sub_image(unsigned, int, int, unsigned, unsigned, const Buffer &, unsigned);
+
+ Resource::AsyncLoader *create_async_loader(IO::Seekable &);
+ void unload();
+};
+
+using Texture2DBackend = OpenGLTexture2D;
+
+} // namespace GL
+} // namespace Msp
+
+#endif