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
ImageApp (HTML) (DMG) (ZIP)
Demonstrates basic image handling using the ImageIO APIs in Mac OS X 10.4 Tiger
ColorSync Sample Code 2008-01-24
Is ColorSync thread safe? (HTML) (日本語 HTML)
QA1261: Discusses ColorSync thread-safety issues.
ColorSync Technical Q&As 2003-04-17
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
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
Setting the ColorSync profile for a NSBitmapImageRep object (HTML)
QA1369: Setting the ColorSync profile for a NSBitmapImageRep object
ColorSync Technical Q&As 2004-09-08
Special Profile Sizes in ColorSync Manager (HTML)
CS03: Answers several questions on special profile sizes in ColorSync Manager and other efficiency issues.
ColorSync Technical Q&As 1995-05-01
Successful Call to NCWNewColorWorld (HTML) (日本語 HTML)
CS08: Explains the return value of NCWNewColorWorld and the CMWorldRef parameter as a valid return value when successful.
ColorSync Technical Q&As 1996-02-09
Using cmPathBased profile locations on Mac OS X (HTML) (日本語 HTML)
QA1203: Shows how to correctly specify cmPath-based profile locations on Mac OS X
ColorSync Technical Q&As 2002-11-06
Using Embedded EPS Profiles (HTML) (日本語 HTML)
CS09: Gives source on embedding ColorSync profiles in EPS as well as PICT and TIFF formats.
ColorSync Technical Q&As 1996-02-09
What's New With ColorSync 2.6 (HTML) (日本語 HTML)
TN1160: Details the changes in ColorSync 2.6.
ColorSync Technical Notes 1999-04-01
Why isn't my ColorSync CMM recognized on Mac OS X 10.5? (HTML)
QA1557: Discusses how to upgrade your ColorSync CMM to run on Mac OS X 10.5
ColorSync Technical Q&As 2007-10-26
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.
Games Release Notes 2008-04-08
AGL Changes for Mac OS X Leopard (v. 10.5) (HTML)
QA1523: This Q&A describes the new and deprecated APIs for Apple OpenGL (AGL)
Games Technical Q&As 2008-01-04
Animation Overview (HTML) (PDF)
Describes the animation facilities provided by Mac OS X.
Games Guides 2008-10-15
Building WingNuts in Xcode with OpenGL: Freeverse Creates a Great Mac-only Game (HTML)
Read how Freeverse created their award-winning Mac-only game, WingNuts 2, using Core Image, Interface Builder, Xcode, and OpenGL.
Games Articles 2007-05-15
CALayerEssentials (HTML) (DMG) (ZIP)
Demonstrates the basics of setting up various Core Animation layers
Games Sample Code 2008-09-30
Carbon Full Screen Conundrums (HTML)
QA1068: Describes the available Mac OS X DrawSprocket services.
Games Technical Q&As 2001-08-20
CGBitmapContextCreate Supported Color Spaces (HTML)
QA1037: Lists the color space and alpha info combinations currently supported by CGBitmapContextCreate.
Games Technical Q&As 2007-07-18
CGGamma (HTML) (DMG) (ZIP)
Shows how to use CGDirectDisplay calls to manipulate display gamma tables.
Games Sample Code 2003-01-14
CIColor Class Reference (HTML) (PDF)
Describes the class used to manage color values and color spaces for Core Image filters.
Games Reference 2006-12-05
CIColorTracking (HTML) (DMG) (ZIP)
An Objective-C applicaton that implements a GPU-based technique to find the location of a uniquely colored object in a scene
Games Sample Code 2008-04-24
CIContext Class Reference (HTML) (PDF)
Describes the class that provides an evaluation context for rendering a Core Image image through Quartz 2D or OpenGL.
Games Reference 2007-03-16
CIFilter Class Reference (HTML) (PDF)
Describes the class that processes image data and produces a Core Image image as output.
Games Reference 2007-12-11
CIFilterShape Class Reference (HTML) (PDF)
Describes the class that defines the bounding shape of a filter and the domain of definition of a filter operation.
Games Reference 2006-12-07
CIImage Class Reference (HTML) (PDF)
Describes the class that represents an immutable Core Image image.
Games Reference 2007-10-31
CIImageAccumulator Class Reference (HTML) (PDF)
Describes the class that enables feedback-based image processing.
Games Reference 2007-01-05
CIImageProvider Protocol Reference (HTML) (PDF)
Describes the informal protocol used to supply bitmap data for creating or initializing a Core Image image.
Games Reference 2006-12-05
CIKernel Class Reference (HTML) (PDF)
Describes the class that operates on individual pixels using a kernel routine.
Games Reference 2006-12-05
CIPlugIn Class Reference (HTML) (PDF)
Describes the class that is responsible for loading image units.
Games Reference 2006-12-05
CIPlugInRegistration Protocol Reference (HTML) (PDF)
Describes the protocol used to load Core Image image units.
Games Reference 2006-12-07
CISampler Class Reference (HTML) (PDF)
Describes the class that retrieves samples of images that are then processed by a Core Image kernel.
Games Reference 2006-12-07
CIVector Class Reference (HTML) (PDF)
Describes the class used to pass parameter values to Core Image filters.
Games Reference 2006-12-07
Context Sharing Tips (HTML) (日本語 HTML)
QA1248: How to correctly share OpenGL contexts and what the limits on this sharing are.
Games Technical Q&As 2005-02-07
Core Animation properties and Reference Counting (HTML)
QA1565: Describes a discrepancy between the property declarations in Core Animation and the actual behavior.
Games Technical Q&As 2008-11-24
Core Image Kernel Language Reference (HTML) (PDF)
Describes the symbols for writing image-processing kernels.
Games Reference 2008-06-09
Core Image Programming Guide (HTML) (PDF)
Provides an overview and explains how to use and create image filters and image units.
Games Guides 2008-06-09
Core Image Reference Collection (HTML) (PDF)
Describes the Objective-C API for using and creating filters for image processing.
Games Reference 2006-12-05
CoreImageGLTextureFBO (HTML) (DMG) (ZIP)
Making OpenGL textures with Core Image
Games Sample Code 2008-07-30
CubePuzzle (HTML) (DMG) (ZIP)
Models a Rubik's Cube using Cocoa and OpenGL
Games Sample Code 2003-04-21
Current GDevice Dependencies (HTML) (日本語 HTML)
QA1115: Describes potential problems with creating windows or ports when the current GDevice isn't the main device.
Games Technical Q&As 2002-02-13
Ensuring hardware accelerated rendering for your OpenGL application (HTML)
QA1502: Using the NoRecovery pixel format attribute and how to check whether vertex and fragment processing is executed on the GPU or CPU
Games Technical Q&As 2007-07-18
GeekGameBoard (HTML) (DMG) (ZIP)
Shows how to use Core Animation for the user interface of a board or card game.
Games Sample Code 2007-12-19
GetProcAdress and OpenGL Entry Points (HTML) (日本語 HTML)
QA1188: Technique for finding function pointers for OpenGL entry points in Cocoa and Carbon
Games Technical Q&As 2002-11-25
Getting the pixel data from a CGImage object (HTML)
QA1509: Describes how to access the pixel data of a CGImage object
Games Technical Q&As 2008-08-27
GLSL Showpiece Lite (HTML) (DMG) (ZIP)
Using GLSL from a Cocoa application
Games Sample Code 2007-11-05
GLSLShowpiece (HTML) (DMG) (ZIP)
GLSLShowpiece demonstrates several Vertex and Fragment shaders
Games Sample Code 2006-07-17
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.
Games 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.
Games Technical Q&As 2004-10-11
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.
Games Technical Q&As 2002-12-04
How do I use QuickDraw with CGDirectDisplay? (HTML)
QA1011: Explains how to draw to a CGDirectDisplay-captured display using QuickDraw.
Games Technical Q&As 2001-04-11
Image Unit Tutorial (HTML) (PDF)
Describes how to write image processing kernels and package them for distribution.
Games Guides 2009-05-06
Is ColorSync thread safe? (HTML) (日本語 HTML)
QA1261: Discusses ColorSync thread-safety issues.
Games Technical Q&As 2003-04-17
MassiveImage (HTML) (DMG) (ZIP)
Shows how to use a CGDataProvider to save a very large image with Image IO
Games Sample Code 2007-09-27
Mode (HTML) (DMG) (ZIP)
Shows how to enumerate displays and list the available modes for each display.
Games Sample Code 2003-01-14
ModeWhacker (HTML) (DMG) (ZIP)
Shows how to enumerate, select, capture, manipulate, and release displays using the CGDirectDisplay API.
Games Sample Code 2003-01-14
NSGLImage (HTML) (DMG) (ZIP)
Deprecated - Demonstrates how to texture in OpenGL with an NSImage and/or NSBitmapImageRep
Games Sample Code 2004-12-01
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
Games Sample Code 2008-02-06
OpenGL Programming Guide for Mac OS X (HTML) (PDF)
Explains how to use the Apple implementation of OpenGL to create 3D graphics for Cocoa and Carbon applications.
Games Guides 2008-06-09
OpenGL Release Highlights - Mac OS X 10.3 Panther (HTML)
TN2131: Contains a list of bugs along with a short description on a release-by-release basis
Games Technical Notes 2005-02-04
Out of This GWorld (HTML) (DMG) (ZIP)
Deprecated - Demonstrates the use of offscreen GWorlds and palette animation to simulate animation.
Games Sample Code 2003-03-12
QDFlushPortBuffer (HTML) (日本語 HTML)
QD65: Describes a possible solution for window update problems under Carbon.
Games Technical Q&As 2000-11-08
Quartz 2D Reference Collection (HTML) (PDF)
Describes the C API for the native two-dimensional drawing engine in Mac OS X.
Games Reference 2006-12-18
Quartz Composer Texture (HTML) (DMG) (ZIP)
Shows how to use a Quartz Composer composition as an OpenGL texture.
Games 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.
Games Technical Notes 2008-09-16
Requirements for Quartz GL (HTML)
QA1536: Describes the requirements for enabling Quartz GL.
Games Technical Q&As 2008-08-08
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
Games Technical Q&As 2007-07-16
TexturePerformanceDemo (HTML) (DMG) (ZIP)
OpenGL texture optimization demo for WWDC Session 214
Games Sample Code 2005-06-01
Tiger Developer Overview Series: Developing with Core Image (HTML)
Learn how Core Image can help you take your graphics development to the next level.
Games Articles 2005-03-09
Updating OpenGL Contexts (HTML) (日本語 HTML)
QA1209: When and why to update an OpenGL context in response to system and user actions.
Games Technical Q&As 2003-06-19
Using Clip Region and Buffer Rectangles with OpenGL Carbon (HTML) (日本語 HTML)
QA1222: Shows the basics of using buffer rectangles and clip regions with AGL.
Games Technical Q&As 2002-12-19
VertexPerformanceDemo (HTML) (DMG) (ZIP)
Vertex optimization demo for WWDC Session 214
Games Sample Code 2005-06-01
VideoHardwareInfo (HTML) (DMG) (ZIP)
Query VRAM, Quartz Extreme support, OpenGL extensions and renderer, GLSL version and support.
Games Sample Code 2007-05-14
Application Services Framework Reference (HTML) (PDF)
Describes the API for a number of services--such as Quartz 2D and ATSUI--that are essential to Carbon applications.
General Reference 2007-10-31
Boinx Starts with Sample Code: FotoMagico Is a Powerful Digital Slideshow (HTML)
Starting with Apple sample code, tools and technologies, Boinx wrote FotoMagico in a matter of months.
General Articles 2007-12-11
Image Capture Applications Reference (HTML)
Describes the API that applications use to communicate with image capture devices such as cameras and scanners.
General Reference 2008-04-08
Leopard Technology Series for Developers: Graphics & Media Overview (HTML)
Describes Leopard's graphics and media capabilities.
General Articles 2007-12-11
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.
General Articles 2007-07-10
Image Capture Applications Reference (HTML)
Describes the API that applications use to communicate with image capture devices such as cameras and scanners.
Hardware Reference 2008-04-08
Requirements for Quartz GL (HTML)
QA1536: Describes the requirements for enabling Quartz GL.
Hardware Technical Q&As 2008-08-08
BlitNoVBL (HTML) (DMG) (ZIP)
Shows how to draw directly to the screen without syncing to the VBL of the monitor.
Hardware & Drivers 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.
Hardware & Drivers Sample Code 2003-01-14
Difference between using Restart or Shut Down in the Finder's Special menu in Open Firmware (HTML) (日本語 HTML)
HW47: Explains the differences between using Restart or Shut Down on Open Firmware
Hardware & Drivers Technical Q&As 1999-02-15
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
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.
Hardware & Drivers 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
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
The "packages" node in the device tree (HTML)
HW90: Describes the "packages" node in the Open Firmware device tree.
Hardware & Drivers Technical Q&As 2006-02-22
Quartz Display Services Reference (HTML) (PDF)
Describes the interface for configuring and controlling display hardware.
Hardware & Drivers Reference 2008-11-19
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.
Hardware & Drivers Technical Q&As 2005-08-16
VideoHardwareInfo (HTML) (DMG) (ZIP)
Query VRAM, Quartz Extreme support, OpenGL extensions and renderer, GLSL version and support.
Hardware & Drivers Sample Code 2007-05-14
When to use PCMCIA, PC Card, and CardBus (HTML)
HW77: Explains the differences between PCMCIA, PC Card, and CardBus.
Hardware & Drivers Technical Q&As 1999-11-15
Fractal Performance (HTML) (DMG) (ZIP)
Three fractal applications that show various bottlenecks and how they can be fixed.
Java Sample Code 2006-04-17
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
AGL Changes for Mac OS X Leopard (v. 10.5) (HTML)
QA1523: This Q&A describes the new and deprecated APIs for Apple OpenGL (AGL)
OpenGL Technical Q&As 2008-01-04
AGL Reference (HTML) (PDF)
Describes the Apple graphics library for Carbon applications that use OpenGL.
OpenGL Reference 2007-10-31
AGL Reference Update (HTML) (PDF)
Summarizes the symbols added to the AGL framework.
OpenGL Release Notes 2007-07-18
aglClipBufferRect (HTML) (DMG) (ZIP)
Shows the use of clip regions and buffer rects in AGL.
OpenGL Sample Code 2003-01-14
AGLSurfaceTexture (HTML) (DMG) (ZIP)
Example of render to texture/texture from surface using aglSurfaceTexture.
OpenGL Sample Code 2003-07-07
BoingX (HTML) (DMG) (ZIP)
Shows off using Quartz Extreme to provide borderless OpenGL content on the desktop.
OpenGL Sample Code 2007-11-06