Condividi tramite


Metodo ID3D11Device::CreateDeferredContext (d3d11.h)

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

Sintassi

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

Parametri

ContextFlags

Tipo: UINT

Riservato per utilizzi futuri. Passare 0.

[out, optional] ppDeferredContext

Tipo: ID3D11DeviceContext**

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

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 CreateDeferredContext non può essere chiamato dal contesto corrente. Ad esempio, se il dispositivo è stato creato con il valore D3D11_CREATE_DEVICE_SINGLETHREADED , CreateDeferredContext restituisceDXGI_ERROR_INVALID_CALL.
  • Restituisce E_INVALIDARG se il parametro ContextFlags non è valido.
  • Restituisce E_OUTOFMEMORY se l'applicazione 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 rappresentato da ID3D11Device, il metodo CreateDeferredContext avrà esito negativo e non sarà possibile creare un contesto posticipato.
 
Per altre informazioni sui contesti posticipati, vedere Rendering immediato e posticipato.

Windows Phone 8: questa API è supportata.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione d3d11.h
Libreria D3d11.lib

Vedi anche

ID3D11Device

ID3D11Device1::CreateDeferredContext1

ID3D11Device2::CreateDeferredContext2

ID3D11Device3::CreateDeferredContext3