Partager via


Impression d’une image OpenGL

Vous pouvez imprimer des images OpenGL rendues dans des métafichiers améliorés. Lorsque vous effectuez un rendu sur un périphérique d’imprimante (HDC), celui-ci doit être soutenu par un spouleur de métafichiers. OpenGL utilise la mémoire pour la profondeur, la couleur et d’autres mémoires tampons pour stocker la sortie graphique sur une imprimante. Étant donné que la résolution d’imprimante classique nécessite une quantité importante de mémoire pour stocker la sortie graphique, l’impression d’une image OpenGL peut nécessiter plus de mémoire que ce qui est disponible dans le système. Pour surmonter cette limitation, l’implémentation actuelle d’OpenGL imprime des graphiques OpenGL dans des bandes. Toutefois, cela augmente le temps nécessaire pour imprimer des images OpenGL.

Avant d’imprimer une image OpenGL, vous devez appeler la fonction StartDoc pour terminer l’initialisation d’un contexte de périphérique d’imprimante (DC). Après avoir appelé StartDoc, vous pouvez créer des contextes de rendu (HGLRC) à restituer sur l’appareil d’imprimante. Si vous créez des contextes de rendu avant d’appeler StartDoc, il n’existe aucun moyen de déterminer si un métafichier est en pool.

L’exemple de code suivant montre comment imprimer une image OpenGL :

HDC            hDC;
DOCINFO        di;
HGLRC          hglrc;

// Call StartDoc to start the document 
StartDoc( hDC, &di );

// Prepare the printer driver to accept data 
StartPage(hDC);

// Create a rendering context using the metafile DC 
hglrc = wglCreateContext ( hDCmetafile );

// Do OpenGL rendering operations here 
    . . .
wglMakeCurrent(NULL, NULL); // Get rid of rendering context 
    . . .
EndPage(hDC); // Finish writing to the page 
EndDoc(hDC); // End the print job

Pour plus d’informations sur l’utilisation des métafichiers, consultez Opérations de métafichier améliorées.