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

另请参阅

Windows 上的 OpenGL

PIXELFORMATDESCRIPTOR

结构

wglCreateLayerContext

wglDescribeLayerPlane

wglGetLayerPaletteEntries

wglRealizeLayerPalette

wglSetLayerPaletteEntries

wglSwapLayerBuffers