+ private:
+ Texture2D *texture = 0;
+ unsigned level = 0;
+ unsigned x = 0;
+ unsigned y = 0;
+ unsigned width = 0;
+ unsigned height = 0;
+ std::size_t data_size = 0;
+ void *dest_addr = 0;
+
+ AsyncTransfer(Texture2D &, unsigned, unsigned, unsigned, unsigned, unsigned);
+ public:
+ AsyncTransfer() = default;
+ AsyncTransfer(AsyncTransfer &&);
+ AsyncTransfer &operator=(AsyncTransfer &&);
+ ~AsyncTransfer();