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.
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 .
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).
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) |