Поделиться через


Структура LAYERPLANEDESCRIPTOR (wingdi.h)

Структура 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 Плоскость слоя имеет двойную буферизацию. Плоскость слоя может быть двойной буферизации, даже если main плоскость является одно буферной, и наоборот.
LPD_STEREO Плоскость слоя является стереоскопической. Плоскость слоя может быть стереоскопической, даже если main плоскости является моноскопической и наоборот.
LPD_SWAP_EXCHANGE В плоскости слоя с двойной буферизацией при переключении цветового буфера происходит обмен содержимого переднего и заднего буферов. Затем задний буфер содержит содержимое переднего буфера перед переключением. Этот флаг является указанием только и может не предоставляться драйвером.
LPD_SWAP_COPY В плоскости слоя с двойной буферизацией при замене буфера цвета содержимое обратного буфера копируется в передний буфер. Переключение не влияет на содержимое заднего буфера. Этот флаг является указанием только и может не предоставляться драйвером.
LPD_TRANSPARENT Элемент crTransparent этой структуры содержит прозрачный цвет или значение индекса, которое позволяет базовым слоям отображаться через этот слой. Все плоскости слоя, за исключением нижнего слоя, имеют прозрачный цвет или индекс.
LPD_SHARE_DEPTH Плоскость слоя совместно использует буфер глубины с main плоскостью.
LPD_SHARE_STENCIL Плоскость слоя совместно использует буфер трафарета с main плоскостью.
LPD_SHARE_ACCUM Плоскость слоя совместно использует буфер накопления с main плоскостью.

iPixelType

Указывает тип пиксельных данных. Определены следующие типы.

Значение Значение
LPD_TYPE_RGBA Пиксели RGBA. Каждый пиксель имеет четыре компонента: красный, зеленый, синий и альфа-канал.
LPD_TYPE_COLORINDEX Пиксели индекса цвета. Каждый пиксель использует значение индекса цвета.

cColorBits

Указывает количество цветовых битовых плоскостей в каждом цветовом буфере. Для типов пикселей RGBA это размер буфера цвета, за исключением альфа-битовых плоскостей. Для пикселей цветовых индексов это размер буфера цветовых индексов.

cRedBits

Указывает количество красных битовых плоскостей в каждом буфере цвета RGBA.

cRedShift

Указывает число сдвига для красных битовых плоскостей в каждом буфере цвета RGBA.

cGreenBits

Указывает количество зеленых битовых плоскостей в каждом цветовом буфере RGBA.

cGreenShift

Указывает число сдвига для зеленых битовых плоскостей в каждом буфере цвета RGBA.

cBlueBits

Указывает количество синих битовых плоскостей в каждом буфере цвета RGBA.

cBlueShift

Указывает число сдвига для синих битовых плоскостей в каждом цветовом буфере RGBA.

cAlphaBits

Указывает количество альфа-битовых плоскостей в каждом буфере цвета RGBA. Альфа-битовые плоскости не поддерживаются.

cAlphaShift

Задает число сдвига для альфа-битовых плоскостей в каждом буфере цвета RGBA. Альфа-битовые плоскости не поддерживаются.

cAccumBits

Указывает общее количество битовых плоскостей в буфере накопления.

cAccumRedBits

Указывает количество красных битовых плоскостей в буфере накопления.

cAccumGreenBits

Указывает количество зеленых битовых плоскостей в буфере накопления.

cAccumBlueBits

Указывает количество синих битовых плоскостей в буфере накопления.

cAccumAlphaBits

Указывает количество альфа-битовых плоскостей в буфере накопления.

cDepthBits

Задает глубину буфера глубины (оси Z).

cStencilBits

Задает глубину буфера трафарета.

cAuxBuffers

Указывает количество вспомогательных буферов. Вспомогательные буферы не поддерживаются.

iLayerPlane

bReserved

Не используется. Должен равняться нулю.

crTransparent

При установке флага LPD_TRANSPARENT задает прозрачный цвет или значение индекса. Обычно значение равно нулю.

Комментарии

Обратите внимание, как описано выше, что некоторые свойства плоскости слоя не поддерживаются в текущей реализации. Реализация является реализацией программного обеспечения Microsoft GDI OpenGL. Производители оборудования, расширяющие компоненты OpenGL, могут поддерживать некоторые свойства плоскости слоев, не поддерживаемые универсальной реализацией.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхняя часть wingdi.h

См. также раздел

OpenGL в Windows

PIXELFORMATDESCRIPTOR

Структуры

wglCreateLayerContext

wglDescribeLayerPlane

wglGetLayerPaletteEntries

wglRealizeLayerPalette

wglSetLayerPaletteEntries

wglSwapLayerBuffers