Frente, atrás y otros búferes
OpenGL almacena y manipula datos de píxeles en un búfer de fotogramas. El búfer de fotogramas consta de un conjunto de búferes lógicos: búferes de color, profundidad, acumulación y galería de símbolos. El propio búfer de color consta de un conjunto de búferes lógicos; este conjunto puede incluir un front-left, un front-right, un back-left, un back-right y algún número de búferes auxiliares. Es posible que un formato de píxel determinado o una implementación de OpenGL no proporcionen todos estos búferes. Por ejemplo, la versión actual de la implementación de OpenGL de Microsoft en Windows no admite imágenes estereoscópicas, por lo que un formato de píxel no puede tener búferes de color izquierdo y derecho. Además, la versión actual no admite búferes auxiliares. Para obtener más información sobre los búferes de OpenGL y las funciones de OpenGL que funcionan en ellos, consulte el Manual de referencia de OpenGL y la Guía de programación de OpenGL.
La implementación de Microsoft de OpenGL en Windows admite el almacenamiento en búfer doble de imágenes. Se trata de una técnica en la que una aplicación dibuja píxeles en un búfer fuera de pantalla y, a continuación, cuando esa imagen está lista para mostrarse, copia el contenido del búfer fuera de pantalla en un búfer en pantalla. El almacenamiento en búfer doble permite cambios de imagen suaves, especialmente importantes para las imágenes animadas.
Hay dos búferes de color disponibles para las aplicaciones que usan el almacenamiento en búfer doble: un búfer frontal y un búfer de reserva. De forma predeterminada, los comandos de dibujo se dirigen al búfer atrás (el búfer fuera de la pantalla), mientras que el búfer frontal se muestra en la pantalla. Cuando el búfer fuera de pantalla esté listo para su visualización, llame a SwapBuffers y Windows copia el contenido del búfer fuera de pantalla en el búfer en pantalla.
La implementación genérica usa un mapa de bits independiente del dispositivo (DIB) como búfer de reserva y la pantalla como búfer frontal. Los dispositivos de hardware y sus controladores pueden usar diferentes enfoques.
El almacenamiento en búfer doble es una propiedad de formato de píxel. Para solicitar el almacenamiento en búfer doble para un formato de píxel, establezca la marca de PFD_DOUBLEBUFFER en la estructura de datos PIXELFORMATDESCRIPTOR en una llamada a ChoosePixelFormat.
La función principal de OpenGL, glDrawBuffer, selecciona búferes para escribir y borrar.