Método ID3D10Device::CopySubresourceRegion (d3d10.h)
Copie una región de un recurso de origen en un recurso de destino.
Sintaxis
void CopySubresourceRegion(
[in] ID3D10Resource *pDstResource,
[in] UINT DstSubresource,
[in] UINT DstX,
[in] UINT DstY,
[in] UINT DstZ,
[in] ID3D10Resource *pSrcResource,
[in] UINT SrcSubresource,
[in] const D3D10_BOX *pSrcBox
);
Parámetros
[in] pDstResource
Tipo: ID3D10Resource*
Puntero al recurso de destino (consulte ID3D10Resource).
[in] DstSubresource
Tipo: UINT
Índice de subrecurso del destino.
[in] DstX
Tipo: UINT
Coordenada x de la esquina superior izquierda de la región de destino.
[in] DstY
Tipo: UINT
Coordenada y de la esquina superior izquierda de la región de destino.
[in] DstZ
Tipo: UINT
Coordenada z de la esquina superior izquierda de la región de destino. Para un subrecurso 1D o 2D, debe ser cero.
[in] pSrcResource
Tipo: ID3D10Resource*
Puntero al recurso de origen (consulte ID3D10Resource).
[in] SrcSubresource
Tipo: UINT
Índice de subrecurso del origen.
[in] pSrcBox
Tipo: const D3D10_BOX*
Cuadro 3D (vea D3D10_BOX) que define el subrecurso de origen que se puede copiar. Si es NULL, se copia todo el subrecurso de origen. El cuadro debe caber en el recurso de origen.
Un cuadro vacío da como resultado una operación sin operación. Un cuadro está vacío si el valor superior es mayor o igual que el valor inferior, o el valor izquierdo es mayor o igual que el valor derecho, o el valor frontal es mayor o igual que el valor posterior. Cuando el cuadro está vacío, CopySubresourceRegion no realiza una operación de copia.
Valor devuelto
None
Observaciones
El cuadro de origen debe estar dentro del tamaño del recurso de origen. La ubicación de destino es un valor absoluto (no un valor relativo). La ubicación de destino se puede desplazar desde la ubicación de origen; sin embargo, el tamaño de la región que se va a copiar (incluida la ubicación de destino) debe caber en el recurso de destino.
Si los recursos son búferes, todas las coordenadas están en bytes; Si los recursos son texturas, todas las coordenadas están en elementos de textura.
D3D10CalcSubresource es una función auxiliar para calcular índices de subrecursos.
CopySubresourceRegion realiza la copia en la GPU (similar a un memcpy por la CPU). Como consecuencia, los recursos de origen y destino deben cumplir los siguientes criterios:
- Deben ser subrecursos diferentes (aunque pueden ser del mismo recurso).
- Debe ser el mismo tipo.
- Debe tener formatos compatibles (los formatos deben ser idénticos o ser del mismo grupo de tipos). Por ejemplo, una textura de DXGI_FORMAT_R32G32B32_FLOAT se puede copiar en una textura de DXGI_FORMAT_R32G32B32_UINT porque ambos formatos están en el grupo DXGI_FORMAT_R32G32B32_TYPELESS. A partir de Direct3D 10.1, CopySubresourceRegion puede copiar entre algunos tipos de formato. Para obtener más información, consulta Conversión de formato con Direct3D 10.1.
- Es posible que no se asigne actualmente.
Si la aplicación necesita copiar un recurso completo, se recomienda usar ID3D10Device::CopyResource en su lugar.
CopySubresourceRegion es una llamada asincrónica que el tiempo de ejecución puede agregar a la cola de búfer de comandos. Este comportamiento asincrónico intenta quitar los puestos de canalización que pueden producirse al copiar datos. Consulte consideraciones de rendimiento para obtener más detalles.
Diferencias entre Direct3D 10 y Direct3D 10.1: Direct3D 10 tiene las siguientes limitaciones:
|
Ejemplo
El siguiente fragmento de código copia un cuadro (ubicado en (120 100),(200,220)) de una textura de origen en una región (130 120),(210 240) en una textura de destino.
D3D10_BOX sourceRegion;
sourceRegion.left = 120;
sourceRegion.right = 200;
sourceRegion.top = 100;
sourceRegion.bottom = 220;
sourceRegion.front = 0;
sourceRegion.back = 1;
pd3dDevice->CopySubresourceRegion( pDestTexture, 0, 130, 120, 0, pSourceTexture, 0, &sourceRegion );
Tenga en cuenta que, para una textura 2D, la parte delantera y la espalda siempre se establecen en 0 y 1 respectivamente.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | d3d10.h |
Library | D3D10.lib |