DDSURFACEDATA 结构 (dxmini.h)
DirectDraw 使用 DDSURFACEDATA 结构来表示内核模式微型端口驱动程序的图面。
语法
typedef struct _DDSURFACEDATA {
DWORD ddsCaps;
DWORD dwSurfaceOffset;
ULONG_PTR fpLockPtr;
DWORD dwWidth;
DWORD dwHeight;
LONG lPitch;
DWORD dwOverlayFlags;
DWORD dwOverlayOffset;
DWORD dwOverlaySrcWidth;
DWORD dwOverlaySrcHeight;
DWORD dwOverlayDestWidth;
DWORD dwOverlayDestHeight;
DWORD dwVideoPortId;
DWORD dwFormatFlags;
DWORD dwFormatFourCC;
DWORD dwFormatBitCount;
DWORD dwRBitMask;
DWORD dwGBitMask;
DWORD dwBBitMask;
ULONG dwDriverReserved1;
ULONG dwDriverReserved2;
ULONG dwDriverReserved3;
ULONG dwDriverReserved4;
} DDSURFACEDATA, *LPDDSURFACEDATA;
成员
ddsCaps
指向包含用于描述图面的创建功能的 DDSCAPS 结构。
dwSurfaceOffset
指定从帧缓冲区开头到图面开头的字节偏移量。 此字段仅由微型端口驱动程序使用。
fpLockPtr
指向图面的开头。
dwWidth
指定图面宽度(以像素为单位)。
dwHeight
指定图面高度(以像素为单位)。
lPitch
指定图面间距(以字节为单位)。
dwOverlayFlags
指示一组标志,这些标志指定由 DdUpdateOverlay 设置的当前用户模式DDOVER_Xxx 标志。 此成员是以下任何值的按位 OR:
标志 | 含义 |
---|---|
DDOVER_ADDDIRTYRECT | 将脏矩形添加到模拟叠加图面。 |
DDOVER_ALPHADEST | 使用像素格式的 alpha 信息或附加到目标图面的 alpha 通道图面作为此覆盖的 alpha 通道。 |
DDOVER_ALPHADESTCONSTOVERRIDE | 使用 DDOVERLAYFX 结构的 dwAlphaDestConst 成员作为此覆盖的目标 alpha 通道。 DDOVERLAYFX 结构在 ddraw.h 中定义。 |
DDOVER_ALPHADESTNEG | 随着 alpha 值增加 (0 不透明) ,目标图面变得更加透明。 |
DDOVER_ALPHADESTSURFACEOVERRIDE | 使用 DirectDraw SDK 文档中定义的 DDOVERLAYFX (结构的 lpDDSAlphaDest 成员) 作为此覆盖层的 alpha 通道目标。 |
DDOVER_ALPHAEDGEBLEND | 使用 DirectDraw SDK 文档中定义的 DDOVERLAYFX 结构的 dwAlphaEdgeBlend 成员 () 作为颜色键颜色边框的图像边缘的 alpha 通道。 |
DDOVER_ALPHASRC | 使用像素格式的 alpha 信息或附加到源图面的 alpha 通道图面作为此覆盖的源 alpha 通道。 |
DDOVER_ALPHASRCCONSTOVERRIDE | 使用 DirectDraw SDK 文档中定义的 DDOVERLAYFX 结构的 dwAlphaSrcConst 成员 () 作为此覆盖层的源 alpha 通道。 |
DDOVER_ALPHASRCNEG | 当 alpha 值增加 (0 不透明) 时,源图面变得更加透明。 |
DDOVER_ALPHASRCSURFACEOVERRIDE | 使用 DirectDraw SDK 文档中定义的 DDOVERLAYFX 结构的 lpDDSAlphaSrc 成员 () 作为此覆盖层的 alpha 通道源。 |
DDOVER_AUTOFLIP | 每次发生硬件视频端口 VSYNC 时,自动翻转到翻转链中的下一个图面。 |
DDOVER_BOB | 单独显示交错视频流的每个字段,而不会造成任何项目。 |
DDOVER_BOBHARDWARE | Bob 使用硬件而不是软件执行,或者正在模拟。 |
DDOVER_DDFX | 使用覆盖 FX 标志定义特殊覆盖效果。 |
DDOVER_HIDE | 关闭此覆盖。 |
DDOVER_INTERLEAVED | 图面内存由交错字段组成。 |
DDOVER_KEYDEST | 使用与目标图面关联的颜色键。 |
DDOVER_KEYDESTOVERRIDE | 使用 DirectDraw SDK 文档中定义的 DDOVERLAYFX 结构的 dckDestColorkey 成员 () 作为目标图面的颜色键。 |
DDOVER_KEYSRC | 使用与源图面关联的颜色键。 |
DDOVER_KEYSRCOVERRIDE | 使用 DirectDraw SDK 文档中定义的 DDOVERLAYFX 结构的 dckSrcColorkey 成员 () 作为源图面的颜色键。 |
DDOVER_OVERRIDEBOBWEAVE | Bob 和 weave 决策不应被其他接口覆盖。 如果设置了此标志,则 DirectDraw 不允许内核模式驱动程序使用内核模式视频传输功能在 bob 和 weave 模式之间切换硬件。 |
DDOVER_REFRESHALL | 在模拟叠加图面上重绘整个图面。 |
DDOVER_REFRESHDIRTYRECTS | 在模拟叠加图面上重绘所有脏矩形。 |
DDOVER_SHOW | 打开此覆盖。 |
dwOverlayOffset
指定从帧缓冲区开头到覆盖层开头的字节偏移量。 此字段仅由微型端口驱动程序使用。
dwOverlaySrcWidth
指定覆盖源宽度(以像素为单位)。 此字段仅由微型端口驱动程序使用。
dwOverlaySrcHeight
指定覆盖源高度(以像素为单位)。 此字段仅由微型端口驱动程序使用。
dwOverlayDestWidth
指定覆盖目标宽度(以像素为单位)。 此字段仅由微型端口驱动程序使用。
dwOverlayDestHeight
指定覆盖目标高度(以像素为单位)。 此字段仅由微型端口驱动程序使用。
dwVideoPortId
如果此图面由 视频端口扩展 (VPE) 对象馈送,则此字段指示 VPE 对象的 ID,范围中的整数 (0 - (硬件视频端口的最大数目 -1 ) ) ;否则,此字段为 -1。
dwFormatFlags
指定一组像素格式控件标志。 此成员是以下任何值的按位 OR:
标志 | 含义 |
---|---|
DDPF_ALPHA | 像素格式描述仅限 alpha 的图面。 |
DDPF_ALPHAPIXELS | 图面具有像素格式的 alpha 通道信息。 |
DDPF_ALPHAPREMULT | 像素中的颜色分量由像素中的 alpha 值预乘。 如果设置了此标志,还必须设置DDPF_ALPHAPIXELS标志。 如果未设置此标志,但设置了DDPF_ALPHAPIXELS标志,则像素格式的颜色分量不会由 alpha 预乘。 在这种情况下,颜色分量必须在执行 alpha 混合操作时乘以 alpha 值。 |
DDPF_BUMPDUDV | 像素格式的凹凸贴图 dUdV 数据有效。 |
DDPF_BUMPLUMINANCE | 像素格式的亮度数据有效。 将亮度悬挂在凹凸贴图图面上时,使用此标志。 然后,像素亮度部分的位掩码由 DDPIXELFORMAT 结构的 dwBumpLuminanceBitCount 成员指示。 |
DDPF_COMPRESSED | 图面将接受指定格式的像素数据,并在写入操作期间对其进行压缩。 |
DDPF_FOURCC | FOURCC 代码有效。 |
DDPF_LUMINANCE | 像素格式的亮度数据有效。 此标志仅用于亮度或亮度加 alpha 表面;位深度随后由 DDPIXELFORMAT 结构的 dwLuminanceBitCount 成员指示。 |
DDPF_PALETTEINDEXED1 | 图面已编制 1 位颜色索引。 |
DDPF_PALETTEINDEXED2 | 图面已编制 2 位颜色索引。 |
DDPF_PALETTEINDEXED4 | 图面已编制 4 位颜色索引。 |
DDPF_PALETTEINDEXED8 | 图面已编制 8 位颜色索引。 |
DDPF_PALETTEINDEXEDTO8 | 表面是 1 位、2 位或 4 位颜色,索引到 8 位调色板。 |
DDPF_RGB | 像素格式结构中的 RGB 数据有效。 |
DDPF_RGBTOYUV | 图面将接受 RGB 数据,并在写入操作期间将其转换为 YUV 数据。 要写入的数据的格式将包含在像素格式结构中。 将设置DDPF_RGB标志。 |
DDPF_STENCILBUFFER | 图面包含模具信息以及 Z 信息。 |
DDPF_YUV | 像素格式结构中的 YUV 数据有效。 |
DDPF_ZBUFFER | 像素格式描述仅限 z 缓冲区的图面。 |
DDPF_ZPIXELS | 图面采用 RGBZ 格式。 |
dwFormatFourCC
指定 FOURCC 代码。
dwFormatBitCount
指定每像素 (4、8、16、24 或 32) 位数。
dwRBitMask
指定红色位掩码。
dwGBitMask
指定绿色位掩码。
dwBBitMask
指定蓝色位掩码。
dwDriverReserved1
为 HAL/微型端口保留
dwDriverReserved2
为 HAL/微型端口保留
dwDriverReserved3
为 HAL/微型端口保留
dwDriverReserved4
保留供微型端口驱动程序使用。
要求
标头 | dxmini.h (包括 Dxmini.h) |