Structure describing a texture update operation to be scheduled by IGPUUploadManager::ScheduleTextureUpdate(). More...
#include <GPUUploadManager.h>
Public Attributes | |
| IDeviceContext * | pContext = nullptr |
| ITexture * | pDstTexture = nullptr |
| TEXTURE_FORMAT | Format = TEX_FORMAT_UNKNOWN |
| Destination texture format, used when pDstTexture is null. | |
| RESOURCE_STATE_TRANSITION_MODE | DstTextureTransitionMode = RESOURCE_STATE_TRANSITION_MODE_TRANSITION |
| Uint32 | DstMipLevel = 0 |
| Uint32 | DstSlice = 0 |
| Box | DstBox = {} |
| Destination box in the texture where the update will be applied. | |
| const void * | pSrcData = nullptr |
| Uint64 | Stride = 0 |
| Source data stride in bytes. | |
| Uint64 | DepthStride = 0 |
| Source data depth stride in bytes. | |
| WriteStagingTextureDataCallbackType | WriteDataCallback = nullptr |
| void * | pWriteDataCallbackUserData = nullptr |
| Optional pointer to user data that will be passed to the WriteDataCallback. | |
| CopyStagingTextureCallbackType | CopyTexture = nullptr |
| CopyStagingD3D11TextureCallbackType | CopyD3D11Texture = nullptr |
| void * | pCopyTextureData = nullptr |
| Optional pointer to user data that will be passed to the CopyTexture callback. | |
| GPUTextureUploadEnqueuedCallbackType | UploadEnqueued = nullptr |
| void * | pUploadEnqueuedData = nullptr |
| Optional pointer to user data that will be passed to the UploadEnqueued callback. | |
Structure describing a texture update operation to be scheduled by IGPUUploadManager::ScheduleTextureUpdate().
| CopyStagingD3D11TextureCallbackType Diligent::ScheduleTextureUpdateInfo::CopyD3D11Texture = nullptr |
Optional Direct3D11-specific callback to perform the copy operation. This callback is only called for Direct3D11 backend.
| CopyStagingTextureCallbackType Diligent::ScheduleTextureUpdateInfo::CopyTexture = nullptr |
Optional callback to perform the copy operation. If this parameter is null, the manager will perform the copy from the source data to the destination texture using its internal staging buffer and copy command. If the callback is provided, it must perform the copy operation itself. The manager will pass the necessary parameters to the callback.
| Uint32 Diligent::ScheduleTextureUpdateInfo::DstMipLevel = 0 |
Destination mip level in the texture where the update will be applied. This parameter is ignored if CopyTexture callback is provided.
| Uint32 Diligent::ScheduleTextureUpdateInfo::DstSlice = 0 |
Destination array slice in the texture where the update will be applied. This parameter is ignored if CopyTexture callback is provided.
| RESOURCE_STATE_TRANSITION_MODE Diligent::ScheduleTextureUpdateInfo::DstTextureTransitionMode = RESOURCE_STATE_TRANSITION_MODE_TRANSITION |
State transition mode for the destination texture. This parameter is ignored if CopyTexture/CopyD3D11Texture callback is provided, and the callback is expected to perform any necessary state transitions itself.
| IDeviceContext* Diligent::ScheduleTextureUpdateInfo::pContext = nullptr |
If calling ScheduleTextureUpdate() from the render thread, a pointer to the device context. If calling ScheduleTextureUpdate() from a worker thread, this parameter must be null.
| ITexture* Diligent::ScheduleTextureUpdateInfo::pDstTexture = nullptr |
Pointer to the destination texture to update. If CopyTexture callback is provided, the manager will keep a reference to the texture until the copy operation is scheduled by the callback. Otherwise, this texture will be used as the destination for the copy operation
| const void* Diligent::ScheduleTextureUpdateInfo::pSrcData = nullptr |
Pointer to the source data to copy to the destination texture. The manager makes an internal copy of the source data, so the memory pointed to by this parameter can be safely released or reused after the method returns. If WriteDataCallback callback is provided, this parameter will be ignored, and the callback must write the source data to the staging texture when requested by the manager.
| GPUTextureUploadEnqueuedCallbackType Diligent::ScheduleTextureUpdateInfo::UploadEnqueued = nullptr |
Optional callback to be called when the GPU copy operation is scheduled for execution. If CopyTexture is provided, the callback will not be called, and the CopyTexture callback is expected to perform any necessary follow-up actions after scheduling the copy operation.
| WriteStagingTextureDataCallbackType Diligent::ScheduleTextureUpdateInfo::WriteDataCallback = nullptr |
Optional callback to write data to a staging texture. If provided, the pSrcData parameter is ignored, and the manager will call the callback with a pointer to the staging texture memory when it needs to write data to a staging texture page. The callback will be called from ScheduleTextureUpdate().