Partager via


Front, Back 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 : couleur, profondeur, accumulation et mémoires tampons de gabarit. La mémoire tampon de couleur elle-même se compose d’un ensemble de mémoires tampons logiques ; cet ensemble peut inclure un front-left, un front-right, un back-left, un back-right et un certain nombre de mémoires tampons auxiliaires. Un format de pixel 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 de Microsoft dans Windows ne prend pas en charge les images stéréoscopiques. Par conséquent, un format de pixel ne peut pas avoir des 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 dessus, consultez le manuel de référence OpenGL et le guide de programmation OpenGL .

L’implémentation de Microsoft d’OpenGL dans Windows prend en charge le 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 des modifications d’image lisses, particulièrement importantes pour les images animées.

Deux mémoires tampons de couleur sont disponibles pour les applications qui utilisent une double mise en mémoire tampon : une mémoire tampon frontale et une mémoire tampon arrière. Par défaut, les commandes de dessin sont dirigées vers la mémoire tampon arrière (mémoire tampon hors écran), tandis que la mémoire tampon frontale 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 en tant que mémoire tampon frontale. Les périphériques matériels et leurs pilotes peuvent utiliser différentes approches.

La double mise en mémoire tampon 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.

fonctions de mémoire tampon