Compartir a través de


estructura DXGI1_3_DDI_BASE_FUNCTIONS (dxgiddi.h)

Contiene punteros a funciones que un controlador de pantalla windows Display Driver Model (WDDM) 1.3 y versiones posteriores pueden implementar para realizar tareas de bajo nivel, como presentar fotogramas representados a una salida, controlar gamma, recibir notificaciones sobre superficies interoperables compartidas y de interfaz de dispositivo gráfico de Windows (GDI) y administrar una transición de pantalla completa.

Sintaxis

typedef struct DXGI1_3_DDI_BASE_FUNCTIONS {
  HRESULT()(DXGI_DDI_ARG_PRESENT *) * pfnPresent;
  HRESULT()(DXGI_DDI_ARG_GET_GAMMA_CONTROL_CAPS *) * pfnGetGammaCaps;
  HRESULT()(DXGI_DDI_ARG_SETDISPLAYMODE *) * pfnSetDisplayMode;
  HRESULT()(DXGI_DDI_ARG_SETRESOURCEPRIORITY *) * pfnSetResourcePriority;
  HRESULT()(DXGI_DDI_ARG_QUERYRESOURCERESIDENCY *) * pfnQueryResourceResidency;
  HRESULT()(DXGI_DDI_ARG_ROTATE_RESOURCE_IDENTITIES *) * pfnRotateResourceIdentities;
  HRESULT()(DXGI_DDI_ARG_BLT *) * pfnBlt;
  HRESULT()(DXGI_DDI_ARG_RESOLVESHAREDRESOURCE *) * pfnResolveSharedResource;
  HRESULT()(DXGI_DDI_ARG_BLT1 *) * pfnBlt1;
  HRESULT()(DXGI_DDI_ARG_OFFERRESOURCES *) * pfnOfferResources;
  HRESULT()(DXGI_DDI_ARG_RECLAIMRESOURCES *) * pfnReclaimResources;
  HRESULT()(DXGI_DDI_ARG_GETMULTIPLANEOVERLAYCAPS *) * pfnGetMultiplaneOverlayCaps;
  HRESULT()(DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS *) * pfnGetMultiplaneOverlayGroupCaps;
  HRESULT()(void *) * pfnReserved1;
  HRESULT()(DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY *) * pfnPresentMultiplaneOverlay;
  HRESULT()(void *) * pfnReserved2;
  HRESULT()(DXGI_DDI_ARG_PRESENT1 *) * pfnPresent1;
  HRESULT()(DXGI_DDI_ARG_CHECKPRESENTDURATIONSUPPORT *) * pfnCheckPresentDurationSupport;
} DXGI1_3_DDI_BASE_FUNCTIONS;

Miembros

pfnPresent

Puntero a la función PresentDXGI del controlador.

pfnGetGammaCaps

Puntero a la función GetGammaCapsDXGI del controlador.

pfnSetDisplayMode

Puntero a la función SetDisplayModeDXGI del controlador.

pfnSetResourcePriority

Puntero a la función SetResourcePriorityDXGI del controlador.

pfnQueryResourceResidency

Puntero a la función QueryResourceResidencyDXGI del controlador.

pfnRotateResourceIdentities

Puntero a la función RotateResourceIdentitiesDXGI del controlador.

pfnBlt

Puntero a la función BltDXGI del controlador.

pfnResolveSharedResource

Puntero a la función ResolveSharedResourceDXGI del controlador.

pfnBlt1

Puntero a la función Blt1DXGI del controlador.

pfnOfferResources

Puntero a la función pfnOfferResources del controlador.

pfnReclaimResources

Puntero a la función pfnReclaimResources del controlador.

pfnGetMultiplaneOverlayCaps

Lo llama el tiempo de ejecución de DXGI para solicitar que el controlador de pantalla en modo de usuario obtenga funcionalidades básicas del plano de superposición. Opcionalmente, implementado por WDDM 1.3 y controladores de pantalla en modo usuario posteriores.

pfnGetMultiplaneOverlayGroupCaps

Lo llama el tiempo de ejecución de DXGI para solicitar que el controlador de pantalla en modo de usuario obtenga un grupo de funcionalidades del plano de superposición. Opcionalmente, implementado por WDDM 1.3 y controladores de pantalla en modo usuario posteriores.

Nota Se llama a esta función para cada uno de los grupos de funcionalidades que notifica el controlador.
 

Sintaxis

pfnGetMultiplaneOverlayGroupCaps GetMultiplaneOverlayGroupCaps;

HRESULT __stdcall* GetMultiplaneOverlayGroupCaps(
   DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS *pGroupCaps
)
{ ... }

Parámetro

pGroupCaps Puntero a una estructura de DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS que especifica el grupo de funcionalidades del plano de superposición.

Valor devuelto

Devuelve uno de los valores siguientes.

  • S_OK El controlador proporcionó correctamente las funcionalidades del plano de superposición.
  • D3DDDIERR_DEVICEREMOVED El controlador detectó que se quitó el adaptador de pantalla, por lo que el controlador no completó la operación. Si el controlador no es consciente de la eliminación del adaptador, no es necesario que el controlador devuelva este código de error.

pfnReserved1

