Bagikan melalui


Penyangga Depan, Belakang, dan Lainnya

OpenGL menyimpan dan memanipulasi data piksel dalam framebuffer. Framebuffer terdiri dari satu set buffer logis: warna, kedalaman, akumulasi, dan buffer stensil. Buffer warna itu sendiri terdiri dari satu set buffer logis; set ini dapat mencakup kiri depan, kanan depan, kiri belakang, kanan belakang, dan beberapa buffer tambahan. Format piksel tertentu atau implementasi OpenGL mungkin tidak menyediakan semua buffer ini. Misalnya, versi implementasi OpenGL Microsoft saat ini di Windows tidak mendukung gambar stereoskopis, sehingga format piksel tidak dapat memiliki buffer warna kiri dan kanan. Selain itu, versi saat ini tidak mendukung buffer tambahan. Untuk informasi selengkapnya tentang buffer OpenGL dan fungsi OpenGL yang beroperasi padanya, lihat Manual Referensi OpenGL dan Panduan Pemrograman OpenGL.

Implementasi OpenGL microsoft di Windows mendukung buffering ganda gambar. Ini adalah teknik di mana aplikasi menarik piksel ke buffer di luar layar, dan kemudian, ketika gambar itu siap untuk ditampilkan, menyalin konten buffer di luar layar ke buffer di layar. Buffering ganda memungkinkan perubahan gambar yang halus, yang sangat penting untuk gambar animasi.

Dua buffer warna tersedia untuk aplikasi yang menggunakan buffering ganda: buffer depan dan buffer belakang. Secara default, perintah gambar diarahkan ke buffer belakang (buffer di luar layar), sementara buffer depan ditampilkan di layar. Ketika buffer di luar layar siap ditampilkan, Anda memanggil SwapBuffers, dan Windows menyalin konten buffer di luar layar ke buffer di layar.

Implementasi generik menggunakan bitmap independen perangkat (DIB) sebagai buffer belakang dan layar ditampilkan sebagai buffer depan. Perangkat keras dan drivernya dapat menggunakan pendekatan yang berbeda.

Buffering ganda adalah properti format piksel. Untuk meminta buffering ganda untuk format piksel, atur bendera PFD_DOUBLEBUFFER dalam struktur data PIXELFORMATDESCRIPTOR dalam panggilan ke ChoosePixelFormat.

Fungsi inti OpenGL, glDrawBuffer, memilih buffer untuk menulis dan menghapus.

Fungsi Buffer