Talk:QuickDraw GX

QuickDraw GX vs PostScript
I had the impression that the purpose of QuickDraw GX was to create an Apple-controlled version of PostScript. Does anyone know more about the strategy? This would be a good addition to the beginning of the article. Tempshill 19:46, 14 March 2006 (UTC)


 * I have added a History section that covers just this question. Basically it appears it did not start out this way, but definitely turned into it by the end. At least it's safe to say that TrueType was an attempt to kill PS. There's a famous incident at some large show (Siggraph?) where TrueType was announced and Warnock was almost in tears when he claimed they were blowing smoke. He responded in fine fashion though, opening the Type 1 format and thus killing off TT's major r'aison de etre.
 * How the rest of GX developed is still something I'm trying to track down. I believe the broad strokes I have outlined are fairly accurate, but details are seriously lacking. I'm going to exercise some of my e-mail contacts and see if I can't get a better timeline going.
 * Maury 15:18, 14 July 2006 (UTC)

This article needs some specific dates, better than 80ies; especially in a section labeled `History' That GX is introduced in January 1995 and by 1995 `no longer pushed' is confusing. --GioCM (talk) 20:20, 6 February 2010 (UTC)

Questionable assertions
“Out of the text management architecture came the TrueType Specification and out of the color management architecture came the ICC International Color Consortium specification.” GX extended the capabilites of TrueType, but it existed (and was specified) earlier, so that seems to be bogus. I was under the impression theat ColorSync was seperate in origin to GX, but I’m prepared to be corrected on that. -Ahruman 17:42, 28 March 2006 (UTC)


 * Me too actually, this needs to be explored. Maury 15:18, 14 July 2006 (UTC)

System 7 (released 1991) included TrueType support. QuickDraw GX was released four years later. QuickDraw's font handling extended easily to include support for scalable fonts, so the statement "critically the font system was based on bitmaps instead of outline fonts" from the "Problems with QuickDraw" section is flat-out wrong. The second and third paragraph of that section are IMHO *entirely* bogus. The QuickDraw state was not "a series of arrays" at the top of the application address space, but rather a few hundred bytes of global variables in the application's global variable area (which was, incidentally, near the top of the application's memory partition, right blow the jump table and the application parameters). Having global state in this place makes the QuickDraw API badly suited for multithreading, but it is NO PROBLEM for multitasking, as every application has its own, independent copy of the QuickDraw state. Apple's late adoption of preemptive multitasking and memory protection are rather be blamed on other system components that did *not* handle their global state like QuickDraw did. 85.125.216.188 01:24, 9 January 2007 (UTC)

"Rocket Science"
In the statement:


 * Cary Clark was the architect and technical lead. He was an early member of Rocket Science and WebTV.

To what does "Rocket Science" refer? &mdash; The Storm Surfer 20:10, 20 February 2007 (UTC)

It refers to "Rocket Science Games". I've updated the text and added a link. ows 17:20, 3 December 2007 (UTC)

"Problems With QuickDraw"
Everything in this section is either wrong or irrelevant, but I'm hesitant to simply nuke it outright. The PostScript comments are probably worth saving. KenshinWithNoise 20:18, 19 September 2008 (UTC)

OK, I've reworked it accordingly, with more concrete and accurate info. It's not perfect, but it's better. I nuked these paragraphs:

The original QuickDraw was based on a "stateful" mode of drawing. The programmer would set up a global state by selecting settings such as the font, brush size and pattern, and then calling a series of drawing operations based on this state: draw a line to this point, now this point, now draw the text "Hello World" here. This pattern of operation is similar to painting, where the artist will mix paints on a palette to achieve a desired color, and then use various brushes to apply that color to the canvas. The available commands were fairly advanced for the era, including line drawing, circles, ovals, rounded rectangles and a complete set of font handling commands. At that point in time many machines did not even include a "lineto" command.

In order to squeeze as much performance out of what was an overloaded machine, the Mac OS (or simply "System" as it was then known) shared a small amount of memory between the application and System that contained the drawing state data. This was located at the top of the application's address space, represented as a series of arrays, one entry storing the state of every window the application had open. This way the programmer could draw into a series of windows without having to manually "switch state", a task the operating system was able to do for them.

This organization led to a serious problem when Apple started to introduce multitasking features into the System. Since there was a single global state being shared between the program(s) and the System, there was no easy way to introduce protected memory, which would require the memory in question to be expensively "mapped" back and forth, affecting performance. Additionally, since the structures themselves were open to direct manipulation by the programmer, it would be extremely easy for one program to accidentally end up setting state in another. These problems were the primary reason Apple was unable to support preemptive multitasking in the System, and were forced to use cooperative multitasking instead. Worse, the lack of protected memory increasingly caused stability problems as the size and complexity of the operating system grew.

Paragraph 1 and 2 are not useful for understanding the problems with QuickDraw and the differences with GX. "stateful" means nothing in this context; all graphics APIs have state. The question is when and where it's stored. The second paragraph is both wrong in detail (WindowRecords (and raw GrafPorts) could live anywhere in the application's address space ("application heap") and were maintained as a linked list) and irrelevant to the problems with QuickDraw. The third paragraph is simply irrelevant. The global variables employed by QuickDraw were not actually an insurmountable architectural problem, although they didn't help. The coordinate space, the open data structures and various other issues were the big QD problems.

The Window Manager provided a global QuickDraw grafport for drawing outside of windows, which _was_ an architectural problem for a multitasking system -- but that was not an issue with QuickDraw itself, it was bad use of QD on the part of the original Window Manager developers.

-KenshinWithNoise 20:58, 19 September 2008 (UTC)

looks good
Hi, David Van Brink here (one of Skia's original coders). It's a pretty good recap! Not sure if the side-commentary on the management style endemic to Apple at that period is appropriate... but it sure is accurate. (And yes, "skia" was the original (code) name of the package. skiaShape and skiaStyle, taken from skiagram, a shadow puppet or drawing I think, since skia used outlines for everything. The name survived as the name of a font.)

Polyomino (talk) 20:01, 10 November 2008 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified 1 one external link on QuickDraw GX. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive http://web.archive.org/web/20080511163950/http://developer.apple.com/documentation/macos8/Legacy/QuickDrawGX/quickdrawgx.html to http://developer.apple.com/documentation/macos8/Legacy/QuickDrawGX/quickdrawgx.html

When you have finished reviewing my changes, please set the checked parameter below to true or failed to let others know (documentation at ).

Cheers.— InternetArchiveBot  (Report bug) 00:23, 21 July 2016 (UTC)

TrueType GX and OpenType Variation Fonts

Recommend that the incorporation of TrueType GX technology and variation AAT tables into OpenType v1.8 spec/OpenType Variation Fonts should be added. — Preceding unsigned comment added by 121.103.248.93 (talk) 02:51, 24 September 2016 (UTC)