LAYERPLANEDESCRIPTOR
[New
- Windows 95, OEM Service Release 2]
The LAYERPLANEDESCRIPTOR
structure describes the pixel format of a drawing surface.
typedef struct tagLAYERPLANEDESCRIPTOR { //
pfd
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;
Members
nSize
Specifies the
size of this data structure. Set this value to sizeof(LAYERPLANEDESCRIPTOR).
nVersion
Specifies the
version of this data structure. Set this value to 1.
dwFlags
A set of bit
flags that specify properties of the layer plane. The properties are generally
not mutually exclusive; any combination of bit flags can be set, with the
exceptions noted. The following bit flag constants are defined.
Value |
Meaning |
LPD_SUPPORT_OPENGL |
The layer
plane supports OpenGL drawing. |
LPD_SUPPORT_GDI |
The layer
plane supports GDI drawing. The current implementation of OpenGL doesn t
support this flag. |
LPD_DOUBLEBUFFER |
The layer
plane is double-buffered. A layer plane can be double-buffered even when the
main plane is single-buffered and vice versa. |
LPD_STEREO |
The layer
plane is stereoscopic. A layer plane can be stereoscopic even when the main
plane is monoscopic and vice versa. |
LPD_SWAP_EXCHANGE |
In a
double-buffered layer plane, swapping the color buffer exchanges the front
buffer and back buffer contents. The back buffer then contains the contents
of the front buffer before the swap. This flag is a hint only and might not
be provided by a driver. |
LPD_SWAP_COPY |
In a
double-buffered layer plane, swapping the color buffer copies the back buffer
contents to the front buffer. The swap does not affect the back buffer
contents. This flag is a hint only and might not be provided by a driver. |
LPD_TRANSPARENT |
The crTransparent
member of this structure contains a transparent color or index value that
enables underlying layers to show through this layer. All layer planes,
except the lowest-numbered underlay layer, have a transparent color or index. |
LPD_SHARE_DEPTH |
The layer
plane shares the depth buffer with the main plane. |
LPD_SHARE_STENCIL |
The layer
plane shares the stencil buffer with the main plane. |
LPD_SHARE_ACCUM |
The layer
plane shares the accumulation buffer with the main plane. |
iPixelType
Specifies the
type of pixel data. The following types are defined.
Value |
Meaning |
LPD_TYPE_RGBA |
RGBA
pixels. Each pixel has four components: red, green, blue, and alpha. |
LPD_TYPE_COLORINDEX |
Color-index
pixels. Each pixel uses a color-index value. |
cColorBits
Specifies the
number of color bitplanes in each color buffer. For RGBA pixel types, it is the
size of the color buffer, excluding the alpha bitplanes. For color-index
pixels, it is the size of the color-index buffer.
cRedBits
Specifies the
number of red bitplanes in each RGBA color buffer.
cRedShift
Specifies the
shift count for red bitplanes in each RGBA color buffer.
cGreenBits
Specifies the
number of green bitplanes in each RGBA color buffer.
cGreenShift
Specifies the
shift count for green bitplanes in each RGBA color buffer.
cBlueBits
Specifies the
number of blue bitplanes in each RGBA color buffer.
cBlueShift
Specifies the
shift count for blue bitplanes in each RGBA color buffer.
cAlphaBits
Specifies the
number of alpha bitplanes in each RGBA color buffer. Alpha bitplanes are not
supported.
cAlphaShift
Specifies the
shift count for alpha bitplanes in each RGBA color buffer. Alpha bitplanes are
not supported.
cAccumBits
Specifies the
total number of bitplanes in the accumulation buffer.
cAccumRedBits
Specifies the
number of red bitplanes in the accumulation buffer.
cAccumGreenBits
Specifies the
number of green bitplanes in the accumulation buffer.
cAccumBlueBits
Specifies the
number of blue bitplanes in the accumulation buffer.
cAccumAlphaBits
Specifies the
number of alpha bitplanes in the accumulation buffer.
cDepthBits
Specifies the
depth of the depth (z-axis) buffer.
cStencilBits
Specifies the
depth of the stencil buffer.
cAuxBuffers
Specifies the
number of auxiliary buffers. Auxiliary buffers are not supported.
iLayerType
Specifies the
layer plane number. Positive values of iLayerType identify overlay
planes, where 1 is the first overlay plane over the main plane, 2 is the second
overlay plane over the first overlay plane, and so on. Negative values identify
underlay planes, where -1 is the
first underlay plane under the main plane, -2 is the second underlay plane under the first underlay plane, and so
on. The number of overlay and underlay planes is given in the bReserved
member of the PIXELFORMATDESCRIPTOR structure.
bReserved
Not used.
Must be zero.
crTransparent
When the
LPD_TRANSPARENT flag is set, specifies the transparent color or index value.
Typically the value is zero.
Remarks
Please
notice, as documented above, that certain layer plane properties are not
supported in the current implementation. The implementation is the Microsoft
GDI software implementation of OpenGL. Hardware manufacturers that enhance
parts of OpenGL may support some layer plane properties not supported by the
generic implementation.
See Also