Dessiner avec deux mémoires tampons
Les doubles mémoires tampons lissent la transition entre une image et une autre à l’écran. L’échange de mémoires tampons est généralement effectué à la fin d’une séquence de commandes de dessin. par défaut, l’implémentation Microsoft de OpenGL dans Windows dessine 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 sur l’écran si la 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 de périphérique Windows, génère le rendu d’une scène, copie l’image à l’écran (pour afficher le rendu), puis libère le contexte de périphérique.
hdc = GetDC(hwnd);
mySceneRenderingFunction();
SwapBuffers(hdc);
ReleaseDC(hWnd, hdc);