使用雙緩衝區繪製
雙緩衝區可讓畫面上一個影像與另一個影像之間的轉換順暢。 交換緩衝區通常位於繪圖命令序列的結尾。 根據預設,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);