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
すべてのアラインメント メンバーが有効です。 次に例を示します。
dwAlignVideoPortBoundary
dwAlignVideoPortPrescaleWidth
dwAlignVideoPortCropBoundary、および
dwAlignVideoPortCropWidth
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) です。 (dwMaxVideoPortsDDCORECAPS 構造体のメンバーです)。デバイスが 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 を含む)

関連項目

DDCORECAPS

DD_DIRECTDRAW_GLOBAL

DdGetDriverInfo