]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/opengl/texture2d_backend.h
Refactor Texture2D::AsyncLoader to use sub_image_async
[libs/gl.git] / source / backends / opengl / texture2d_backend.h
index af9f482cbf039c47e6bb17190bfdf7966701032a..f9b5abfede4560ab55ca4e77a54e68b03e59296f 100644 (file)
@@ -11,13 +11,26 @@ class Buffer;
 class OpenGLTexture2D: public Texture
 {
 protected:
+       class AsyncTransfer: public NonCopyable
+       {
+       protected:
+               Buffer *pixel_buffer = 0;
+
+               AsyncTransfer() = default;
+               AsyncTransfer(AsyncTransfer &&);
+               AsyncTransfer &operator=(AsyncTransfer &&);
+               ~AsyncTransfer();
+
+               void *allocate();
+               void finalize();
+       };
+
        class AsyncLoader;
 
        OpenGLTexture2D();
 
        void allocate();
        void sub_image(unsigned, int, int, unsigned, unsigned, const void *);
-       void sub_image(unsigned, int, int, unsigned, unsigned, const Buffer &, unsigned);
 
 public:
        virtual Resource::AsyncLoader *load(IO::Seekable &, const Resources * = 0);