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
指定此结构中的哪些成员包含有效数据。 此成员可以是以下任何值的按位或:
标志 | 含义 |
---|---|
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。 此成员应是数组中此 DDVIDEOPORTCAPS 结构的索引号, lpDDVideoPortCaps 成员 DD_DIRECTDRAW_GLOBAL 结构点。 此值的范围从 0 到 (dwMaxVideoPorts - 1) 。 (dwMaxVideoPorts 是 DDCORECAPS 结构的成员。) 如果设备仅支持一个硬件视频端口,则此成员应为零。
dwCaps
指示指定此硬件视频端口支持的功能的一组标志。 此成员可以是以下任何值的按位或:
标志 | 含义 |
---|---|
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 | 在将数据写入图面之前,可以在 y 方向以 1/dwPreshrinkYStep 为增量收缩数据。 |
DDVPFX_PRESTRETCHX | 在将数据写入图面之前,可以任意向 x 方向拉伸数据。 |
DDVPFX_PRESTRETCHXN | 在将数据写入图面之前,可以按 x 方向的整数因子拉伸数据。 |
DDVPFX_PRESTRETCHY | 在将数据写入图面之前,可以在 y 方向上任意拉伸数据。 |
DDVPFX_PRESTRETCHYN | 在将数据写入图面之前,可以按 y 方向的整数因子拉伸数据。 |
DDVPFX_VBICONVERT | 垂直空白间隔内的数据可以独立于剩余的视频数据进行转换。 |
DDVPFX_VBINOSCALE | 对于垂直空白间隔内的数据,可以禁用缩放。 |
dwNumAutoFlipSurfaces
如果硬件视频端口支持自动翻转,则指定自动翻转链中支持的最大图面数。 如果硬件视频端口不支持自动翻转,驱动程序应将此成员设置为零。
dwAlignVideoPortBoundary
指定字节对齐限制(以字节为单位),其中硬件视频端口相对于 x 方向图面的原点的方向。
dwAlignVideoPortPrescaleWidth
指定执行预缩放时硬件视频端口数据的宽度的字节对齐限制(以字节为单位)。
dwAlignVideoPortCropBoundary
指定左裁剪坐标的字节对齐限制(以字节为单位)。
dwAlignVideoPortCropWidth
指定裁剪矩形宽度的字节对齐限制(以字节为单位)。
dwPreshrinkXStep
指示硬件视频端口可以按 1/dwPreshrinkXStep 的步骤收缩视频数据宽度。 仅当指定了DDVPFX_PRESHRINKXS功能时,此成员才有效。
dwPreshrinkYStep
指示硬件视频端口可以按 1/dwPreshrinkYStep 的步长收缩视频数据高度。 仅当指定了DDVPFX_PRESHRINKYS功能时,此成员才有效。
dwNumVBIAutoFlipSurfaces
如果硬件视频端口支持自动翻转,则指定自动翻转链中支持的最大图面数。 如果硬件视频端口不支持自动翻转,驱动程序应将此成员设置为零。 此成员的工作方式与 dwNumAutoFlipSurfaces 相同,只不过它仅适用于可以将 VBI 数据发送到与普通视频写入到的不同图面的设备。
dwNumPreferredAutoflip
指定硬件支持的最佳可自动翻转图面数。
wNumFilterTapsX
指示预缩放程序在 x 方向使用的点击数。 值为 0 表示没有预刻度,值为 1 表示复制,依依。
wNumFilterTapsY
指示预缩放程序在 y 方向使用的点击数。 值为 0 表示没有预刻度,值为 1 表示复制,依依。
备注
当驱动程序使用 GUID_VideoPortCaps GUID 调用 其 DdGetDriverInfo 函数时,驱动程序将报告 DDVIDEOPORTCAPS 结构描述的功能。
要求
标头 | dvp.h (包括 Dvp.h) |