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:
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.
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 |