コールバック関数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場合、ドライバーは次の操作を行う必要があります。
- lpVideoInfo メンバーがポイントする DDVIDEOPORTINFO 構造体の dwVPFlags メンバー内のすべてのフラグDD_UPDATEVPORTDATA確認します。 これらのフラグは、ドライバーがサーフェス (またはサーフェス) にビデオ データを転送する方法を説明します。たとえば、ドライバーが自動フリップを実行するか、ビデオまたは VBI データをトリミングする必要があるかなどを示します。
- ハードウェアでループを設定して、サーフェスが配列に格納されている順序で、ビデオや VBI データをサーフェスに書き込みます。 ドライバーは、これらのループを設定した後、できるだけ早く戻る必要があります。
- 自動フリップが要求された場合は、ドライバーの内部データ構造に各サーフェスのフレーム バッファー オフセットを格納します。 サーフェス オフセットは、DD_UPDATEVPORTDATAの lplpDDSurface メンバーと lplpDDVBISurface メンバーのDD_SURFACE_INT配列でサーフェスが発生する順序で格納する必要があります。 このようにして、 DdUpdateOverlay が呼び出されると、ドライバーにはサーフェス チェーンの反転順序のレコードが含まれます。
ドライバーのハードウェアが、自動フラグが要求されたときに指定されたサーフェスの数をサポートできない場合、 DdVideoPortUpdate は、DD_UPDATEVPORTDATA の ddRVal メンバーに DDERR_UNSUPPORTEDを設定して呼び出しを失敗させる必要があります。
ビデオおよび VBI サーフェス チェーン内のサーフェスの数は異なる場合があります。つまり、DD_UPDATEVPORTDATAの dwNumAutoflip メンバーと dwNumVBIAutoflip メンバーは異なる値にすることができます。
dwFlags がDDRAWI_VPORTSTOPされると、ドライバーはすぐに戻ります。 ドライバーは、データ ストリームが停止するまでポーリングしないでください。
要件
対象プラットフォーム | デスクトップ |
Header | ddrawint.h (Winddi.h を含む) |