打印 OpenGL 图像

可以打印在增强的图元文件中呈现的 OpenGL 图像。 (HDC) 呈现到打印机设备时,它必须由图元文件后台处理程序提供支持。 OpenGL 使用内存获取深度、颜色和其他缓冲区,将图形输出存储到打印机。 由于典型的打印机分辨率需要大量内存来存储图形输出,因此打印 OpenGL 图像可能需要比系统中可用的内存更多的内存。 为了克服此限制,OpenGL 的当前实现以带状形式打印 OpenGL 图形。 但是,这会增加打印 OpenGL 图像所需的时间。

在打印 OpenGL 图像之前,必须调用 StartDoc 函数以完成 (DC) 初始化打印机设备上下文。 调用 StartDoc 后,可以 (HGLRC) 创建呈现上下文以呈现到打印机设备。 如果在调用 StartDoc 之前创建呈现上下文,则无法确定图元文件是否已后台打印。

以下代码示例演示如何打印 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

有关使用图元文件的详细信息,请参阅 增强型图元文件操作