structure DXGI1_1_DDI_BASE_FUNCTIONS (dxgiddi.h)
La structure DXGI1_1_DDI_BASE_FUNCTIONS contient des pointeurs vers des fonctions que le pilote d’affichage en mode utilisateur peut implémenter pour effectuer des tâches de bas niveau telles que la présentation d’images rendues à une sortie, le contrôle de gamma, l’obtention de notifications concernant les surfaces interopérables partagées et GDI et la gestion d’une transition en plein écran.
Syntaxe
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;
Membres
pfnPresent
Pointeur vers la fonction PresentDXGI du pilote.
pfnGetGammaCaps
Pointeur vers la fonction GetGammaCapsDXGI du pilote.
pfnSetDisplayMode
La fonction SetDisplayModeDXGI bascule vers un mode d’affichage ou principal que le bureau GDI ne prend pas en charge.
Le runtime Microsoft Direct3D appelle SetDisplayModeDXGI pour basculer vers un mode d’affichage ou principal que le bureau GDI ne prend pas en charge. La liste suivante décrit des exemples de ces primaires :
- Primaires créées avec des formats cibles de 10 bits par canal (10:10:10:2) d’affichage et de rendu des formats cibles (par exemple, D3DFMT_A2R10G10B10)
- Primaires à échantillon multiples où l’échantillonnage multiple est effectué lors de l’analyse
- Primaires persistantes utilisées par les applications Microsoft DirectX version 10 en plein écran
Le pilote d’affichage en mode utilisateur peut définir le membre hPrimaryAllocation de la structure D3DDDICB_SETDISPLAYMODE dans l’appel à pfnSetDisplayModeCb pour analyser n’importe quelle allocation. Toutefois, l’allocation doit être marquée comme un principal (autrement dit, le pilote d’affichage en mode utilisateur doit avoir défini l’indicateur de champ principal principal dans l’indicateur Flags membre de la structure D3DDDI_ALLOCATIONINFO dans un appel à la fonction pfnAllocateCb pour créer l’allocation).
pDisplayModeData
Pointeur vers une structure DXGI_DDI_ARG_SETDISPLAYMODE qui spécifie les paramètres de définition du mode d’affichage.
pfnSetResourcePriority
Pointeur vers la fonction setResourcePriorityDXGI du pilote.
pfnQueryResourceResidency
Pointeur vers la fonction QueryResourceResidencyDXGI du pilote.
pfnRotateResourceIdentities
Pointeur vers la fonction RotateResourceIdentitiesDXGI du pilote.
pfnBlt
Pointeur vers la fonction bltDXGI du pilote.
pfnResolveSharedResource
La fonction ResolveSharedResourceDXGI informe un pilote d’affichage en mode utilisateur que la propriété d’une surface partagée a changé ou qu’une surface est utilisée pour l’interopérabilité GDI.
Le runtime Direct3D appelle ResolveSharedResourceDXGI lorsqu’une application appelle l’une des fonctions suivantes :
- IDXGIKeyedMutex ::ReleaseSynch sur une surface partagée synchronisée
- IDXGISurface1 ::GetDC pour une surface interopérable GDI
Le pilote implémente ResolveSharedResourceDXGI pour gérer correctement les ressources pour plusieurs scénarios GPU. Chaque ressource peut être divisée en mémoire pour plusieurs GPU à afficher. Le pilote peut implémenter ResolveSharedResourceDXGI pour rémerger chaque ressource afin que le nouveau propriétaire de la ressource ait la ressource fusionnée. Le pilote doit vider les mémoires tampons de commande partiellement générées susceptibles de modifier la ressource.
Windows 7 fournit la macro IS_DXGI1_1_BASE_FUNCTIONS (définie dans le fichier d’en-tête D3D10umddi.h) pour permettre au pilote d’affichage en mode utilisateur de déterminer s’il reçoit un pointeur vers une structure DXGI1_1_DDI_BASE_FUNCTIONS ou DXGI_DDI_BASE_FUNCTIONS dans un appel à sa fonction CreateDevice(D3D10). La structure DXGI1_1_DDI_BASE_FUNCTIONS inclut le membre pfnResolveSharedResource que le pilote peut remplir avec un pointeur vers sa fonction ResolveSharedResourceDXGI. Si IS_DXGI1_1_BASE_FUNCTIONS retourne TRUE, le pilote s’attend à recevoir un pointeur vers une structure DXGI1_1_DDI_BASE_FUNCTIONS dans la structure pDXGIDDIBaseFunctions membre de la structure DXGI_DDI_BASE_ARGS que le DXGIBaseDDI membre de la structure D3D10DDIARG_CREATEDEVICE spécifie. Sinon, si IS_DXGI1_1_BASE_FUNCTIONS retourne FAUX, le pilote s’attend à recevoir un pointeur vers une structure de DXGI_DDI_BASE_FUNCTIONS. Windows 7 fournit la macro IS_DXGI1_1_BASE_FUNCTIONS pour permettre aux pilotes de version plus récents de fonctionner sur des runtimes de version plus anciens. Les pilotes peuvent ensuite déterminer s’ils endommagent la mémoire s’ils tentent de remplir la pfnResolveSharedResource membre de DXGI1_1_DDI_BASE_FUNCTIONS avec un pointeur vers la fonction ResolveSharedResourceDXGI.
pResourceData
Pointeur vers une structure DXGI_DDI_ARG_RESOLVESHAREDRESOURCE qui spécifie les paramètres de l’appareil d’affichage et de la surface associée à l’appareil d’affichage.
Remarques
Windows 7 fournit la macro IS_DXGI1_1_BASE_FUNCTIONS (définie dans le fichier d’en-tête D3D10umddi.h) pour permettre au pilote d’affichage en mode utilisateur de déterminer s’il reçoit un pointeur vers une structure DXGI1_1_DDI_BASE_FUNCTIONS ou DXGI_DDI_BASE_FUNCTIONS dans un appel à sa fonction CreateDevice(D3D10). La structure DXGI1_1_DDI_BASE_FUNCTIONS inclut le membre pfnResolveSharedResource que le pilote peut remplir avec un pointeur vers sa fonction ResolveSharedResourceDXGI. Si IS_DXGI1_1_BASE_FUNCTIONS retourne TRUE, le pilote s’attend à recevoir un pointeur vers une structure DXGI1_1_DDI_BASE_FUNCTIONS dans la structure pDXGIDDIBaseFunctions membre de la structure DXGI_DDI_BASE_ARGS que le DXGIBaseDDI membre de la structure D3D10DDIARG_CREATEDEVICE spécifie. Sinon, si IS_DXGI1_1_BASE_FUNCTIONS retourne FAUX, le pilote s’attend à recevoir un pointeur vers une structure de DXGI_DDI_BASE_FUNCTIONS. Windows 7 fournit la macro IS_DXGI1_1_BASE_FUNCTIONS pour permettre aux pilotes de version plus récents de fonctionner sur des runtimes de version plus anciens. Les pilotes peuvent ensuite déterminer s’ils endommagent la mémoire s’ils tentent de remplir le pfnResolveSharedResource membre de DXGI1_1_DDI_BASE_FUNCTIONS avec un pointeur vers une fonction ResolveSharedResourceDXGI.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | DXGI1_1_DDI_BASE_FUNCTIONS est pris en charge à partir du système d’exploitation Windows 7. |
d’en-tête | dxgiddi.h (include D3d10umddi.h) |