wglMakeCurrent 함수(wingdi.h)

wglMakeCurrent 함수는 지정된 OpenGL 렌더링 컨텍스트를 호출 스레드의 현재 렌더링 컨텍스트로 만듭니다. 스레드에서 수행한 모든 후속 OpenGL 호출은 hdc로 식별된 디바이스에 그려집니다. wglMakeCurrent를 사용하여 더 이상 최신 상태가 되지 않도록 호출 스레드의 현재 렌더링 컨텍스트를 변경할 수도 있습니다.

구문

BOOL wglMakeCurrent(
  HDC   unnamedParam1,
  HGLRC unnamedParam2
);

매개 변수

unnamedParam1

디바이스 컨텍스트에 대한 핸들입니다. 호출 스레드에서 수행한 후속 OpenGL 호출은 hdc로 식별된 디바이스에 그려집니다.

unnamedParam2

함수가 호출 스레드의 렌더링 컨텍스트로 설정하는 OpenGL 렌더링 컨텍스트를 처리합니다.

hglrcNULL인 경우 함수는 호출 스레드의 현재 렌더링 컨텍스트를 더 이상 최신 상태가 되지 않게 하고 렌더링 컨텍스트에서 사용되는 디바이스 컨텍스트를 해제합니다. 이 경우 hdc 는 무시됩니다.

반환 값

wglMakeCurrent 함수가 성공하면 반환 값은 TRUE이고, 그렇지 않으면 반환 값이 FALSE입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

hdc 매개 변수는 OpenGL에서 지원하는 그리기 표면을 참조해야 합니다. hglrc를 만들 때 wglCreateContext에 전달된 것과 동일한 hdc일 필요는 없지만 동일한 디바이스에 있어야 하며 동일한 픽셀 형식이어야 합니다. HDC의 GDI 변환 및 클리핑은 렌더링 컨텍스트에서 지원되지 않습니다. 현재 렌더링 컨텍스트는 렌더링 컨텍스트가 더 이상 최신 상태가 될 때까지 hdc 디바이스 컨텍스트를 사용합니다.

새 렌더링 컨텍스트로 전환하기 전에 OpenGL은 호출 스레드에 현재 있던 이전 렌더링 컨텍스트를 플러시합니다.

스레드에는 하나의 현재 렌더링 컨텍스트가 있을 수 있습니다. 프로세스는 다중 스레딩을 통해 여러 렌더링 컨텍스트를 가질 수 있습니다. 스레드는 OpenGL 함수를 호출하기 전에 현재 렌더링 컨텍스트를 설정해야 합니다. 그렇지 않으면 모든 OpenGL 호출이 무시됩니다.

렌더링 컨텍스트는 한 번에 하나의 스레드에만 최신일 수 있습니다. 렌더링 컨텍스트를 여러 스레드로 현재 상태로 만들 수 없습니다.

애플리케이션은 다양한 렌더링 컨텍스트를 다른 스레드에 최신 상태로 만들고 각 스레드에 자체 렌더링 컨텍스트 및 디바이스 컨텍스트를 제공하여 다중 스레드 그리기를 수행할 수 있습니다.

오류가 발생하면 wglMakeCurrent 함수는 반환하기 전에 스레드의 현재 렌더링 컨텍스트를 최신 상태로 만들지 않습니다.

요구 사항

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

추가 정보

Windows의 OpenGL

WGL 함수

wglCreateContext

wglDeleteContext

wglGetCurrentContext

wglGetCurrentDC