Avant, arrière et autres mémoires tampons
OpenGL stocke et manipule les données de pixels dans un framebuffer. Le framebuffer se compose d’un ensemble de mémoires tampons logiques : mémoire tampons de couleur, de profondeur, d’accumulation et de gabarit. La mémoire tampon de couleurs elle-même se compose d’un ensemble de mémoires tampons logiques ; cet ensemble peut inclure un avant-gauche, un avant-droite, un arrière-gauche, un arrière-droit et un certain nombre de mémoires tampons auxiliaires. Un format de pixels particulier ou une implémentation OpenGL peut ne pas fournir toutes ces mémoires tampons. Par exemple, la version actuelle de l’implémentation d’OpenGL par Microsoft dans Windows ne prend pas en charge les images stéréoscopiques, de sorte qu’un format de pixel ne peut pas avoir de mémoires tampons de couleur gauche et droite. En outre, la version actuelle ne prend pas en charge les mémoires tampons auxiliaires. Pour plus d’informations sur les mémoires tampons OpenGL et les fonctions OpenGL qui fonctionnent sur celles-ci, consultez le Manuel de référence OpenGL et le Guide de programmation OpenGL.
L’implémentation d’OpenGL par Microsoft dans Windows prend en charge la double mise en mémoire tampon des images. Il s’agit d’une technique dans laquelle une application dessine des pixels dans une mémoire tampon hors écran, puis, lorsque cette image est prête pour l’affichage, copie le contenu de la mémoire tampon hors écran dans une mémoire tampon à l’écran. La double mise en mémoire tampon permet de modifier l’image en douceur, ce qui est particulièrement important pour les images animées.
Deux tampons de couleur sont disponibles pour les applications qui utilisent la double mise en mémoire tampon : une mémoire tampon avant et une mémoire tampon arrière. Par défaut, les commandes de dessin sont dirigées vers la mémoire tampon arrière (la mémoire tampon hors écran), tandis que la mémoire tampon avant s’affiche à l’écran. Lorsque la mémoire tampon hors écran est prête pour l’affichage, vous appelez SwapBuffers et Windows copie le contenu de la mémoire tampon hors écran dans la mémoire tampon à l’écran.
L’implémentation générique utilise une bitmap indépendante de l’appareil (DIB) comme mémoire tampon arrière et l’affichage de l’écran comme mémoire tampon avant. Les périphériques matériels et leurs pilotes peuvent utiliser différentes approches.
La mise en mémoire tampon double est une propriété au format pixel. Pour demander une double mise en mémoire tampon pour un format de pixel, définissez l’indicateur PFD_DOUBLEBUFFER dans la structure de données PIXELFORMATDESCRIPTOR dans un appel à ChoosePixelFormat.
La fonction principale OpenGL, glDrawBuffer, sélectionne les mémoires tampons pour l’écriture et l’effacement.
Rubriques connexes