LAYERPLANEDESCRIPTOR-Struktur (wingdi.h)
Die LAYERPLANEDESCRIPTOR-Struktur beschreibt das Pixelformat einer Zeichnungsoberfläche.
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
Gibt die Größe dieser Datenstruktur an. Legen Sie diesen Wert auf sizeof(LAYERPLANEDESCRIPTOR) fest.
nVersion
Gibt die Version dieser Datenstruktur an. Legen Sie diesen Wert auf 1 fest.
dwFlags
Eine Reihe von Bitflags, die Eigenschaften der Ebenenebene angeben. Die Eigenschaften schließen sich im Allgemeinen nicht aus; Es kann eine beliebige Kombination von Bitflags festgelegt werden, wobei die Ausnahmen beachtet werden. Die folgenden Bitflagskonstanten werden definiert.
Wert | Bedeutung |
---|---|
LPD_SUPPORT_OPENGL | Die Ebenenebene unterstützt OpenGL-Zeichnung. |
LPD_SUPPORT_GDI | Die Ebenenebene unterstützt die GDI-Zeichnung. Die aktuelle Implementierung von OpenGL unterstützt dieses Flag nicht. |
LPD_DOUBLEBUFFER | Die Ebenenebene ist doppelt gepuffert. Eine Ebenenebene kann auch dann doppelt gepuffert werden, wenn die Standard Ebene einfach gepuffert ist und umgekehrt. |
LPD_STEREO | Die Schichtebene ist stereoskopisch. Eine Schichtebene kann stereoskopisch sein, auch wenn die Standard Ebene monoskopisch ist und umgekehrt. |
LPD_SWAP_EXCHANGE | In einer doppelt gepufferten Ebenenebene tauscht der Farbpuffer den Inhalt des Frontpuffers und des Backpuffers aus. Der Backpuffer enthält dann den Inhalt des Frontpuffers vor dem Austausch. Dieses Flag ist nur ein Hinweis und wird möglicherweise nicht von einem Treiber bereitgestellt. |
LPD_SWAP_COPY | Auf einer doppelt gepufferten Ebenenebene wird beim Austauschen des Farbpuffers der Inhalt des Backpuffers in den Frontpuffer kopiert. Der Austausch wirkt sich nicht auf den Inhalt des Backpuffers aus. Dieses Flag ist nur ein Hinweis und wird möglicherweise nicht von einem Treiber bereitgestellt. |
LPD_TRANSPARENT | Das crTransparent-Element dieser Struktur enthält einen transparenten Farb- oder Indexwert, mit dem die zugrunde liegenden Ebenen durch diese Ebene dargestellt werden können. Alle Ebenenebenen mit Ausnahme der untersten Nummerierten Haben eine transparente Farbe oder einen transparenten Index. |
LPD_SHARE_DEPTH | Die Ebenenebene teilt den Tiefenpuffer mit der Standard Ebene. |
LPD_SHARE_STENCIL | Die Ebenenebene teilt den Schablonenpuffer mit der Standard Ebene. |
LPD_SHARE_ACCUM | Die Ebenenebene teilt den Akkumulationspuffer mit der Standard Ebene. |
iPixelType
Gibt den Typ der Pixeldaten an. Die folgenden Typen werden definiert.
Wert | Bedeutung |
---|---|
LPD_TYPE_RGBA | RGBA-Pixel. Jedes Pixel hat vier Komponenten: Rot, Grün, Blau und Alpha. |
LPD_TYPE_COLORINDEX | Farbindexpixel. Jedes Pixel verwendet einen Farbindexwert. |
cColorBits
Gibt die Anzahl der Farbbitplanes in jedem Farbpuffer an. Bei RGBA-Pixeltypen ist dies die Größe des Farbpuffers, mit Ausnahme der Alphabitplanes. Bei Farbindexpixeln ist dies die Größe des Farbindexpuffers.
cRedBits
Gibt die Anzahl der roten Bitplanes in jedem RGBA-Farbpuffer an.
cRedShift
Gibt die Schichtanzahl für rote Bitplanes in jedem RGBA-Farbpuffer an.
cGreenBits
Gibt die Anzahl der grünen Bitplanes in jedem RGBA-Farbpuffer an.
cGreenShift
Gibt die Umschaltanzahl für grüne Bitplanes in jedem RGBA-Farbpuffer an.
cBlueBits
Gibt die Anzahl der blauen Bitplanes in jedem RGBA-Farbpuffer an.
cBlueShift
Gibt die Schichtanzahl für blaue Bitplanes in jedem RGBA-Farbpuffer an.
cAlphaBits
Gibt die Anzahl von Alphabitplanes in jedem RGBA-Farbpuffer an. Alpha-Bitplanes werden nicht unterstützt.
cAlphaShift
Gibt die Umschaltanzahl für Alphabitplanes in jedem RGBA-Farbpuffer an. Alpha-Bitplanes werden nicht unterstützt.
cAccumBits
Gibt die Gesamtzahl der Bitplanes im Akkumulationspuffer an.
cAccumRedBits
Gibt die Anzahl der roten Bitplanes im Akkumulationspuffer an.
cAccumGreenBits
Gibt die Anzahl der grünen Bitplanes im Akkumulationspuffer an.
cAccumBlueBits
Gibt die Anzahl der blauen Bitplanes im Akkumulationspuffer an.
cAccumAlphaBits
Gibt die Anzahl der Alphabitplanes im Akkumulationspuffer an.
cDepthBits
Gibt die Tiefe des Tiefenpuffers (Z-Achse) an.
cStencilBits
Gibt die Tiefe des Schablonenpuffers an.
cAuxBuffers
Gibt die Anzahl der Hilfspuffer an. Hilfspuffer werden nicht unterstützt.
iLayerPlane
bReserved
Wird nicht verwendet. Muss Null sein.
crTransparent
Wenn das LPD_TRANSPARENT-Flag festgelegt ist, gibt die transparente Farbe oder den Indexwert an. In der Regel ist der Wert 0.
Beachten Sie, wie oben dokumentiert, dass bestimmte Eigenschaften der Ebenenebene in der aktuellen Implementierung nicht unterstützt werden. Die Implementierung ist die Microsoft GDI-Softwareimplementierung von OpenGL. Hardwarehersteller, die Teile von OpenGL verbessern, unterstützen möglicherweise einige Eigenschaften der Ebenenebene, die von der generischen Implementierung nicht unterstützt werden.
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Kopfzeile | wingdi.h |