IDXGIOutput5::D uplicateOutput1, méthode (dxgi1_5.h)

Permet de spécifier une liste des formats pris en charge pour les surfaces plein écran qui peuvent être retournées par l’objet IDXGIOutputDuplication .

Syntaxe

HRESULT DuplicateOutput1(
  [in]  IUnknown               *pDevice,
        UINT                   Flags,
  [in]  UINT                   SupportedFormatsCount,
  [in]  const DXGI_FORMAT      *pSupportedFormats,
  [out] IDXGIOutputDuplication **ppOutputDuplication
);

Paramètres

[in] pDevice

Type : IUnknown*

Pointeur vers l’interface d’appareil Direct3D que vous pouvez utiliser pour traiter l’image de bureau. Cet appareil doit être créé à partir de l’adaptateur auquel la sortie est connectée.

Flags

Type : UINT

Réservé pour une future utilisation ; doit être nul.

[in] SupportedFormatsCount

Type : UINT

Spécifie le nombre de formats pris en charge.

[in] pSupportedFormats

Type : const DXGI_FORMAT*

Spécifie un tableau de longueur SupportedFormatsCount des entrées DXGI_FORMAT .

[out] ppOutputDuplication

Type : IDXGIOutputDuplication**

Pointeur vers une variable qui reçoit la nouvelle interface IDXGIOutputDuplication .

Valeur retournée

Type : HRESULT

  • S_OK si DuplicateOutput1 a correctement créé l’interface de duplication du bureau.
  • E_INVALIDARG pour l’une des raisons suivantes :
    • L’appareil spécifié (pDevice) n’est pas valide, n’a pas été créé sur l’adaptateur approprié ou n’a pas été créé à partir d’IDXGIFactory1 (ou d’une version ultérieure d’une interface d’usine DXGI qui hérite d’IDXGIFactory1).
    • L’application appelante dupliquer déjà cette sortie de bureau.
  • E_ACCESSDENIED si l’application ne dispose pas de privilèges d’accès à l’image de bureau actuelle. Par exemple, seule une application qui s’exécute à LOCAL_SYSTEM peut accéder au bureau sécurisé.
  • DXGI_ERROR_UNSUPPORTED si l’interface IDXGIOutputDuplication créée ne prend pas en charge le mode de bureau ou le scénario actuel. Par exemple, les modes de bureau 8bpp et non DWM ne sont pas pris en charge.

    Si DuplicateOutput1 échoue avec DXGI_ERROR_UNSUPPORTED, l’application peut attendre la notification système des commutateurs de bureau et les changements de mode, puis appeler à nouveau DuplicateOutput1 après qu’une telle notification s’est produite. Pour plus d’informations, consultez le commutateur de bureau (EVENT_SYSTEM_DESKTOPSWITCH) et la notification de changement de mode (WM_DISPLAYCHANGE).

  • DXGI_ERROR_NOT_CURRENTLY_AVAILABLE si DXGI a atteint la limite du nombre maximal d’applications de duplication simultanées (par défaut de quatre). Par conséquent, l’application appelante ne peut pas créer d’interfaces de duplication de bureau tant que les autres applications ne sont pas fermées.
  • DXGI_ERROR_SESSION_DISCONNECTED si DuplicateOutput1 a échoué, car la session est actuellement déconnectée.
  • D’autres codes d’erreur sont décrits dans la rubrique DXGI_ERROR .

Notes

Cette méthode permet de recevoir directement le format de mémoire tampon d’origine utilisé par une application plein écran en cours d’exécution. À des fins de comparaison, l’utilisation de la fonction DuplicateOutput d’origine convertit toujours la surface plein écran en format BGRA 32 bits. Dans les cas où l’application plein écran actuelle utilise un autre format de mémoire tampon, une conversion en BGRA 32 bits entraîne une pénalité de performances. Outre l’avantage en matière de performances de la possibilité d’ignorer la conversion de format, l’utilisation de DuplicateOutput1 permet également de recevoir la gamme complète de couleurs dans les cas où un format de couleur élevée (tel que R10G10B10A2) est présenté.

Le tableau pSupportedFormats doit uniquement contenir des formats d’analyse d’affichage. Consultez Prise en charge du format pour le matériel de niveau de fonctionnalité Direct3D 11.0 pour connaître les formats d’analyse requis à chaque niveau de fonctionnalité. Si le format de mémoire tampon plein écran actuel n’est pas contenu dans le tableau pSupportedFormats , DXGI choisit l’un des formats fournis et convertit la mémoire tampon plein écran en ce format avant de retourner à partir d’IDXGIOutputDuplication::AcquireNextFrame. La liste des formats pris en charge doit toujours contenir DXGI_FORMAT_B8G8R8A8_UNORM, car il s’agit du format le plus courant pour le bureau.

Spécifications

   
Plateforme cible Windows
En-tête dxgi1_5.h
Bibliothèque Dxgi.lib
DLL Dxgi.dll

Voir aussi

DuplicateOutput

IDXGIOutput5