オーバーレイ、アンダーレイ、メイン平面
アプリケーションでは、ハードウェア レイヤープレーン (オーバーレイおよびアンダーレイプレーン) を使用できます。 Windows では、ピクセル形式はグラフィックス デバイスのピクセル構成を表します。 各ピクセル形式は、メイン カラー バッファーの深度とその他の特性を記述し、メイン プレーンで使用される追加のバッファー (深度、累積、ステンシル、補助など) を記述します。 オーバーレイ バッファーとアンダーレイ バッファーを含むようにピクセル形式が拡張されました。
レイヤープレーンには常にフロント左カラーバッファーがあり、フロントライトカラーバッファーとバックカラーバッファーを含めることもできます。 各レイヤー プレーンには、レイヤー バッファーにレンダリングするための特定のレンダリング コンテキストがあります。 レイヤー プレーンでは GDI 描画関数を使用できません。
ウィンドウは、メインプレーンのカラー バッファーを管理する方法と同様に、レイヤープレーンのカラー バッファーを管理します。 オーバーレイ平面やアンダーレイ平面を持つ複数のウィンドウを同時に表示できます。 メインの図面平面内の任意のウィンドウ上を移動できる浮動オーバーレイ ウィンドウを持つことはできません。 また、ウィンドウ内の基になる平面は常に隠れるので、透明な色を持たないハードウェア ポップアップ プレーンを使用することはできません。
ウィンドウ内の各レイヤー平面には、パレットが関連付けられています。 カラーインデックス レイヤープレーンのパレットは設定できますが、RGBA カラープレーンのパレットは固定されています。 ウィンドウがフォアグラウンドにある場合は、適切なパレットを実現する必要があります。 レイヤープレーンには透明なピクセルカラーまたはインデックスがあり、基になるレイヤープレーンを透けて表示できます。
レンダリング コンテキストの状態は、別のレイヤー プレーン内の別のレンダリング コンテキストにコピーできます。 また、異なるレイヤー プレーン内のレンダリング コンテキスト間で表示リストを共有することもできます。
レイヤー プレーンでは、次の関数が使用されます。
- wglCopyContextの
- wglCreateLayerContextの
- wglDescribeLayerPlane
- wglGetLayerPaletteEntries
- wglRealizeLayerPalette
- wglSetLayerPaletteEntries
- wglSwapLayerBuffers