DXGI1_1_DDI_BASE_FUNCTIONS structure (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 dans une sortie, le contrôle gamma, l’obtention de notifications concernant les surfaces partagées et interopérables GDI et la gestion d’une transition 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 :
- Les primitives créées avec 10 bits par canal (10 :10 :10 :2) affichent et affichent les formats cibles de rendu (par exemple, D3DFMT_A2R10G10B10)
- Primaires à échantillonnage multiple où l’échantillonnage multiple est effectué lors de l’analyse
- Primaires persistantes utilisées par les applications Microsoft DirectX version 10 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 toute allocation. Toutefois, l’allocation doit être marquée comme primaire (autrement dit, le pilote d’affichage en mode utilisateur doit avoir défini l’indicateur de champ binaire principal dans le membre Indicateurs de la structure D3DDDI_ALLOCATIONINFO dans un appel à la fonction pfnAllocateCb pour créer l’allocation).
pDisplayModeData
Pointeur vers une structure de DXGI_DDI_ARG_SETDISPLAYMODE qui spécifie des paramètres pour définir le 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 que plusieurs GPU s’affichent. Le pilote peut implémenter ResolveSharedResourceDXGI pour fusionner chaque ressource afin que le nouveau propriétaire de la ressource dispose de la ressource fusionnée. Le pilote doit vider toutes 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 (qui est 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 le membre pDXGIDDIBaseFunctions de la structure DXGI_DDI_BASE_ARGS que le membre DXGIBaseDDI de la structure D3D10DDIARG_CREATEDEVICE spécifie. Sinon, si IS_DXGI1_1_BASE_FUNCTIONS retourne FALSE, le pilote s’attend à recevoir un pointeur vers une structure DXGI_DDI_BASE_FUNCTIONS. Windows 7 fournit la macro IS_DXGI1_1_BASE_FUNCTIONS pour permettre aux pilotes de version plus récente de fonctionner sur des runtimes de version plus anciens. Les pilotes peuvent ensuite déterminer s’ils endommageront la mémoire s’ils tentent de remplir le membre pfnResolveSharedResource de DXGI1_1_DDI_BASE_FUNCTIONS avec un pointeur vers la fonction ResolveSharedResourceDXGI .
pResourceData
Pointeur vers une structure de DXGI_DDI_ARG_RESOLVESHAREDRESOURCE qui spécifie les paramètres du périphérique d’affichage et de la surface associée au périphérique d’affichage.
Remarques
Windows 7 fournit la macro IS_DXGI1_1_BASE_FUNCTIONS (qui est 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 le membre pDXGIDDIBaseFunctions de la structure DXGI_DDI_BASE_ARGS que le membre DXGIBaseDDI de la structure D3D10DDIARG_CREATEDEVICE spécifie. Sinon, si IS_DXGI1_1_BASE_FUNCTIONS retourne FALSE, le pilote s’attend à recevoir un pointeur vers une structure DXGI_DDI_BASE_FUNCTIONS. Windows 7 fournit la macro IS_DXGI1_1_BASE_FUNCTIONS pour permettre aux pilotes de version plus récente 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 membre pfnResolveSharedResource de DXGI1_1_DDI_BASE_FUNCTIONS avec un pointeur vers une fonction ResolveSharedResourceDXGI .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | DXGI1_1_DDI_BASE_FUNCTIONS est pris en charge à partir du système d’exploitation Windows 7. |
En-tête | dxgiddi.h (include D3d10umddi.h) |