Compartir a través de


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

Crea un contexto diferido, que puede registrar listas de comandos.

Sintaxis

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

Parámetros

ContextFlags

Tipo: UINT

Reservado para uso futuro. Pase 0.

[out, optional] ppDeferredContext

Tipo: ID3D11DeviceContext**

Al finalizar el método, se inicializa el puntero pasado a un puntero de interfaz ID3D11DeviceContext .

Valor devuelto

Tipo: HRESULT

Devuelve S_OK si se ejecuta correctamente; de lo contrario, devuelve una de las siguientes opciones:

  • Devuelve DXGI_ERROR_DEVICE_REMOVED si la tarjeta de vídeo se ha quitado físicamente del sistema o se ha producido una actualización del controlador para la tarjeta de vídeo. Si se produce este error, debe destruir y volver a crear el dispositivo.
  • Devuelve DXGI_ERROR_INVALID_CALL si no se puede llamar al método CreateDeferredContext desde el contexto actual. Por ejemplo, si el dispositivo se creó con el valor D3D11_CREATE_DEVICE_SINGLETHREADED , CreateDeferredContext devuelve DXGI_ERROR_INVALID_CALL.
  • Devuelve E_INVALIDARG si el parámetro ContextFlags no es válido.
  • Devuelve E_OUTOFMEMORY si la aplicación ha agotado la memoria disponible.

Comentarios

Un contexto diferido es un contexto seguro para subprocesos que puede usar para grabar comandos gráficos en un subproceso distinto del subproceso de representación principal. Con un contexto diferido, puede grabar comandos gráficos en una lista de comandos encapsulada por la interfaz ID3D11CommandList . Una vez registrados todos los elementos de escena, puede enviarlos al subproceso de representación principal para la representación final. De esta manera, puede realizar tareas de representación simultáneamente en varios subprocesos y mejorar potencialmente el rendimiento en escenarios de CPU de varios núcleos.

Puede crear varios contextos diferidos.

Nota Si usa el valor de D3D11_CREATE_DEVICE_SINGLETHREADED para crear el dispositivo representado por ID3D11Device, se producirá un error en el método CreateDeferredContext y no podrá crear un contexto diferido.
 
Para obtener más información sobre los contextos diferidos, vea Representación inmediata y diferida.

Windows Phone 8: se admite esta API.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado d3d11.h
Library D3d11.lib

Consulte también

ID3D11Device

ID3D11Device1::CreateDeferredContext1

ID3D11Device2::CreateDeferredContext2

ID3D11Device3::CreateDeferredContext3