Reservado para uso del sistema.

pfnPresentMultiplaneOverlay

Llamado por el entorno de ejecución de la infraestructura de gráficos de Microsoft DirectX (DXGI) para notificar al controlador de pantalla en modo de usuario que una aplicación terminó de representar y solicita que el controlador muestre la superficie de origen copiando o volteando o que el controlador realiza una operación de relleno de color. Debe implementarse mediante windows Display Driver Model (WDDM) 1.3 o controladores posteriores que admitan superposiciones multiplano.

Cuando el controlador de pantalla en modo de usuario completa correctamente su procesamiento de una llamada a esta función, presenta la superficie de origen a la pantalla llamando a la función pfnPresentMultiPlaneOverlayCb (DXGI).

PFND3DDDI_PRESENTMULTIPLANEOVERLAY pfnPresentMultiPlaneOverlay;

HRESULT __stdcall* pfnPresentMultiPlaneOverlay(
   DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY *pPresentDXGI
)
{ ... }

Parámetro

pPresentDXGI Puntero a una estructura de DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY que describe cómo mostrar en la superficie de destino.

Valor devuelto

Si esta función de devolución de llamada se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error HRESULT.

pfnReserved2

Reservado para uso del sistema.

pfnPresent1

Notifica al controlador de pantalla en modo de usuario que una aplicación finalizó la representación y que se libera toda la propiedad del recurso compartido y solicita que el controlador se muestre en la superficie de destino.

Sintaxis

pfnPresent1 Present1DXGI;

HRESULT __stdcall* Present1DXGI(
   DXGI_DDI_ARG_PRESENT1 *pPresentData
)
{ ... }

Parámetro

pPresentData [in] Puntero a una estructura de DXGI_DDI_ARG_PRESENT1 que describe cómo mostrar en la superficie de destino.

Comentarios

El miembro hDevice de la estructura DXGI_DDI_ARG_PRESENT1 a la que apunta el parámetro pPresentData es el mismo identificador al que la función CreateDevice(D3D10) del controlador se pasa al tiempo de ejecución en el miembro hDrvDevice de la estructura D3D10DDIARG_CREATEDEVICE . Por lo tanto, los escritores de controladores deben definir cuidadosamente el tipo de este controlador. Además, los controladores pueden proporcionar diferentes implementaciones de la función pfnPresent1(DXGI) en función de la implementación de DDI que controló la llamada a CreateDevice(D3D10). El entorno de ejecución nunca mezclará los identificadores de controlador en implementaciones de DDI.

El miembro pDXGIContext de DXGI_DDI_ARG_PRESENT1 es un mecanismo de comunicación opaco. El tiempo de ejecución pasa este contexto DXGI al controlador. El controlador debe copiar este contexto DXGI sin cambios en el miembro pDXGIContext de la estructura DXGIDDICB_PRESENT cuando el controlador llama a la función pfnPresentCbDXGI .

El controlador debe enviar todos los datos de representación parcialmente creados (búferes de comandos) mediante la función pfnRenderCb y el controlador debe realizar una sola llamada a pfnPresentCbDXGI. Al llamar a cualquiera de estas devoluciones de llamada, el controlador debe seguir las reglas de subproceso de la función PresentDXGI .

Nota Cuando la función pfnPresent1(DXGI) del controlador copia el contenido con formato sRGB de una superficie de origen a una superficie de destino que no sea sRGB, el controlador debe copiar el contenido sRGB sin cambios (es decir, el controlador no debe realizar la conversión lineal de sRGB).

Reglas de subprocesos

Estas reglas se aplican si el controlador admite subprocesos libres o no:

  • El controlador indica la compatibilidad con el subproceso libre estableciendo el miembro Caps de la estructura de D3D11DDI_THREADING_CAPS en D3D11DDICAPS_FREETHREADED. En este caso:
    • Solo un único subproceso puede trabajar con un identificador de contexto HCONTEXT a la vez.
    • El controlador debe llamar a pfnPresentCbDXGI solo cuando se llama a la función pfnPresent1(DXGI) del controlador y por el mismo subproceso que llamó a pfnPresent1(DXGI).
  • Cuando el controlador no indica la compatibilidad con el subproceso libre, solo puede llamar a las funciones de devolución de llamada cuando un subproceso haya llamado al controlador. El controlador también debe llamar a la devolución de llamada pfnPresentCbDXGI en el contexto de pfnPresent1(DXGI).
Para obtener más información sobre el subproceso, consulta Cambios de Direct3D 10.

pfnCheckPresentDurationSupport

Puntero a la función pfnCheckPresentDurationSupport(DXGI) del controlador.

Comentarios

Para obtener más información sobre cómo usar esta estructura, consulta Compatibilidad con DXGI DDI.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8.1, WDDM 1.3 y versiones posteriores
Servidor mínimo compatible Windows Server 2012 R2
Encabezado dxgiddi.h (incluya D3d10umddi.h)

Consulte también

CreateDevice(D3D10)

D3D10DDIARG_CREATEDEVICE

DXGI1_2_DDI_BASE_FUNCTIONS

DXGI_DDI_BASE_ARGS

DXGI_DDI_BASE_FUNCTIONS