Структура 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 |