History of Core Graphics
History of Core Graphics, or any other Apple framework, is also a slice of history of the Macintosh computer.
QuickDraw was the 2D graphics library and the API. It was written by legendary Apple programmers: Bill Atkinson and Andy Hertzfeld in the early 1980s.
A pixel-oriented graphics system with a 16-bit, integer-based coordinate system. It ran on the Apple Lisa and the original Macintosh. It produced (then) impressive graphics on both the screen and on the printer.
Furthermore, it had support for:
- pixel regions,
- drawing operations that could be recorded into a meta-file (PICT format),
- the ability to scale the drawings in a meta-file on playback,
- drawing primitives for ovals, curves, and rounded rectangles.
Those abilities were not present on PCs of that time.
The revolutionary program at the time was MacPaint, a raster graphics editor that could make graphics to be used in other applications.
One such application was MacWrite, a WYSIWYG word processor with GUI built on top of QuickDraw. PCs at the time booted into text-only terminals, like DOS or BASIC.
QuickDraw supported multiple colours, not just back and white, but many computers of that time had only black and white screens. It could print in colour as well.
QuickDraw was deprecated in 2005 by the release of Mac OS X 10.4 Tiger.
Also in the 1980s, Adobe was working on its graphics library. As a result of their cooperation with the Xerox PARC to find innovative ways to write control software for laser printers, the PostScript graphics system was created.
Wikipedia defines PostScript (PS) as a page description language in the electronic publishing and desktop publishing business.
- a rich graphics model,
- a simple programming language, and
- a run-time environment
It was revolutionary at a time because the same PostScript program would produce the same result on printers with different capabilities. It was device-independent.
At the same time, QuickDraw and other graphics system were device dependant.
Developers could combine drawing on the screen with QuickDraw and printing with PostScript.
MacPaint could create beautiful images (for that time), but Mac could only print to low-resolution dot matrix printers.
This divide between the drawing on the screen and the graphics model of the printer continued for some time.
Drawing on the screen:
- QuickDraw on the Macintosh
- GDI on Windows
- XLib on Linux
Printing was done with the PostScript.
PostScript on the screen
Sun Microsystems created a windowing system based on PostScript called NeWS, the Network extensible Windowing System.
Developers could write NeWS applications entirely in PostScript
The lead engineer was Jim Gosling who later on created Java.
Steve Jobs’ NeXT company created an operating system that included a PostScript interpreter. Developers created UIs by calling routines that invoked the PostScript interpreter.
NeXT also sold a costly laser printer that didn’t use PostScript, but relied on high-speed communication line between the computer and the printer. The computer would process the PostScript and send the huge amount of data to the printer.
In 1985, Apple and Adobe paired up to create the Apple LaserWriter printer, with 300 dots per inch (dpi) output. Apple wanted to print graphics created by QuickDraw with greater precision, and to utilise the new printer.
PageMaker was one of the first desktop publishing programs, introduced in 1985 by Aldus Corporation.
It generated PostScript for printing.
Linotype introduced PostScript based typesetters produce output exceeding 2400 dpi. Combination of PageMaker and Linotype made high-resolution desktop publishing possible.
In 1997 Adobe introduced Adobe Illustrator:
The Illustrator application didn’t use QuickDraw for its graphics but instead relied on a drawing engine based on Adobe PostScript software.
Adobe later bought an unknown image editing application called BarneyScan.
It was renamed to Adobe Photoshop and released in 1990. Soon after it became the industry standard.
Adobe later introduced alpha compositing which allowed the user to control the transparency of parts of the images. That paved a way for the concept of layers which enabled multiple images to be combined into one art-piece.
Display PostScript (DSP)
Adobe worked with NeXt to create Display PostScrip, a standard to display PostScript graphics on the screen. Adobe licensed Display PostScript for use in other applications.
When Apple, in 1996, acquired NeXT, it also got its implementation of Display PostScript. Adobe charged a license fee for using a Display PostScript, so Apple opted for developing its own PostScript drawing model without actually using PostScript.
PDF is Adobe’s Portable Document Format, and it is a PostScript drawing model.
Apple designed a new framework by combining the PDF model with alpha channel support, and we know it today as Quartz 2D.
Apple calls this graphics library Core Graphics internally while the public name is Quartz 2D.