X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbackends%2Fopengl%2Ftexture2d_backend.h;h=5de1079537daf16dd08248ca1d3712844223913d;hb=c218e021ede4e91c0fbc22ea9d636283409f847f;hp=595c51f51ea38e76233f1617f37ea4398095a190;hpb=ef650a483b4201a1e9727f9a86e59894344d30e8;p=libs%2Fgl.git diff --git a/source/backends/opengl/texture2d_backend.h b/source/backends/opengl/texture2d_backend.h index 595c51f5..5de10795 100644 --- a/source/backends/opengl/texture2d_backend.h +++ b/source/backends/opengl/texture2d_backend.h @@ -11,6 +11,20 @@ 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(); @@ -19,8 +33,10 @@ protected: 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(); +public: + virtual Resource::AsyncLoader *load(IO::Seekable &, const Resources * = 0); + virtual std::size_t get_data_size() const; + virtual void unload(); }; using Texture2DBackend = OpenGLTexture2D;