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
QuartzLines (HTML) (DMG) (ZIP)
Drawing Lines using Quartz's CGPath & CGContextStrokeLineSegments functions.
Quartz Sample Code 2005-06-01
QuartzShapes (HTML) (DMG) (ZIP)
Example Quartz functions that implement equivalents to the QuickDraw PaintArc, FrameArc, PaintOval, FrameOval, PaintRect, and FrameRect
Quartz Sample Code 2005-03-08
Requirements for Quartz GL (HTML)
QA1536: Describes the requirements for enabling Quartz GL.
Quartz Technical Q&As 2008-08-08
Resolution Independent UI Release Notes (HTML)
Quartz Release Notes 2005-04-29
RGB ValueTransformers (HTML) (DMG) (ZIP)
Supersedes the "RGB Image sample". Sample now uses bindings. Color separation now done in an NSValueTransformer subclass.
Quartz Sample Code 2003-11-18
Saving the current Core Graphics Path (HTML)
QA1056: Explains that the Core Graphics save and restore GState APIs do not affect the path.
Quartz Technical Q&As 2001-10-02
Shearing a Coordinate Space with NSAffineTransform (HTML) (日本語 HTML)
QA1332: Describes a simple way to shear coordinate spaces by adding a few methods to the NSAffineTransform class.
Quartz Technical Q&As 2004-01-29
Son of Grab (HTML) (DMG) (ZIP)
Shows how to use the new CGWindow to get window images from the Window Server.
Quartz Sample Code 2007-11-01
SyncCGContextOriginWithPort (HTML)
QA1010: Describes how to use SyncCGContextOriginWithPort.
Quartz Technical Q&As 2001-04-11
Tiger Developer Overview Series: Developing with Core Image (HTML)
Learn how Core Image can help you take your graphics development to the next level.
Quartz Articles 2005-03-09
Turning Off Core Graphics Clipping (HTML)
QA1050: Explains how to clear the clipping path for a CGContext.
Quartz 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.
Quartz Technical Q&As 2001-07-02
Using Python with Quartz 2D on Mac OS X (HTML)
New article on using the Python bindings in Mac OS X to access the Quartz 2D graphics API.
Quartz Articles 2007-07-10
Using the ImageIO Framework with Mac OS X 10.4 Tiger (HTML)
Learn to access image data using ImageIO.
Quartz Articles 2006-11-27
VideoHardwareInfo (HTML) (DMG) (ZIP)
Query VRAM, Quartz Extreme support, OpenGL extensions and renderer, GLSL version and support.
Quartz Sample Code 2007-05-14
What is the Timebase submenu available in the contextual menu of some patches in Quartz Composer? (HTML)
QA1427: Describes the timebase system used by patches in Quartz Composer.
Quartz Technical Q&As 2005-06-15
When does the RSS Feed patch in Quartz Composer refreshes its contents? (HTML)
QA1425: Explains how the RSS Feed patch in Quartz Composer refreshes its contents.
Quartz Technical Q&As 2005-06-24
Why are my Core Graphics calls drawing upside down? (HTML)
QA1009: Explains why CoreGraphics drawing comes out upside down relative to QuickDraw drawing.
Quartz Technical Q&As 2001-04-11
Why does my Quartz Composer composition render with a corrupted background in the QCView? (HTML)
QA1434: Describes the circumstances in which the QCView background may render corrupted.
Quartz Technical Q&As 2005-06-01
Working with Quartz Composer (HTML)
Learn to build a sample composition without having to write code.
Quartz Articles 2006-02-13
CIVideoDemoGL (HTML) (DMG) (ZIP)
CIVideoDemoGL demonstrates using Core Image with QuickTime and Core Video
QuickTime Sample Code 2007-10-03
Compression Sequence APIs - codecErr returned when compressing with H.264 (HTML)
QA1470: Describes why ICM Compression Sequence APIs cannot be used to encode to H.264
QuickTime Technical Q&As 2006-11-15
Compression Sessions - Configuring codec quality settings (HTML)
QA1444: Discusses how to set encoding quality for a Compression Sequence
QuickTime Technical Q&As 2005-10-17
Core Animation QuickTime Layer (HTML) (DMG) (ZIP)
Shows the use of controls in a Layer over a Core Animation QTMovieLayer
QuickTime Sample Code 2007-09-26
Core Video - Available Pixel Formats (HTML)
QA1501: Discusses how to determine all the pixel format types and format descriptions known to Core Video.
QuickTime Technical Q&As 2007-01-23
Creating Sub GWorlds using QTNewGWorldFromPtr (HTML)
QA1014: Using QTNewGWorldFromPtr to create sub GWorlds which reference the pixel data of other GWorlds.
QuickTime Technical Q&As 2001-03-20
Decompression Sessions - Setting codec accuracy and field mode (HTML)
QA1460: Describes how to set codec accuracy and field mode options when creating a decompression sessions.
QuickTime Technical Q&As 2006-01-12
Efficiently using Quartz Composer compositions with QuickTime (HTML)
TN2145: Describes how to best use Quartz Composer compositions in a QuickTime environment.
QuickTime Technical Notes 2005-07-05
Exporting Movies for iPod, Apple TV and iPhone (HTML)
TN2188: Discusses the use of the iPod, Apple TV and iPhone QuickTime export components.
QuickTime Technical Notes 2009-04-30
Extracting DV Fields using QTNewGWorldFromPtr (HTML)
QA1017: Describes using QTNewGWorldFromPtr to access individual fields contained within a frame of DV source.
QuickTime Technical Q&As 2001-03-20
Final Cut Pro - The 'r4fl' Pixel Format (HTML)
TN2201: Describes the 'r4fl' pixel format used by Final Cut Pro to support greater than 8-bit rendering.
QuickTime Technical Notes 2008-08-06
Graphics Exporters - Creating 16-bit-per-channel image files (HTML)
QA1354: Discusses how to use QuickTime Graphics Exporters to create 16-bit-per-channel image files.
QuickTime Technical Q&As 2004-06-03
Implementing a CVFillExtendedPixelsCallBack (HTML)
QA1440: Discusses how you implement a Core Video custom extended pixel fill callback function.
QuickTime Technical Q&As 2005-09-06
Importing animated GIFs (HTML) (日本語 HTML)
TN2018: Describes how to tell if a GIF file or dataref contains more than one frame.
QuickTime Technical Notes 2001-04-17
Is ColorSync thread safe? (HTML) (日本語 HTML)
QA1261: Discusses ColorSync thread-safety issues.
QuickTime Technical Q&As 2003-04-17
LiveVideoMixer (HTML) (DMG) (ZIP)
LiveVideoMixer demonstrates customized video rendering with QuickTime 7 and CoreVideo and OpenGL.
QuickTime Sample Code 2008-04-24
LiveVideoMixer2 (HTML) (DMG) (ZIP)
An updated LiveVideoMixer with DV out over FireWire
QuickTime Sample Code 2006-05-05
LiveVideoMixer3 (HTML) (DMG) (ZIP)
LiveVideoMixer3 is extended to support Video In via QTKit
QuickTime Sample Code 2006-08-01
LockPixels and DisposeGWorld with QTNewGWorldFromPtr (HTML)
QA1007: Clarifies some issues surrounding pointer ownership when creating GWorlds with QTNewGWorldFromPtr
QuickTime Technical Q&As 2001-02-26
Managing QTCompressionOptions - An overview of the QTCompressionOptionsWindow sample (HTML)
TN2219: Introductory overview of the QTCompressionOptionsWindow sample demonstrating one way to manage QTCompressionOptions objects.
QuickTime Technical Notes 2008-03-11
MyMovieFilter (HTML) (DMG) (ZIP)
How to play a movie into a layer-backed QTMovieView and apply a Core Image filter while the movie plays.
QuickTime Sample Code 2008-06-02
OpenGLCompositorLab (HTML) (DMG) (ZIP)
Demonstrates using OpenGL to composite multiple sources in hardware. Requires NVIDIA GeForce 4 Ti hardware.
QuickTime Sample Code 2003-04-21
QTCarbonCoreImage101 (HTML) (DMG) (ZIP)
Demonstrates how to render QuickTime Movies using Core Image filters and the new video pipeline.
QuickTime Sample Code 2006-02-14
QTCoreImage101 (HTML) (DMG) (ZIP)
Demonstrates how to render a QuickTime Movie using Core Image filters and the new video pipeline.
QuickTime Sample Code 2005-07-19
QTCoreVideo101 (HTML) (DMG) (ZIP)
Demonstrates (with very little code) how to render a QuickTime Movie using CoreVideo and OpenGL.
QuickTime Sample Code 2008-04-24
QTCoreVideo102 (HTML) (DMG) (ZIP)
An application demonstrating the use of QTKit, CoreVdeo, and OpenGL.
QuickTime Sample Code 2008-06-06
QTCoreVideo103 (HTML) (DMG) (ZIP)
Demonstrates how to render a QuickTime Movie using OpenGL texture range and the Core Video pixel buffer pipeline.
QuickTime Sample Code 2008-06-06
QTCoreVideo201 (HTML) (DMG) (ZIP)
Demonstrates how to render a QuickTime Movie using OpenGL FBO and the Core Video texture pipeline.
QuickTime Sample Code 2008-06-06
QTCoreVideo202 (HTML) (DMG) (ZIP)
Demonstrates how to render a QuickTime Movie using OpenGL PBO and the Core Video pixel buffer pipeline.
QuickTime Sample Code 2009-04-07
QTCoreVideo301 (HTML) (DMG) (ZIP)
Demonstrates adding of effects & filters to QuickTime Movies in realtime using GLSL shaders and the Core Video texture pipeline.
QuickTime Sample Code 2009-04-07
QTQuartzPlayer (HTML) (DMG) (ZIP)
QTQuartzPlayer demonstrates how to render QuickTime Movies and live video with OpenGL and CoreVideo.
QuickTime Sample Code 2005-10-04
qtshell (HTML) (DMG) (ZIP)
Simple QuickTime and QuickTime VR viewer framework.
QuickTime Sample Code 2003-10-27
QTtoCG (HTML) (DMG) (ZIP)
Shows how to create a CGImageRef with the proper ColorSync profile from a QuickTime image on disk.
QuickTime Sample Code 2003-01-14
Quartz Composer Live DV (HTML) (DMG) (ZIP)
Shows how to export a Quartz Composer composition as a real-time DV stream on the FireWire port.
QuickTime Sample Code 2005-06-01
Quartz Composer Matrix (HTML) (DMG) (ZIP)
Shows how to use Quartz Composer to display a QuickTime movie as a series of frames in a 3D world.
QuickTime Sample Code 2005-06-01
Quartz Composer QCTV (HTML) (DMG) (ZIP)
Shows how to build a fake TV system using Quartz Composer as the foundation motion graphics.
QuickTime Sample Code 2005-07-06
QuickTime Compression and Decompression Guide (HTML) (PDF)
Describes the QuickTime data compression and decompression technologies.
QuickTime Guides 2006-01-10
QuickTime Movie Playback Programming Guide (HTML) (PDF)
Describes how to open and play QuickTime movies using the Carbon and QuickTime API.
QuickTime Guides 2005-08-11
QuickTime Overview (HTML) (PDF)
Introduces the main concepts and services of QuickTime.
QuickTime Guides 2005-08-11
QuickTime Texture Visual Context - kQTVisualContextNotAllowedErr with non-accelerated graphics cards (HTML)
QA1542: Discusses how to create a display mask and avoid a kQTVisualContextNotAllowedErr when using a non-accelerated graphics card.
QuickTime Technical Q&As 2007-09-18
QuickTime Visual Context - Setting the kQTVisualContextOutputColorSpaceKey Attribute (HTML)
QA1550: Describes how to configure a QuickTime OpenGL Texture Visual Context with the kQTVisualContextOutputColorSpaceKey attribute.
QuickTime Technical Q&As 2007-09-28
Registering custom pixel formats with QuickTime and Core Video (HTML)
QA1401: Discusses how to register custom pixel formats with QuickTime & Core Video with QuickTime 7.
QuickTime Technical Q&As 2005-09-06
StillMotion (HTML) (DMG) (ZIP)
Demonstrates how to use the QTKit Capture APIs to build a simple application that creates stop motion animations.
QuickTime Sample Code 2007-11-14
Using QTPixelBufferContextCreate with NewMovieFromProperties (HTML)
QA1443: Discusses using a QuickTime pixel buffer visual context and NewMovieFromProperties to output frames to pixel buffers.
QuickTime Technical Q&As 2008-08-08
WhackedTV (HTML) (DMG) (ZIP)
A Cocoa version of the venerable HackTV sample code, demonstrating usage of the Sequence Grabber API's
QuickTime Sample Code 2008-05-09
Drawing Performance Guidelines (HTML) (PDF)
Guidelines for improving the speed of drawing code.
Tools Guides 2006-04-04
OpenGL Driver Monitor User Guide (HTML) (PDF)
Explains how to view the properties supported by the OpenGL drivers available on the system.
Tools Guides 2008-02-08
OpenGL Profiler User Guide (HTML) (PDF)
Explains how to assess the efficiency of an OpenGL application.
Tools Guides 2008-02-08
OpenGL Shader Builder User Guide (HTML) (PDF)
Explains how to use OpenGL Shader Builder to develop and test GPU programs.
Tools Guides 2008-06-23
OpenGL Tools for Serious Graphics Development (HTML)
Learn how Apple's best-of-breed OpenGL tools help developers locate, analyze, and debug graphics bottlenecks.
Tools Articles 2004-02-02
QCFundamentals (HTML) (DMG) (ZIP)
Demonstrates Coordinate, Interpolation, and Iterative systems in Quartz Composer with an amusing animation
Tools Sample Code 2006-08-07
QCGalaxy (HTML) (DMG) (ZIP)
Demonstrates use of Particle Systems and Core Image Filters in Quartz Composer
Tools Sample Code 2006-08-07
Quartz Composer User Guide (HTML) (PDF)
Explains how to use the Quartz Composer development tool to create motion graphics compositions.
Tools Guides 2007-07-17
Quartz Composer WWDC 2005 Composition (HTML) (DMG) (ZIP)
Shows how to build a parameterized motion graphics composition with Quartz Composer.
Tools Sample Code 2005-06-01
What is the Timebase submenu available in the contextual menu of some patches in Quartz Composer? (HTML)
QA1427: Describes the timebase system used by patches in Quartz Composer.
Tools Technical Q&As 2005-06-15
Apple Type Services for Fonts Programming Guide (HTML) (PDF)
Explains how to access fonts using the ATS-based font management API. Includes implementing the Fonts window.
Typography Guides 2007-12-11
Apple Type Services for Fonts Reference (HTML) (PDF)
Describes the C API for ATS-based font access and management.
Typography Reference 2007-12-11
ATSUI Programming Guide (HTML) (PDF)
Explains how to lay out, process, and draw Unicode text.
Typography Guides 2007-07-10
ATSUI Reference (HTML) (PDF)
Describes the C API for rendering Unicode-encoded text with advanced typographic features.
Typography Reference 2007-06-28
Font Handling (HTML) (PDF)
Explains the Cocoa font management system and how users select fonts.
Typography Guides 2008-02-08
Font Manager Reference (HTML) (PDF)
Describes the C API for QuickDraw-based font access and management.
Typography Reference 2007-12-11
The Font Panel for Carbon API (HTML) (日本語 HTML)
TN2058: The API to display and interact with the Font Panel from Carbon applications on Mac OS X.
Typography Technical Notes 2006-10-26
Fonts Panel Reference (HTML) (PDF)
Describes the C API for providing a Fonts window in a Carbon application.
Typography Reference 2007-02-26
FontSync Reference (HTML) (PDF)
Describes the C API for content-based font identification and comparison.
Typography Reference 2002-10-01
Handling Unicode Text Editing With MLTE (HTML) (PDF)
Explains how to use Apple's multilingual text engine.
Typography Guides 2008-10-15
Improving ATSUI Text Drawing Performance (HTML)
QA1027: Talks about one way of improving ATSUI text drawing performance.
Typography Technical Q&As 2001-04-17
The Mac OS X Font Manager (HTML) (日本語 HTML)
TN2024: Information on installing and accessing fonts programatically.
Typography Technical Notes 2001-07-11
Matching Fonts With Font Sync (HTML) (PDF)
Conceptual information about comparing and identifying fonts based upon their content.
Typography Guides 2003-02-12
Multilingual Text Engine Reference (HTML) (PDF)
Describes the C API for supporting Unicode text editing.
Typography Reference 2007-02-19
NamingTableAccess (HTML) (DMG) (ZIP)
Digs out the contents of the NamingTable in a TrueType 'sfnt'.
Typography Sample Code 2003-01-14
StyleFlatteningSample (HTML) (DMG) (ZIP)
Shows how to use the ATSUFlatten and ATSUUnflatten APIs.
Typography Sample Code 2003-01-14
TextNameTool (HTML) (DMG) (ZIP)
A command line tool sample illustrating how to use various graphical facilities and services without a login.
Typography Sample Code 2003-10-27
CarbonQuartzComposer_TV (HTML) (DMG) (ZIP)
Demonstrates how to integrate Cocoa based QuartzComposer window into a Carbon based application
Video Sample Code 2006-10-02
CIVideoDemoGL (HTML) (DMG) (ZIP)
CIVideoDemoGL demonstrates using Core Image with QuickTime and Core Video
Video Sample Code 2007-10-03
CocoaDVDPlayer (HTML) (DMG) (ZIP)
Demonstrates how to use DVD Playback Services to play DVD-Video media.
Video Sample Code 2005-11-04
Core Video Programming Guide (HTML) (PDF)
Describes Core Video concepts and how to obtain and manipulate video frames using the Core Video API.
Video Guides 2007-04-03
Core Video Reference (HTML) (PDF)
Describes the C API for obtaining and manipulating individual video frames.
Video Reference 2007-03-22
DVD Playback Framework Reference (HTML) (PDF)
Describes the DVD Playback framework, which supports adding DVD playback features to applications.
Video Reference 2007-06-28
DVD Playback Services Programming Guide (HTML) (PDF)
Explains how to use DVD Playback Services to add DVD-Video playback features to applications.
Video Guides 2006-03-08
LiveVideoMixer (HTML) (DMG) (ZIP)
LiveVideoMixer demonstrates customized video rendering with QuickTime 7 and CoreVideo and OpenGL.
Video Sample Code 2008-04-24
QTCoreImage101 (HTML) (DMG) (ZIP)
Demonstrates how to render a QuickTime Movie using Core Image filters and the new video pipeline.
Video Sample Code 2005-07-19
QTCoreVideo101 (HTML) (DMG) (ZIP)
Demonstrates (with very little code) how to render a QuickTime Movie using CoreVideo and OpenGL.
Video Sample Code 2008-04-24
QTCoreVideo102 (HTML) (DMG) (ZIP)
An application demonstrating the use of QTKit, CoreVdeo, and OpenGL.
Video Sample Code 2008-06-06
QTCoreVideo103 (HTML) (DMG) (ZIP)
Demonstrates how to render a QuickTime Movie using OpenGL texture range and the Core Video pixel buffer pipeline.
Video Sample Code 2008-06-06
QTCoreVideo201 (HTML) (DMG) (ZIP)
Demonstrates how to render a QuickTime Movie using OpenGL FBO and the Core Video texture pipeline.
Video Sample Code 2008-06-06
QTCoreVideo202 (HTML) (DMG) (ZIP)
Demonstrates how to render a QuickTime Movie using OpenGL PBO and the Core Video pixel buffer pipeline.
Video Sample Code 2009-04-07
QTCoreVideo301 (HTML) (DMG) (ZIP)
Demonstrates adding of effects & filters to QuickTime Movies in realtime using GLSL shaders and the Core Video texture pipeline.
Video Sample Code 2009-04-07
QTPixelBufferVCToCGImage (HTML) (DMG) (ZIP)
Demonstrates using QTPixelBufferContextCreate with NewMovieFromProperties to output pixel buffers from a movie and draw them.
Video Sample Code 2006-07-07
QuickTime Compression and Decompression Guide (HTML) (PDF)
Describes the QuickTime data compression and decompression technologies.
Video Guides 2006-01-10
QuickTime Movie Creation Guide (HTML) (PDF)
Describes some of the different ways your application can create a new QuickTime movie.
Video Guides 2007-01-08
QuickTime Overview (HTML) (PDF)
Introduces the main concepts and services of QuickTime.
Video Guides 2005-08-11
VideoViewer (HTML) (DMG) (ZIP)
Simple example of video rendering using QuickTime visual contexts, OpenGL, Core Video and Core Image.
Video Sample Code 2005-08-01