Jump To:
Leopard Reference Library
Graphics and imaging on Mac OS X consists of three main developer technologies: Quartz, an advanced drawing engine and windowing environment; OpenGL, an Apple implementation of this 3D graphics industry-standard API; and QuickTime, the cross-platform multimedia technology for handling video, sound, and text.

A guided introduction for developers new to Mac OS X graphics and imaging.   Essential information for developers working with graphics and imaging.   C and Objective-C API references organized by framework.
Document Descriptions
On Off
Display

Sort by
Title
Sorted by
Topic
Sort by
Resource Type
Sort by
Date
GLSL Showpiece Lite (HTML) (DMG) (ZIP)
Using GLSL from a Cocoa application
Performance Sample Code 2007-11-05
How can I optimize a Quartz Composer composition depending on the hardware it runs on? (HTML)
QA1433: Explains how to design compositions that adapt to the hardware limitations.
Performance Technical Q&As 2005-06-01
Is ColorSync thread safe? (HTML) (日本語 HTML)
QA1261: Discusses ColorSync thread-safety issues.
Performance Technical Q&As 2003-04-17
Maximizing Mac OS X Application Performance (HTML)
Learn how to achieve better performance on Mac OS X.
Performance Articles 2003-06-23
OpenGL Filter Basics Cocoa (HTML) (DMG) (ZIP)
How to use Objective-C and MVC design patterns in installing and utilizing filters in an OpenGL rendering pipeline
Performance Sample Code 2008-02-06
OpenGL Tools for Serious Graphics Development (HTML)
Learn how Apple's best-of-breed OpenGL tools help developers locate, analyze, and debug graphics bottlenecks.
Performance Articles 2004-02-02
Optimizing OpenGL Data Throughput on Mac OS X (HTML)
Learn how to optimize your OpenGL code to maximize vertex data throughput.
Performance Articles 2005-03-21
PBORenderToVertexArray (HTML) (DMG) (ZIP)
This sample demonstrates render-to-vertex-array using FBO, PBO, and VBO.
Performance Sample Code 2006-10-02
Performance Overview (HTML) (PDF)
Introduces the factors that determine performance.
Performance Guides 2006-10-03
Quartz 2D Thread Safety (HTML) (日本語 HTML)
QA1238: Explains the thread-safety issues for the Quartz 2D API.
Performance Technical Q&As 2003-02-25
QuartzCache (HTML) (DMG) (ZIP)
Demonstrates several caching techniques using CGBitmapContext, CGImageRef re-use, CGLayerRefs, CGImageSource.
Performance Sample Code 2005-06-01
Real world profiling with the OpenGL Profiler (HTML)
TN2178: This document describes how to use OpenGL Profiler, a very powerful tool for your OpenGL development.
Performance Technical Notes 2008-09-16
Requirements for Quartz GL (HTML)
QA1536: Describes the requirements for enabling Quartz GL.
Performance Technical Q&As 2008-08-08
Specifiying if the CPU or the GPU should be used for rendering. (HTML)
QA1416: Which processor will be used for rendering in Core Image and how to affect it.
Performance Technical Q&As 2005-08-16
Synchronizing OpenGL rendering updates to the vertical refresh of the display (HTML)
QA1521: How to avoid tearing by synchronizing your rendering to the display VBL
Performance Technical Q&As 2007-07-16
Taking Advantage of the Accelerate Framework (HTML)
Learn how your application can run on PowerPC- or Intel-based Macs without processor-specific customization.
Performance Articles 2005-10-03
VideoViewer (HTML) (DMG) (ZIP)
Simple example of video rendering using QuickTime visual contexts, OpenGL, Core Video and Core Image.
Performance Sample Code 2005-08-01
vImage Alpha Compositing Reference (HTML) (PDF)
Describes the programming interface for high-performance alpha compositing operations.
Performance Reference 2007-07-12
vImage Conversion Reference (HTML) (PDF)
Describes the programming interface for high performance image conversion operations.
Performance Reference 2007-07-12
vImage Convolution Reference (HTML) (PDF)
Describes the programming interface for high performance image convolution operations.
Performance Reference 2007-07-12
vImage Data Types and Constants Reference (HTML) (PDF)
Describes the data types and constants used by the vImage framework.
Performance Reference 2007-07-12
vImage Decompression Filtering Reference (HTML) (PDF)
Describes the programming interface for decompression filtering operations.
Performance Reference 2007-07-12
vImage Geometry Reference (HTML) (PDF)
Describes the programming interface for high performance geometric operations on images.
Performance Reference 2007-07-12
vImage Histogram Reference (HTML) (PDF)
Describes the programming interface for high performance image histogram operations.
Performance Reference 2007-07-12
vImage Morphology Reference (HTML) (PDF)
Describes the programming interface for high performance morphological operations on images.
Performance Reference 2007-07-12
vImage Programming Guide (HTML) (PDF)
Explains how to use the C programming interface for high-speed vector image processing.
Performance Guides 2008-10-15
vImage Reference Collection (HTML) (PDF)
Describes the C programming interface for high-performance image processing.
Performance Reference 2007-07-12
vImage Transform Reference (HTML) (PDF)
Describes the programming interface for high performance image transform operations.
Performance Reference 2007-07-12
Worm (HTML) (DMG) (ZIP)
NSView performance demonstration. Uses a periodic timer to get best performance with Coalesced Update feature.
Performance Sample Code 2005-06-01
Carbon Printing Reference (HTML) (PDF)
Describes the C API used by Carbon applications to provide a user interface for printing.
Printing Reference 2007-07-24
CarbonQuartzDrawingWPrinting (HTML) (DMG) (ZIP)
Deprecated - Demonstrates mixing QuickDraw and Quartz 2D drawing both on screen and during printing.
Printing Sample Code 2003-01-14
CGContext Bounds (HTML)
QA1048: Explains how to determine the bounds of a CGContext.
Printing Technical Q&As 2001-07-02
CGContextAddLineToPoint, CGContextAddCurveToPoint, et. al. (HTML)
QA1049: Explains why the CGContextAddXYZ APIs don't draw anything immediately.
Printing Technical Q&As 2001-07-02
CGContextClosePath (HTML)
QA1046: Explains when you should call CGContextClosePath.
Printing Technical Q&As 2001-10-02
Cocoa PDE with Carbon Printing (HTML) (DMG) (ZIP)
Application that uses a Cocoa PDE along with the Carbon Printing APIs.
Printing Sample Code 2007-07-27
ColorSync on Mac OS X (HTML) (日本語 HTML)
TN2035: Describes ColorSync, which is fundamentally integrated into Mac OS X.
Printing Technical Notes 2005-08-10
Core Printing Reference (HTML) (PDF)
Describes the C API that provides an abstraction layer for application printing.
Printing Reference 2007-07-24
Creating Printing Presets for iPhoto (HTML) (PDF)
Rules for creating and installing printer-specific collections of settings. Includes a sample file.
Printing Guides 2005-07-07
Drawing a Path Multiple Times (HTML)
QA1047: Explains that path drawing operations consume the path.
Printing Technical Q&As 2001-07-02
Extending Printing Dialogs (HTML) (PDF)
A guide to developing printing dialog extensions, including basic concepts and a documented Carbon-based sample project.
Printing Guides 2006-10-03
Gathering all PostScript Printer Descriptions (PPDs) (HTML)
QA1529: Describes a work around for an issue in PMCopyAvailablePPDs on Mac OS X 10.4 and below
Printing Technical Q&As 2008-08-08
How do I use PMSessionGetGraphicsContext to get a CGContextRef? (HTML) (日本語 HTML)
Deprecated - QA1216: Describes how to use PMSessionSetDocumentFormatGeneration and PMSessionGetGraphicsContext to get a CGContextRef for printing.
Printing Technical Q&As 2003-02-25
How to measure CG text (HTML)
QA1051: Explains how to measure Core Graphics text.
Printing Technical Q&As 2007-08-02
Mac OS X Printing System Overview (HTML) (PDF)
Introduces Apple's printing architecture. Includes a road map for developing software.
Printing Guides 2006-02-07
Obtaining 16 Bits-Per-Color Data with CUPS Raster Printing (HTML)
TN2149: Obtaining 16 Bits-Per-Color Data with CUPS Raster Printing
Printing Technical Notes 2005-08-24
PDEProject (HTML) (DMG) (ZIP)
Deprecated - Demonstrates an application-hosted printing dialog extension (PDE) that displays a custom pane in the Print dialog.
Printing Sample Code 2003-01-14
PMPrinterPrintWithFile (HTML) (DMG) (ZIP)
How to send files, for example PostScript and PDF, directly to the printer. Replaces the pict-ps path.
Printing Sample Code 2006-07-18
Printing Plug-in Interfaces Reference (HTML) (PDF)
Describes the various callback interfaces that Mac OS X printing plug-ins implement in Carbon.
Printing Reference 2003-07-31
Printing Programming Topics for Cocoa (HTML) (PDF)
Explains how to support printing in Cocoa applications.
Printing Guides 2006-06-28
Providing PDF Workflow Options in the Print Dialog (HTML) (PDF)
Installation information and examples, including the use of Automator workflows.
Printing Guides 2007-10-31
Quartz 2D Interpolation (HTML) (日本語 HTML)
QA1186: Explains how to control Quartz 2D's image interpolation.
Printing Technical Q&As 2002-10-29
Quartz 2D Thread Safety (HTML) (日本語 HTML)
QA1238: Explains the thread-safety issues for the Quartz 2D API.
Printing Technical Q&As 2003-02-25
Retain Counts of io_object_t Objects in IOKit.framework (HTML) (日本語 HTML)
QA1195: Distinguishes between the retain counts of an I/O Kit kernel object and its io_object_t user space proxy.
Printing Technical Q&As 2008-09-24
Saving the current Core Graphics Path (HTML)
QA1056: Explains that the Core Graphics save and restore GState APIs do not affect the path.
Printing Technical Q&As 2001-10-02
Supporting Printing in Your Carbon Application (HTML) (PDF)
Explains how to support printing in Carbon applications. Includes creating PDFs and porting from Mac OS 9.
Printing Guides 2004-08-31
Ticket Services Reference (HTML) (PDF)
Describes the C API used by printer modules and PDEs to communicate printing information to the system.
Printing Reference 2002-10-23
Tioga PostScript Printing Plugins in Mac OS X 10.2 (HTML) (日本語 HTML)
QA1085: Why Tioga printing plugins for PostScript printing aren't called on Mac OS X 10.2 and later.
Printing Technical Q&As 2003-07-14
Turning Off Core Graphics Clipping (HTML)
QA1050: Explains how to clear the clipping path for a CGContext.
Printing Technical Q&As 2001-07-02
Unexpected CG state changes (HTML)
QA1045: Explains why the Core Graphics drawing state sometimes changes for no apparent reason.
Printing Technical Q&As 2001-07-02
Using PostScript Printer Description Files (HTML) (PDF)
Information for printer vendors. Includes installing files, PPD/PDE binding, and grouping features.
Printing Guides 2005-07-07
Why does logging keep my Printer Module from working? (HTML) (日本語 HTML)
Deprecated - QA1182: Describes some problems with standard printf logging in a Printer Module on Jaguar.
Printing Technical Q&As 2002-11-06
Why don't all of my PDE localizations show up in all applications? (HTML) (日本語 HTML)
QA1185: Explains why some PDE localizations might not appear in all applications.
Printing Technical Q&As 2002-10-16
2D Graphics Release Notes for Mac OS X v10.5 (HTML)
Describes the changes and issues related to Core Image and Quartz 2D in Mac OS X v10.5.
Quartz Release Notes 2008-04-08
Animating the frame of a CALayer. (HTML)
QA1620: Explains how the frame property of a layer interacts with animations.
Quartz Technical Q&As 2008-10-24
Animation Overview (HTML) (PDF)
Describes the animation facilities provided by Mac OS X.
Quartz Guides 2008-10-15
Availability of Quartz Composer Patches in Web Kit (HTML)
QA1505: Details which Quartz Composer patches are available in Web Kit
Quartz Technical Q&As 2007-03-05
BlitNoVBL (HTML) (DMG) (ZIP)
Shows how to draw directly to the screen without syncing to the VBL of the monitor.
Quartz Sample Code 2003-01-14
BlitVBL (HTML) (DMG) (ZIP)
Shows how to have Mac OS X try its best to sync to the VBL for you.
Quartz Sample Code 2003-01-14
CAAction Protocol Reference (HTML) (PDF)
Describes the interface for receiving actions initiated by a layer.
Quartz Reference 2007-07-24
CAAnimation Class Reference (HTML) (PDF)
Describes the interface for managing the actions and timing of an animation.
Quartz Reference 2007-10-31
CAAnimationGroup Class Reference (HTML) (PDF)
Describes a grouping of multiple animations into a single animation.
Quartz Reference 2008-03-11
CABasicAnimation Class Reference (HTML) (PDF)
Describes the basic interpolation of a layer property.
Quartz Reference 2007-07-24
CAConstraint Class Reference (HTML) (PDF)
Describes a single geometric constraint between two layers.
Quartz Reference 2007-07-24
CAConstraintLayoutManager Class Reference (HTML) (PDF)
Describes a layout manager that applies a set of constraints to a layer tree.
Quartz Reference 2007-12-11
CAKeyframeAnimation Class Reference (HTML) (PDF)
Describes an animation that provides keyframe interpolation of a layer property.
Quartz Reference 2007-07-24
CALayer Class Reference (HTML) (PDF)
Describes a node of animated visual content.
Quartz Reference 2009-02-04
CALayerEssentials (HTML) (DMG) (ZIP)
Demonstrates the basics of setting up various Core Animation layers
Quartz Sample Code 2008-09-30
CALayoutManager Protocol Reference (HTML) (PDF)
Describes the interface for receiving requests to arrange a layout tree.
Quartz Reference 2007-07-24
CAMediaTiming Protocol Reference (HTML) (PDF)
Describes the interface for the time behavior of an animation.
Quartz Reference 2009-03-04
CAMediaTimingFunction Class Reference (HTML) (PDF)
Describes the pacing of an animation as a timing curve.
Quartz Reference 2008-07-11
CAOpenGLLayer Class Reference (HTML) (PDF)
Describes a layer that acts as a target for OpenGL commands.
Quartz Reference 2008-03-11
CAPropertyAnimation Class Reference (HTML) (PDF)
Describes the interface for manipulating values of layer properties.
Quartz Reference 2007-07-24
CarbonQuartzDrawingWPrinting (HTML) (DMG) (ZIP)
Deprecated - Demonstrates mixing QuickDraw and Quartz 2D drawing both on screen and during printing.
Quartz Sample Code 2003-01-14
CarbonSketch (HTML) (DMG) (ZIP)
Core Graphics only example of a Sketch application implemented with HIToolbox. Shows 1x1-CGBitmapContext for hit-testing, printing.
Quartz Sample Code 2005-03-23
CARenderer Class Reference (HTML) (PDF)
Describes an object that draws a layer to a Core Graphics context.
Quartz Reference 2008-04-30
CAScrollLayer Class Reference (HTML) (PDF)
Describes a layer that displays a scrollable portion of another layer.
Quartz Reference 2007-07-24
CATextLayer Class Reference (HTML) (PDF)
Describes a layer that draws text.
Quartz Reference 2007-12-11
CATiledLayer Class Reference (HTML) (PDF)
Describes a layer that draws tiles of content as needed.
Quartz Reference 2007-07-24
CATransaction Class Reference (HTML) (PDF)
Describes a batch of Core Animation updates that are applied to a render tree atomically.
Quartz Reference 2007-07-24
CATransition Class Reference (HTML) (PDF)
Describes the class that provides transition animations to layers.
Quartz Reference 2007-10-31
CGAffineTransform Reference (HTML) (PDF)
Describes the functions for creating and applying affine transformations.
Quartz Reference 2008-04-08
CGBitmapContext Reference (HTML) (PDF)
Describes an opaque type for managing drawing operations in a bitmap.
Quartz Reference 2007-06-28
CGBitmapContextCreate Supported Color Spaces (HTML)
QA1037: Lists the color space and alpha info combinations currently supported by CGBitmapContextCreate.
Quartz Technical Q&As 2007-07-18
CGColor Reference (HTML) (PDF)
Describes a representation of color and opacity (alpha value).
Quartz Reference 2006-12-22
CGColorSpace Reference (HTML) (PDF)
Describes an opaque type for specifying color space information.
Quartz Reference 2008-09-09
CGContext Bounds (HTML)
QA1048: Explains how to determine the bounds of a CGContext.
Quartz Technical Q&As 2001-07-02
CGContext Reference (HTML) (PDF)
Describes a Quartz 2D drawing destination.
Quartz Reference 2008-04-08
CGContextAddLineToPoint, CGContextAddCurveToPoint, et. al. (HTML)
QA1049: Explains why the CGContextAddXYZ APIs don't draw anything immediately.
Quartz Technical Q&As 2001-07-02
CGContextClosePath (HTML)
QA1046: Explains when you should call CGContextClosePath.
Quartz Technical Q&As 2001-10-02
CGDataConsumer Reference (HTML) (PDF)
Describes an opaque data type for writing image or PDF data.
Quartz Reference 2006-12-22