Bagikan melalui


Menggambar dengan Buffer Ganda

Buffer ganda menghaluskan transisi antara satu gambar dan gambar lainnya di layar. Pertukaran penyangga biasanya dilakukan pada akhir urutan perintah menggambar. Secara default, implementasi Microsoft OpenGL di Windows menggambar pada buffer di luar layar; setelah proses menggambar selesai, Anda memanggil fungsi SwapBuffers untuk menyalin buffer di luar layar ke buffer pada layar. Sampel kode berikut bersiap untuk menggambar, memanggil fungsi gambar, lalu menyalin gambar yang telah selesai ke layar jika buffering ganda tersedia.

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); 
}

Sampel kode berikut mendapatkan konteks perangkat jendela, merender adegan, menyalin gambar ke layar (untuk menampilkan penyajian), lalu merilis konteks perangkat.

hdc = GetDC(hwnd); 
mySceneRenderingFunction(); 
SwapBuffers(hdc); 
ReleaseDC(hWnd, hdc);