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


Функция wglMakeCurrent (wingdi.h)

Функция wglMakeCurrent делает заданный контекст отрисовки OpenGL текущим контекстом отрисовки вызывающего потока. Все последующие вызовы OpenGL, выполняемые потоком, отрисовываются на устройстве, идентифицируемом hdc. Кроме того, можно использовать wglMakeCurrent для изменения текущего контекста отрисовки вызывающего потока, чтобы он больше не был текущим.

Синтаксис

BOOL wglMakeCurrent(
  HDC   unnamedParam1,
  HGLRC unnamedParam2
);

Параметры

unnamedParam1

Дескриптор контекста устройства. Последующие вызовы OpenGL, выполняемые вызывающим потоком, отрисовываются на устройстве, идентифицируемом hdc.

unnamedParam2

Обработка контекста отрисовки OpenGL, который функция задает в качестве контекста отрисовки вызывающего потока.

Если hglrc имеет значение NULL, функция делает текущий контекст отрисовки вызывающего потока не актуальным и освобождает контекст устройства, используемый контекстом отрисовки. В этом случае hdc игнорируется.

Возвращаемое значение

При успешном выполнении функции wglMakeCurrent возвращается значение TRUE; В противном случае возвращается значение FALSE. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Параметр hdc должен ссылаться на поверхность рисования, поддерживаемую OpenGL. Он не обязательно должен быть тем же hdc , который был передан в wglCreateContext при создании hglrc , но он должен быть на том же устройстве и иметь тот же формат пикселей. Преобразование И обрезка GDI в hdc не поддерживаются контекстом отрисовки. Текущий контекст отрисовки использует контекст устройства HDC до тех пор, пока контекст отрисовки больше не будет текущим.

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

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

Контекст отрисовки может быть текущим только для одного потока за раз. Невозможно сделать контекст отрисовки текущим для нескольких потоков.

Приложение может выполнять многопоточное рисование, делая различные контексты отрисовки текущими для разных потоков, предоставляя каждому потоку собственный контекст отрисовки и контекст устройства.

При возникновении ошибки функция wglMakeCurrent делает текущий контекст отрисовки потока не текущим перед возвратом.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header wingdi.h
Библиотека Opengl32.lib
DLL Opengl32.dll

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

OpenGL в Windows

Функции WGL

wglCreateContext

wglDeleteContext

wglGetCurrentContext

wglGetCurrentDC