A structure specifying parameters related to transferring data to or from a texture.
Defined in <SDL3/SDL_gpu.h>
typedef struct SDL_GPUTextureTransferInfo
{/**< The transfer buffer used in the transfer operation. */
SDL_GPUTransferBuffer *transfer_buffer; /**< The starting byte of the image data in the transfer buffer. */
Uint32 offset; /**< The number of pixels from one row to the next. */
Uint32 pixels_per_row; /**< The number of rows from one layer/depth-slice to the next. */
Uint32 rows_per_layer; } SDL_GPUTextureTransferInfo;
If either of pixels_per_row
or rows_per_layer
is zero, then width and height of passed SDL_GPUTextureRegion to SDL_UploadToGPUTexture or SDL_DownloadFromGPUTexture are used as default values respectively and data is considered to be tightly packed.
WARNING: Direct3D 12 requires texture data row pitch to be 256 byte aligned, and offsets to be aligned to 512 bytes. If they are not, SDL will make a temporary copy of the data that is properly aligned, but this adds overhead to the transfer process. Apps can avoid this by aligning their data appropriately, or using a different GPU backend than Direct3D 12.
This struct is available since SDL 3.2.0.