Partager via


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.

Remarque 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 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.

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

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).
Pour plus d’informations sur le thread, 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 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)

Voir aussi

createDevice(D3D10)

D3D10DDIARG_CREATEDEVICE

DXGI1_2_DDI_BASE_FUNCTIONS

DXGI_DDI_BASE_ARGS

DXGI_DDI_BASE_FUNCTIONS