estructura DXGI1_1_DDI_BASE_FUNCTIONS (dxgiddi.h)
La estructura DXGI1_1_DDI_BASE_FUNCTIONS contiene punteros a funciones que el controlador de pantalla en modo de usuario puede implementar para realizar tareas de bajo nivel, como presentar fotogramas representados a una salida, controlar gamma, obtener notificaciones sobre superficies interoperables de GDI y compartidas, y administrar una transición de pantalla completa.
Sintaxis
typedef struct DXGI1_1_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;
} DXGI1_1_DDI_BASE_FUNCTIONS;
Miembros
pfnPresent
Puntero a la función PresentDXGI del controlador.
pfnGetGammaCaps
Puntero a la función GetGammaCapsDXGI del controlador.
pfnSetDisplayMode
La función SetDisplayModeDXGI cambia a un modo de presentación o principal que el escritorio GDI no admite.
El entorno de ejecución de Microsoft Direct3D llama a SetDisplayModeDXGI para cambiar a un modo de presentación o principal que el escritorio GDI no admite. En la lista siguiente se describen ejemplos de estas principales:
- Principales que se crean con formatos de visualización y destino de representación (por ejemplo, D3DFMT_A2R10G10B10) de 10:10:10:2)
- Varias muestras primarias en las que se realiza el muestreo múltiple durante el examen
- Principales persistentes que usan las aplicaciones de Microsoft DirectX versión 10 de pantalla completa
El controlador de pantalla en modo de usuario puede establecer el miembro hPrimaryAllocation de la estructura D3DDDICB_SETDISPLAYMODE en la llamada a pfnSetDisplayModeCb para examinar cualquier asignación. Sin embargo, la asignación debe marcarse como principal (es decir, el controlador de pantalla en modo de usuario debe haber establecido la marca de campo de bits principal en el miembro Flags de la estructura D3DDDI_ALLOCATIONINFO en una llamada a la función pfnAllocateCb para crear la asignación).
pDisplayModeData
Puntero a una estructura de DXGI_DDI_ARG_SETDISPLAYMODE que especifica parámetros para establecer el modo de presentación.
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
La función ResolveSharedResourceDXGI informa a un controlador de pantalla en modo de usuario que la propiedad de una superficie compartida ha cambiado o que se usa una superficie para la interoperación GDI.
El tiempo de ejecución de Direct3D llama a ResolveSharedResourceDXGI cuando una aplicación llama a una de las funciones siguientes:
- IDXGIKeyedMutex::ReleaseSynch en una superficie compartida sincronizada
- IDXGISurface1::GetDC para una superficie interoperable de GDI
El controlador implementa ResolveSharedResourceDXGI para administrar correctamente los recursos de varios escenarios de GPU. Cada recurso se puede dividir entre la memoria de varias GPU en las que se va a representar. El controlador puede implementar ResolveSharedResourceDXGI para remerge cada recurso para que el nuevo propietario del recurso tenga el recurso combinado. El controlador debe vaciar los búferes de comandos compilados parcialmente que puedan modificar el recurso.
Windows 7 proporciona la macro IS_DXGI1_1_BASE_FUNCTIONS (que se define en el archivo de encabezado D3D10umddi.h) para permitir que el controlador de pantalla en modo de usuario determine si recibe un puntero a una estructura DXGI1_1_DDI_BASE_FUNCTIONS o DXGI_DDI_BASE_FUNCTIONS en una llamada a su función CreateDevice(D3D10). La estructura DXGI1_1_DDI_BASE_FUNCTIONS incluye el miembro pfnResolveSharedResource que el controlador puede rellenar con un puntero a su función ResolveSharedResourceDXGI . Si IS_DXGI1_1_BASE_FUNCTIONS devuelve TRUE, el controlador espera recibir un puntero a una estructura de DXGI1_1_DDI_BASE_FUNCTIONS en el miembro pDXGIDDIBaseFunctions de la estructura DXGI_DDI_BASE_ARGS que especifica el miembro DXGIBaseDDI de la estructura D3D10DDIARG_CREATEDEVICE . De lo contrario, si IS_DXGI1_1_BASE_FUNCTIONS devuelve FALSE, el controlador espera recibir un puntero a una estructura DXGI_DDI_BASE_FUNCTIONS. Windows 7 proporciona la macro IS_DXGI1_1_BASE_FUNCTIONS para permitir que los controladores de versión más recientes funcionen en entornos de ejecución de versiones anteriores. A continuación, los controladores pueden determinar si dañarán la memoria si intentan rellenar el miembro pfnResolveSharedResource de DXGI1_1_DDI_BASE_FUNCTIONS con un puntero a la función ResolveSharedResourceDXGI .
pResourceData
Puntero a una estructura de DXGI_DDI_ARG_RESOLVESHAREDRESOURCE que especifica parámetros para el dispositivo de visualización y la superficie asociada al dispositivo de visualización.
Comentarios
Windows 7 proporciona la macro IS_DXGI1_1_BASE_FUNCTIONS (que se define en el archivo de encabezado D3D10umddi.h) para permitir que el controlador de pantalla en modo de usuario determine si recibe un puntero a una estructura de DXGI1_1_DDI_BASE_FUNCTIONS o DXGI_DDI_BASE_FUNCTIONS en una llamada a su función CreateDevice(D3D10). La estructura DXGI1_1_DDI_BASE_FUNCTIONS incluye el miembro pfnResolveSharedResource que el controlador puede rellenar con un puntero a su función ResolveSharedResourceDXGI . Si IS_DXGI1_1_BASE_FUNCTIONS devuelve TRUE, el controlador espera recibir un puntero a una estructura de DXGI1_1_DDI_BASE_FUNCTIONS en el miembro pDXGIDDIBaseFunctions de la estructura DXGI_DDI_BASE_ARGS que especifica el miembro DXGIBaseDDI de la estructura D3D10DDIARG_CREATEDEVICE . De lo contrario, si IS_DXGI1_1_BASE_FUNCTIONS devuelve FALSE, el controlador espera recibir un puntero a una estructura DXGI_DDI_BASE_FUNCTIONS. Windows 7 proporciona la macro IS_DXGI1_1_BASE_FUNCTIONS para permitir que los controladores de versión más recientes funcionen en entornos de ejecución de versiones anteriores. A continuación, los controladores pueden determinar si dañarán la memoria si intentan rellenar el miembro pfnResolveSharedResource de DXGI1_1_DDI_BASE_FUNCTIONS con un puntero a una función ResolveSharedResourceDXGI .
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | DXGI1_1_DDI_BASE_FUNCTIONS se admite a partir del sistema operativo Windows 7. |
Encabezado | dxgiddi.h (incluya D3d10umddi.h) |