TweetFollow Us on Twitter

Jun 01 ADC Direct

Volume Number: 17 (2001)
Issue Number: 06
Column Tag: ADC Direct

Beyond QuickDraw: Quartz

by Travis W. Brown

A Brief Introduction to Mac OS X's New Imaging Model

For nearly two decades, Macintosh graphics have revolved around QuickDraw. QuickDraw was revolutionary, offering a unified imaging model that could be used for application drawing, printing, and providing a platform-wide graphics format. Unfortunately, today's applications frequently require graphic fun-ctionality that exceeds QuickDraw's reach. Developers frequently have to work around issues such as the lack of spline-based curves and text rotations. With the introduction of Mac OS X, a revolution-ary new imaging model—Quartz—is ready to meet the needs of cur-rent and future applications.

This article is a brief introduction to Quartz and will focus on its architecture and functionality. Where appropriate, this article will also call out various technical resources that will help you take advantage of what Quartz has to offer.

What is Quartz?

Quartz is a set of powerful graphics services that form the graphics component of Mac OS X's application services layer. In this role, Quartz pro-vides the rest of the system with a powerful 2-D render-ing engine that supports advanced vector graphics (complete with anti-aliasing and transparency support.) Quartz also implements the windowing system for Mac OS X and provides low-level services such as system-wide event handling. Quartz plays a key role in Mac OS X's printing architec-ture as well and provides rasterization and conversion services for print jobs.

The Quartz Architecture

As noted in Inside Mac OS X: System Overview, Quartz is actually composed of two separate parts that perform different functions: Quartz Compositor and Quartz 2D.

Quartz Compositor

The Quartz Compositor (formerly Core Graphics Services) is responsi-ble for providing windowing services for the Classic, Carbon, Cocoa, and Java application environments. These environments interact directly with the Quartz Compositor to automatically bring advanced windowing features, such as double-buffering and live window drag-ging, to applications. OpenGL and QuickTime rely on the Quartz Compositor to seamlessly mix hardware accelerated 3-D and multime-dia into a single visually consistent windowing environment. Finally, the Quartz Compositor helps create the hallmark Aqua user experi-ence by generating dynamic drop shadows and transparency effects for each open window.

Quartz 2D

Quartz 2D (formerly Core Graphics Rendering) is a two-dimen-sional graphics engine that allows any Mac OS X application to create graphics that were previously limited to high-end applica-tions. Quartz is based on the Portable Document Format (PDF) graphics model and features a rich set of drawing functions. These drawing functions are fully accessible by both Carbon and Cocoa developers.

Core Graphics API Functionality in Quartz 2D

The full power of the Quartz 2D engine is exposed through the Core Graphics API. What follows is a breakdown of the advanced features you can use to create new and exciting Mac OS X applications.

Drawing Functionality

The Core Graphics API contains a comprehensive set of functions that give you access to PostScript-like drawing features. Some of these features include path-based drawing operations (such as

Beziér curves), clipping paths, and transformable coordinate spaces that allow easy access to rotations, scales, and skews. The Quartz 2D engine draws using an advanced sub-pixel anti-aliasing algorithm that significantly enhances the visual appeal of both vectors and text. Additionally, Quart 2D's alpha compositing ability allows for trans-parency effects for vector shapes and supports alpha channels when drawing bitmaps. Detailed information on the Core Graphics API can be found in Inside Mac OS X: Drawing With Quartz, available from the Apple Developer Connection web site at:
http://developer.apple.com/quartz

PDF Support

The Quartz 2D engine is based on the PDF specification and is therefore able to parse and render most PDF files. Using the Core Graphics API, it is easy to add the ability to display PDF files to your application. This PDF support also allows applications to create PDF files by redirecting drawing calls into a file. The resultant PDF file can contain all types of graphic content, including fonts, text, vec-tors, and bitmaps. These capabilities make the PDF file an excellent replacement for the well-worn PICT file.

