Partager via


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);