次の方法で共有


レンダリング コンテキスト

OpenGL レンダリング コンテキスト は、すべての OpenGL コマンドが渡されるポートです。 OpenGL 呼び出しを行うすべてのスレッドには、現在のレンダリング コンテキストが必要です。 レンダリング コンテキストは、OpenGL を Windows ウィンドウ システムにリンクします。

アプリケーションは、レンダリング コンテキストを作成するときに Windows デバイス コンテキストを指定します。 このレンダリング コンテキストは、指定したデバイス コンテキストが参照するデバイスでの描画に適しています。 特に、レンダリング コンテキストのピクセル形式はデバイス コンテキストと同じです。 詳細については、「レンダリング コンテキスト関数 を参照してください。

この関係にもかかわらず、レンダリング コンテキストはデバイス コンテキストと同じではありません。 デバイス コンテキストには、Windows のグラフィックス コンポーネント (GDI) に関連する情報が含まれています。 レンダリング コンテキストには、OpenGL に関連する情報が含まれています。 デバイス コンテキストは、GDI 呼び出しで明示的に指定する必要があります。 OpenGL 呼び出しでは、レンダリング コンテキストは暗黙的です。 レンダリング コンテキストを作成する前に、デバイス コンテキストのピクセル形式を設定する必要があります。

OpenGL 呼び出しを行うスレッドには、現在のレンダリング コンテキストが必要です。 現在のレンダリング コンテキストがないスレッドからアプリケーションが OpenGL 呼び出しを行った場合、何も起こりません。呼び出しは無効です。 通常、アプリケーションはレンダリング コンテキストを作成し、スレッドの現在のレンダリング コンテキストとして設定してから、OpenGL 関数を呼び出します。 OpenGL 関数の呼び出しが完了すると、アプリケーションはスレッドからレンダリング コンテキストをアンカプトし、レンダリング コンテキストを削除します。 ウィンドウには一度に複数のレンダリング コンテキストを描画できますが、スレッドは現在アクティブなレンダリング コンテキストを 1 つだけ持つことができます。

現在のレンダリング コンテキストには、デバイス コンテキストが関連付けられています。 そのデバイス コンテキストは、レンダリング コンテキストの作成時に使用されたものと同じデバイス コンテキストである必要はありませんが、同じデバイスを参照し、同じピクセル形式にする必要があります。

スレッドは、現在のレンダリング コンテキストを 1 つだけ持つことができます。 レンダリング コンテキストは、1 つのスレッドに対してのみ最新の状態にすることができます。