レンダリング コンテキスト
OpenGL レンダリング コンテキスト は、すべての OpenGL コマンドが渡されるポートです。 OpenGL 呼び出しを行うすべてのスレッドには、現在のレンダリング コンテキストが必要です。 レンダリング コンテキストは、OpenGL を Windows ウィンドウ システムにリンクします。
アプリケーションは、レンダリング コンテキストを作成するときに Windows デバイス コンテキストを指定します。 このレンダリング コンテキストは、指定したデバイス コンテキストが参照するデバイスでの描画に適しています。 特に、レンダリング コンテキストのピクセル形式はデバイス コンテキストと同じです。 詳細については、「 レンダリング コンテキスト関数」を参照してください。
この関係にもかかわらず、レンダリング コンテキストはデバイス コンテキストと同じではありません。 デバイス コンテキストには、Windows のグラフィックス コンポーネント (GDI) に関連する情報が含まれています。 レンダリング コンテキストには、OpenGL に関連する情報が含まれます。 デバイス コンテキストは、GDI 呼び出しで明示的に指定する必要があります。 OpenGL 呼び出しでは、レンダリング コンテキストは暗黙的です。 レンダリング コンテキストを作成する前に、デバイス コンテキストのピクセル形式を設定する必要があります。
OpenGL 呼び出しを行うスレッドには、現在のレンダリング コンテキストが必要です。 アプリケーションが現在のレンダリング コンテキストを欠いているスレッドから OpenGL 呼び出しを行った場合、何も起こりません。呼び出しは効果がありません。 アプリケーションは通常、レンダリング コンテキストを作成し、スレッドの現在のレンダリング コンテキストとして設定してから、OpenGL 関数を呼び出します。 OpenGL 関数の呼び出しが完了すると、アプリケーションはスレッドからレンダリング コンテキストを取り消し、レンダリング コンテキストを削除します。 ウィンドウには複数のレンダリング コンテキストを同時に描画できますが、スレッドには現在アクティブなレンダリング コンテキストを 1 つだけ含めることができます。
現在のレンダリング コンテキストには、関連付けられたデバイス コンテキストがあります。 そのデバイス コンテキストは、レンダリング コンテキストの作成時と同じデバイス コンテキストである必要はありませんが、同じデバイスを参照し、同じピクセル形式にする必要があります。
スレッドは、現在のレンダリング コンテキストを 1 つだけ持つことができます。 レンダリング コンテキストは、1 つのスレッドに対してのみ最新の状態にすることができます。