Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
QuickDraw
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Higher level operations== Any series of graphics calls to QuickDraw can be recorded in a structure called a ''Picture''. This can then be saved in memory and "played back" at any time, reproducing the graphics sequence. At playback time the picture may be placed at new coordinates or scaled without the loss of resolution commonly encountered in bitmap scaling. A picture can be saved to disk in which form it defines the Apple [[PICT]] format. An entire BitMap (or PixMap, when referring to color images) may be copied from one GrafPort to another, with scaling and clipping. Known as [[bit blit|blitting]], or ''CopyBits'', after the name of the function, this operation is the basis for most animation and sprite-like effects on the Mac. QuickDraw provides a similar blitting function which is designed to implement scrolling within a GrafPort - the image in the port can be shifted to a new location without scaling (but with clipping if desired). Each graphics primitive operation is vectored through the StdProcs, a series of [[function pointer]]s stored in the GrafPort. This limited [[Polymorphism (computer science)|polymorphism]] permits individual operations to be overridden or replaced by custom functions, allowing [[Printer (computing)|printer]] drivers to intercept graphics commands and translate them to suitable printer operations. In this way, QuickDraw can be rendered using [[PostScript]], a fact that enabled the Macintosh to practically invent [[desktop publishing]]. Similar to a [[Inheritance (object-oriented programming)|subclass]], the Window data structure began with the associated GrafPort, thus basically making windows exchangeable with any GrafPort. While convenient, this made it easy to write erroneous code that passed an offscreen graphics port into API that expected a full-blown window.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)