Adobe's Portable Document Format, v1.3 Reference Guide is the authoritative source of information on the PDF format. The "Graphics" section of the reference guide is particularly useful for understanding the PDF drawing model upon which Quartz 2D is based. You can find the complete guide at:
http://partners.adobe.com/asn/developer/acrosdk/docs/PDFRef.pdf

Color Management

The Quartz 2D engine works in concert with ColorSync to ensure everything it draws is color managed. This tight integration allows your application to participate in end-to-end color management with minimal effort on your part. At the most basic level, your application can programmatically specify colors in a variety of color spaces via the Core Graphics API. Quartz 2D will automati- cally call on ColorSync to ensure the requested color is matched to the display or printer. Color management is also automatically used when drawing PDFs and bitmap images. Lastly, the Quartz 2D engine also has full support for ICC color profiles and render-ing intents.

More information on color management and ColorSync can be found at:
http://developer.apple.com/techpubs/macos8/MultimediaGraphics/ColorSyncManager/colorsyncmanager.html

Fidelity

The Quartz 2D engine is resolution independent and is capable of rendering graphics for both screen and print. The Quartz 2D engine plays an important role in Mac OS X's printing architecture where it acts as the Raster Image Processor (RIP) for inkjet printers and other raster devices. The Quartz 2D engine is also capable of converting graphic streams into PostScript code for imaging on PostScript output devices. So, applications that use the Core Graphics API can easily output graphics to a full range of printers, from inexpensive inkjet printers to high-end PostScript devices, with excellent and consistent results.

Resources to Help You Take Full Advantage of Quartz

The Quartz technologies web site is the first place you should check for the latest information on Mac OS X's graphic technologies. The Quartz web site, which is part of the Apple Developer Connection, can be found at:
http://developer.apple.com/quartz/index.html

For compatibility with earlier versions of the Mac OS, Carbon applications use QuickDraw for two-dimensional graphics drawing by default. These applications can, however, access Quartz 2D's Core Graphics API. The Quartz Primer was created to help Carbon developers understand how to use this powerful tool. The primer is available at:
http://developer.apple.com/techpubs/macosx/SystemOverview/devessentials.html

Many Carbon developers have expressed interest in drawing text using Quartz 2D's advanced anti-aliasing. The Core Graphics API has basic support for text drawing, though. Higher-level services, such as ATSUI and MLTE, have been included in Mac OS X to draw text when working with Quartz. More information on Mac OS X's text services can be found at:
http://developer.apple.com/intl/index.html

Cocoa developers have a "free pass" to access the Quartz 2D engine. Three key classes–NSView, NSImage, and NSBezierPath– call through to the Quartz 2D engine. Developers may discover cases, though, in which directly accessing the Quartz 2D engine is desirable. To address this need, the Core Graphics API can easily be called from Cocoa and used in conjunction with a Cocoa View. Information contained within the Core Graphics header files is a good place to start. The header files can be found at:
/System/Library/Frameworks/ApplicationServices.framework/Frameworks/CoreGraphics.framework/ Headers

Other Quartz APIs of Interest

In addition to the Core Graphics API, Quartz also contains some specialized APIs that may be of inter-est to you.

Remote Operation

This API interacts with Quartz Compositor to enable applications to capture screen contents and push keyboard/mouse events into the system. If you are designing a screen capture program, a remote access application, or an accessibility aid then you should check out the CGRemoteOperation API. A well-documented header file is located at:
/System/Library/Frameworks/ApplicationServices.framework/Frameworks/CoreGraphics.framework/ Headers/CGRemoteOperation.h

Direct Display

This API allows applications to get direct access to the screen. Applications, such as games, can use this API to capture the display, set the display reso-lution, and gain direct access to the frame buffer. Information on CGDirectDisplay can be found in the header file that is located at:
/System/Library/Frameworks/ApplicationServices.framework/Frameworks/CoreGraphics.framework/ Headers/CGDirectDisplay.h

Summary

