Método ID3D10Device::CopyResource (d3d10.h)

Copie todo el contenido del recurso de origen en el recurso de destino mediante la GPU.

Sintaxis

void CopyResource(
  [in] ID3D10Resource *pDstResource,
  [in] ID3D10Resource *pSrcResource
);

Parámetros

[in] pDstResource

Tipo: ID3D10Resource*

Puntero al recurso de destino (consulte ID3D10Resource).

[in] pSrcResource

Tipo: ID3D10Resource*

Puntero al recurso de origen (consulte ID3D10Resource).

Valor devuelto

None

Observaciones

Este método es inusual en que hace que la GPU realice la operación de copia (similar a un memcpy por la CPU). Como resultado, tiene algunas restricciones diseñadas para mejorar el rendimiento. Por ejemplo, los recursos de origen y destino:

  • Debe ser recursos diferentes.
  • Debe ser el mismo tipo.
  • Debe tener dimensiones idénticas (incluido el ancho, el alto, la profundidad y el tamaño según corresponda).
  • Debe tener formatos compatibles, lo que significa que los formatos deben ser idénticos o al menos 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, ya que ambos formatos están en el grupo DXGI_FORMAT_R32G32B32_TYPELESS. A partir de Direct3D 10.1, CopyResource 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.
CopyResource solo admite la copia; no admite conversiones de extensión, tecla de color, mezcla o formato. A partir de Direct3D 10.1, CopyResource puede reinterpretar los datos de recursos entre algunos tipos de formato. Para obtener más información, consulta Conversión de formato con Direct3D 10.1.

Los recursos inmutables y de galería de símbolos de profundidad no se pueden usar como destino. Los recursos creados con la funcionalidad de muestreo múltiple no se pueden usar como origen o destino.

El método es una llamada asincrónica que se puede agregar a la cola de búfer de comandos. Esto intenta quitar los puestos de canalización que pueden producirse al copiar datos. Consulte consideraciones de rendimiento para obtener más detalles.

En su lugar, una aplicación que solo necesita copiar una parte de los datos de un recurso debe usar ID3D10Device::CopySubresourceRegion .

Diferencias entre Direct3D 10 y Direct3D 10.1:

Direct3D 10.1 permite usar recursos de galería de símbolos de profundidad como origen o destino. Direct3D 10.1 permite usar recursos multimuestreo como origen y destino solo si tanto el origen como el destino tienen un recuento y una calidad multimuestreo idénticos. Si el origen y el destino difieren en el recuento y la calidad multimuestreo o uno de ellos es multimuestreo y el otro no es multimuestreo, se produce un error en la llamada a ID3D10Device::CopyResource .

Es posible copiar entre recursos preestructurados y con tipo y texturas comprimidas por bloques. Consulta Conversión de formato con Direct3D 10.1.

Requisitos

   
Plataforma de destino Windows
Encabezado d3d10.h
Library D3D10.lib

Consulte también

ID3D10Dispositivo

Id3D10Resource (interfaz)