Compartilhar via


Método ID3D11Device::CreateDeferredContext (d3d11.h)

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

Sintaxe

HRESULT CreateDeferredContext(
                  UINT                ContextFlags,
  [out, optional] ID3D11DeviceContext **ppDeferredContext
);

Parâmetros

ContextFlags

Tipo: UINT

Reservado para uso futuro. Passe 0.

[out, optional] ppDeferredContext

Tipo: ID3D11DeviceContext**

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

Retornar valor

Tipo: HRESULT

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

  • Retorna DXGI_ERROR_DEVICE_REMOVED se o vídeo cartão foi fisicamente removido do sistema ou ocorreu uma atualização do driver para o vídeo cartão. Se esse erro ocorrer, você deverá destruir e recriar o dispositivo.
  • Retorna DXGI_ERROR_INVALID_CALL se o método CreateDeferredContext não puder ser chamado do contexto atual. Por exemplo, se o dispositivo tiver sido criado com o valor D3D11_CREATE_DEVICE_SINGLETHREADED , CreateDeferredContext 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 que todos os itens de cena forem gravados, você poderá 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 representado por ID3D11Device, o método CreateDeferredContext falhará e você não poderá criar um contexto adiado.
 
Para obter mais informações sobre contextos adiados, consulte Renderização imediata e adiada.

Windows Phone 8: há suporte para essa API.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho d3d11.h
Biblioteca D3d11.lib

Confira também

ID3D11Device

ID3D11Device1::CreateDeferredContext1

ID3D11Device2::CreateDeferredContext2

ID3D11Device3::CreateDeferredContext3