# SDL_GPUTextureTransferInfo A structure specifying parameters related to transferring data to or from a texture. ## Header File Defined in [<SDL3/SDL_gpu.h>](https://github.com/libsdl-org/SDL/blob/main/include/SDL3/SDL_gpu.h) ## Syntax ```c typedef struct SDL_GPUTextureTransferInfo { SDL_GPUTransferBuffer *transfer_buffer; /**< The transfer buffer used in the transfer operation. */ Uint32 offset; /**< The starting byte of the image data in the transfer buffer. */ Uint32 pixels_per_row; /**< The number of pixels from one row to the next. */ Uint32 rows_per_layer; /**< The number of rows from one layer/depth-slice to the next. */ } SDL_GPUTextureTransferInfo; ``` ## Remarks If either of `pixels_per_row` or `rows_per_layer` is zero, then width and height of passed [SDL_GPUTextureRegion](SDL_GPUTextureRegion) to [SDL_UploadToGPUTexture](SDL_UploadToGPUTexture) or [SDL_DownloadFromGPUTexture](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. ## Version This struct is available since SDL 3.2.0. ## See Also - [SDL_UploadToGPUTexture](SDL_UploadToGPUTexture) - [SDL_DownloadFromGPUTexture](SDL_DownloadFromGPUTexture) ---- [CategoryAPI](CategoryAPI), [CategoryAPIStruct](CategoryAPIStruct), [CategoryGPU](CategoryGPU)