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

Sorted by
Title
Sort by
Topic
Sort by
Resource Type
Sort by
Date
Getting the pixel data from a CGImage object (HTML)
QA1509: Describes how to access the pixel data of a CGImage object
Carbon, Cocoa, Games, Quartz Technical Q&As 2008-08-27
GLCarbon1ContextPbuffer (HTML) (DMG) (ZIP)
Demostrates using OpenGL pixel buffers with a single shared context.
OpenGL Sample Code 2004-03-26
GLCarbonSharedPbuffer (HTML) (DMG) (ZIP)
Demostrates sharing a single OpenGL pixel buffer with multiple other contexts.
OpenGL Sample Code 2004-03-26
GLChildWindowDemo (HTML) (DMG) (ZIP)
Shows using Cocoa's child windows and Quartz Extreme to provide 2D/3D overlays above 3D content.
Cocoa, OpenGL Sample Code 2003-04-21
glFlush() vs. glFinish() (HTML)
QA1158: Explanation of the differences between glFlush() and glFinish()
OpenGL Technical Q&As 2004-10-11
GLSL Basics Cocoa (HTML) (DMG) (ZIP)
GLSL fundamentals using NSOpenGLView
OpenGL Sample Code 2008-07-30
GLSL Showpiece Lite (HTML) (DMG) (ZIP)
Using GLSL from a Cocoa application
Games, OpenGL, Performance Sample Code 2007-11-05
GLSLShowpiece (HTML) (DMG) (ZIP)
GLSLShowpiece demonstrates several Vertex and Fragment shaders
Cocoa, Games, OpenGL Sample Code 2006-07-17
GLUT (HTML) (DMG) (ZIP)
The OpenGL Utility Toolkit (GLUT) for Mac OS X version 3.4.0 (supporting the GLUT 3.7 API)
OpenGL Sample Code 2008-02-08
GLUTBasics (HTML) (DMG) (ZIP)
Simple GLUT example which can be used as starter code.
OpenGL Sample Code 2004-03-26
GLUTStereo (HTML) (DMG) (ZIP)
Shows how to use stereo with GLUT under Mac OS X v10.2.3 or later.
OpenGL Sample Code 2003-02-20
GLUTSurfaceTexture (HTML) (DMG) (ZIP)
Example of using the new glutSurfaceTexture.
OpenGL Sample Code 2004-03-26
Grady (HTML) (DMG) (ZIP)
Demonstrates how to use the NSGradient class.
Cocoa Sample Code 2007-02-28
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
Handling Unicode Text Editing With MLTE (HTML) (PDF)
Explains how to use Apple's multilingual text engine.
Typography Guides 2008-10-15
HIGeometry Reference (HTML) (PDF)
Describes the C API that defines basic geometric objects for HIToolbox.
Carbon Reference 2007-06-11
HIShape Reference (HTML) (PDF)
Describes the Carbon API for manipulating HIShape objects.
Carbon Reference 2004-06-28
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.
Cocoa, Performance, Quartz Technical Q&As 2005-06-01
How can I programmatically determine the DPI of the current video mode? (HTML) (日本語 HTML)
QA1217: Describes how to compute the DPI for a given display in a given mode using Core Graphics.
Carbon, Cocoa, Games, Quartz Technical Q&As 2002-12-02
How do I determine how much VRAM is available on my video card? (HTML)
QA1168: Using Core Graphics and IOKit to find the physical size of VRAM on installed hardware.
Cocoa, Games, OpenGL, Quartz Technical Q&As 2004-10-11
How do I get the hexadecimal value of an NSColor object? (HTML)
QA1576: Describes how to convert an NSColor object to its Hexadecimal value.
Cocoa Technical Q&As 2007-12-19
How do I tell if a particular display is being hardware accelerated by Quartz Extreme? (HTML) (日本語 HTML)
QA1218: Describes how to use CGDisplayUsesOpenGLAcceleration to see if a display is accelerated or not.
Carbon, Cocoa, Games, OpenGL, Quartz Technical Q&As 2002-12-04
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.
Carbon, Printing Technical Q&As 2003-02-25
How do I use QuickDraw with CGDirectDisplay? (HTML)
QA1011: Explains how to draw to a CGDirectDisplay-captured display using QuickDraw.
Carbon, Games, Quartz Technical Q&As 2001-04-11
How to measure CG text (HTML)
QA1051: Explains how to measure Core Graphics text.
Carbon, Cocoa, Printing, Quartz Technical Q&As 2007-08-02
HTML Rendering Library Reference (HTML) (PDF)
Deprecated - Describes the legacy C API for drawing HTML text and images in a window. Replaced by the Web Kit.
Carbon Reference 2006-07-13
ICC Profile copyright field (HTML) (日本語 HTML)
QA1136: Discusses how applications should honor the copyright field in the header of an ICC profile.
ColorSync Technical Q&As 2002-04-08
icon cache demo (HTML) (DMG) (ZIP)
Demonstrates the use of an icon cache to limit the search for icon resource to one resource file.
Carbon Sample Code 2003-01-30
IKFilterBrowserPanel Class Reference (HTML) (PDF)
Describes the class that provides the panel contained in a filter browser.
Cocoa, Quartz Reference 2007-10-31
IKFilterBrowserView Class Reference (HTML) (PDF)
Describes the class that supports browsing Core Image filters.
Cocoa, Quartz Reference 2006-12-06
IKFilterCustomUIProvider Protocol Reference (HTML) (PDF)
Descibes the protocol that defines a method for providing a view for a filter.
Cocoa, Quartz Reference 2006-12-07
IKFilterUIView Class Reference (HTML) (PDF)
Describes the class that provides a user interface for Core Image filters.
Cocoa, Quartz Reference 2006-12-06
IKImageBrowserDataSource Protocol Reference (HTML) (PDF)
Describes the informal protocol used to access the data source associated with an image browser view.
Cocoa, Quartz Reference 2007-07-17
IKImageBrowserDelegate Protocol Reference (HTML) (PDF)
Describes the informal protocol for the delegate of an image browser view.
Cocoa, Quartz Reference 2006-12-07
IKImageBrowserItem Protocol Reference (HTML) (PDF)
Describes the informal protocol used by an image browser view to access the data source for an item.
Cocoa, Quartz Reference 2007-01-12
IKImageBrowserView Class Reference (HTML) (PDF)
Describes the class that can display and browse a large amount of images and movies in an efficient manner.
Cocoa, Quartz Reference 2006-12-13
IKImageEditPanel Class Reference (HTML) (PDF)
Describes the class that provides a panel optimized for image editing.
Cocoa, Quartz Reference 2006-12-06
IKImageEditPanelDataSource Protocol Reference (HTML) (PDF)
Describes the mthods than an image edit panel object uses to access the contents of its data source object.
Cocoa, Quartz Reference 2006-12-06
IKImageView Class Reference (HTML) (PDF)
Describes the class used to display images efficiently at the same time it supports image editing.
Cocoa, Quartz Reference 2008-04-08
IKPictureTaker Class Reference (HTML) (PDF)
Descibes the class that provides a panel for choosing images.
Cocoa, Quartz Reference 2007-10-31
IKSaveOptions Class Reference (HTML) (PDF)
Describes the class that initializes, adds, and manages user interface options for saving image data.
Cocoa, Quartz Reference 2006-12-06
IKSlideshow Class Reference (HTML) (PDF)
Describes the class that encapsulates a data source and options for a slideshow.
Cocoa, Quartz Reference 2007-10-31
IKSlideshowDataSource Protocol Reference (HTML) (PDF)
Describes the methods that a slideshow object uses to access the contents of its data source object.
Cocoa, Quartz Reference 2009-03-04
IKSlideshowDemo (HTML) (DMG) (ZIP)
This small sample project shows how to use the ImageKit Slideshow to display images or PDFs.
Cocoa, Quartz Sample Code 2006-08-01
Image Capture Applications Reference (HTML)
Describes the API that applications use to communicate with image capture devices such as cameras and scanners.
General, Hardware Reference 2008-04-08
Image Capture Device Modules Reference (HTML)
Describes the API to add support for image capture devices, such as cameras, phones, and scanners, to Mac OS X.
Hardware & Drivers Reference 2008-04-08
Image Color Management (HTML)
TN2115: Learn how to properly support color management in your application.
ColorSync, Quartz Technical Notes 2006-11-01
Image Difference (HTML) (DMG) (ZIP)
Demonstrates a way to use Quartz's compositing capability to find the difference between two images.
Cocoa, Quartz Sample Code 2003-01-30
Image I/O Programming Guide (HTML) (PDF)
Explains how to read and write image data using the Image I/O framework.
Carbon, Cocoa, Quartz Guides 2007-07-02
Image I/O Reference Collection (HTML) (PDF)
Describes the API for reading and writing image data.
Carbon, Quartz Reference 2007-04-09
Image Kit Programming Guide (HTML) (PDF)
Explains how to support browsing, viewing, editing, and processing images.
Cocoa, Quartz Guides 2008-06-09
Image Kit Reference Collection (HTML) (PDF)
Describes the Objective-C API for providing a user interface for images, image editing, and image processing.
Cocoa, Quartz Reference 2006-12-06
Image Kit with Core Data (HTML) (DMG) (ZIP)
Using Image Kit's browser view with Core Data content.
Cocoa, Quartz Sample Code 2008-07-25
Image Unit Tutorial (HTML) (PDF)
Describes how to write image processing kernels and package them for distribution.
Carbon, Cocoa, Games, Quartz Guides 2009-05-06
Image Views (HTML) (PDF)
Explains how to use Cocoa image views.
Cocoa Guides 2002-11-12
ImageApp (HTML) (DMG) (ZIP)
Demonstrates basic image handling using the ImageIO APIs in Mac OS X 10.4 Tiger
Cocoa, ColorSync, Quartz Sample Code 2008-01-24
ImageBackground (HTML) (DMG) (ZIP)
Shows how to draw an image in the background of an NSOutlineView and NSTableView.
Cocoa Sample Code 2006-10-02
ImageBrowser (HTML) (DMG) (ZIP)
Demonstrates the ImageKit's IKImageBrowserView to browse images in a basic Cocoa application.
Cocoa Sample Code 2007-03-13
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
Improving ATSUI Text Drawing Performance (HTML)
QA1027: Talks about one way of improving ATSUI text drawing performance.
Typography Technical Q&As 2001-04-17
Incorrect Inside Macintosh Volume V documentation (HTML)
Deprecated - QD15: Identifies incorrect documentation in Inside Macintosh Volume V regarding the formats of PnPixPat and BkPixPat opcodes.
Carbon Technical Q&As 1995-09-15
IOKit Framework Headers (HTML) (日本語 HTML)
QA1107: Describes the differences between the headers in IOKit.framework and the I/O Kit headers in Kernel.framework.
Hardware & Drivers Technical Q&As 2002-01-15
Is ColorSync thread safe? (HTML) (日本語 HTML)
QA1261: Discusses ColorSync thread-safety issues.
Carbon, Cocoa, ColorSync, Games, Hardware & Drivers, Performance, QuickTime Technical Q&As 2003-04-17
iSight Programming Guide (HTML) (PDF)
Describes the Apple iSight video camera and its enhancements.
Hardware & Drivers Guides 2004-10-05
Java Advanced Imaging and Java 3D for Java 1.4.1 and 1.4.2 Release Notes (HTML)
Describes notes and known issues about Java Advanced Imaging and Java 3D for Java 1.4.1 and 1.4.2 on Mac OS X.
Java Release Notes 2004-10-05
JustDraw (HTML) (DMG) (ZIP)
Sample code being used in the WWDC 2005 Hands-On session 215 "Moving from QD to Quartz"
Carbon, Quartz Sample Code 2005-06-01
LayerBackedOpenGLView (HTML) (DMG) (ZIP)
"LayerBackedOpenGLView" provides a simple example of hosting Cocoa controls as subviews of an NSOpenGLView.
Cocoa Sample Code 2007-06-12
Legacy Devices (HTML)
HW84: Discusses why legacy devices with hard-wired I/O addresses may not work properly with Open Firmware.
Hardware & Drivers Technical Q&As 2000-03-20
Leopard Technology Series for Developers: Graphics & Media Overview (HTML)
Describes Leopard's graphics and media capabilities.
General Articles 2007-12-11
Link Snoop (HTML) (DMG) (ZIP)
Shows how to use PDFKit to scan for and highlight link annotations in PDFs.
Cocoa Sample Code 2005-06-01
LiveVideoMixer (HTML) (DMG) (ZIP)
LiveVideoMixer demonstrates customized video rendering with QuickTime 7 and CoreVideo and OpenGL.
OpenGL, QuickTime, Video Sample Code 2008-04-24
LiveVideoMixer2 (HTML) (DMG) (ZIP)
An updated LiveVideoMixer with DV out over FireWire
OpenGL, QuickTime Sample Code 2006-05-05
LiveVideoMixer3 (HTML) (DMG) (ZIP)
LiveVideoMixer3 is extended to support Video In via QTKit
Cocoa, QuickTime Sample Code 2006-08-01
LockPixels and DisposeGWorld with QTNewGWorldFromPtr (HTML)
QA1007: Clarifies some issues surrounding pointer ownership when creating GWorlds with QTNewGWorldFromPtr
Carbon, QuickTime Technical Q&As 2001-02-26
The Mac OS X Font Manager (HTML) (日本語 HTML)
TN2024: Information on installing and accessing fonts programatically.
Typography Technical Notes 2001-07-11
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
Mac OS X QuickDraw Performance (HTML) (日本語 HTML)
TN2051: Some of the trouble spots in the Mac OS X windowing system and how to avoid them.
Carbon Technical Notes 2003-02-13
Making the most of Cocoa bindings in Quartz Composer (HTML)
TN2146: Describes how to best use Cocoa bindings with Quartz Composer.
Cocoa, Quartz Technical Notes 2006-03-03
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
MassiveImage (HTML) (DMG) (ZIP)
Shows how to use a CGDataProvider to save a very large image with Image IO
Carbon, Cocoa, Games, Quartz Sample Code 2007-09-27
Matching Fonts With Font Sync (HTML) (PDF)
Conceptual information about comparing and identifying fonts based upon their content.
Typography Guides 2003-02-12
Maximizing Mac OS X Application Performance (HTML)
Learn how to achieve better performance on Mac OS X.
Performance Articles 2003-06-23
Missing ColorSync Profiles (HTML) (日本語 HTML)
CS13: Describes ColorSync profiles, focusing on the desc tag of the profile and the results of incorrect tags.
ColorSync Technical Q&As 1999-05-03
Mode (HTML) (DMG) (ZIP)
Shows how to enumerate displays and list the available modes for each display.
Carbon, Games, Quartz Sample Code 2003-01-14
ModeWhacker (HTML) (DMG) (ZIP)
Shows how to enumerate, select, capture, manipulate, and release displays using the CGDirectDisplay API.
Carbon, Games, Quartz Sample Code 2003-01-14
MoreIsBetter (HTML) (DMG) (ZIP)
Library providing indispensable wrapers and workarounds for many areas of Mac OS programming.
Carbon Sample Code 2003-10-27
MouseTracking (HTML) (DMG) (ZIP)
Sample code used in the WWDC 2005 Hands-On session 215 "Moving from QD to Quartz"
Carbon, Quartz Sample Code 2005-06-01
Multilingual Text Engine Reference (HTML) (PDF)
Describes the C API for supporting Unicode text editing.
Typography Reference 2007-02-19
Multithreaded usage of the QCRenderer (HTML)
QA1538: Describes an issue that may arise when using the QCRenderer in a multi-threaded application.
Quartz Technical Q&As 2008-09-08
MyCustomColorPicker (HTML) (DMG) (ZIP)
Shows how to write a custom color picker using Cocoa.
Cocoa Sample Code 2006-10-09
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
MyPhoto (HTML) (DMG) (ZIP)
Demonstrates preferred techniques for working with the Image Capture APIs
Carbon, Cocoa Sample Code 2005-06-01
NamingTableAccess (HTML) (DMG) (ZIP)
Digs out the contents of the NamingTable in a TrueType 'sfnt'.
Typography Sample Code 2003-01-14
New ColorSync 3.0 APIs (HTML) (日本語 HTML)
TN1185: APIs application can use to take advantage of new features available in ColorSync 3.0.
ColorSync Technical Notes 2000-08-14
NewCCursor (HTML) (DMG) (ZIP)
Deprecated - Shows how to create a black and white 'CURS' and a color 'crsr' cursor resource by hand.
Carbon Sample Code 2003-01-14
NSAffineTransform Additions Reference (HTML) (PDF)
Describes additions to support affine transformations.
Cocoa Reference 2007-02-28
NSAffineTransform Class Reference (HTML) (PDF)
Describes an affine transformation from one coordinate space to another.
Cocoa Reference 2007-01-15
NSAnimation Class Reference (HTML) (PDF)
Describes the behavior of an animation.
Cocoa Reference 2007-10-31
NSBezierPath Class Reference (HTML) (PDF)
Describes a vector-based path consisting of line and curve segments.
Cocoa Reference 2007-03-02