DXGI1_3_DDI_BASE_FUNCTIONS structure (dxgiddi.h)
Contient des pointeurs vers des fonctions qu’un pilote d’affichage WDDM (Windows Display Driver Model) 1.3 et ultérieur 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 des surfaces interopérables partagées et Windows Graphics Device Interface (GDI) et la gestion d’une transition plein écran.
Syntaxe
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;
Membres
pfnPresent
Pointeur vers la fonction PresentDXGI du pilote.
pfnGetGammaCaps
Pointeur vers la fonction GetGammaCapsDXGI du pilote.
pfnSetDisplayMode
Pointeur vers la fonction SetDisplayModeDXGI du pilote.
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
Pointeur vers la fonction ResolveSharedResourceDXGI du pilote.
pfnBlt1
Pointeur vers la fonction Blt1DXGI du pilote.
pfnOfferResources
Pointeur vers la fonction pfnOfferResources du pilote.
pfnReclaimResources
Pointeur vers la fonction pfnReclaimResources du pilote.
pfnGetMultiplaneOverlayCaps
Appelé par le runtime DXGI pour demander que le pilote d’affichage en mode utilisateur obtienne des fonctionnalités de plan de superposition de base. Implémenté éventuellement par les pilotes d’affichage en mode utilisateur WDDM 1.3 et ultérieur.
pfnGetMultiplaneOverlayGroupCaps
Appelé par le runtime DXGI pour demander que le pilote d’affichage en mode utilisateur obtienne un groupe de fonctionnalités de plan de superposition. Implémenté éventuellement par les pilotes d’affichage en mode utilisateur WDDM 1.3 et ultérieur.
Syntaxe
pfnGetMultiplaneOverlayGroupCaps GetMultiplaneOverlayGroupCaps;
HRESULT __stdcall* GetMultiplaneOverlayGroupCaps(
DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS *pGroupCaps
)
{ ... }
Paramètre
pGroupCaps Pointeur vers une structure DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS qui spécifie le groupe de fonctionnalités de plan de superposition.
Valeur de retour
Retourne l’une des valeurs suivantes.
- S_OK Le pilote a correctement fourni les fonctionnalités de plan de superposition.
- D3DDDIERR_DEVICEREMOVED Le pilote a détecté que l’adaptateur d’affichage a été supprimé, de sorte que le pilote n’a pas terminé l’opération. Si le pilote n’a pas connaissance de la suppression de l’adaptateur, il n’est pas nécessaire de retourner ce code d’erreur.
pfnReserved1
Réservé pour le système.
pfnPresentMultiplaneOverlay
Appelé par le runtime Microsoft DirectX Graphics Infrastructure (DXGI) pour informer le pilote d’affichage en mode utilisateur qu’une application a terminé le rendu et demande que le pilote affiche la surface source en copiant ou en retournant ou en effectuant une opération de remplissage des couleurs. Doit être implémenté par les pilotes WDDM (Windows Display Driver Model) 1.3 ou ultérieur qui prennent en charge les superpositions multiplan.
Lorsque le pilote d’affichage en mode utilisateur termine correctement son traitement d’un appel à cette fonction, il présente la surface source à l’affichage en appelant la fonction pfnPresentMultiPlaneOverlayCb (DXGI).
PFND3DDDI_PRESENTMULTIPLANEOVERLAY pfnPresentMultiPlaneOverlay;
HRESULT __stdcall* pfnPresentMultiPlaneOverlay(
DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY *pPresentDXGI
)
{ ... }
Paramètre
pPresentDXGI Pointeur vers une structure DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY qui décrit comment s’afficher sur l’aire de destination.
Valeur de retour
Si cette fonction de rappel réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.
pfnReserved2
Réservé pour le système.
pfnPresent1
Avertit le pilote d’affichage en mode utilisateur qu’une application a terminé le rendu et que toute la propriété de la ressource partagée est libérée, et demande que le pilote s’affiche sur l’aire de destination.
Syntaxe
pfnPresent1 Present1DXGI;
HRESULT __stdcall* Present1DXGI(
DXGI_DDI_ARG_PRESENT1 *pPresentData
)
{ ... }
Paramètre
pPresentData [in] Pointeur vers une structure DXGI_DDI_ARG_PRESENT1 qui décrit comment afficher sur la surface de destination.
Remarques
Le membre hDevice de la structure DXGI_DDI_ARG_PRESENT1 vers laquelle pointe le paramètre pPresentData est le même handle que celui que la fonction CreateDevice(D3D10) du pilote a passé au runtime dans le membre hDrvDevice de la structure D3D10DDIARG_CREATEDEVICE . Par conséquent, les enregistreurs de pilotes doivent définir soigneusement le type de ce handle. En outre, les pilotes peuvent fournir différentes implémentations de la fonction pfnPresent1(DXGI) en fonction de laquelle l’implémentation DDI a géré l’appel à CreateDevice(D3D10). Le runtime ne combine jamais les handles de pilote entre les implémentations DDI.
Le membre pDXGIContext de DXGI_DDI_ARG_PRESENT1 est un mécanisme de communication opaque. Le runtime transmet ce contexte DXGI au pilote. Le pilote doit copier ce contexte DXGI inchangé dans le membre pDXGIContext de la structure DXGIDDICB_PRESENT lorsque le pilote appelle la fonction pfnPresentCbDXGI .
Le pilote doit envoyer toutes les données de rendu partiellement générées (mémoires tampons de commande) à l’aide de la fonction pfnRenderCb , et le pilote doit effectuer un seul appel à pfnPresentCbDXGI. Lors de l’appel de l’un de ces rappels, le pilote doit suivre les règles de thread de la fonction PresentDXGI .
Règles de threading
Ces règles s’appliquent, que le pilote prenne en charge le thread libre ou non :
- Le pilote indique la prise en charge du thread libre en définissant le membre Caps de la structure D3D11DDI_THREADING_CAPSsur D3D11DDICAPS_FREETHREADED. Dans ce cas :
- Un seul thread peut travailler sur un handle de contexte HCONTEXT à la fois.
- Le pilote doit appeler pfnPresentCbDXGI uniquement lorsque la fonction pfnPresent1(DXGI) du pilote est appelée, et par le même thread que pfnPresent1(DXGI).
- Lorsque le pilote n’indique pas la prise en charge du thread libre, il peut uniquement appeler les fonctions de rappel lorsqu’un thread a appelé le pilote. Le pilote doit également appeler le rappel pfnPresentCbDXGI dans le contexte de pfnPresent1(DXGI).
pfnCheckPresentDurationSupport
Pointeur vers la fonction pfnCheckPresentDurationSupport(DXGI) du pilote.
Remarques
Pour plus d’informations sur l’utilisation de cette structure, consultez Prise en charge de DDI DXGI.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8.1,WDDM 1.3 et versions ultérieures |
Serveur minimal pris en charge | Windows Server 2012 R2 |
En-tête | dxgiddi.h (include D3d10umddi.h) |