Condividi tramite


Metodo IDXGIFactoryMedia::CreateDecodeSwapChainForCompositionSurfaceHandle (dxgi1_3.h)

Crea una catena di scambio YUV per un handle di superficie DirectComposition esistente. La catena di scambio viene creata con buffer preesistenti e sono necessari pochissimi elementi descrittivi. Questo metodo richiede invece un handle di superficie DirectComposition e un buffer IDXGIResource per contenere dati frame decodificati. Il formato della catena di scambio è determinato dal formato delle sottorisorse dell'IDXGIResource.

Sintassi

HRESULT CreateDecodeSwapChainForCompositionSurfaceHandle(
  [in]           IUnknown                    *pDevice,
  [in, optional] HANDLE                      hSurface,
  [in]           DXGI_DECODE_SWAP_CHAIN_DESC *pDesc,
  [in]           IDXGIResource               *pYuvDecodeBuffers,
  [in, optional] IDXGIOutput                 *pRestrictToOutput,
  [out]          IDXGIDecodeSwapChain        **ppSwapChain
);

Parametri

[in] pDevice

Puntatore al dispositivo Direct3D per la catena di scambio. Questo parametro non può essere NULL. I driver software, come D3D_DRIVER_TYPE_REFERENCE, non sono supportati per le catene di scambio di composizione.

[in, optional] hSurface

Handle in una superficie DirectComposition esistente. Questo parametro non può essere NULL.

[in] pDesc

Puntatore a una struttura DXGI_DECODE_SWAP_CHAIN_DESC per la descrizione della catena di scambio. Questo parametro non può essere NULL.

[in] pYuvDecodeBuffers

Puntatore a un'interfaccia IDXGIResource che rappresenta la risorsa che contiene le informazioni che CreateDecodeSwapChainForCompositionSurfaceHandle decodifica.

[in, optional] pRestrictToOutput

Puntatore all'interfaccia IDXGIOutput per la catena di scambio a cui limitare il contenuto. Se la catena di scambio viene spostata in un output diverso, il contenuto è nero. Facoltativamente, è possibile impostare questo parametro su una destinazione di output che usa DXGI_PRESENT_RESTRICT_TO_OUTPUT per limitare il contenuto in questo output. Se la catena di scambio viene spostata in un output diverso, il contenuto è nero.

È inoltre necessario passare il flag DXGI_PRESENT_RESTRICT_TO_OUTPUT in una chiamata presente per forzare la visualizzazione del contenuto in nero in qualsiasi altro output. Se si vuole limitare il contenuto a un output diverso, è necessario creare una nuova catena di scambio. Tuttavia, è possibile limitare in modo condizionale il contenuto in base al flag di DXGI_PRESENT_RESTRICT_TO_OUTPUT .

Impostare questo parametro su NULL se non si vuole limitare il contenuto a una destinazione di output.

[out] ppSwapChain

Puntatore a una variabile che riceve un puntatore all'interfaccia IDXGIDecodeSwapChain per la catena di scambio creata da questo metodo.

Valore restituito

CreateDecodeSwapChainForCompositionSurfaceHandle restituisce :

  • S_OK se è stata creata correttamente una catena di scambio.
  • E_OUTOFMEMORY se la memoria non è disponibile per completare l'operazione.
  • DXGI_ERROR_INVALID_CALL se l'applicazione chiamante ha fornito dati non validi, ad esempio se pDesc, pYuvDecodeBuffers o ppSwapChain è NULL.
  • Possibilmente altri codici di errore descritti nell'argomento DXGI_ERROR definiti dal tipo di dispositivo passato a pDevice.

Commenti

L'IDXGIResource fornito tramite il parametro pYuvDecodeBuffers deve puntare ad almeno una sottorisorsa e tutte le sottorisorse devono essere create con il flag D3D11_BIND_DECODER.

Requisiti

   
Client minimo supportato Windows 8.1 [solo app desktop]
Server minimo supportato Windows Server 2012 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione dxgi1_3.h
Libreria Dxgi.lib

Vedi anche

IDXGIFactoryMedia