Método ID3D10Texture1D::Map (d3d10.h)

Obtenha um ponteiro para os dados contidos em um sub-recurso e negue o acesso de GPU a esse sub-recurso.

Sintaxe

HRESULT Map(
  [in]  UINT      Subresource,
  [in]  D3D10_MAP MapType,
  [in]  UINT      MapFlags,
  [out] void      **ppData
);

Parâmetros

[in] Subresource

Tipo: UINT

Número de índice do sub-recurso. Consulte D3D10CalcSubresource para obter mais detalhes.

[in] MapType

Tipo: D3D10_MAP

Especifica as permissões de leitura e gravação da CPU para um recurso. Para obter os valores possíveis, consulte D3D10_MAP.

[in] MapFlags

Tipo: UINT

Sinalizador que especifica o que a CPU deve fazer quando a GPU está ocupada. Esse sinalizador é opcional.

[out] ppData

Tipo: void**

Ponteiro para os dados do recurso de textura.

Valor retornado

Tipo: HRESULT

Se essa função for bem-sucedida, ela retornará S_OK. Para outras restrições e uma listagem de valores de erro que podem ser retornados por qualquer um dos métodos Map , consulte Comentários.

Comentários

O mapeamento de uma textura permite que a CPU acesse diretamente os dados subjacentes no sub-recurso de uma textura. Para que o método tenha êxito, a textura que está sendo mapeada deve ser criada com os sinalizadores apropriados (consulte D3D10_CPU_ACCESS_FLAG) e seu uso especificado (consulte D3D10_USAGE) deve ser D3D10_USAGE_DYNAMIC ou D3D10_USAGE_STAGING.

Falhas comuns dos métodos Map são indicadas pelos seguintes valores retornados:

Item Descrição
DXGI_ERROR_WAS_STILL_DRAWING Se MapFlags especificar D3D10_MAP_FLAG_DO_NOT_WAIT e a GPU ainda não estiver concluída com o recurso, Map retornará DXGI_ERROR_WAS_STILL_DRAWING.
DXGI_ERROR_DEVICE_REMOVED O mapa retornará DXGI_ERROR_DEVICE_REMOVED se MapType permitir qualquer acesso de leitura da CPU e o cartão de vídeo tiver sido removido.
 

Para obter mais informações sobre os valores retornados anteriores, consulte DXGI_ERROR.

O mapa tem as seguintes restrições:

  • Um único sub-recurso não pode ser mapeado várias vezes; em outras palavras, não chame Mapa em um sub-recurso que já esteja mapeado.
  • Qualquer sub-recurso associado ao pipeline deve ser não mapeado antes que qualquer operação de renderização (ou seja, antes que ID3D10Device::D raw) possa ser executada.
Os aplicativos devem converter o ponteiro pData nulo para o tipo apropriado para acessar significativamente os dados de sub-recurso subjacentes. Por exemplo, o código a seguir demonstra como ler cada texel de um sub-recurso 1D. Supõe-se que a textura foi criada usando DXGI_FORMAT_R32G32B32A32_FLOAT e que pData é o ponteiro para a saída de dados de recurso de textura de uma chamada bem-sucedida para esse método.

FLOAT* pTexels = (FLOAT*)pData;
for( UINT col = 0; col < width; col++ )
{
  pTexels[col*4 + 0]; // Alpha
  pTexels[col*4 + 1]; // Blue
  pTexels[col*4 + 2]; // Green
  pTexels[col*4 + 3]; // Red
}

Diferenças entre o Direct3D 9 e o Direct3D 10:

O mapa no Direct3D 10 é análogo ao bloqueio de recursos no Direct3D 9.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho d3d10.h
Biblioteca D3D10.lib

Confira também

ID3D10Texture1D Interface