Método IDXGIFactoryMedia::CreateDecodeSwapChainForCompositionSurfaceHandle (dxgi1_3.h)

Cria uma cadeia de troca yuv para um identificador de superfície DirectComposition existente. A cadeia de troca é criada com buffers pré-existentes e poucos elementos descritivos são necessários. Em vez disso, esse método requer um identificador de superfície DirectComposition e um buffer IDXGIResource para manter os dados de quadro decodificados. O formato de cadeia de troca é determinado pelo formato dos sub-recursos do IDXGIResource.

Sintaxe

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

Parâmetros

[in] pDevice

Um ponteiro para o dispositivo Direct3D para a cadeia de troca. Esse parâmetro não pode ser NULL. Drivers de software, como D3D_DRIVER_TYPE_REFERENCE, não têm suporte para cadeias de troca de composição.

[in, optional] hSurface

Um identificador para uma superfície DirectComposition existente. Esse parâmetro não pode ser NULL.

[in] pDesc

Um ponteiro para uma estrutura DXGI_DECODE_SWAP_CHAIN_DESC para a descrição da cadeia de troca. Esse parâmetro não pode ser NULL.

[in] pYuvDecodeBuffers

Um ponteiro para uma interface IDXGIResource que representa o recurso que contém as informações que CreateDecodeSwapChainForCompositionSurfaceHandle decodifica.

[in, optional] pRestrictToOutput

Um ponteiro para a interface IDXGIOutput para a cadeia de troca à qual restringir o conteúdo. Se a cadeia de troca for movida para uma saída diferente, o conteúdo será preto. Opcionalmente, você pode definir esse parâmetro como um destino de saída que usa DXGI_PRESENT_RESTRICT_TO_OUTPUT para restringir o conteúdo nessa saída. Se a cadeia de troca for movida para uma saída diferente, o conteúdo será preto.

Você também deve passar o sinalizador DXGI_PRESENT_RESTRICT_TO_OUTPUT em uma chamada atual para forçar o conteúdo a aparecer apagado em qualquer outra saída. Se você quiser restringir o conteúdo a uma saída diferente, deverá criar uma nova cadeia de troca. No entanto, você pode restringir condicionalmente o conteúdo com base no sinalizador DXGI_PRESENT_RESTRICT_TO_OUTPUT .

Defina esse parâmetro como NULL se você não quiser restringir o conteúdo a um destino de saída.

[out] ppSwapChain

Um ponteiro para uma variável que recebe um ponteiro para a interface IDXGIDecodeSwapChain para a cadeia de troca que esse método cria.

Valor retornado

CreateDecodeSwapChainForCompositionSurfaceHandle retorna:

  • S_OK se ele criou com êxito uma cadeia de troca.
  • E_OUTOFMEMORY se a memória não estiver disponível para concluir a operação.
  • DXGI_ERROR_INVALID_CALL se o aplicativo de chamada forneceu dados inválidos, por exemplo, se pDesc, pYuvDecodeBuffers ou ppSwapChain for NULL.
  • Possivelmente outros códigos de erro descritos no tópico DXGI_ERROR que são definidos pelo tipo de dispositivo que você passa para pDevice.

Comentários

O IDXGIResource fornecido por meio do parâmetro pYuvDecodeBuffers deve apontar para pelo menos um sub-recurso e todos os sub-recursos devem ser criados com o sinalizador D3D11_BIND_DECODER .

Requisitos

   
Cliente mínimo com suporte Windows 8.1 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho dxgi1_3.h
Biblioteca Dxgi.lib

Confira também

IDXGIFactoryMedia