OpenGL 画面のプリントアウト機能を実装したサンプルプログラムです。(Windows 環境のみ)
通常プリンタの解像度は、スクリーンの解像度より高いものです。 そのため、画面にレンダリングしたものをそのままプリントアウトすると、非常に小さな出力しか得られません。 また、プリンタの解像度に合わせて引き伸ばすと、ジャギが目立ってしまいます。
そこで、プリントアウト時には、プリンタの解像度に合わせた DIB にオフスクリーンレンダリングを行います。 これにより、スクリーンの解像度よりも高い画像をプリントアウトすることができます。
プログラムの説明
このプログラムでは、画面描画時には、通常のオンスクリーンレンダリングを行います。 プレビュ時、印刷時には、プリンタの解像度に合わせて DIB にオフスクリーンレンダリングを行います。
メニュの出力モードには、「低解像度」「標準」「最大解像度」を用意しました。 プリントアウトの違いを見比べてください。
プレビュ時、印刷時は、オフスクリーンレンダリングを行いますので、ハードウェア機能を利用することができません。 このため、描画に時間がかかります。また、ドライバの違いにより、表示ウィンドウと描画結果が異なることがあります。
低解像度 ... 表示ウィンドウの解像度でプリントアウトします。 標準 ... 表示ウィンドウの画面アスペクトを維持し、プリントアウトします。(デフォルト) 最大解像度 ... プリンタの解像度でプリントアウトします。
対象機種
Windows 2000, NT 4.0, 3.51 / Me, 98, 95
動作確認機種
OS Windows 98 SE グラフィックス Generic版(ソフトウェアレンダリング) プリンタ EPSON PM-900C
コンパイルに必要な環境
- Visual C++ 6.x 以降 (開発環境)
- opengl32.dll および glu32.dll (Windows 95 OSR2 以降は、標準でインストール)
コンパイルする上での注意事項
- printout.dsw をダブルクリックして VC++ を起動し、ビルドを選択します。
プログラムの扱い
- コピー、使用は自由に行えますが、使用にあたっては使用者自信の責任の下に行って下さい。著者は何の保証もしませんし、テキストおよびプログラムを使用したことによって生じた損害を補償する義務も負いません。
- 著者は、テキストおよびプログラムに不備があったとしても、それを修正する義務を負いません。
改版履歴
Ver. 1.0.0.1 '01/07/06 公開版
プログラム
- printoutarc.exe ソース、実行ファイルを含みます。(自己解凍形式)