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
Sort by
Topic
Sorted by
Resource Type
Sort by
Date
AGLSurfaceTexture (HTML) (DMG) (ZIP)
Example of render to texture/texture from surface using aglSurfaceTexture.
Carbon, OpenGL Sample Code 2003-07-07
Carbon GLSnapshot (HTML) (DMG) (ZIP)
Demonstrates the use of OpenGL with Quicktime to capture OpenGL content.
OpenGL Sample Code 2003-07-07
NURBSSurfaceVertexProg (HTML) (DMG) (ZIP)
Uses a vertex program to compute the vertex position for a NURB surface.
OpenGL Sample Code 2003-07-07
SurfaceVertexProgram (HTML) (DMG) (ZIP)
Vertex program that demonstrates the use of a UV mesh to draw an implicit surface.
OpenGL Sample Code 2003-07-07
VBL (HTML) (DMG) (ZIP)
A simple example of how to create an OpenGLView in AppKit.
Cocoa, OpenGL Sample Code 2003-07-07
Vertex Optimization (HTML) (DMG) (ZIP)
Shows examples of optimized vertex throughput.
OpenGL Sample Code 2003-07-07
CubePuzzle (HTML) (DMG) (ZIP)
Models a Rubik's Cube using Cocoa and OpenGL
Games, OpenGL Sample Code 2003-04-21
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
OpenGLCompositorLab (HTML) (DMG) (ZIP)
Demonstrates using OpenGL to composite multiple sources in hardware. Requires NVIDIA GeForce 4 Ti hardware.
Cocoa, OpenGL, QuickTime Sample Code 2003-04-21
Out of This GWorld (HTML) (DMG) (ZIP)
Deprecated - Demonstrates the use of offscreen GWorlds and palette animation to simulate animation.
Carbon, Games Sample Code 2003-03-12
TubeTest (HTML) (DMG) (ZIP)
Deprecated - The program is a simple demonstration of how to use the Palette Manager in a color program.
Carbon Sample Code 2003-03-12
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
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
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
aglClipBufferRect (HTML) (DMG) (ZIP)
Shows the use of clip regions and buffer rects in AGL.
Carbon, OpenGL Sample Code 2003-01-14
BlitNoVBL (HTML) (DMG) (ZIP)
Shows how to draw directly to the screen without syncing to the VBL of the monitor.
Hardware & Drivers, Performance, 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.
Hardware & Drivers, Performance, Quartz Sample Code 2003-01-14
CarbonQuartzDrawingWPrinting (HTML) (DMG) (ZIP)
Deprecated - Demonstrates mixing QuickDraw and Quartz 2D drawing both on screen and during printing.
Carbon, Printing, Quartz Sample Code 2003-01-14
CGDrawPicture (HTML) (DMG) (ZIP)
Deprecated - Shows how to use the QDPictDrawToCGContext API.
Cocoa, Quartz Sample Code 2003-01-14
CGGamma (HTML) (DMG) (ZIP)
Shows how to use CGDirectDisplay calls to manipulate display gamma tables.
Games, Quartz Sample Code 2003-01-14
ColorBars (HTML) (DMG) (ZIP)
Shows how to enumerate, select, capture, manipulate, draw to, and release displays using the CGDirectDisplay API.
Carbon, Cocoa, Quartz Sample Code 2003-01-14
ColorSyncDevices (HTML) (DMG) (ZIP)
Demonstrates how to use the new ColorSync Device Support APIs introduced with Mac OS X.
Carbon, ColorSync Sample Code 2003-01-14
CTMClip (HTML) (DMG) (ZIP)
Deprecated - Shows how to manipulate the Quartz 2D Current Transform Matrix (CTM) for image drawing with clipping.
Carbon, Cocoa, Quartz Sample Code 2003-01-14
CTMDemo (HTML) (DMG) (ZIP)
Deprecated - Shows how to manipulate the Quartz 2D Current Transform Matrix (CTM) for image drawing without clipping.
Carbon, Cocoa, Quartz Sample Code 2003-01-14
FullScreen (HTML) (DMG) (ZIP)
Shows how to use BeginFullScreen and EndFullScreen to enter and exit full-screen mode.
Carbon Sample Code 2003-01-14
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
NamingTableAccess (HTML) (DMG) (ZIP)
Digs out the contents of the NamingTable in a TrueType 'sfnt'.
Typography Sample Code 2003-01-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
PDEProject (HTML) (DMG) (ZIP)
Deprecated - Demonstrates an application-hosted printing dialog extension (PDE) that displays a custom pane in the Print dialog.
Carbon, Printing Sample Code 2003-01-14
Play Video Sample (HTML) (DMG) (ZIP)
Deprecated - The sample makes use of the RequestVideo sample code API.
Carbon Sample Code 2003-01-14
QTtoCG (HTML) (DMG) (ZIP)
Shows how to create a CGImageRef with the proper ColorSync profile from a QuickTime image on disk.
Cocoa, Quartz, QuickTime Sample Code 2003-01-14
Quartz EB (HTML) (DMG) (ZIP)
WWDC 2001 Early Bird Quartz 2D tutorial of vector drawing and PDF import/export.
Cocoa, Quartz Sample Code 2003-01-14
StyleFlatteningSample (HTML) (DMG) (ZIP)
Shows how to use the ATSUFlatten and ATSUUnflatten APIs.
Typography Sample Code 2003-01-14
VertexPerformanceTest (HTML) (DMG) (ZIP)
A tool that measures triangle throughput and allows comparison of different methods.
OpenGL Sample Code 2003-01-14
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
OpenGL Performance Optimization : The Basics (HTML)
TN2093: This document describes some of the concepts and techniques for optimizing performance in OpenGL applications.
OpenGL Technical Notes 2008-11-05
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, OpenGL, Performance Technical Notes 2008-09-16
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
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
Enabling multi-threaded execution of the OpenGL framework (HTML)
TN2085: OpenGL on Intel-based Macintosh systems can use multi-threading to increase the performance of CPU-bound OpenGL-based applications.
OpenGL Technical Notes 2006-11-07
Image Color Management (HTML)
TN2115: Learn how to properly support color management in your application.
ColorSync, Quartz Technical Notes 2006-11-01
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
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
Coalesced Updates (HTML)
TN2133: How to achieve the maxium frame rate in your Mac OS X application
Performance Technical Notes 2006-01-20
Getting images in and out from Quartz Composer compositions (HTML)
TN2143: Describes how to efficiently pass images into and out of Quartz Composer
Cocoa, Quartz Technical Notes 2005-10-04
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
ColorSync on Mac OS X (HTML) (日本語 HTML)
TN2035: Describes ColorSync, which is fundamentally integrated into Mac OS X.
ColorSync, Printing, Quartz Technical Notes 2005-08-10
Efficiently using Quartz Composer compositions with QuickTime (HTML)
TN2145: Describes how to best use Quartz Composer compositions in a QuickTime environment.
Quartz, QuickTime Technical Notes 2005-07-05
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
Carbon, Cocoa, Games, OpenGL Technical Notes 2005-02-04
Understanding and Detecting OpenGL Functionality (HTML)
TN2080: Discusses OpenGL API design, and how to access the full power of hardware and software renderers.
OpenGL Technical Notes 2003-12-29
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
The Mac OS X Font Manager (HTML) (日本語 HTML)
TN2024: Information on installing and accessing fonts programatically.
Typography Technical Notes 2001-07-11
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
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
What's New With ColorSync 2.6 (HTML) (日本語 HTML)
TN1160: Details the changes in ColorSync 2.6.
ColorSync Technical Notes 1999-04-01
Driving OpenGL Rendering Loops (HTML)
QA1385: Using Core Video display links (CVDisplayLink) or Cocoa timers (NSTimer) to drive an OpenGL rendering loop
Cocoa, OpenGL, Performance Technical Q&As 2009-05-01
Core Animation properties and Reference Counting (HTML)
QA1565: Describes a discrepancy between the property declarations in Core Animation and the actual behavior.
Cocoa, Games, Quartz Technical Q&As 2008-11-24
Animating the frame of a CALayer. (HTML)
QA1620: Explains how the frame property of a layer interacts with animations.
Cocoa, Quartz Technical Q&As 2008-10-24
Using GLUT and OpenGL on Mac OS X (HTML)
QA1613: States the required steps to add GLUT and OpenGL to an Xcode project.
OpenGL Technical Q&As 2008-10-13
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
Disabling Processor Cores on a Multi-Core System (HTML) (日本語 HTML)
QA1141: Describes how to disable processor cores on a multi-core system for testing purposes.
Performance Technical Q&As 2008-09-16
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
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
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
Requirements for Quartz GL (HTML)
QA1536: Describes the requirements for enabling Quartz GL.
Carbon, Cocoa, Games, Hardware, Performance, Quartz Technical Q&As 2008-08-08
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
QTKit Capture - Specifying Media Compression Settings (HTML)
QA1586: Describes how to configure a file output object to save compressed captured media.
Cocoa Technical Q&As 2008-03-11
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)
Carbon, Games, OpenGL Technical Q&As 2008-01-04
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
Compiling X11 / OpenGL applications on Mac OS X v.10.5 Leopard (HTML)
QA1567: Trying to compile X11 / OpenGL application on Mac OS X v.10.5 result on "ld: cycle in dylib re-exports with /usr/X11R6/lib/libGL.dylib""
OpenGL Technical Q&As 2007-10-30
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
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
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.
OpenGL, QuickTime Technical Q&As 2007-09-18
How to measure CG text (HTML)
QA1051: Explains how to measure Core Graphics text.
Carbon, Cocoa, Printing, Quartz Technical Q&As 2007-08-02
CGBitmapContextCreate Supported Color Spaces (HTML)
QA1037: Lists the color space and alpha info combinations currently supported by CGBitmapContextCreate.
Carbon, Cocoa, Games, Quartz Technical Q&As 2007-07-18
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, OpenGL Technical Q&As 2007-07-18
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, OpenGL, Performance Technical Q&As 2007-07-16
Using UTIs to Identify Image Files (HTML)
QA1518: Explains how to use Uniform Type Identifiers to identify what files can be opened at images.
Cocoa Technical Q&As 2007-05-11
Availability of Quartz Composer Patches in Web Kit (HTML)
QA1505: Details which Quartz Composer patches are available in Web Kit
Carbon, Cocoa, Quartz Technical Q&As 2007-03-05
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
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
ColorSync Color Matching on Intel-based Macs (HTML)
QA1464: Describes special considerations for byte ordering when performing ColorSync color matching on Intel-based Macs
ColorSync Technical Q&As 2006-03-16
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
Debugging Graphics with QuartzDebug (HTML) (日本語 HTML)
QA1236: Explains how to use QuartzDebug to debug graphics issues.
Quartz Technical Q&As 2006-01-12
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
Apple RGB and Generic RGB profiles explained (HTML)
QA1430: Discusses use of the Apple RGB and Generic RGB profiles for untagged data on Mac OS X
ColorSync Technical Q&As 2005-10-17
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
Creating color spaces that ensure color matching. (HTML)
QA1396: How to create color spaces that ensure color matching.
ColorSync, Quartz Technical Q&As 2005-10-04
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
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
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, Performance Technical Q&As 2005-08-16
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
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, Tools Technical Q&As 2005-06-15
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
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
Finding an NSView's current magnification. (HTML)
QA1346: How to discover the current magnification (zoom level) of any NSView.
Cocoa, Quartz Technical Q&As 2005-03-08
Context Sharing Tips (HTML) (日本語 HTML)
QA1248: How to correctly share OpenGL contexts and what the limits on this sharing are.
Carbon, Games, OpenGL Technical Q&As 2005-02-07
NSOpenGLView redraw problems after a window is closed and re-opened. (HTML)
QA1353: Workaround for NSOpenGLView failure to draw after its window is closed and re-opened.
Cocoa, OpenGL Technical Q&As 2004-12-03
Using Interface Builder's NSOpenGLView or Custom View objects for an OpenGL application (HTML)
QA1167: Describes usage cases for both NSOpenGLViews and Custom Views for Cocoa OpenGL applications
Cocoa, OpenGL Technical Q&As 2004-10-28