Наложение, подложка и основные плоскости
В приложениях можно использовать плоскости аппаратного слоя (наложения и плоскости подложки). В Windows форматы пикселей описывают конфигурации пикселей графического устройства. Каждый формат пикселей описывает глубину и другие характеристики основных буферов цветов и описывает дополнительные буферы (например, глубину, накопление, набор элементов и вспомогательный), которые использует основной плоскости. Теперь форматы пикселей расширены для включения наложения и буферов подложки.
Плоскости слоев всегда имеют передний левый буфер цвета, а также могут включать буферы цвета переднего и заднего. Каждый уровень слоя имеет определенный контекст отрисовки для отрисовки в буферы слоев. Функции рисования GDI нельзя использовать в плоскостях слоев.
Окно управляет цветными буферами плоскостей слоя аналогично тому, как он управляет буферами цвета основной плоскости. Одновременно можно отобразить несколько окон с наложением и (или) плоскостями подложки. Вы не можете иметь свободно плавающие окна наложения, которые могут перемещаться по любому окну в главной плоскости рисования. Кроме того, потому что это будет скрывать базовые плоскости в окне в любое время, вы не можете использовать аппаратные всплывающие самолеты, которые не имеют прозрачного цвета.
Каждый уровень слоя в окне имеет связанную палитру. Можно задать палитру плоскости слоя цветового индекса, но палитра цветовой плоскости RGBA фиксирована. Необходимо реализовать соответствующую палитру, когда окно находится на переднем плане. Плоскости слоев имеют прозрачный цвет пикселей или индекс, позволяющий отображать все базовые плоскости слоя.
Состояние контекста отрисовки можно скопировать в другой контекст отрисовки в отдельном уровне слоев. Вы также можете совместно использовать списки отображения между контекстами отрисовки в разных плоскостях слоев.
Следующие функции используются с плоскостями слоев:
- wglCopyContext
- wglCreateLayerContext
- wglDescribeLayerPlane
- wglGetLayerPaletteEntries
- wglRealizeLayerPalette
- wglSetLayerPaletteEntries
- wglSwapLayerBuffers