Condividi tramite


Metodo ID3D11Device2::CreateDeferredContext2 (d3d11_2.h)

Crea un contesto posticipato, che può registrare elenchi di comandi.

Sintassi

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

Parametri

ContextFlags

Tipo: UINT

Riservato per utilizzi futuri. Passare 0.

[out, optional] ppDeferredContext

Tipo: ID3D11DeviceContext2**

Al termine del metodo, viene inizializzato il puntatore passato a un puntatore dell'interfaccia ID3D11DeviceContext2 .

Valore restituito

Tipo: HRESULT

Restituisce S_OK se ha esito positivo; in caso contrario, restituisce uno dei seguenti elementi:

  • Restituisce DXGI_ERROR_DEVICE_REMOVED se la scheda video è stata rimossa fisicamente dal sistema o si è verificato un aggiornamento del driver per la scheda video. Se si verifica questo errore, è necessario eliminare e ricreare il dispositivo.
  • Restituisce DXGI_ERROR_INVALID_CALL se il metodo CreateDeferredContext2 non può essere chiamato dal contesto corrente. Ad esempio, se il dispositivo è stato creato con il valore D3D11_CREATE_DEVICE_SINGLETHREADED , CreateDeferredContext2 restituisceDXGI_ERROR_INVALID_CALL.
  • Restituisce E_INVALIDARG se il parametro ContextFlags non è valido.
  • Restituisce E_OUTOFMEMORY se l'app ha esaurito la memoria disponibile.

Commenti

Un contesto posticipato è un contesto thread-safe che è possibile usare per registrare i comandi grafici in un thread diverso dal thread di rendering principale. Usando un contesto posticipato, è possibile registrare comandi grafici in un elenco di comandi incapsulato dall'interfaccia ID3D11CommandList . Dopo aver registrato tutti gli elementi della scena, è quindi possibile inviarli al thread di rendering principale per il rendering finale. In questo modo, è possibile eseguire attività di rendering simultaneamente in più thread e migliorare potenzialmente le prestazioni negli scenari cpu multi-core.

È possibile creare più contesti posticipati.

Nota Se si usa il valore D3D11_CREATE_DEVICE_SINGLETHREADED per creare il dispositivo, CreateDeferredContext2 ha esito negativo con DXGI_ERROR_INVALID_CALL e non è possibile creare un contesto posticipato.
 
Per altre informazioni sui contesti posticipati, vedere Rendering immediato e posticipato.

Requisiti

   
Client minimo supportato Windows 8.1 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 R2 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione d3d11_2.h
Libreria D3D11.lib

Vedi anche

ID3D11Device1::CreateDeferredContext1

ID3D11Device2

ID3D11Device3::CreateDeferredContext3

ID3D11Device::CreateDeferredContext