PDD_VPORTCB_UPDATE回呼函式 (ddrawint.h)
DdVideoPortUpdate回呼函式會啟動和停止 VPE 物件,並修改 VPE 物件資料流程。
語法
PDD_VPORTCB_UPDATE PddVportcbUpdate;
DWORD PddVportcbUpdate(
PDD_UPDATEVPORTDATA unnamedParam1
)
{...}
參數
unnamedParam1
指向包含驅動程式更新 VPE 物件所需資訊的 DD_UPDATEVPORTDATA 結構。
傳回值
DdVideoPortUpdate 會傳回下列其中一個回呼代碼:
備註
支援 VPE 的 DirectDraw 驅動程式必須實作 DdVideoPortUpdate。
當lpUpdate DD_UPDATEVPORTDATA 結構的dwFlags成員DDRAWI_VPORTSTART或DDRAWI_VPORTUPDATE時,驅動程式應該執行下列動作:
- 檢查DDVIDEOPORTINFO結構的dwVPFlags成員中的所有旗標,其中lpVideoInfo成員DD_UPDATEVPORTDATA點。 這些旗標描述驅動程式如何將視訊資料傳輸至介面 (或表面) ;例如,它們會指出驅動程式是否應該執行自動滑動、裁剪視訊或 VBI 資料等等。
- 在硬體中設定迴圈,以將視訊和/或 VBI 資料寫入介面的順序,讓表面儲存在陣列中 () 。 設定這些迴圈之後,驅動程式應該儘快傳回。
- 如果已要求自動剪貼,請將每個表面的畫面緩衝區位移儲存在驅動程式的內部資料結構中。 表面位移應該以DD_UPDATEVPORTDATA的 lplpDDDSurface 和 lplpDDVBISurface成員DD_SURFACE_INT陣列發生的順序儲存。 如此一來,當 呼叫 DdUpdateOverlay 時,驅動程式會記錄表面鏈結的翻轉順序。
如果驅動程式的硬體無法支援要求自動剪貼時指定的表面數目, DdVideoPortUpdate 應該會在 DD_UPDATEVPORTDATA 的 ddRVal 成員中設定DDERR_UNSUPPORTED來失敗呼叫。
視訊和 VBI 表面鏈結中的表面數目可能不同;也就是說,DD_UPDATEVPORTDATA的 dwNumAutoflip 和 dwNumVBIAutoflip 成員可以是不同的值。
當 dwFlags DDRAWI_VPORTSTOP時,驅動程式應該會立即傳回。 在資料流程停止之前,驅動程式不應該輪詢。
需求
目標平台 | 桌面 |
標頭 | ddrawint.h (包含 Winddi.h) |