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
所有对齐成员都有效。 其中包括:
dwAlignVideoPortSetting
dwAlignVideoPortPrescaleWidth
dwAlignVideoPortCropSetting, 和
dwAlignVideoPortCropWidth
DDVPD_AUTOFLIP dwNumAutoFlipSurfaces 有效。
DDVPD_CAPS dwCaps 成员有效。
DDVPD_FX dwFX 成员有效。
DDVPD_HEIGHT dwMaxHeight 成员有效。
DDVPD_ID dwVideoPortID 成员有效。
DDVPD_WIDTH dwMaxWidthdwMaxVBIWidth 成员有效。

dwMaxWidth

指定硬件视频端口支持的最大字段宽度(以像素为单位)。 此值通常由宽度寄存器中的位数决定。

dwMaxVBIWidth

指定硬件视频端口支持的 VBI 数据行中的最大宽度(以样本数为单位)。 如果硬件视频端口支持过度采样的 VBI 数据,则此值可以大于正常字段宽度。

dwMaxHeight

指定硬件视频端口支持的最大字段高度(以像素为单位)。 此值通常由高度寄存器中的位数决定。

dwVideoPortID

指定此项的硬件视频端口 ID。 此成员应是数组中此 DDVIDEOPORTCAPS 结构的索引号, lpDDVideoPortCaps 成员 DD_DIRECTDRAW_GLOBAL 结构点。 此值的范围从 0 到 (dwMaxVideoPorts - 1) 。 (dwMaxVideoPortsDDCORECAPS 结构的成员。) 如果设备仅支持一个硬件视频端口,则此成员应为零。

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)

另请参阅

DDCORECAPS

DD_DIRECTDRAW_GLOBAL

DdGetDriverInfo