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 레이어 평면은 이중 버퍼링됩니다. 레이어 평면은 기본 평면이 단일 버퍼링되고 그 반대의 경우에도 이중 버퍼링될 수 있습니다.
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 픽셀 각 픽셀에는 빨강, 녹색, 파랑 및 알파의 네 가지 구성 요소가 있습니다.
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

사용되지 않습니다. 0이어야 합니다.

crTransparent

LPD_TRANSPARENT 플래그가 설정되면 투명 색 또는 인덱스 값을 지정합니다. 일반적으로 값은 0입니다.

설명

위에서 설명한 대로 특정 계층 평면 속성은 현재 구현에서 지원되지 않습니다. 구현은 OpenGL의 Microsoft GDI 소프트웨어 구현입니다. OpenGL의 일부를 향상시키는 하드웨어 제조업체는 제네릭 구현에서 지원되지 않는 일부 레이어 평면 속성을 지원할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 wingdi.h

추가 정보

Windows의 OpenGL

PIXELFORMATDESCRIPTOR

구조체

wglCreateLayerContext

wglDescribeLayerPlane

wglGetLayerPaletteEntries

wglRealizeLayerPalette

wglSetLayerPaletteEntries

wglSwapLayerBuffers