Quartz is a powerful new graphics system that performs two vital roles in Mac OS X. The Quartz Compositor provides windowing services to all of Mac OS X. The Quartz 2D engine is responsible for creating visually rich graphic content on-screen and ensuring high-fidelity output to all classes of printers. Of primary interest to develop-ers is the Core Graphics API. This API offers devel-opers exciting opportunities to create new and powerful graphic applications by leveraging the Quartz 2D engine's PostScript-style drawing, color management, and PDF file support.


Project Builder Tips and Tricks

  • The malloc library on Mac OS X has a bunch of features that can help you track down memory smashers, buffer overruns, and other Stupid Pointer Tricks(tm). Check out
    /Developer/Documentation/ReleaseNotes/ MallocOptions.html to learn how to use these features.
  • Don't put all your application's user interface into one nib. When a nib file is open all objects are instantiated at once. Breaking up your user interface among multiple nibs will make your application launch faster and use less memory. It will also be easier to reuse part of your application.
  • Interface Builder
    Option Drag knobs: Makes matrices in Cocoa
    Command: Inverts guide activation
    Double Click to open editors
    Shift-arrow: nudge widgets by 10 instead of 1 pixels
    Drag custom views into the document for use as accessory views
    Option drag views into New Palettes

New Mac OS X Related Releases

  • Mac OS X 10.0.2 and iTunes 1.1.1
    Mac OS X 10.0.2 and iTunes 1.1.1 together add the ability to burn custom music CDs to Macintosh computers with CD-R drives. Mac OS X also features improvements in overall application stability and the latest version of the Internet file transfer service (ftpd), which features important security improvements.
    http://asu.info.apple.com/swupdates.nsf/artnum/n12181/
    http://asu.info.apple.com/swupdates.nsf/artnum/n12186/
  • CarbonLib 1.3.1 SDK
    The CarbonLib 1.3.1 SDK (Software Development Kit) for Mac OS X is now available to all developers. This SDK provides all the files needed to begin Carbon development. Contact Software Licensing to distribute CarbonLib 1.3.1 with your product.
    http://developer.apple.com/sdk/
  • Disk First Aid 8.6.1 (US and Int'l English)
    Disk First Aid 8.6.1 (US and Int'l English) is a utility that verifies and repairs some problems that may occur on Mac OS Extended format hard disk drives. This version of repairs certain types of master directory block damage on Mac OS Extended format volumes. It also improves the compatibility of Mac OS Extended format hard disks with Mac OS X.
    http://asu.info.apple.com/swupdates.nsf/artnum/n12187/
  • Software Update 1.3.1
    Software Update 1.3.1 is a multicountry update for the Mac OS X Software Update control panel.
    http://asu.info.apple.com/swupdates.nsf/artnum/n12165/
  • Darwin 1.3.1
    Darwin 1.3.1 is the open source core of Mac OS X. This open source project allows developers to customize and enhance key Apple software. The Darwin kernel is based on FreeBSD and Mach 3.0 technologies and provides protected memory and pre-emptive multitasking.
    http://www.opensource.apple.com/projects/darwin/

    Developer Documentation

    The following new and updated documentation is available to help with successful Mac OS X application and peripheral development at:
    http://developer.apple.com/techpubs/

    iBook Developer Note


    TN2018 - Importing animated GIFs
    TN2017 - Using Launch Services for discovering document binding and launching applications
    QA1034 - How to define a plst resource in a .r file
    QA1033 - Targeting DebuggingCarbonLib asserts
    QA1032 - Late breaking news for the MacsBug gdb plugin
    QA1031 - OpenGL Texture Sharing Between Contexts
    QA1030 - Getting NSWindow's toolbar actions to show up in Interface Builder
    QA1029 - How to get custom views to show up in NSToolbarItems
    QA1028 - ICLaunchURL, "file:///" URLs and Mac OS X
    QA1027 - Improving ATSUI text drawing performance
    QA1026 - Calling AppleScript from an Application
    QA1023 - The installer turns my application into a folder
    QA1022 - Where should I install my help book, and how does Help Viewer locate it?
    QA1021 - Cocoa-Java quit/cancel-quit header bug in Mac OS X 10.0
    QA1015 - Why am I drawing directly to the screen?
    QA1011 - How do I use QuickDraw with CGDirectDisplay?
    QA1010 - SynCGContextOriginWithPort
    QA1009 - Why are my Core Graphics calls drawing updside down?---

    Sample Code - More than thirty new Mac OS X code samples were posted to the ADC web site since the last issue. Please visit the URL below for a complete list of sample code.
    http://developer.apple.com/samplecode/


Did You Know?

Quartz Documentation

The technical writers at Apple are hard at work preparing Quartz documentation for software developers. Already available is the "Quartz Primer," a short document that summarizes Quartz features and concepts, discusses how to incorporate the graphics-rendering capabilities of Quartz into Carbon code, and includes examples of using Quartz APIs. You can get this document at
http://developer.apple.com/techpubs/macosx/SystemOverview/devessentials.html

In the works is Inside Mac OS X: Drawing With Quartz. This book is intended to be an essential resource for any software developer interested in learning about and using the advanced two-dimensional graphics capabilities of Mac OS X. It will discuss the following topics:

  • graphics contexts, coordinates, transformation matrices, graphics state, and transfer modes
  • transparency and anti-aliased drawing
  • drawing shapes with paths
  • drawing text
  • working with color
  • drawing images and PDF documents

Upcoming Seminars and Events

For more information on Apple developer events please visit the developer Events page at:
http://developer.apple.com/events/

Training and Seminars

R/com Offers Mac OS X Developer Training Online
R/com, also known as Media School, has partnered with Apple Developer Connection to create online training for Mac OS X developers. The first cours-es include "Application Development for Mac OS X," "Carbon Development for Mac OS X," and "Cocoa: The Object-Oriented Application Solution." Check out to take a free virtual seminar, learn more about current and upcoming courses, and find out about the significant discounts offered to Premier, Select, and student members of the Apple Developer Connection.
http://www.mediaschool.com/adc

Apple iServices 5-day Cocoa Training
For application developers who want to learn how to develop Mac OS X applications using Cocoa, Apple iServices offers a five-day comprehensive, hands-on Cocoa training course. This course uses real-world examples and is perfect for developers who have a general understanding of object-oriented concepts and practical experience with the C programming language or a C-derived language (Object-C, Java, or C++). The course costs US $2,495
http://www.apple.com/iservices/technicaltraining/cocoadev.html

AppleScript Intensive Workshop
Four-day interactive experience for intermediate and advanced scripters June 4-7 in Chicago IL (DATES CHANGED) June 12-15 in Santa Monica CA
http://www.mainevent.com/intensive.html

Developer Related Conferences


QuickTime BootCamp Authoring Conference in Europe
Held June 6 and 7 in Cologne, Germany
http://www.qtbootcamp.de

MacHack Conference Dearborn, MI
June 21-23
MacHack, in its sixteenth year, remains centered around cutting edge soft- ware development. MacHack's uniqueness derives from the informal feel and the LIVE coding that occurs around-the-clock during the conference.
http://www.machack.com/

MACWORLD Expo, New York 2001
July 17-20 in Jacob Javits Convention Center, NYC
Discounted exhibitor packages available
http://developer.apple.com/mkt/mwny2001.html


Travis W. Brown is the Imaging Technology Manager for Mac OS X in Apple's Worldwide Developer Relations. Travis has been involved in digital imaging for the past decade, working on various products, ranging from drivers for color printers and digital photographic imaging systems to PostScript interpreters.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Capture One 11.0.1.40 - RAW workflow sof...
Capture One is a professional RAW converter offering you ultimate image quality with accurate colors and incredible detail from more than 400 high-end cameras -- straight out of the box. It offers... Read more
GraphicConverter 10.5.4 - $39.95
GraphicConverter is an all-purpose image-editing program that can import 200 different graphic-based formats, edit the image, and export it to any of 80 available file formats. The high-end editing... Read more
Dash 4.1.3 - Instant search and offline...
Dash is an API documentation browser and code snippet manager. Dash helps you store snippets of code, as well as instantly search and browse documentation for almost any API you might use (for a full... Read more
Microsoft OneNote 16.9 - Free digital no...
OneNote is your very own digital notebook. With OneNote, you can capture that flash of genius, that moment of inspiration, or that list of errands that's too important to forget. Whether you're at... Read more
DEVONthink Pro 2.9.17 - Knowledge base,...
Save 10% with our exclusive coupon code: MACUPDATE10 DEVONthink Pro is your essential assistant for today's world, where almost everything is digital. From shopping receipts to important research... Read more
OmniGraffle 7.6 - Create diagrams, flow...
OmniGraffle helps you draw beautiful diagrams, family trees, flow charts, org charts, layouts, and (mathematically speaking) any other directed or non-directed graphs. We've had people use Graffle to... Read more
iFinance 4.3.7 - Comprehensively manage...
iFinance allows you to keep track of your income and spending -- from your lunchbreak coffee to your new car -- in the most convenient and fastest way. Clearly arranged transaction lists of all your... Read more
Opera 50.0.2762.58 - High-performance We...
Opera is a fast and secure browser trusted by millions of users. With the intuitive interface, Speed Dial and visual bookmarks for organizing favorite sites, news feature with fresh, relevant content... Read more
Microsoft Office 2016 16.9 - Popular pro...
Microsoft Office 2016 - Unmistakably Office, designed for Mac. The new versions of Word, Excel, PowerPoint, Outlook and OneNote provide the best of both worlds for Mac users - the familiar Office... Read more
SoftRAID 5.6.4 - High-quality RAID manag...
SoftRAID allows you to create and manage disk arrays to increase performance and reliability. SoftRAID allows the user to create and manage RAID 4 and 5 volumes, RAID 1+0, and RAID 1 (Mirror) and... Read more

Latest Forum Discussions

See All

Around the Empire: What have you missed...
Around this time every week we're going to have a look at the comings and goings on the other sites in Steel Media's pocket-gaming empire. We'll round up the very best content you might have missed, so you're always going to be up to date with the... | Read more »
The 7 best games that came out for iPhon...
Well, it's that time of the week. You know what I mean. You know exactly what I mean. It's the time of the week when we take a look at the best games that have landed on the App Store over the past seven days. And there are some real doozies here... | Read more »
Popular MMO Strategy game Lords Mobile i...
Delve into the crowded halls of the Play Store and you’ll find mobile fantasy strategy MMOs-a-plenty. One that’s kicking off the new year in style however is IGG’s Lords Mobile, which has beaten out the fierce competition to receive Google Play’s... | Read more »
Blocky Racing is a funky and fresh new k...
Blocky Racing has zoomed onto the App Store and Google Play this week, bringing with it plenty of classic kart racing shenanigans that will take you straight back to your childhood. If you’ve found yourself hooked on games like Mario Kart or Crash... | Read more »
Cytus II (Games)
Cytus II 1.0.1 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0.1 (iTunes) Description: "Cytus II" is a music rhythm game created by Rayark Games. It's our fourth rhythm game title, following the footsteps of three... | Read more »
JYDGE (Games)
JYDGE 1.0.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0.0 (iTunes) Description: Build your JYDGE. Enter Edenbyrg. Get out alive. JYDGE is a lawful but awful roguehate top-down shooter where you get to build your... | Read more »
Tako Bubble guide - Tips and Tricks to S...
Tako Bubble is a pretty simple and fun puzzler, but the game can get downright devious with its puzzle design. If you insist on not paying for the game and want to manage your lives appropriately, check out these tips so you can avoid getting... | Read more »
Everything about Hero Academy 2 - The co...
It's fair to say we've spent a good deal of time on Hero Academy 2. So much so, that we think we're probably in a really good place to give you some advice about how to get the most out of the game. And in this guide, that's exactly what you're... | Read more »
Everything about Hero Academy 2: Part 3...
In the third part of our Hero Academy 2 guide we're going to take a look at the different modes you can play in the game. We'll explain what you need to do in each of them, and tell you why it's important that you do. [Read more] | Read more »
Everything about Hero Academy 2: Part 2...
In this second part of our guide to Hero Academy 2, we're going to have a look at the different card types that you're going to be using in the game. We'll split them up into different sections too, to make sure you're getting the most information... | Read more »

Price Scanner via MacPrices.net

Deals on clearance 15″ Apple MacBook Pros wit...
B&H Photo has clearance 2016 15″ MacBook Pros available for up to $800 off original MSRP. Shipping is free, and B&H charges NY & NJ sales tax only: – 15″ 2.7GHz Touch Bar MacBook Pro... Read more
Apple restocked Certified Refurbished 13″ Mac...
Apple has restocked a full line of Certified Refurbished 2017 13″ MacBook Airs starting at $849. An Apple one-year warranty is included with each MacBook, and shipping is free: – 13″ 1.8GHz/8GB/128GB... Read more
How to find the lowest prices on 2017 Apple M...
Apple has Certified Refurbished 13″ and 15″ 2017 MacBook Pros available for $200 to $420 off the cost of new models. Apple’s refurbished prices are the lowest available for each model from any... Read more
The lowest prices anywhere on Apple 12″ MacBo...
Apple has Certified Refurbished 2017 12″ Retina MacBooks available for $200-$240 off the cost of new models. Apple will include a standard one-year warranty with each MacBook, and shipping is free.... Read more
Apple now offering a full line of Certified R...
Apple is now offering Certified Refurbished 2017 10″ and 12″ iPad Pros for $100-$190 off MSRP, depending on the model. An Apple one-year warranty is included with each model, and shipping is free: –... Read more
27″ iMacs on sale for $100-$130 off MSRP, pay...
B&H Photo has 27″ iMacs on sale for $100-$130 off MSRP. Shipping is free, and B&H charges sales tax for NY & NJ residents only: – 27″ 3.8GHz iMac (MNED2LL/A): $2199 $100 off MSRP – 27″ 3.... Read more
2.8GHz Mac mini on sale for $899, $100 off MS...
B&H Photo has the 2.8GHz Mac mini (model number MGEQ2LL/A) on sale for $899 including free shipping plus NY & NJ sales tax only. Their price is $100 off MSRP. Read more
Apple offers Certified Refurbished iPad minis...
Apple has Certified Refurbished 128GB iPad minis available today for $339 including free shipping. Apple’s standard one-year warranty is included. Their price is $60 off MSRP. Read more
Amazon offers 13″ 256GB MacBook Air for $1049...
Amazon has the 13″ 1.8GHz/256B #Apple #MacBook Air on sale today for $150 off MSRP including free shipping: – 13″ 1.8GHz/256GB MacBook Air (MQD42LL/A): $1049.99, $150 off MSRP Read more
9.7-inch 2017 WiFi iPads on sale starting at...
B&H Photo has 9.7″ 2017 WiFi #Apple #iPads on sale for $30 off MSRP for a limited time. Shipping is free, and pay sales tax in NY & NJ only: – 32GB iPad WiFi: $299, $30 off – 128GB iPad WiFi... Read more

Jobs Board

*Apple* Data Center Site Selection and Strat...
# Apple Data Center Site Selection and Strategy Research Analyst Job Number: 83708609 Santa Clara Valley, California, United States Posted: 18-Jan-2018 Weekly Hours: Read more
Security Engineering Coordinator, *Apple* R...
# Security Engineering Coordinator, Apple Retail Job Number: 113237456 Santa Clara Valley, California, United States Posted: 18-Jan-2018 Weekly Hours: 40.00 **Job Read more
Firmware Engineer - *Apple* Accessories - A...
# Firmware Engineer - Apple Accessories Job Number: 113422485 Santa Clara Valley, California, United States Posted: 18-Jan-2018 Weekly Hours: 40.00 **Job Summary** Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Store Leader - Retail District Manag...
Job Description:Job SummaryAs more and more people discover Apple , they visit our retail stores seeking ways to incorporate our products into their lives. It's your Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.