Compartilhar via


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.
Para obter mais informações sobre os valores retornados anteriores, consulte DXGI_ERROR.

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

Confira também

ID3D10Buffer Interface