ダブル バッファーを使用した描画
ダブル バッファーは、画面上の 1 つのイメージと別のイメージ間の切り替えをスムーズにします。 通常、バッファーのスワップは、一連の描画コマンドの最後に表示されます。 既定では、Windows での OpenGL の Microsoft 実装はオフスクリーン バッファーに描画されます。描画が完了したら、 SwapBuffers 関数を呼び出して、画面外バッファーをスクリーン バッファーにコピーします。 次のコード サンプルでは、描画を準備し、描画関数を呼び出し、ダブル バッファリングが使用可能な場合は、完成したイメージを画面にコピーします。
void myRedraw(void)
{
// set up for drawing commands
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45, 1.0, 0.1, 100.0);
// draw our objects
myDrawAllObjects(GL_FALSE);
// if we're double-buffering ...
if (bDoubleBuffering)
// ...draw the copied image to the screen
SwapBuffers(hdc);
}
次のコード サンプルでは、ウィンドウ デバイス コンテキストを取得し、シーンをレンダリングし、イメージを画面にコピーして (レンダリングを表示するため)、デバイス コンテキストを解放します。
hdc = GetDC(hwnd);
mySceneRenderingFunction();
SwapBuffers(hdc);
ReleaseDC(hWnd, hdc);