Condividi tramite


Metodo IDXGIOutput5::D uplicateOutput1 (dxgi1_5.h)

Consente di specificare un elenco di formati supportati per le superfici a schermo intero che possono essere restituite dall'oggetto IDXGIOutputDuplication .

Sintassi

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

Parametri

[in] pDevice

Tipo: IUnknown*

Puntatore all'interfaccia del dispositivo Direct3D che è possibile usare per elaborare l'immagine desktop. Questo dispositivo deve essere creato dalla scheda a cui è connesso l'output.

Flags

Tipo: UINT

Un campo di bit di DXGI_OUTDUPL_FLAG valori di enumerazione che descrivono il tipo di superficie di acquisizione da creare.

[in] SupportedFormatsCount

Tipo: UINT

Specifica il numero di formati supportati.

[in] pSupportedFormats

Tipo: const DXGI_FORMAT*

Specifica una matrice di lunghezza SupportedFormatsCount di DXGI_FORMAT voci.

[out] ppOutputDuplication

Tipo: IDXGIOutputDuplication**

Puntatore a una variabile che riceve la nuova interfaccia IDXGIOutputDuplication .

Valore restituito

Tipo: HRESULT

  • S_OK se DuplicateOutput1 ha creato correttamente l'interfaccia di duplicazione desktop.
  • E_INVALIDARG per uno dei motivi seguenti:
    • Il dispositivo specificato (pDevice) non è valido, non è stato creato nella scheda corretta o non è stato creato da IDXGIFactory1 (o una versione successiva di un'interfaccia factory DXGI che eredita da IDXGIFactory1).
    • L'applicazione chiamante sta già duplicando questo output desktop.
  • E_ACCESSDENIED se l'applicazione non dispone dei privilegi di accesso all'immagine desktop corrente. Ad esempio, solo un'applicazione eseguita in LOCAL_SYSTEM può accedere al desktop protetto.
  • DXGI_ERROR_UNSUPPORTED se l'interfaccia IDXGIOutputDuplication creata non supporta la modalità desktop o lo scenario corrente. Ad esempio, le modalità desktop 8bpp e non DWM non sono supportate.

    Se DuplicateOutput1 ha esito negativo con DXGI_ERROR_UNSUPPORTED, l'applicazione può attendere la notifica di sistema delle modifiche alla modalità e del commutatori desktop e quindi chiamare nuovamente DuplicateOutput1 dopo che si verifica una notifica di questo tipo. Per altre informazioni, vedere l'opzione desktop (EVENT_SYSTEM_DESKTOPSWITCH) e la notifica di modifica della modalità (WM_DISPLAYCHANGE).

  • DXGI_ERROR_NOT_CURRENTLY_AVAILABLE se DXGI ha raggiunto il limite per il numero massimo di applicazioni di duplicazione simultanee (valore predefinito di quattro). Pertanto, l'applicazione chiamante non può creare interfacce di duplicazione desktop fino alla chiusura delle altre applicazioni.
  • DXGI_ERROR_SESSION_DISCONNECTED se DuplicateOutput1 non è riuscito perché la sessione è attualmente disconnessa.
  • Altri codici di errore sono descritti nell'argomento DXGI_ERROR .

Commenti

Questo metodo consente di ricevere direttamente il formato del buffer nascosto originale usato da un'applicazione a schermo intero in esecuzione. Per il confronto, l'uso della funzione DuplicateOutput originale converte sempre la superficie a schermo intero in un formato BGRA a 32 bit. Nei casi in cui l'applicazione a schermo intero corrente usa un formato di buffer diverso, una conversione in BGRA a 32 bit comporta una riduzione delle prestazioni. Oltre al vantaggio delle prestazioni della possibilità di ignorare la conversione del formato, l'uso di DuplicateOutput1 consente anche di ricevere la gamma completa dei colori nei casi in cui viene presentato un formato a colori elevati (ad esempio R10G10B10A2).

La matrice pSupportedFormats deve contenere solo formati di analisi dello schermo. Vedere Supporto del formato per l'hardware di livello 11.0 direct3D per i formati di analisi necessari a ogni livello di funzionalità. Se il formato del buffer a schermo intero corrente non è contenuto nella matrice pSupportedFormats , DXGI sceglierà uno dei formati forniti e convertirà il buffer a schermo intero in tale formato prima di restituire da IDXGIOutputDuplication::AcquireNextFrame. L'elenco dei formati supportati deve sempre contenere DXGI_FORMAT_B8G8R8A8_UNORM, perché questo è il formato più comune per il desktop.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione dxgi1_5.h
Libreria Dxgi.lib
DLL Dxgi.dll

Vedi anche

DuplicateOutput

IDXGIOutput5