Compartilhar via


Método ID3D11Device2::CreateDeferredContext2 (d3d11_2.h)

Cria um contexto adiado, que pode registrar listas de comandos.

Sintaxe

HRESULT CreateDeferredContext2(
                  UINT                 ContextFlags,
  [out, optional] ID3D11DeviceContext2 **ppDeferredContext
);

Parâmetros

ContextFlags

Tipo: UINT

Reservado para uso futuro. Passe 0.

[out, optional] ppDeferredContext

Tipo: ID3D11DeviceContext2**

Após a conclusão do método, o ponteiro passado para um ponteiro de interface ID3D11DeviceContext2 é inicializado.

Valor retornado

Tipo: HRESULT

Retorna S_OK se tiver êxito; caso contrário, retorna um dos seguintes:

  • Retorna DXGI_ERROR_DEVICE_REMOVED se o cartão de vídeo foi fisicamente removido do sistema ou se ocorreu uma atualização de driver para o cartão de vídeo. Se esse erro ocorrer, você deverá destruir e recriar o dispositivo.
  • Retorna DXGI_ERROR_INVALID_CALL se o método CreateDeferredContext2 não puder ser chamado do contexto atual. Por exemplo, se o dispositivo tiver sido criado com o valor D3D11_CREATE_DEVICE_SINGLETHREADED , CreateDeferredContext2 retornará DXGI_ERROR_INVALID_CALL.
  • Retorna E_INVALIDARG se o parâmetro ContextFlags for inválido.
  • Retorna E_OUTOFMEMORY se o aplicativo tiver esgotado a memória disponível.

Comentários

Um contexto adiado é um contexto thread-safe que você pode usar para gravar comandos gráficos em um thread diferente do thread de renderização main. Usando um contexto adiado, você pode gravar comandos gráficos em uma lista de comandos encapsulada pela interface ID3D11CommandList . Depois de gravar todos os itens de cena, você pode enviá-los para o thread de renderização main para renderização final. Dessa maneira, você pode executar tarefas de renderização simultaneamente em vários threads e potencialmente melhorar o desempenho em cenários de CPU de vários núcleos.

Você pode criar vários contextos adiados.

Nota Se você usar o valor D3D11_CREATE_DEVICE_SINGLETHREADED para criar o dispositivo, CreateDeferredContext2 falhará com DXGI_ERROR_INVALID_CALL e não poderá criar um contexto adiado.
 
Para obter mais informações sobre contextos adiados, consulte Renderização imediata e adiada.

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

ID3D11Device1::CreateDeferredContext1

ID3D11Device2

ID3D11Device3::CreateDeferredContext3

ID3D11Device::CreateDeferredContext