IDXGIOutputDuplication::ReleaseFrame, méthode (dxgi1_2.h)
Indique que l’application a terminé de traiter le frame.
Syntaxe
HRESULT ReleaseFrame();
Valeur de retour
ReleaseFrame retourne :
- S_OK si elle s’est terminée correctement.
- DXGI_ERROR_INVALID_CALL si l’application a déjà libéré le frame.
- DXGI_ERROR_ACCESS_LOST si l’interface de duplication du bureau n’est pas valide. L’interface de duplication du bureau devient généralement non valide lorsqu’un autre type d’image est affiché sur le bureau. Voici quelques exemples de cette situation :
- Commutateur de bureau
- Changement de mode
- Passer de DWM activé, DWM désactivé ou d’une autre application plein écran
- Éventuellement d’autres codes d’erreur décrits dans la rubrique DXGI_ERROR .
Notes
L’application doit libérer le frame avant d’acquérir le frame suivant. Une fois le frame libéré, la surface qui contient l’image bitmap du bureau devient non valide ; vous ne pourrez pas utiliser la surface dans une opération graphique DirectX.
Pour des raisons de performances, nous vous recommandons de libérer l’image juste avant d’appeler la méthode IDXGIOutputDuplication::AcquireNextFrame pour acquérir l’image suivante. Lorsque le client n’est pas propriétaire de l’image, le système d’exploitation copie toutes les mises à jour du bureau sur la surface. Cela peut entraîner un gaspillage des cycles GPU si le système d’exploitation met à jour la même région pour chaque image qui se produit. Lorsque le client acquiert le frame, il ne connaît que la dernière mise à jour de cette région ; Par conséquent, toutes les mises à jour qui se chevauchent pendant les images précédentes sont gaspiller. Lorsque le client acquiert un cadre, il est propriétaire de la surface ; Par conséquent, le système d’exploitation peut suivre uniquement les régions mises à jour et ne peut pas copier les mises à jour du bureau sur la surface. En raison de ce comportement, nous vous recommandons de réduire le temps entre l’appel pour libérer l’image actuelle et l’appel pour acquérir l’image suivante.
Spécifications
Client minimal pris en charge | Windows 8 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2012 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | dxgi1_2.h |
Bibliothèque | Dxgi.lib |