Display PostScript (or DPS) is a
2D graphics engine system for computers which uses the
PostScript
PostScript (PS) is a page description language in the electronic publishing and desktop publishing realm. It is a dynamically typed, concatenative programming language. It was created at Adobe Systems by John Warnock, Charles Geschke, ...
(PS) imaging model and language (originally developed for
computer printing
In computing, a printer is a peripheral machine which makes a persistent representation of graphics or text, usually on paper. While most output is human-readable, bar code printers are an example of an expanded use for printers. Differ ...
) to generate on-screen graphics. To the basic PS system, DPS adds a number of features intended to ease working with
bitmap
In computing, a bitmap is a mapping from some domain (for example, a range of integers) to bits. It is also called a bit array or bitmap index.
As a noun, the term "bitmap" is very often used to refer to a particular bitmapping application: th ...
ped displays and improve performance of some common tasks.
Early versions of PostScript display systems were developed at
Adobe Systems. During development of the
NeXT
Next may refer to:
Arts and entertainment Film
* ''Next'' (1990 film), an animated short about William Shakespeare
* ''Next'' (2007 film), a sci-fi film starring Nicolas Cage
* '' Next: A Primer on Urban Painting'', a 2005 documentary film
Lit ...
computers, NeXT and Adobe collaborated to produce the official DPS system, which was released in 1987. NeXT used DPS throughout its history, while versions from Adobe were popular on Unix workstations for a time during the 1980s and 1990s.
Design
In order to support interactive, on-screen use with reasonable performance, changes were needed:
* ''Multiple execution contexts'': Unlike a printer environment where a PS interpreter processes one job at a time, DPS would be used in a number of
window
A window is an opening in a wall, door, roof, or vehicle that allows the exchange of light and may also allow the passage of sound and sometimes air. Modern windows are usually glazed or covered in some other transparent or translucent mate ...
s at the same time, each with their own settings (colors, brush settings, scale, etc.). This required a modification to the system to allow it to keep several "contexts" (sets of state data) active, one for each process (window).
* ''Encoded names'': Many of the procedures and data structures in PostScript are looked up by name, string identifier. In DPS these names could be replaced by integers, which are much faster for a computer to find.
* ''Interaction support'': A number of procedures were defined to handle interaction, including
hit detection.
* ''Halftone phase'': In order to improve scrolling performance, DPS only drew the small portion of the window that became visible, shifting the rest of the image instead of re-drawing it. However this meant that the
halftone
Halftone is the reprographic technique that simulates continuous-tone imagery through the use of dots, varying either in size or in spacing, thus generating a gradient-like effect.Campbell, Alastair. The Designer's Lexicon. ©2000 Chronicle, ...
s might not line up, producing visible lines and boxes in the display of graphics. DPS included additional code to properly handle these cases. Modern full-color displays with no halftones have made this idea mostly obsolete.
* ''Incremental updates'': In printing applications the PS code is interpreted until it gets a
showpage
at which point it is actually printed out. This is not suitable for a display situation where a large number of minor updates are needed all the time. DPS included modes to allow semi-realtime display as the instructions were received from the user programs.
* ''Bitmap font support'': DPS added the ability to map PS fonts onto hand-drawn
bitmap font
A computer font is implemented as a digital data file containing a set of graphically related glyphs. A computer font is designed and created using a font editor. A computer font specifically designed for the computer screen, and not for pri ...
s and change from one to the other on the fly. Adobe PS's ability to display fonts on low resolution devices (significantly less than 300
dpi) was very poor. For example, a NeXT screen used only 96 dpi. This PS limitation was worked around by using hand-built bitmap fonts to provide passable quality. Later implementations of PS (including compatible replacements like
Ghostscript
Ghostscript is a suite of software based on an interpreter for Adobe Systems' PostScript and Portable Document Format (PDF) page description languages. Its main purposes are the rasterization or rendering of such page description language file ...
) provided
anti-aliased fonts on grayscale or colour displays, which significantly improved quality. However, this development was too late to be of much use. Modern displays are still around 100 dpi, but have very much superior font quality without using bitmap fonts.
* ''Programming language support'': DPS introduced the concept of a "
pswrap
", which allowed
developers to wrap PostScript code into a
C language
C (''pronounced like the letter c'') is a general-purpose computer programming language. It was created in the 1970s by Dennis Ritchie, and remains very widely used and influential. By design, C's features cleanly reflect the capabilities o ...
function which could then be called from an application.
DPS did not, however, add a windowing system. That was left to the implementation to provide, and DPS was meant to be used in conjunction with an existing windowing engine. This was often the
X Window System
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting ...
, and in this form Display PostScript was later adopted by companies such as
IBM and
SGI for their workstations. Often the code needed to get from an X window to a DPS context was much more complicated than the entire rest of the DPS interface. This greatly limited the popularity of DPS when any alternative was available.
History
The developers of
NeXT
Next may refer to:
Arts and entertainment Film
* ''Next'' (1990 film), an animated short about William Shakespeare
* ''Next'' (2007 film), a sci-fi film starring Nicolas Cage
* '' Next: A Primer on Urban Painting'', a 2005 documentary film
Lit ...
wrote a completely new windowing engine to take full advantage of NeXT's
object-oriented operating system
An object-oriented operating system is an operating system that is designed, structured, and operated using object-oriented programming principles.
An object-oriented operating system is in contrast to an object-oriented user interface or programm ...
. A number of commands were added to DPS to actually create the windows and to react to events, similar to but simpler than
NeWS. The single API made programming at higher levels much easier and made NeXT one of the few systems to extensively use DPS. The user-space windowing system library
NeXTSTEP
NeXTSTEP is a discontinued object-oriented, multitasking operating system based on the Mach kernel and the UNIX-derived BSD. It was developed by NeXT Computer in the late 1980s and early 1990s and was initially used for its range of proprieta ...
used PostScript to draw items like titlebars and scrollers. This, in turn, made extensive use of
pswrap
s, which were in turn wrapped in objects and presented to the programmer in object form.
Modern derivatives
Apple
An apple is an edible fruit produced by an apple tree (''Malus domestica''). Apple trees are cultivated worldwide and are the most widely grown species in the genus '' Malus''. The tree originated in Central Asia, where its wild ances ...
's
Mac OS X
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
operating system uses a central window server (created entirely by Apple) that caches window graphics as bitmaps, instead of storing and executing PostScript code. A graphics library called
Quartz 2D
Quartz 2D is the native two-dimensional graphics rendering API for macOS and iOS platforms, part of the Core Graphics framework.
Overview
Quartz 2D is available to all macOS and iOS application environments and provides resolution-independent an ...
provides PostScript-style imaging using the PDF rendering model (a subset, plus tweaks, of the PostScript model), but this is used by application frameworks—there is no PostScript present in the Mac OS X window server. Apple chose to use this model for a variety of reasons, including the avoidance of licensing fees for DPS and more efficient support of legacy
Carbon
Carbon () is a chemical element with the symbol C and atomic number 6. It is nonmetallic and tetravalent—its atom making four electrons available to form covalent chemical bonds. It belongs to group 14 of the periodic table. Carbon makes ...
and
Classic
A classic is an outstanding example of a particular style; something of lasting worth or with a timeless quality; of the first or highest quality, class, or rank – something that exemplifies its class. The word can be an adjective (a '' ...
code;
QuickDraw
A quickdraw (also known as an extender) is a piece of climbing equipment used by rock and ice climbers to allow the climbing rope to run freely through protection such as a bolt anchors or other traditional gear while leading.
A quickd ...
-based applications use bitmapped drawing exclusively. Adobe's
copyright
A copyright is a type of intellectual property that gives its owner the exclusive right to copy, distribute, adapt, display, and perform a creative work, usually for a limited time. The creative work may be in a literary, artistic, education ...
stipulations said by some to apply to the PDF standard are thereby purported to be much less restrictive, granting, it has been claimed (i.e., here, by a previous author) conditional copyright permission to anyone to use the format in software applications free of charge.
See also
*
PostScript Standard Encoding (PostScript character set)
*
NeXT character set The NeXT character set (often aliased as NeXTSTEP encoding vector, WE8NEXTSTEP or next-multinational) was used by the NeXTSTEP and OPENSTEP operating systems on NeXT workstations beginning in 1988. It is based on Adobe Systems' PostScript (PS) char ...
*
NeWS
*
Quartz 2D
Quartz 2D is the native two-dimensional graphics rendering API for macOS and iOS platforms, part of the Core Graphics framework.
Overview
Quartz 2D is available to all macOS and iOS application environments and provides resolution-independent an ...
References
Further reading
* (NB. This edition also contains a description of Display PostScript, which is no longer discussed in the third edition.)
External links
Description at C2 WikiGNU/BackBonePostScript Language Reference, Second Edition
{{XWinSys
NeXT
PostScript
Adobe
Adobe ( ; ) is a building material made from earth and organic materials. is Spanish for '' mudbrick''. In some English-speaking regions of Spanish heritage, such as the Southwestern United States, the term is used to refer to any kind of ...