wglCreateLayerContext 関数 (wingdi.h)
wglCreateLayerContext 関数は、デバイス コンテキストで指定されたレイヤー プレーンに描画するための新しい OpenGL レンダリング コンテキストを作成します。
構文
HGLRC wglCreateLayerContext(
HDC unnamedParam1,
int unnamedParam2
);
パラメーター
unnamedParam1
新しいレンダリング コンテキストのデバイス コンテキストを指定します。
unnamedParam2
レンダリング コンテキストをバインドするレイヤー プレーンを指定します。 値 0 は、メイン平面を識別します。 iLayerPlane の正の値はオーバーレイプレーンを識別します。ここで、1 はメイン平面上の最初のオーバーレイプレーン、2 は最初のオーバーレイプレーン上の 2 番目のオーバーレイプレーンなどです。 負の値を指定すると、アンダーレイ平面が識別されます。ここで、1 はメイン平面の下の最初のアンダーレイ平面、2 は最初のアンダーレイ平面の下の 2 番目のアンダーレイ平面などです。 オーバーレイ面とアンダーレイ 平面の数は、PIXELFORMATDESCRIPTOR 構造体の bReserved メンバーで指定されます。
戻り値
関数が成功した場合、戻り値は OpenGL レンダリング コンテキストへのハンドルです。
関数が失敗した場合は、返される値は NULL です。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
レンダリング コンテキストは、すべての OpenGL コマンドが渡されるポートです。 OpenGL 呼び出しを行うすべてのスレッドには、現在アクティブなレンダリング コンテキストが 1 つ必要です。 レンダリング コンテキストは、デバイス コンテキストと同じではありません。レンダリング コンテキストには 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 |
Library | Opengl32.lib |
[DLL] | Opengl32.dll |