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