IDXGIFactoryMedia::CreateDecodeSwapChainForCompositionSurfaceHandle 方法 (dxgi1_3.h)
為現有的 DirectComposition 介面控制碼建立 YUV 交換鏈結。 交換鏈結是使用預先存在的緩衝區所建立,而且需要非常少的描述性元素。 相反地,此方法需要 DirectComposition 介面控制碼和 IDXGIResource 緩衝區,才能保存解碼的框架資料。 交換鏈結格式取決於 IDXGIResource子資源的格式。
語法
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
);
參數
[in] pDevice
交換鏈結之 Direct3D 裝置的指標。 此參數不可為 Null。 組合交換鏈結不支援 軟體驅動程式,例如D3D_DRIVER_TYPE_REFERENCE。
[in, optional] hSurface
現有 DirectComposition 介面的控制碼。 此參數不可為 Null。
[in] pDesc
交換鏈結描述 之DXGI_DECODE_SWAP_CHAIN_DESC 結構的指標。 此參數不可為 Null。
[in] pYuvDecodeBuffers
IDXGIResource介面的指標,代表包含CreateDecodeSwapChainForCompositionSurfaceHandle解碼資訊的資源。
[in, optional] pRestrictToOutput
交換鏈結的 IDXGIOutput 介面指標,可限制內容。 如果交換鏈結移至不同的輸出,則內容為黑色。 您可以選擇性地將此參數設定為使用 DXGI_PRESENT_RESTRICT_TO_OUTPUT 限制此輸出內容的輸出目標。 如果交換鏈結移至不同的輸出,則內容為黑色。
您也必須在目前呼叫中傳遞 DXGI_PRESENT_RESTRICT_TO_OUTPUT 旗標,以強制內容出現在任何其他輸出上。 如果您想要將內容限制為不同的輸出,您必須建立新的交換鏈結。 不過,您可以根據 DXGI_PRESENT_RESTRICT_TO_OUTPUT 旗標,有條件地限制內容。
如果您不想將內容限制為輸出目標,請將此參數設定為 Null 。
[out] ppSwapChain
變數的指標,會接收這個方法所建立之交換鏈結之 IDXGIDecodeSwapChain 介面的指標。
傳回值
CreateDecodeSwapChainForCompositionSurfaceHandle 會傳回:
- 如果已成功建立交換鏈結,S_OK。
- 如果記憶體無法完成作業,E_OUTOFMEMORY。
- 如果 呼叫的應用程式提供不正確資料,例如 ,如果 pDesc、 pYuvDecodeBuffers或 ppSwapChain 為 Null,則DXGI_ERROR_INVALID_CALL。
- 可能是 DXGI_ERROR主題中所述 的其他錯誤碼,這些錯誤碼是由您傳遞至 pDevice的裝置類型所定義。
備註
透過pYuvDecodeBuffers參數提供的IDXGIResource必須指向至少一個子資源,而且所有子資源都必須使用D3D11_BIND_DECODER旗標來建立。
需求
最低支援的用戶端 | Windows 8.1 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 R2 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | dxgi1_3.h |
程式庫 | Dxgi.lib |