ホーム › Graphics.DirectDraw › PDD_VPORTCB_UPDATE
PDD_VPORTCB_UPDATE
コールバックシグネチャ
DWORD PDD_VPORTCB_UPDATE(
DD_UPDATEVPORTDATA* param0
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| param0 | DD_UPDATEVPORTDATA* | ドライバーが VPE オブジェクトを更新するために必要な情報を格納した DD_UPDATEVPORTDATA 構造体を指します。 |
公式ドキュメント
DdVideoPortUpdate コールバック関数は、VPE オブジェクトの開始と停止を行い、VPE オブジェクトのデータストリームを変更します。
戻り値
DdVideoPortUpdate は、次のコールバックコードのいずれかを返します。
解説(Remarks)
VPE をサポートする DirectDraw ドライバーは、DdVideoPortUpdate を実装する必要があります。
lpUpdate が指す DD_UPDATEVPORTDATA 構造体の dwFlags メンバーが DDRAWI_VPORTSTART または DDRAWI_VPORTUPDATE の場合、ドライバーは次の処理を行う必要があります。
- DD_UPDATEVPORTDATA の lpVideoInfo メンバーが指す DDVIDEOPORTINFO 構造体の dwVPFlags メンバーのすべてのフラグを確認します。これらのフラグは、ドライバーがビデオデータをサーフェス (1 つまたは複数) へ転送する方法を示します。たとえば、自動フリップを実行するかどうか、ビデオデータや VBI データをクロップするかどうかなどを示します。
- サーフェスが配列に格納されている順序でビデオデータや VBI データをサーフェスへ書き込むループを、ハードウェアに設定します。ドライバーは、これらのループを設定した後、できるだけ速やかに復帰する必要があります。
- 自動フリップが要求されている場合は、各サーフェスのフレームバッファーオフセットをドライバー内部のデータ構造に格納します。サーフェスのオフセットは、DD_UPDATEVPORTDATA の lplpDDSurface メンバーおよび lplpDDVBISurface メンバーにある DD_SURFACE_INT 配列内でサーフェスが並んでいる順序で格納してください。このようにしておくことで、DdUpdateOverlay が呼び出されたときに、ドライバーはサーフェスチェーンのフリップ順序の記録を保持していることになります。
自動フリップが要求されたときに、指定された数のサーフェスをドライバーのハードウェアがサポートできない場合、DdVideoPortUpdate は DD_UPDATEVPORTDATA の ddRVal メンバーに DDERR_UNSUPPORTED を設定して、この呼び出しを失敗させる必要があります。
ビデオサーフェスチェーンと VBI サーフェスチェーンのサーフェス数は異なっていてもかまいません。つまり、DD_UPDATEVPORTDATA の dwNumAutoflip メンバーと dwNumVBIAutoflip メンバーは異なる値になる場合があります。
dwFlags が DDRAWI_VPORTSTOP の場合、ドライバーは直ちに復帰する必要があります。ドライバーは、データストリームが停止するまでポーリングしてはなりません。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)