class OpenGLTexture2D: public Texture
{
protected:
- class AsyncLoader;
+ class AsyncTransfer: public NonCopyable
+ {
+ protected:
+ Buffer *pixel_buffer = 0;
+
+ AsyncTransfer() = default;
+ AsyncTransfer(AsyncTransfer &&);
+ AsyncTransfer &operator=(AsyncTransfer &&);
+ ~AsyncTransfer();
+
+ void *allocate();
+ void finalize();
+ };
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);
virtual std::size_t get_data_size() const;
virtual void unload();
};