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.

Note Cette fonction est appelée pour chacun des groupes de fonctionnalités signalés par le pilote.
 

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 .

Note Lorsque la fonction pfnPresent1(DXGI) du pilote copie le contenu au format sRGB d’une surface source vers une surface de destination non sRGB, le pilote doit copier le contenu sRGB inchangé (autrement dit, le pilote ne doit pas effectuer la conversion sRGB en conversion linéaire).

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).
Pour plus d’informations sur le threading, consultez Modifications de Direct3D 10.

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)

Voir aussi

CreateDevice(D3D10)

D3D10DDIARG_CREATEDEVICE

DXGI1_2_DDI_BASE_FUNCTIONS

DXGI_DDI_BASE_ARGS

DXGI_DDI_BASE_FUNCTIONS