structure DXGI1_3_DDI_BASE_FUNCTIONS (dxgiddi.h)
Contient des pointeurs vers des fonctions qu’un pilote d’affichage Windows Display Driver Model (WDDM) 1.3 et ultérieur 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 de l’interface GDI (Shared Graphics Device Interface) et la gestion d’une transition en 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 les fonctionnalités de plan de superposition de base. Vous pouvez éventuellement implémenter 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. Vous pouvez éventuellement implémenter 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 du 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, le pilote n’est pas tenu de retourner ce code d’erreur.
pfnReserved1
Réservé à l’utilisation du 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 au pilote d’afficher la surface source en copiant ou en retournant ou en effectuant une opération de remplissage de couleur. Doit être implémenté par les pilotes WDDM (Windows Display Driver Model) 1.3 ou ultérieur qui prennent en charge les superpositions multiplanes.
Lorsque le pilote d’affichage en mode utilisateur termine correctement son traitement d’un appel à cette fonction, il présente l’aire 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, il retourne un code d’erreur HRESULT.
pfnReserved2
Réservé à l’utilisation du système.
pfnPresent1
Avertit le pilote d’affichage en mode utilisateur qu’une application a terminé le rendu et que toute 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 s’afficher sur l’aire de destination.
Remarques
Le membre hDevice de la structure DXGI_DDI_ARG_PRESENT1 que le paramètre pPresentData pointe est le même handle que la fonction CreateDevice(D3D10) du pilote passée au runtime dans le hDrvDevice membre de la structure D3D10DDIARG_CREATEDEVICE. Par conséquent, les enregistreurs de pilotes doivent définir attentivement le type de cette poignée. En outre, les pilotes peuvent fournir différentes implémentations de la fonction pfnPresent1(DXGI) basée sur l’implémentation DDI qui a géré l’appel à CreateDevice(D3D10). Le runtime ne combine jamais les handles de pilote entre les implémentations DDI.
Le pDXGIContext membre 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. Lorsque vous appelez 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 si le pilote prend en charge le threading libre ou non :
- Le pilote indique la prise en charge du thread libre en définissant le membre caps de la structure D3D11DDI_THREADING_CAPS sur D3D11DDICAPS_FREETHREADED. Dans ce cas :
- Un seul thread peut fonctionner 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 appelé 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é dans 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 du DDI DXGI.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 8.1,WDDM 1.3 et versions ultérieures |
serveur minimum pris en charge | Windows Server 2012 R2 |
d’en-tête | dxgiddi.h (include D3d10umddi.h) |