Método ID3D10Buffer::Map (d3d10.h)
Obtenha um ponteiro para os dados contidos no recurso e negue o acesso de GPU ao recurso.
Sintaxe
HRESULT Map(
[in] D3D10_MAP MapType,
[in] UINT MapFlags,
[out] void **ppData
);
Parâmetros
[in] MapType
Tipo: D3D10_MAP
Sinalizador que especifica as permissões da CPU para leitura e gravação de um recurso. Para obter valores possíveis, consulte D3D10_MAP.
[in] MapFlags
Tipo: UINT
Sinalizador que especifica o que a CPU deve fazer quando a GPU está ocupada (consulte D3D10_MAP_FLAG). Esse sinalizador é opcional.
[out] ppData
Tipo: void**
Ponteiro para os dados do recurso de buffer.
Valor retornado
Tipo: HRESULT
Se essa função for bem-sucedida, ela retornará S_OK. A lista a seguir contém alguns dos motivos pelos quais o Mapa pode falhar:
- Se MapFlags especificar D3D10_MAP_FLAG_DO_NOT_WAIT e a GPU ainda não estiver concluída com o recurso, ID3D10Buffer::Map retornará DXGI_ERROR_WAS_STILL_DRAWING.
- ID3D10Buffer::Map retornará DXGI_ERROR_DEVICE_REMOVED se MapType incluir sinalizadores que permitam a leitura e o dispositivo de hardware (ou seja, o vídeo cartão) tiver sido removido.
Comentários
Para que a CPU escreva o conteúdo de um recurso, o recurso deve ser criado com o sinalizador de uso dinâmico, D3D10_USAGE_DYNAMIC. Para ler e gravar esses conteúdos, o recurso deve ser criado com o sinalizador de uso de preparo, D3D10_USAGE_STAGING. (Para obter mais informações sobre esses sinalizadores, consulte D3D10_USAGE.) ID3D10Buffer::Map recuperará um ponteiro para os dados do recurso. Para obter uma discussão sobre como acessar recursos com eficiência, consulte Copiar e acessar dados de recursos (Direct3D 10).
Chame ID3D10Buffer::Unmap para significar que o aplicativo terminou de acessar o recurso.
ID3D10Buffer::Map tem algumas outras restrições. Por exemplo:
- O mesmo buffer não pode ser mapeado várias vezes; em outras palavras, não chame ID3D10Buffer::Map em um buffer que já esteja mapeado.
- Qualquer buffer associado ao pipeline deve ser não mapeado antes que qualquer operação de renderização (ou seja, ID3D10Device::D raw) possa ser executada.
Diferenças entre o Direct3D 9 e o Direct3D 10: ID3D10Buffer::Map no Direct3D 10 é análogo ao bloqueio de recursos no Direct3D 9. |
Requisitos
Plataforma de Destino | Windows |
Cabeçalho | d3d10.h |
Biblioteca | D3D10.lib |