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
メタファイルの使用方法の詳細については、「 拡張メタファイル操作」を参照してください。