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
指定這個專案的硬體視訊埠識別碼。 這個成員應該是DD_DIRECTDRAW_GLOBAL結構點之lpDDVideoPortCaps成員所在陣列中這個 DDVIDEOPORTCAPS 結構的索引編號。 此值的範圍從 0 到 (dwMaxVideoPorts - 1) 。 (dwMaxVideoPorts 是 DDCORECAPS 結構的成員。) 如果裝置只支援一個硬體視訊埠,則此成員應該是零。
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 | 資料可以透過負冪 2 (1/2、1/4、1/8 等) 以 x 方向壓縮,然後再寫入表面。 |
DDVPFX_PRESHRINKXS | 資料可以在寫入表面之前,以 x 方向的 1/dwPreshrinkXStep 遞增來壓縮資料。 |
DDVPFX_PRESHRINKY | 資料可以在寫入表面之前,以 Y 方向任意壓縮資料。 |
DDVPFX_PRESHRINKYB | 資料可以透過 2 (1/2、1/4、1/8 等負數乘冪來縮小,以 y 方向) 寫入表面。 |
DDVPFX_PRESHRINKYS | 資料可以遞增 1/dwPreshrinkYStep 在寫入表面之前,以 y 方向壓縮資料。 |
DDVPFX_PRESTRETCHX | 資料可以在寫入表面之前,以 x 方向任意延展。 |
DDVPFX_PRESTRETCHXN | 資料可以透過 x 方向的整數因數延展,再寫入表面。 |
DDVPFX_PRESTRETCHY | 資料可以在寫入表面之前,以 Y 方向任意延展。 |
DDVPFX_PRESTRETCHYN | 資料可以透過 Y 方向的整數因數延展,再寫入表面。 |
DDVPFX_VBICONVERT | 垂直空白間隔內的資料可以與其余視訊資料無關進行轉換。 |
DDVPFX_VBINOSCALE | 您可以針對垂直空白間隔內的資料停用調整。 |
dwNumAutoFlipSurfaces
如果硬體視訊埠支援自動滑動,則指定 autoflip 鏈結中支援的最大表面數目。 如果硬體視訊埠不支援自動滑動,驅動程式應該將此成員設定為零。
dwAlignVideoPortBoundary
指定位元組對齊限制,以位元組為單位,其中硬體視訊埠可以相對於 x 方向表面的來源方向。
dwAlignVideoPortPrescaleWidth
指定執行預先調整時,硬體視訊埠資料寬度的位元組對齊限制,以位元組為單位。
dwAlignVideoPortCropBoundary
指定左側裁剪座標的位元組對齊限制,以位元組為單位。
dwAlignVideoPortCropWidth
指定裁剪矩形寬度的位元組對齊限制,以位元組為單位。
dwPreshrinkXStep
表示硬體視訊埠可以在 1/dwPreshrinkXStep的步驟中壓縮視訊資料寬度。 只有在指定DDVPFX_PRESHRINKXS功能時,這個成員才有效。
dwPreshrinkYStep
表示硬體視訊埠可以在 1/dwPreshrinkYStep的步驟中壓縮視訊資料高度。 只有在指定DDVPFX_PRESHRINKYS功能時,這個成員才有效。
dwNumVBIAutoFlipSurfaces
如果硬體視訊埠支援自動滑動,則指定 autoflip 鏈結中支援的最大表面數目。 如果硬體視訊埠不支援自動滑動,驅動程式應該將此成員設定為零。 此成員的運作方式與 dwNumAutoFlipSurfaces 相同,不同之處在于它只與可將 VBI 資料傳送至寫入一般視訊的不同表面的裝置有關。
dwNumPreferredAutoflip
指定硬體所支援的最佳自動省略介面數目。
wNumFilterTapsX
指出預先調整程式在 x 方向使用的點選數目。 值為 0 表示沒有預先調整,值為 1 表示複寫,依此類推。
wNumFilterTapsY
指出預先調整程式在 Y 方向使用的點選數目。 值為 0 表示沒有預先調整,值為 1 表示複寫,依此類推。
當使用 GUID_VideoPortCaps GUID 呼叫 DdGetDriverInfo 函式時,驅動程式會報告 DDVIDEOPORTCAPS 結構所描述的功能。
標頭 | dvp.h (包含 Dvp.h) |