Quartz 2D
From Wikipedia, the free encyclopedia
|
---|
Quartz 2D is the primary two-dimensional graphics rendering API for Mac OS X, part of the Core Graphics framework.
Contents |
[edit] Overview
Quartz 2D is available to all Mac OS X application environments, and provides resolution-independent and device-independent rendering of bitmap graphics, text, and vectors both on-screen and in preparation for printing. Its responsibilities within the graphics layer include:[1]
- Rendering text using Apple Type Services (ATS)
- Displaying, manipulating, and rendering PDF documents
- Converting PostScript data to PDF data, and vice-versa
- Displaying, manipulating, and rendering bitmap images via ImageIO
- Providing color management via ColorSync
- Displaying the elements of the Aqua user interface
[edit] Drawing in Quartz 2D
Quartz 2D expands the drawing functions associated with QuickDraw. The most notable difference is that Quartz 2D eliminates output device and resolution specificity.
The drawing model utilized by Quartz 2D is based on PDF specification 1.4.[2] Drawing takes place using a Cartesian coordinate system, where text, vectors, or bitmap images are placed on a grid.[3] However, drawing output is not sent directly to the output device. Quartz 2D uses graphics contexts, environments in which drawing takes place. Each graphics context defines how the drawing should be presented: in a window, sent to a printer, an OpenGL layer, or off-screen. Each context rasterizes the drawing at the desired resolution without altering the data that defines the drawing. Thus, contexts are the mechanism by which Quartz 2D employs resolution- and device-independence. For example, a window context may rasterize an object to the appropriate screen resolution to create actual graphics on the display. The same object can be sent to a printing context at a much higher resolution. This permits the same graphics commands to yield output on any device using the most appropriate resolution.[4]
[edit] History
Quartz 2D is similar to NeXT's Display PostScript in its use of contexts. It first appeared as the 2D graphics rendering library called Core Graphics Rendering; along with Core Graphics Services (Compositing), it was wrapped into the initial incarnation of Quartz.[5] Quartz (and its renderer) were first demonstrated at WWDC in May 1999.[6]
Presently, the name Quartz 2D more precisely defines the 2D rendering capabilities of Core Graphics (Quartz). With the release of Mac OS X 10.2, marketing attention focused on Quartz Extreme, the composition layer, leaving the term "Quartz" to refer to the whole Core Graphics suite or just its 2D renderer. Such ambiguity is no longer convenient because the Core Graphics rendering layer now includes Core Image and Core Video, with Core Animation on its way.
Prior to Mac OS X 10.4, QuickDraw rendering outperformed that of Quartz 2D. Mac OS X 10.4 rectified this, substantially increasing the standard rendering performance of Quartz 2D. Mac OS X 10.4 also introduced Quartz 2D Extreme: optional graphics processor (GPU) acceleration for Quartz 2D. Quartz 2D Extreme is presently disabled because it currently offers only small practical performance improvements.[7]
[edit] References
- ^ Apple - Developer - Quartz 2D Programming Guide. Retrieved on 2007-01-24.
- ^ Apple - Developer - Graphics & Imaging Overview. Retrieved on 2007-01-25.
- ^ Apple - Developer - Quartz Programming Guide for QuickDraw Developers: Coordinate Space. Retrieved on 2007-01-25.
- ^ Apple - Developer - Quartz Programming Guide for QuickDraw Developers: Drawing Destinations. Retrieved on 2007-01-25.
- ^ Ars Technica - Mac OS X DP4. Retrieved on 2007-01-25.
- ^ Ars Technica - Mac OS X Update: Quartz & Aqua. Retrieved on 2007-01-25.
- ^ Ars Technica - Mac OS X 10.4 Tiger: Page 14. Retrieved on 2007-01-27.
[edit] See also
[edit] External links
- Mac OS X – Features – Quartz Extreme – from Apple
- Introduction to Quartz 2D Programming Guide – developer documentation from Apple
- Introduction to Quartz 2D for QuickDraw Programmers – developer documentation from O'Reilly's MacDevCenter