IDirectXVideoAccelerationService::CreateSurface 方法 (dxva2api.h)
建立 DirectX 視訊加速 (DXVA) 視訊處理器或 DXVA 解碼器轉譯目標。
語法
HRESULT CreateSurface(
[in] UINT Width,
[in] UINT Height,
[in] UINT BackBuffers,
[in] D3DFORMAT Format,
[in] D3DPOOL Pool,
[in] DWORD Usage,
[in] DWORD DxvaType,
[out] IDirect3DSurface9 **ppSurface,
[in, out] HANDLE *pSharedHandle
);
參數
[in] Width
表面的寬度,以圖元為單位。
[in] Height
表面的高度,以圖元為單位。
[in] BackBuffers
背景緩衝區的數目。 方法會建立 BackBuffers + 1 表面。
[in] Format
指定為 D3DFORMAT 值或 FOURCC 程式碼的像素格式。 如需詳細資訊,請參閱 Direct3D 檔。
[in] Pool
要在其中建立表面的記憶體集區,指定為 D3DPOOL 值。 如需詳細資訊,請參閱 Direct3D 檔。 解碼器通常應該使用值D3DPOOL_DEFAULT。
[in] Usage
保留的。 將此值設定為零。
[in] DxvaType
要建立的介面類別型。 使用下列其中一個值。
值 | 意義 |
---|---|
|
視訊解碼器轉譯目標。 |
|
視訊處理器轉譯目標。 用於 IDirectXVideoProcessor::VideoProcessBlt 作業。 |
|
軟體轉譯目標。 此表面類型可與軟體 DXVA 裝置搭配使用。 |
[out] ppSurface
呼叫端所配置 之 IDirect3DSurface9 指標陣列的位址。 陣列的大小必須是 1 + BackBuffers , (足以用於後端緩衝區,加上一個前端緩衝區) 。 方法會以 IDirect3DSurface9 指標填入陣列。 呼叫端必須釋放所有介面指標。 此外,前端緩衝區會在每個後端緩衝區上保留參考計數。 因此,在刪除前端緩衝區之前,永遠不會刪除後端緩衝區。
[in, out] pSharedHandle
用來在 Direct3D 裝置之間共用表面之控制碼的指標。 將此參數設定為 Null。
傳回值
方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。
傳回碼 | 描述 |
---|---|
|
此方法已成功。 |
|
參數不正確 |
|
DirectX 影片加速管理員未初始化。 |
|
Null 指標引數。 |
備註
如果方法傳回 E_FAIL,請嘗試呼叫 IDirect3DDeviceManager9::ResetDevice 來重設 DirectX 影片加速管理員。
需求
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | dxva2api.h |