Método ID3D11DeviceContext2::CopyTileMappings (d3d11_2.h)
Copia mapeamentos de um recurso lado a lado de origem para um recurso lado a lado de destino.
Sintaxe
HRESULT CopyTileMappings(
[in] ID3D11Resource *pDestTiledResource,
[in] const D3D11_TILED_RESOURCE_COORDINATE *pDestRegionStartCoordinate,
[in] ID3D11Resource *pSourceTiledResource,
[in] const D3D11_TILED_RESOURCE_COORDINATE *pSourceRegionStartCoordinate,
[in] const D3D11_TILE_REGION_SIZE *pTileRegionSize,
[in] UINT Flags
);
Parâmetros
[in] pDestTiledResource
Tipo: ID3D11Resource*
Um ponteiro para o recurso lado a lado de destino.
[in] pDestRegionStartCoordinate
Tipo: const D3D11_TILED_RESOURCE_COORDINATE*
Um ponteiro para uma estrutura D3D11_TILED_RESOURCE_COORDINATE que descreve as coordenadas iniciais do recurso lado a lado de destino.
[in] pSourceTiledResource
Tipo: ID3D11Resource*
Um ponteiro para o recurso lado a lado de origem.
[in] pSourceRegionStartCoordinate
Tipo: const D3D11_TILED_RESOURCE_COORDINATE*
Um ponteiro para uma estrutura D3D11_TILED_RESOURCE_COORDINATE que descreve as coordenadas iniciais do recurso lado a lado de origem.
[in] pTileRegionSize
Tipo: const D3D11_TILE_REGION_SIZE*
Um ponteiro para uma estrutura D3D11_TILE_REGION_SIZE que descreve o tamanho da região lado a lado.
[in] Flags
Tipo: UINT
Uma combinação de D3D11_TILE_MAPPING_FLAGS valores que são combinados usando uma operação OR bit a bit. O único valor válido é D3D11_TILE_MAPPING_NO_OVERWRITE, o que indica que os comandos enviados anteriormente para o dispositivo que ainda podem estar em execução não fazem referência a nenhuma das regiões de bloco que estão sendo atualizadas. Em seguida, o dispositivo pode evitar ter que liberar o trabalho enviado anteriormente para executar a atualização de mapeamento de bloco. Se o aplicativo violar essa promessa atualizando mapeamentos de bloco para locais em recursos lado a lado que ainda estão sendo referenciados por comandos pendentes, resultados de comportamento de renderização indefinidos, incluindo o potencial de lentidão significativa em algumas arquiteturas. Isso é como o conceito "sem substituição" que existe em outro lugar na API do Direct3D, exceto aplicado à própria estrutura de dados de mapeamento de bloco (que no hardware é uma tabela de página). A ausência do valor D3D11_TILE_MAPPING_NO_OVERWRITE requer que as atualizações de mapeamento de bloco especificadas por CopyTileMappings precisem ser concluídas antes que qualquer comando Direct3D subsequente possa continuar.
Valor retornado
Tipo: HRESULT
Retorna S_OK se tiver êxito; caso contrário, retorna um dos seguintes:
- Retorna E_INVALIDARG se várias condições, como sinalizadores inválidos ou passagem de recursos não lado a lado, resultarem na retirada da chamada. O dest e as regiões de origem devem se encaixar inteiramente em seu recurso ou o comportamento é indefinido (a camada de depuração emitirá um erro).
- Retorna E_OUTOFMEMORY se a chamada resultar na necessidade de alocar espaço para novos mapeamentos de tabela de página, mas ficando sem memória. Se a memória insuficiente ocorrer quando isso for chamado em uma lista de comandos e a lista de comandos estiver sendo executada, o dispositivo será removido. Os aplicativos podem evitar essa situação apenas fazendo chamadas de atualização que alteram mapeamentos existentes de Recursos Lado a Lado em listas de comandos (portanto, os drivers não precisarão alocar memória da tabela de páginas, apenas alterar o mapeamento).
Comentários
CopyTileMappings ajuda com tarefas como a mudança de mapeamentos dentro e entre recursos lado a lado, por exemplo, rolando blocos. As regiões de origem e destino podem se sobrepor; o resultado da cópia nessa situação é como se a origem tivesse sido salva em um local temporário e, em seguida, de lá gravada no destino.
Para obter mais informações sobre recursos lado a lado, consulte Recursos lado a lado.
Requisitos
Cliente mínimo com suporte | Windows 8.1 [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2012 R2 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | d3d11_2.h |
Biblioteca | D3D11.lib |