Método ID3D10Device::CopyResource (d3d10.h)
Copie todo o conteúdo do recurso de origem para o recurso de destino usando a GPU.
Sintaxe
void CopyResource(
[in] ID3D10Resource *pDstResource,
[in] ID3D10Resource *pSrcResource
);
Parâmetros
[in] pDstResource
Tipo: ID3D10Resource*
Um ponteiro para o recurso de destino (consulte ID3D10Resource).
[in] pSrcResource
Tipo: ID3D10Resource*
Um ponteiro para o recurso de origem (consulte ID3D10Resource).
Valor retornado
Nenhum
Comentários
Esse método é incomum porque faz com que a GPU execute a operação de cópia (semelhante a um memcpy da CPU). Como resultado, ele tem algumas restrições projetadas para melhorar o desempenho. Por exemplo, os recursos de origem e destino:
- Devem ser recursos diferentes.
- Deve ser do mesmo tipo.
- Deve ter dimensões idênticas (incluindo largura, altura, profundidade e tamanho conforme apropriado).
- Deve ter formatos compatíveis, o que significa que os formatos devem ser idênticos ou pelo menos do mesmo grupo de tipos. Por exemplo, uma textura DXGI_FORMAT_R32G32B32_FLOAT pode ser copiada para uma textura DXGI_FORMAT_R32G32B32_UINT, pois ambos os formatos estão no grupo DXGI_FORMAT_R32G32B32_TYPELESS. A partir do Direct3D 10.1, CopyResource pode copiar entre alguns tipos de formato. Para obter mais informações, consulte Conversão de formato usando o Direct3D 10.1.
- Talvez não esteja mapeado no momento.
Recursos imutáveis e de estêncil de profundidade não podem ser usados como destino. Os recursos criados com a funcionalidade multisampling não podem ser usados como uma origem ou destino.
O método é uma chamada assíncrona que pode ser adicionada à fila de buffer de comando. Isso tenta remover estações de pipeline que podem ocorrer ao copiar dados. Confira considerações de desempenho para obter mais detalhes.
Um aplicativo que só precisa copiar uma parte dos dados em um recurso deve usar ID3D10Device::CopySubresourceRegion .
Diferenças entre o Direct3D 10 e o Direct3D 10.1: O Direct3D 10.1 permite que recursos de estêncil de profundidade sejam usados como uma origem ou destino. O Direct3D 10.1 permite que recursos multisampled sejam usados como origem e destino somente se a origem e o destino tiverem uma contagem e qualidade multisamplásticos idênticas. Se a origem e o destino forem diferentes na contagem e na qualidade multissamplod ou um deles for multisampled e o outro não for multisampled, a chamada para ID3D10Device::CopyResource falhará. É possível copiar entre recursos pré-estruturados+tipados e texturas compactadas em bloco. Consulte Conversão de formato usando o Direct3D 10.1. |
Requisitos
Plataforma de Destino | Windows |
Cabeçalho | d3d10.h |
Biblioteca | D3D10.lib |