Impresión de una imagen de OpenGL
Puede imprimir imágenes de OpenGL representadas en metarchivos mejorados. Cuando se representa en un dispositivo de impresora (HDC), debe estar respaldado por un cola de metarchivo. OpenGL usa memoria para profundidad, color y otros búferes para almacenar la salida de gráficos en una impresora. Dado que la resolución de impresora típica requiere una cantidad significativa de memoria para almacenar la salida de gráficos, la impresión de una imagen de OpenGL puede requerir más memoria de la que está disponible en el sistema. Para superar esta limitación, la implementación actual de OpenGL imprime gráficos openGL en bandas. Sin embargo, esto aumenta el tiempo necesario para imprimir imágenes de OpenGL.
Antes de imprimir una imagen de OpenGL, debe llamar a la función StartDoc para completar la inicialización de un contexto de dispositivo de impresora (DC). Después de llamar a StartDoc, puede crear contextos de representación (HGLRC) para representarlo en el dispositivo de impresora. Si crea contextos de representación antes de llamar a StartDoc, no hay ninguna manera de determinar si un metarchivo está en cola.
En el ejemplo de código siguiente se muestra cómo imprimir una imagen de 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
Para obtener más información sobre el uso de metarchivos, vea Operaciones mejoradas de metarchivo.