PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB fonction de rappel (d3dumddi.h)

La fonction pfnSetDisplayPrivateDriverFormatCb modifie l’attribut de format privé d’une source vidéo présente.

Syntaxe

PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB Pfnd3dddiSetdisplayprivatedriverformatcb;

HRESULT Pfnd3dddiSetdisplayprivatedriverformatcb(
  HANDLE hDevice,
  const D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT *unnamedParam2
)
{...}

Paramètres

hDevice

Handle pour le périphérique d’affichage (contexte graphique).

unnamedParam2

pData [in]

Pointeur vers une structure D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT qui décrit comment mettre en forme une source présente vidéo.

Valeur retournée

pfnSetDisplayPrivateDriverFormatCb retourne l’une des valeurs suivantes :

Code de retour Description
S_OK La source présente de la vidéo a été modifiée avec succès.
E_INVALIDARG Les paramètres ont été validés et déterminés comme incorrects.
E_FAIL pfnSetDisplayPrivateDriverFormatCb n’a pas pu modifier l’attribut de format privé de la source actuelle de la vidéo.

Cette fonction peut également retourner d’autres valeurs HRESULT.

Remarques

La modification de l’attribut de format privé d’une source vidéo présente est utile pour prendre en charge une application DirectX en plein écran qui crée sa modification de basculement lorsque la surface principale GDI partagée est dans un format privé non optimal pour l’application DirectX en plein écran. Par exemple, supposons que le pilote de miniport d’affichage crée toujours la surface principale partagée GDI comme non-swizzled. Toutefois, pour des raisons de performances, le pilote d’affichage en mode utilisateur nécessite que toutes les surfaces d’une chaîne de basculement en plein écran soient décomptées. Le pilote d’affichage en mode utilisateur peut ensuite créer les mémoires tampons d’arrière-mémoire en tant que swizzled et appeler pfnSetDisplayPrivateDriverFormatCb pour modifier la surface principale GDI partagée en swizzled.

Si l’appel à pfnSetDisplayPrivateDriverFormatCb échoue, le pilote d’affichage en mode utilisateur doit continuer sans modifier l’attribut de format privé de la source vidéo présente. Dans l’exemple précédent, le pilote peut laisser le principal partagé comme non-swizzled et faire en sorte que les mémoires tampons d’arrière-mémoire swizzled, soit le pilote peut modifier les mémoires tampons d’arrière-mémoire au format non swizzled.

Si le pilote d’affichage en mode utilisateur reçoit l’erreur D3DDDIERR_INCOMPATIBLEPRIVATEFORMAT d’un appel à la fonction pfnSetDisplayModeCb , le pilote peut effectuer l’une des opérations suivantes :

  • Modifiez l’attribut de format privé de la surface principale et appelez à nouveau pfnSetDisplayModeCb .
  • Appelez pfnSetDisplayPrivateDriverFormatCb et essayez de modifier l’attribut de format privé de la source actuelle de la vidéo. Le pilote peut ensuite appeler à nouveau pfnSetDisplayModeCb .
Le pilote d’affichage en mode utilisateur peut appeler pfnSetDisplayPrivateDriverFormatCb uniquement si le membre Version de la structure D3DDDIARG_CREATEDEVICE a été défini sur supérieur à sept lorsque le périphérique d’affichage (spécifié par le paramètre hDevice ) a été créé dans un appel à la fonction CreateDevice du pilote.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows.
Plateforme cible Desktop (Expérience utilisateur)
En-tête d3dumddi.h (inclure D3dumddi.h)

Voir aussi

CreateDevice

D3DDDIARG_CREATEDEVICE

D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT

D3DDDI_DEVICECALLBACKS

pfnSetDisplayModeCb