Compartir a través de


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 entorno de ejecución de Direct3D llama a la función CreateResource(D3D10) del controlador de visualización en modo de usuario para crear la principal que se va a examinar. Sin embargo, el controlador debe programar el hardware para examinar solo cuando se llama a su función SetDisplayModeDXGI . Por lo tanto, el tiempo de ejecución establece los miembros hResource y SubResourceIndex de la estructura DXGI_DDI_ARG_SETDISPLAYMODE a la que apunta el parámetro pDisplayModeData en el principal que se creó a través de la llamada a la función CreateResourceD3D10 del controlador. A continuación, el controlador debe traducir el elemento principal que hResource y SubResourceIndex representan a un identificador de asignación principal. Después de que el controlador realice esta traducción, el controlador debe pasar el identificador resultante en una llamada a la función pfnSetDisplayModeCb , que luego inicia una llamada a la función DxgkDdiCommitVidPn del controlador de miniporte de pantalla.

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 tiempo de ejecución llama a la función ResolveSharedResourceDXGI del controlador cada vez que cambia un propietario de la superficie compartida o cuando se usa una superficie para la interoperación 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)

Consulte también

BltDXGI

CreateDevice(D3D10)

D3D10DDIARG_CREATEDEVICE

DXGI_DDI_BASE_ARGS

DXGI_DDI_BASE_FUNCTIONS

GetGammaCapsDXGI

PresentDXGI

QueryResourceResidencyDXGI

ResolveSharedResource

ResolveSharedResourceDXGI

RotateResourceIdentitiesDXGI

SetDisplayModeDXGI

SetResourcePriorityDXGI