共用方式為


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 時,驅動程式會記錄表面鏈結的翻轉順序。
如果 DDVIDEOPORTINFO 結構的dwVBIHeight成員大於零,且lplpDDVBISurface不是Null,則驅動程式應該將dwVBIHeight中數位所指定的VBI資料行寫入lplpDDVBISurface所指向陣列中的每個表面。

如果驅動程式的硬體無法支援要求自動剪貼時指定的表面數目, DdVideoPortUpdate 應該會在 DD_UPDATEVPORTDATA 的 ddRVal 成員中設定DDERR_UNSUPPORTED來失敗呼叫。

視訊和 VBI 表面鏈結中的表面數目可能不同;也就是說,DD_UPDATEVPORTDATA的 dwNumAutoflipdwNumVBIAutoflip 成員可以是不同的值。

當 dwFlags DDRAWI_VPORTSTOP時,驅動程式應該會立即傳回。 在資料流程停止之前,驅動程式不應該輪詢。

需求

   
目標平台 桌面
標頭 ddrawint.h (包含 Winddi.h)

另請參閱

DDVIDEOPORTINFO

DD_SURFACE_INT

DD_UPDATEVPORTDATA

DdUpdateOverlay