Dessin avec des mémoires tampons doubles
Les mémoires tampons doubles facilitent la transition entre une image et une autre à l’écran. L’échange de mémoires tampons se produit généralement à la fin d’une séquence de commandes de dessin. Par défaut, l’implémentation Microsoft d’OpenGL dans Windows s’attire dans la mémoire tampon hors écran ; Une fois le dessin terminé, vous appelez la fonction SwapBuffers pour copier la mémoire tampon hors écran dans la mémoire tampon à l’écran. L’exemple de code suivant prépare le dessin, appelle une fonction de dessin, puis copie l’image terminée à l’écran si une double mise en mémoire tampon est disponible.
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);
}
L’exemple de code suivant obtient un contexte d’appareil de fenêtre, affiche une scène, copie l’image à l’écran (pour afficher le rendu), puis libère le contexte de l’appareil.
hdc = GetDC(hwnd);
mySceneRenderingFunction();
SwapBuffers(hdc);
ReleaseDC(hWnd, hdc);