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


Функция 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

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

OpenGL в Windows

PIXELFORMATDESCRIPTOR

SetPixelFormat

Функции WGL

wglCreateContext

wglDeleteContext

wglGetCurrentContext

wglGetCurrentDC

wglMakeCurrent