DDVIDEOPORTCAPS 構造体 (dvp.h)
DDVIDEOPORTCAPS 構造体では、ハードウェア ビデオ ポートの機能とアラインメントの制限について説明します。
構文
typedef struct _DDVIDEOPORTCAPS {
DWORD dwSize;
DWORD dwFlags;
DWORD dwMaxWidth;
DWORD dwMaxVBIWidth;
DWORD dwMaxHeight;
DWORD dwVideoPortID;
DWORD dwCaps;
DWORD dwFX;
DWORD dwNumAutoFlipSurfaces;
DWORD dwAlignVideoPortBoundary;
DWORD dwAlignVideoPortPrescaleWidth;
DWORD dwAlignVideoPortCropBoundary;
DWORD dwAlignVideoPortCropWidth;
DWORD dwPreshrinkXStep;
DWORD dwPreshrinkYStep;
DWORD dwNumVBIAutoFlipSurfaces;
DWORD dwNumPreferredAutoflip;
WORD wNumFilterTapsX;
WORD wNumFilterTapsY;
} *LPDDVIDEOPORTCAPS, DDVIDEOPORTCAPS;
メンバー
dwSize
構造体のサイズをバイト単位で指定します。
dwFlags
この構造体内の有効なデータを含むメンバーを指定します。 このメンバーには、次のいずれかの値のビットごとの OR を指定できます。
フラグ | 説明 |
---|---|
DDVPD_ALIGN |
|
DDVPD_AUTOFLIP | dwNumAutoFlipSurfaces は有効です。 |
DDVPD_CAPS | dwCaps メンバーは有効です。 |
DDVPD_FX | dwFX メンバーは有効です。 |
DDVPD_HEIGHT | dwMaxHeight メンバーは有効です。 |
DDVPD_ID | dwVideoPortID メンバーは有効です。 |
DDVPD_WIDTH | dwMaxWidth メンバーと dwMaxVBIWidth メンバーは有効です。 |
dwMaxWidth
ハードウェア ビデオ ポートでサポートされる最大フィールド幅をピクセル単位で指定します。 この値は通常、幅レジスタのビット数によって決まります。
dwMaxVBIWidth
ハードウェア ビデオ ポートでサポートされている VBI データの行の最大幅をサンプル数で指定します。 ハードウェア ビデオ ポートでオーバーサンプリングされた VBI データがサポートされている場合、この値は通常のフィールド幅よりも大きくなる可能性があります。
dwMaxHeight
ハードウェア ビデオ ポートでサポートされる最大フィールドの高さをピクセル単位で指定します。 この値は通常、高さレジスタのビット数によって決まります。
dwVideoPortID
このエントリのハードウェア ビデオ ポート ID を指定します。 このメンバーは、DD_DIRECTDRAW_GLOBAL構造体の lpDDVideoPortCaps メンバーがポイントする配列内のこの DDVIDEOPORTCAPS 構造体の インデックス番号である必要があります。 この値の範囲は 0 から (dwMaxVideoPorts - 1) です。 (dwMaxVideoPorts は DDCORECAPS 構造体のメンバーです)。デバイスが 1 つのハードウェア ビデオ ポートのみをサポートしている場合、このメンバーは 0 である必要があります。
dwCaps
このハードウェア ビデオ ポートでサポートされる機能を指定するフラグのセットを示します。 このメンバーには、次のいずれかの値のビットごとの OR を指定できます。
フラグ | 説明 |
---|---|
DDVPCAPS_AUTOFLIP | 切り裂きを避けるために、フリップを自動的に実行できます。 |
DDVPCAPS_COLORCONTROL | ハードウェア ビデオ ポートは、フレーム バッファーに書き込まれる前に、受信データに対してカラー操作を実行できます。 |
DDVPCAPS_INTERLACED | ハードウェア ビデオ ポートでは、インターレースされたビデオがサポートされます。 |
DDVPCAPS_NONINTERLACED | ハードウェア ビデオ ポートは、インターレースされていないビデオをサポートしています。 |
DDVPCAPS_OVERSAMPLEDVBI | ハードウェア ビデオ ポートは、通常のビデオ データとは異なる幅または形式の VBI データを受け入れます。 |
DDVPCAPS_READBACKFIELD | デバイスは、インターレース信号の現在のフィールドが偶数か奇数かを示す値を返すことができます。 |
DDVPCAPS_READBACKLINE | デバイスは、フレーム バッファーに書き込まれているビデオの現在の行の数を返すことができます。 |
DDVPCAPS_SHAREABLE | Microsoft DirectDraw によって無視されます。 |
DDVPCAPS_SKIPEVENFIELDS | ハードウェア ビデオ ポートは、ビデオの偶数フィールドを自動的に破棄できます。 |
DDVPCAPS_SKIPODDFIELDS | ハードウェア ビデオ ポートは、ビデオの奇数フィールドを自動的に破棄できます。 |
DDVPCAPS_SYNCMASTER | このデバイスは、ハードウェア ビデオ ポート ドライバー V 同期を使用してグラフィックス V 同期を駆動できます。 |
DDVPCAPS_SYSTEMMEMORY | ハードウェア ビデオ ポートは、システム メモリにデータを直接書き込むことができます。 |
DDVPCAPS_VBISURFACE | 垂直ブランキング間隔内のデータは、別のサーフェスに書き込むことができます。 |
dwFX
このハードウェア ビデオ ポートでサポートされる効果を指定するフラグのセットを示します。 このメンバーは、次のいずれかの値のビットごとの OR です。
フラグ | 説明 |
---|---|
DDVPFX_CROPTOPDATA | ハードウェア ビデオ ポートでは、垂直方向の間隔データをトリミングするための制限付きトリミングがサポートされています。 |
DDVPFX_CROPX | ハードウェア ビデオ ポートでは、入力データを x 方向にトリミングしてからサーフェスに書き込むことができます。 |
DDVPFX_CROPY | ハードウェア ビデオ ポートでは、受信データをサーフェスに書き込む前に y 方向にトリミングできます。 |
DDVPFX_IGNOREVBIXCROP | ハードウェア ビデオ ポートは、オーバーサンプリングされた VBI データをトリミングするときに、ビデオ データの左右のトリミング座標を無視できます。 |
DDVPFX_INTERLEAVE | ハードウェア ビデオ ポートでは、メモリ内のインターレースされたフィールドのインターリーブがサポートされています。 |
DDVPFX_MIRRORLEFTRIGHT | ハードウェア ビデオ ポートでは、ビデオ データがフレーム バッファーに書き込まれるので、左から右へのミラーリングがサポートされます。 |
DDVPFX_MIRRORUPDOWN | ハードウェア ビデオ ポートは、ビデオ データがフレーム バッファーに書き込まれるので、上から下へのミラーリングをサポートします。 |
DDVPFX_PRESHRINKX | データは、サーフェスに書き込まれる前に x 方向に任意に縮小できます。 |
DDVPFX_PRESHRINKXB | データは、表面に書き込まれる前に、x 方向に 2 (1/2、1/4、1/8 など) の負の累乗で縮小できます。 |
DDVPFX_PRESHRINKXS | データは、サーフェスに書き込まれる前に x 方向に 1/dwPreshrinkXStep ずつ縮小できます。 |
DDVPFX_PRESHRINKY | データは、サーフェスに書き込まれる前に、y 方向に任意に縮小できます。 |
DDVPFX_PRESHRINKYB | データは、表面に書き込まれる前に、y 方向に 2 (1/2、1/4、1/8 など) の負の力で縮小できます。 |
DDVPFX_PRESHRINKYS | データは、サーフェスに書き込まれる前に、y 方向に 1/dwPreshrinkYStep の増分で圧縮できます。 |
DDVPFX_PRESTRETCHX | データは、サーフェスに書き込まれる前に x 方向に任意にストレッチできます。 |
DDVPFX_PRESTRETCHXN | データは、サーフェスに書き込まれる前に、x 方向の整数要素によって引き伸ばすことができます。 |
DDVPFX_PRESTRETCHY | データは、サーフェスに書き込まれる前に、y 方向に任意にストレッチできます。 |
DDVPFX_PRESTRETCHYN | データは、サーフェスに書き込まれる前に、y 方向の整数要素によって引き伸ばすことができます。 |
DDVPFX_VBICONVERT | 垂直ブランキング間隔内のデータは、残りのビデオ データとは無関係に変換できます。 |
DDVPFX_VBINOSCALE | 垂直方向の空白間隔内のデータに対してスケーリングを無効にすることができます。 |
dwNumAutoFlipSurfaces
ハードウェア ビデオ ポートでオートフリップがサポートされている場合に、オートフラグ チェーンでサポートされるサーフェスの最大数を指定します。 ハードウェア ビデオ ポートで自動フラグがサポートされていない場合、ドライバーはこのメンバーを 0 に設定する必要があります。
dwAlignVideoPortBoundary
ハードウェア ビデオ ポートを x 方向のサーフェスの原点に対して相対的に配置できるバイトアラインメント制限をバイト単位で指定します。
dwAlignVideoPortPrescaleWidth
事前スケーリングの実行時にハードウェア ビデオ ポート データの幅をバイト単位で指定します。
dwAlignVideoPortCropBoundary
左トリミング座標のバイト配置制限をバイト単位で指定します。
dwAlignVideoPortCropWidth
トリミングする四角形の幅に対するバイト配置制限をバイト単位で指定します。
dwPreshrinkXStep
ハードウェア ビデオ ポートが 1/dwPreshrinkXStep の手順でビデオ データ幅を縮小できることを示します。 このメンバーは、DDVPFX_PRESHRINKXS機能が指定されている場合にのみ有効です。
dwPreshrinkYStep
ハードウェア ビデオ ポートが 1/dwPreshrinkYStep の手順でビデオ データの高さを縮小できることを示します。 このメンバーは、DDVPFX_PRESHRINKYS機能が指定されている場合にのみ有効です。
dwNumVBIAutoFlipSurfaces
ハードウェア ビデオ ポートでオートフリップがサポートされている場合に、オートフラグ チェーンでサポートされるサーフェスの最大数を指定します。 ハードウェア ビデオ ポートで自動フラグがサポートされていない場合、ドライバーはこのメンバーを 0 に設定する必要があります。 このメンバーは dwNumAutoFlipSurfaces と同じように動作しますが、VBI データを通常のビデオの書き込み先とは異なるサーフェスに送信できるデバイスにのみ関係する点が異なります。
dwNumPreferredAutoflip
ハードウェアでサポートされるオートフリップ可能なサーフェスの最適な数を指定します。
wNumFilterTapsX
プレスケーラーが x 方向に使用するタップの数を示します。 値 0 は、事前スケーリングがないことを示し、値 1 はレプリケーションを示します。
wNumFilterTapsY
プリスケーラーが y 方向に使用するタップの数を示します。 値 0 は、事前スケーリングがないことを示し、値 1 はレプリケーションを示します。
解説
ドライバーは、 DDGetDriverInfo 関数が GUID_VideoPortCaps GUID を使用して呼び出されたときに、DDVIDEOPORTCAPS 構造体によって記述された機能を報告します。
要件
Header | dvp.h (Dvp.h を含む) |