Функция wglCreateLayerContext (wingdi.h)
Функция wglCreateLayerContext создает новый контекст отрисовки OpenGL для рисования в указанной плоскости слоя в контексте устройства.
Синтаксис
HGLRC wglCreateLayerContext(
HDC unnamedParam1,
int unnamedParam2
);
Параметры
unnamedParam1
Указывает контекст устройства для нового контекста отрисовки.
unnamedParam2
Указывает плоскость слоя, к которой требуется привязать контекст отрисовки. Значение 0 определяет плоскость main. Положительные значения iLayerPlane определяют плоскости наложения, где 1 — это первая плоскость наложения на main плоскости, 2 — вторая плоскость наложения над первой плоскостью наложения и т. д. Отрицательные значения определяют плоскости подложки, где 1 — это первая плоскость под уровнем main, 2 — вторая плоскость под первой плоскостью подложки и т. д. Количество плоскостей перекрытия и подложки задается в элементе bReserved структуры PIXELFORMATDESCRIPTOR .
Возвращаемое значение
Если функция выполняется успешно, возвращаемое значение является дескриптором контекста отрисовки 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 |
Header | wingdi.h |
Библиотека | Opengl32.lib |
DLL | Opengl32.dll |