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

Confira também

ID3D11DeviceContext2