次の方法で共有


前面、背面、およびその他のバッファー

OpenGL は、フレームバッファー内のピクセル データを格納および操作します。 フレームバッファーは、一連の論理バッファー (色、深度、累積、ステンシル バッファー) で構成されます。 カラー バッファー自体は、一連の論理バッファーで構成されます。このセットには、フロントレフト、フロントライト、バックレフ、バックライト、およびいくつかの補助バッファを含めることができます。 特定のピクセル形式または OpenGL 実装では、これらのバッファーの一部が提供されない場合があります。 たとえば、Windows での Microsoft の OpenGL 実装の現在のバージョンでは立体画像はサポートされていないため、ピクセル形式では左右のカラー バッファーを使用できません。 さらに、現在のバージョンでは補助バッファーはサポートされていません。 OpenGL バッファーとその操作を行う OpenGL 関数の詳細については、「 OpenGL リファレンス マニュアル 」および 「OpenGL プログラミング ガイド」を参照してください。

Windows での OpenGL の実装では、イメージのダブル バッファリングがサポートされています。 これは、アプリケーションが画面外バッファーにピクセルを描画し、そのイメージを表示する準備ができたら、画面外バッファーの内容をスクリーン バッファーにコピーする手法です。 ダブル バッファリングを使用すると、アニメーション化された画像に特に重要な、スムーズな画像の変更が可能になります。

ダブル バッファリングを使用するアプリケーションでは、フロント バッファーとバック バッファーの 2 つのカラー バッファーを使用できます。 既定では、描画コマンドはバック バッファー (オフスクリーン バッファー) に送られ、フロント バッファーは画面に表示されます。 画面外バッファーを表示する準備ができたら、 SwapBuffers を呼び出し、Windows は画面外バッファーの内容をスクリーン バッファーにコピーします。

汎用実装では、デバイスに依存しないビットマップ (DIB) をバック バッファーとして使用し、画面をフロント バッファーとして表示します。 ハードウェア デバイスとそのドライバーは、さまざまな方法を使用する場合があります。

ダブル バッファリングはピクセル形式のプロパティです。 ピクセル形式のダブル バッファリングを要求するには、ChoosePixelFormat の呼び出しで PIXELFORMATDESCRIPTOR データ構造にPFD_DOUBLEBUFFER フラグを設定します。

OpenGL コア関数 glDrawBuffer は、書き込みとクリアのためのバッファーを選択します。

バッファー関数