Mac OS 8.5 Technote: Part XXX

Copyright 1998 by Apple Computer, Inc. All Rights Reserved.

[Previous section] [Mac OS 8.5 Contents Page] [Next section]

Inside the System File (Continued)

QuickDraw

QuickDraw is the part of the Mac OS used for drawing and displaying graphical information on the screen and other raster devices.
  • Most of QuickDraw is now PowerPC-native (with the exception of the Palette Manager and the Picture Utilities).

  • Previously, QuickDraw pictures containing invalid 0x9A (direct 24-bit images) opcodes recorded on 68K machines would not play back correctly on PowerPC machines. This has been corrected.

  • A problem where the 16-bit encoding routines for QuickDraw pictures would sometimes produce invalid data has been corrected.

  • A problem where larger font sizes would not draw has been corrected. Fonts are now drawn at their largest possible size if a size larger than the maximum font display size is requested.

  • The Roman Script Utilities (DrawJustified, CharToPixel, etc.) have been moved into QuickDraw Text.

  • 'sbit' support, currently available only via a WorldScript II patch, has been rolled into the standard system. This allows systems using two-byte characters to be booted with extensions turned off.

  • All CopyDeepMask transfer modes now work correctly.

  • QuickDraw now performs extensive parameter checking. For parameter errors, QDError will return the paramErr result code. In many cases, QDError returns errors where it did not before.

  • A problem where passing bkPixPat either to FillCRgn or FillCRect would corrupt the current graphics port has been corrected. It is now possible to provide the current background pixpat as a parameter to either the FillCRgn or the FillCRect routine.

WARNING:

Calling either

FillCRect(&myRectangle,
((CGrafPtr) qd.thePort)->bkPixPat);


...or...

FillCRgn(myRegion,
((CGrafPtr) qd.thePort)->bkPixPat);


...in any version of color QuickDraw prior Mac OS 8.5 will destroy the current bkPixPat in the GrafPort.

  • When recording pictures, QuickDraw would read frame buffers for raster images one byte at a time. This produced some compatibility problems when reading frame buffer data from some non-Apple devices. For greater compatibility, frame buffers are now read in pixel size chunks that are buffered internally before being passed to the RLE encoding routines.

  • Nearly all of QuickDraw is now present in the system file's data fork, and as such it is eligible for paging. The cursor managment parts of QuickDraw are not eligible for paging and remain in memory at all times.

COMPATIBILITY NOTE
The new QuickDraw does more parameter checking than all previous versions of QuickDraw. As a result, developers will find the new QuickDraw will facilitate their debugging efforts by bringing to light problems that may not have been so obvious before. It is strongly suggested that developers verify their products against the new QuickDraw to ensure they are calling QuickDraw correctly.

[Previous section] [Mac OS 8.5 Contents Page] [Next section]

To contact us, please use the Contact Us page.