![]() |
|||
| Printable Version Send Feedback |
GLP OpenGL to PostScript Class Library |
||
|---|---|---|---|
PagesHomeAbout Me All Articles PhotographyMy Favorite PicturesPhoto Albums Photo Gear DocumentationQuickModel FormatSerial Programming Subversion Cheats UI Experiments Softwareflcdsimfldiff flifstat flPhoto FLTK Widgets Gimp Plug-Ins OpenGL Printing RasterView Sudoku |
Note: I haven't worked on the GLP library since 2001, so this page should serve only as inspiration for your own development... GLP is a C++ class library that uses the feedback mechanism in OpenGL library to generate Adobe Postscript output suitable for printout or inclusion in a document. Use of GLP is governed by the GNU Library General Public License. Source code for GLP version 0.1 is freely available: GLP is currently under development and version 0.1 can be considered (at best) a "beta" release. GLP only supports vector drawing primitives (points, lines, triangles, quads, polygons) due to limitations in the OpenGL feedback mechanism. The OpenGL Stream extension (GLS) proposed by Silicon Graphics® may remove this limitation. Feedback is used to reduce memory requirements and improve output quality. It also works around one particularly nasty problem with the current OpenGL implementation under X - you can't share display lists between direct and indirect contexts (like you'd use for an off-screen Pixmap). Version 0.1 implements the following functionality:
Missing from 0.1 is:
Implementation DetailsGLP is implemented as a C++ class library. The GLPcontext class provides all the basic feedback and primitive insertion functions as well as a standard framework for different types of output. This is flexible enough that you can write subclasses that output PostScript, or HPGL, or use the Windows GDI interface without having to duplicate a lot of code and effort. GLP's design is a drastic departure from the old PSGL library which intercepted IRIS GL calls. GLP can catch the output from libraries and functions you call but didn't write. It also implements a much more intelligent depth sorting algorithm that handles transparency and automatically removes/clips primitives that are fully obscured. The result is a reasonably well optimized output stream that produces a (relatively) small file that yields higher quality output than a straight render-to-bitmap approach does. |
||
| Last modified 14 May 2007 - All content copyright 1991-2008 by Michael R Sweet | |||