LAYERPLANEDESCRIPTOR 结构 (wingdi.h)
LAYERPLANEDESCRIPTOR 结构描述绘图图面的像素格式。
语法
typedef struct tagLAYERPLANEDESCRIPTOR {
WORD nSize;
WORD nVersion;
DWORD dwFlags;
BYTE iPixelType;
BYTE cColorBits;
BYTE cRedBits;
BYTE cRedShift;
BYTE cGreenBits;
BYTE cGreenShift;
BYTE cBlueBits;
BYTE cBlueShift;
BYTE cAlphaBits;
BYTE cAlphaShift;
BYTE cAccumBits;
BYTE cAccumRedBits;
BYTE cAccumGreenBits;
BYTE cAccumBlueBits;
BYTE cAccumAlphaBits;
BYTE cDepthBits;
BYTE cStencilBits;
BYTE cAuxBuffers;
BYTE iLayerPlane;
BYTE bReserved;
COLORREF crTransparent;
} LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR;
成员
nSize
指定此数据结构的大小。 将此值设置为 sizeof (LAYERPLANEDESCRIPTOR) 。
nVersion
指定此数据结构的版本。 将此值设置为 1。
dwFlags
一组指定层平面属性的位标志。 这些属性通常不互斥;可以设置位标志的任意组合,但有一些例外。 定义了以下位标志常量。
值 | 含义 |
---|---|
LPD_SUPPORT_OPENGL | 层平面支持 OpenGL 绘图。 |
LPD_SUPPORT_GDI | 层平面支持 GDI 绘制。 OpenGL 的当前实现不支持此标志。 |
LPD_DOUBLEBUFFER | 层平面是双缓冲的。 即使main平面是单缓冲平面,也可以双缓冲层平面,反之亦然。 |
LPD_STEREO | 层平面是立体的。 即使main平面是单视平面,层平面也可以是立体的,反之亦然。 |
LPD_SWAP_EXCHANGE | 在双缓冲层平面中,交换颜色缓冲区将交换前缓冲区和后缓冲区内容。 然后,后台缓冲区包含交换前缓冲区的内容。 此标志只是一个提示,可能不会由驱动程序提供。 |
LPD_SWAP_COPY | 在双缓冲层平面中,交换颜色缓冲区会将后台缓冲区内容复制到前缓冲区。 交换不会影响后台缓冲区内容。 此标志只是一个提示,可能不会由驱动程序提供。 |
LPD_TRANSPARENT | 此结构的 crTransparent 成员包含透明颜色或索引值,使基础层能够通过此层显示。 除编号最低的底层外,所有层平面都具有透明颜色或索引。 |
LPD_SHARE_DEPTH | 层平面与main平面共享深度缓冲区。 |
LPD_SHARE_STENCIL | 层平面与main平面共享模具缓冲区。 |
LPD_SHARE_ACCUM | 层平面与main平面共享累积缓冲区。 |
iPixelType
指定像素数据的类型。 定义了以下类型。
值 | 含义 |
---|---|
LPD_TYPE_RGBA | RGBA 像素。 每个像素有四个分量:红色、绿色、蓝色和 alpha。 |
LPD_TYPE_COLORINDEX | 颜色索引像素。 每个像素使用颜色索引值。 |
cColorBits
指定每个颜色缓冲区中的颜色位平面数。 对于 RGBA 像素类型,它是颜色缓冲区的大小,不包括 alpha 位平面。 对于颜色索引像素,它是颜色索引缓冲区的大小。
cRedBits
指定每个 RGBA 颜色缓冲区中的红色位平面数。
cRedShift
指定每个 RGBA 颜色缓冲区中红色位平面的移位计数。
cGreenBits
指定每个 RGBA 颜色缓冲区中的绿色位平面数。
cGreenShift
指定每个 RGBA 颜色缓冲区中绿色位平面的移位计数。
cBlueBits
指定每个 RGBA 颜色缓冲区中的蓝色位平面数。
cBlueShift
指定每个 RGBA 颜色缓冲区中蓝色位平面的移位计数。
cAlphaBits
指定每个 RGBA 颜色缓冲区中的 alpha 位平面数。 不支持 Alpha 位平面。
cAlphaShift
指定每个 RGBA 颜色缓冲区中 alpha 位平面的移位计数。 不支持 Alpha 位平面。
cAccumBits
指定累积缓冲区中的位平面总数。
cAccumRedBits
指定累积缓冲区中的红色位平面数。
cAccumGreenBits
指定累积缓冲区中的绿色位平面数。
cAccumBlueBits
指定累积缓冲区中的蓝色位平面数。
cAccumAlphaBits
指定累积缓冲区中的 alpha 位平面数。
cDepthBits
指定 z 轴) 缓冲区 (深度。
cStencilBits
指定模具缓冲区的深度。
cAuxBuffers
指定辅助缓冲区的数目。 不支持辅助缓冲区。
iLayerPlane
bReserved
未使用。 必须为零。
crTransparent
设置LPD_TRANSPARENT标志时,指定透明颜色或索引值。 通常该值为零。
注解
请注意,如上所述,当前实现不支持某些层平面属性。 实现是 OpenGL 的 Microsoft GDI 软件实现。 增强 OpenGL 部分的硬件制造商可能支持泛型实现不支持的某些层平面属性。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | wingdi.h |