다음을 통해 공유


wglCreateLayerContext 함수(wingdi.h)

wglCreateLayerContext 함수는 디바이스 컨텍스트에서 지정된 레이어 평면에 그리기 위한 새 OpenGL 렌더링 컨텍스트를 만듭니다.

구문

HGLRC wglCreateLayerContext(
  HDC unnamedParam1,
  int unnamedParam2
);

매개 변수

unnamedParam1

새 렌더링 컨텍스트에 대한 디바이스 컨텍스트를 지정합니다.

unnamedParam2

렌더링 컨텍스트를 바인딩할 레이어 평면을 지정합니다. 값 0은 기본 평면을 식별합니다. iLayerPlane의 양수 값은 오버레이 평면을 식별합니다. 여기서 1은 기본 평면의 첫 번째 오버레이 평면이고 2는 첫 번째 오버레이 평면의 두 번째 오버레이 평면입니다. 음수 값은 언더레이 평면을 식별합니다. 여기서 1은 기본 평면 아래의 첫 번째 언더레이 평면이고 2는 첫 번째 언더레이 평면 아래의 두 번째 언더레이 평면입니다. 오버레이 및 언더레이 평면의 수는 PIXELFORMATDESCRIPTOR 구조체의 bReserved 멤버에 제공됩니다.

반환 값

함수가 성공하면 반환 값은 OpenGL 렌더링 컨텍스트에 대한 핸들입니다.

함수가 실패하면 반환 값은 NULL입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

렌더링 컨텍스트는 모든 OpenGL 명령이 전달하는 포트입니다. OpenGL 호출을 만드는 모든 스레드에는 하나의 현재 활성 렌더링 컨텍스트가 있어야 합니다. 렌더링 컨텍스트는 디바이스 컨텍스트와 동일하지 않습니다. 렌더링 컨텍스트에는 OpenGL과 관련된 정보가 포함되지만 디바이스 컨텍스트에는 GDI와 관련된 정보가 포함됩니다.

렌더링 컨텍스트를 만들기 전에 SetPixelFormat 함수를 사용하여 디바이스 컨텍스트의 픽셀 형식을 설정합니다. 동일한 픽셀 형식만 있는 창의 지정된 레이어 평면에서 렌더링 컨텍스트를 사용할 수 있습니다.

여러 스레드를 사용하는 OpenGL 애플리케이션에서는 렌더링 컨텍스트를 만들고, 스레드의 현재 렌더링 컨텍스트로 선택하고, 지정된 스레드에 대해 OpenGL을 호출합니다. 스레드의 렌더링 컨텍스트를 완료하면 wglDeleteContext 함수를 호출합니다.

예제

다음 코드 예제에서는 wglCreateLayerContext를 사용하는 방법을 보여줍니다.

// The following code fragment shows how to render to overlay 1  
// This example assumes that the pixel format of hdc includes   
// overlay plane 1  
 
HDC hdc; 
HGLRC; 
 
// create a rendering context for overlay plane 1  
hglrc = wglCreateLayerContext(hdc, 1); 
 
// make it the calling thread's current rendering context  
wglMakeCurrent(hdc, hglrc); 
 
// call OpenGL functions here. . .  
 
// when the rendering context is no longer needed. . .  
 
// make the rendering context not current  
wglMakeCurrent(NULL, NULL); 
 
// delete the rendering context  
wglDeleteContext(hglrc);

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 wingdi.h
라이브러리 Opengl32.lib
DLL Opengl32.dll

추가 정보

Windows의 OpenGL

PIXELFORMATDESCRIPTOR

SetPixelFormat

WGL 함수

wglCreateContext

wglDeleteContext

wglGetCurrentContext

wglGetCurrentDC

wglMakeCurrent