apple

QuickDraw GX was a replacement for Apple's QuickDraw graphics engine and Printing Manager, initially released in about January 1995. Version 1.1.1 was bundled with Macintosh System 7.5 later that year. Besides including a complete replacement for the traditional Macintosh printing architecture, it also introduced a repackaging of Type 1 fonts using the TrueType format. While the intentions behind these reorganizations were good—to make things easier to install and manage for users—there were too many existing applications and application developers that were used to doing things the old way. Thus, the installation of GX introduced a host of incompatibilities that only succeeded in annoying users. This, coupled with a lack of communication from Apple about the benefits of QuickDraw GX and why developers and users should adopt it, led to the technology being sidelined. Mac OS 8 dropped support for the GX printing architecture, though the GX graphics engine was kept alive a little bit longer in the form of the "GXGraphics" system extension. With the advent of OS X, GX was killed off altogether.

QuickDraw GX Graphics

Unlike QuickDraw, QuickDraw GX allowed for fractional coordinates. However, these were fixed-point values, rather than floating-point. This might have been because at the time GX was being developed (late 1980s to early 1990s), there was still a significant performance penalty in using floating-point arithmetic.

In addition to coordinates was the concept of the gxMapping. This was a 3-by-3 matrix which could express arbitrary linear transformations in two dimensions, including perspective distortions.

The GX graphics architecture was built around a number of types of objects. These were all opaque, though a full set of API calls was available for examining and manipulating them:

QuickDraw GX Shape Types

GX shapes could be of various types:

QuickDraw GX Typography

The typography features of GX were integrated in the form of 3 types of gxShape:

The GX API also provided hit-testing functions, so that for example if the user clicked on a layout shape in the middle of a ligature, or in the region between a change of text direction, GX itself would provide the smarts to determine which character position in the original text corresponded to the click.

TrueType GX

An important distinction in GX was drawn between a character and a glyph. A character was an abstract symbol from some alphabet or character set, such as the letter "f". Whereas a glyph was a specific graphic shape from a particular font, that might or might not represent a particular character. Thus, for example, the Hoefler Text font had glyphs to represent the letters "f" and "l". It also had another glyph to represent the ligature "fl", which could be automatically rendered (instead of the individual glyphs) wherever the two characters "f" and "l" occurred in sequence in the source text.

This distinction was important in that such contextual substitutions occurred at rendering time, without any changes to the source text. Thus they had no impact on editing or searching of the text.

Such substitutions could be controlled by enabling or disabling various features of a TrueType GX font. Fonts would commonly have features called "common ligatures" (such as the "fl" example), "rare ligatures", "archaic non-terminal s" (for automatically substituting the letter "s" with the archaic form that looked more like an "f", except at the ends of words), and even choices between entirely separate sets of glyph designs, such as more and less ornate forms.

The rules for performing these substitutions were implemented as state machines built into the font, and interpreted by the GX layout engine. Other state machines could implement automatic kerning, as well as optically-based adjustments to alignment and justification.

Another interesting feature was font variations, which were the GX equivalent of Adobe's "multiple master" fonts. Only, Adobe's idea was that you had to explicitly create an instance of the font (by specifying values for the variation axes) before you could use it. Whereas GX allowed you to specify the font directly for a layout style, and then dynamically vary the axis values and immediately observe the effect on the layout of the text.

QuickDraw GX Printing

This section of "QuickDraw GX" has data missing or is incomplete.
Please help by adding content to the section, or the article as a whole. Thank you!

References

Wikipedia-logo-v2 This page uses Creative Commons Licensed content from Wikipedia (view authors).

External links