wingdi.h (LAYERPLANEDESCRIPTOR 結構)
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 | 分層平面會進行雙緩衝處理。 即使主平面是單一緩衝的,圖層平面也可以進行雙緩衝處理,反之亦然。 |
LPD_STEREO | 層次平面是立體聲。 即使主平面是單色,圖層平面也可以是立體聲,反之亦然。 |
LPD_SWAP_EXCHANGE | 在雙緩衝層平面中,交換色彩緩衝區會交換前端緩衝區和後台緩衝區內容。 接著,後端緩衝區會包含交換前緩衝區的內容。 此旗標只是提示,可能不是由驅動程式提供。 |
LPD_SWAP_COPY | 在雙緩衝層平面中,交換色彩緩衝區會將後台緩衝區內容複製到前端緩衝區。 交換不會影響後台緩衝區內容。 此旗標只是提示,可能不是由驅動程式提供。 |
LPD_TRANSPARENT | 這個結構的 crTransparent 成員包含透明色彩或索引值,可讓基礎層透過這個圖層顯示。 除了最低編號底底圖層以外,所有圖層平面都有透明色彩或索引。 |
LPD_SHARE_DEPTH | 層次平面會與主要平面共用深度緩衝區。 |
LPD_SHARE_STENCIL | 圖層平面會與主要平面共用樣板緩衝區。 |
LPD_SHARE_ACCUM | 層次平面會與主要平面共用累積緩衝區。 |
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 |