打印 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
有关使用图元文件的详细信息,请参阅 增强型图元文件操作。