Display PostScript
| Company type | Software technology |
|---|---|
| Industry | Computer graphics |
| Founded | 1987 |
| Founder | Adobe Systems, NeXT |
Area served | Computer graphics and display systems |
| Products | 2D graphics engine based on PostScript imaging model |
Display PostScript (DPS) is a 2D graphics engine that employs the PostScript (PS) imaging model and language to produce graphics on screen. Initially created for computer printing, DPS incorporates enhancements tailored to boost efficiency and usability on bitmap displays.
The initial PostScript display solutions were developed at Adobe Systems. In the course of developing NeXT computers, Adobe and NeXT collaborated to launch the official DPS system in 1987. NeXT embedded DPS extensively across its product lineup, while Adobe’s implementations found popularity on Unix workstations throughout the 1980s and 1990s.
Design
PostScript was originally engineered for printing single documents sequentially, using a stack machine architecture akin to the Forth programming language, which minimized memory demands on printers. Commands executed upon receiving a instruction, after which the memory was cleared.
Conversely, display engines must render graphics immediately without a equivalent, accommodating multiple windows updating independently with distinct settings. To address this, DPS introduced multiple execution contexts—each window maintained its own PS context and instruction stack, allowing for separate or shared configurations. Shared contexts enabled applications or multiple programs to reuse procedures and system-wide assets like fonts housed in and .
To optimize font rendering on low-resolution screens, DPS adapted the font system by caching hand-rendered bitmaps within dictionaries for direct bit blitting. This approach enhanced screen font appearance before anti-aliasing became common. Additionally, DPS incorporated halftone phase support to ensure consistent visual output across rendered elements, although this functionality has become less critical with advances in display technology.
For improved speed, DPS substituted string identifiers in dictionaries with integers ("encoded system names"), accelerating lookups of system fonts and frequently used routines on a per-context basis.
Regarding interactivity, DPS supported incremental updates that allowed immediate execution of PS commands and included hit detection capabilities to determine which objects were beneath cursor locations, facilitating user interface responsiveness.
DPS also introduced the , a C-language function that sends DPS commands as strings directly to a DPS context, enabling integration of PostScript rendering within C applications.
Despite these features, DPS did not incorporate its own windowing system; it depended on existing frameworks such as the X Window System. This reliance complicated integration—often proving more challenging than DPS itself—and limited widespread adoption despite usage by firms like IBM and SGI on their workstation platforms.
History
In September 1987, NeXT became the first organization to license Display PostScript. Its engineers developed a new windowing engine designed to exploit NeXT's object-oriented operating system, adding commands to DPS for window management and event processing. This unified API simplified high-level programming tasks and positioned NeXT among the few platforms extensively utilizing DPS. The user-space windowing library NeXTSTEP employed PostScript for user interface components such as titlebars and scrollbars, utilizing pswraps encapsulated within objects for developer convenience.
Digital Equipment Corporation acquired a license for Display PostScript in early 1988 for use with DECwindows. Adobe sought to broaden DPS adoption among companies like IBM and Microsoft targeting the OS/2 Presentation Manager, as well as Apple Computer.
In November 1993, Sun Microsystems launched version 3.3 of OpenWindows, replacing support for NeWS and its PostScript extensions with Display PostScript.
Modern derivatives
After acquiring NeXT, Apple integrated a proprietary window server into Mac OS X that stores window graphics as bitmaps instead of interpreting PostScript commands. The graphics framework Quartz 2D delivers PostScript-like imaging based on the PDF rendering model, which is employed by application frameworks without embedding PostScript within the window server itself. This design choice was made to circumvent DPS licensing costs and to provide enhanced compatibility with older Carbon and Classic programs, which depend on bitmap rendering through QuickDraw.
See also
- NeWS, a windowing system utilizing a PostScript-based graphics model extended with concurrency and object-oriented programming features
- PostScript Standard Encoding (character set used by PostScript)
- NeXT character set