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 |