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 |