Compartir a través de


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

Crea una cadena de intercambio YUV para un identificador de superficie DirectComposition existente. La cadena de intercambio se crea con búferes preexistentes y se requieren muy pocos elementos descriptivos. En su lugar, este método requiere un identificador de superficie DirectComposition y un búfer IDXGIResource para contener datos de fotogramas descodificados. El formato de la cadena de intercambio viene determinado por el formato de los subrecursos de IDXGIResource.

Sintaxis

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

Puntero al dispositivo Direct3D para la cadena de intercambio. Este parámetro no puede ser NULL. Los controladores de software, como D3D_DRIVER_TYPE_REFERENCE, no se admiten para las cadenas de intercambio de composición.

[in, optional] hSurface

Identificador de una superficie DirectComposition existente. Este parámetro no puede ser NULL.

[in] pDesc

Puntero a una estructura de DXGI_DECODE_SWAP_CHAIN_DESC para la descripción de la cadena de intercambio. Este parámetro no puede ser NULL.

[in] pYuvDecodeBuffers

Puntero a una interfaz IDXGIResource que representa el recurso que contiene la información que descodifica CreateDecodeSwapChainForCompositionSurfaceHandle .

[in, optional] pRestrictToOutput

Puntero a la interfaz IDXGIOutput de la cadena de intercambio a la que restringir el contenido. Si la cadena de intercambio se mueve a una salida diferente, el contenido es negro. Opcionalmente, puede establecer este parámetro en un destino de salida que use DXGI_PRESENT_RESTRICT_TO_OUTPUT para restringir el contenido de esta salida. Si la cadena de intercambio se mueve a una salida diferente, el contenido es negro.

También debe pasar la marca DXGI_PRESENT_RESTRICT_TO_OUTPUT en una llamada presente para forzar que el contenido aparezca en negro en cualquier otra salida. Si desea restringir el contenido a una salida diferente, debe crear una nueva cadena de intercambio. Sin embargo, puede restringir condicionalmente el contenido en función de la marca DXGI_PRESENT_RESTRICT_TO_OUTPUT .

Establezca este parámetro en NULL si no desea restringir el contenido a un destino de salida.

[out] ppSwapChain

Puntero a una variable que recibe un puntero a la interfaz IDXGIDecodeSwapChain de la cadena de intercambio que crea este método.

Valor devuelto

CreateDecodeSwapChainForCompositionSurfaceHandle devuelve:

  • S_OK si creó correctamente una cadena de intercambio.
  • E_OUTOFMEMORY si la memoria no está disponible para completar la operación.
  • DXGI_ERROR_INVALID_CALL si la aplicación que realiza la llamada proporcionó datos no válidos, por ejemplo, si pDesc, pYuvDecodeBuffers o ppSwapChain es NULL.
  • Posiblemente otros códigos de error que se describen en el tema DXGI_ERROR definidos por el tipo de dispositivo que se pasa a pDevice.

Comentarios

El idXGIResource proporcionado a través del parámetro pYuvDecodeBuffers debe apuntar al menos a un subrecurso y todos los subrecursos deben crearse con la marca D3D11_BIND_DECODER .

Requisitos

   
Cliente mínimo compatible Windows 8.1 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado dxgi1_3.h
Library Dxgi.lib

Consulte también

IDXGIFactoryMedia