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
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.
OpenGL Articles 2007-12-11
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.
OpenGL Articles 2007-05-15
CALayerEssentials (HTML) (DMG) (ZIP)
Demonstrates the basics of setting up various Core Animation layers
OpenGL Sample Code 2008-09-30
Carbon GLSnapshot (HTML) (DMG) (ZIP)
Demonstrates the use of OpenGL with Quicktime to capture OpenGL content.
OpenGL Sample Code 2003-07-07
CGL Reference (HTML) (PDF)
Describes Apple's low level interface for OpenGL contexts.
OpenGL Reference 2007-06-28
CIAnnotation (HTML) (DMG) (ZIP)
Image annotation application using Core Image Filters. Demonstrates creation and usage of Image Units.
OpenGL Sample Code 2005-08-01
CITransitionSelectorSample2 (HTML) (DMG) (ZIP)
Showing all available Core Image transitions in a scrollable NSOpenGLView
OpenGL Sample Code 2006-09-18
Cocoa OpenGL (HTML) (DMG) (ZIP)
Demonstrates using Cocoa with OpenGL, including window setup and event handling.
OpenGL Sample Code 2007-10-22
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
Context Sharing Tips (HTML) (日本語 HTML)
QA1248: How to correctly share OpenGL contexts and what the limits on this sharing are.
OpenGL Technical Q&As 2005-02-07
CoreImageGLTextureFBO (HTML) (DMG) (ZIP)
Making OpenGL textures with Core Image
OpenGL Sample Code 2008-07-30
Creating an OpenGL texture from an NSView (HTML) (日本語 HTML)
QA1325: Addresses the issues involved with using an NSView as the source data for an OpenGL texture.
OpenGL Technical Q&As 2004-02-13
CubePuzzle (HTML) (DMG) (ZIP)
Models a Rubik's Cube using Cocoa and OpenGL
OpenGL Sample Code 2003-04-21
Draw Pixels (HTML) (DMG) (ZIP)
An example of the correct use of DrawPixels.
OpenGL Sample Code 2003-07-16
Driving OpenGL Rendering Loops (HTML)
QA1385: Using Core Video display links (CVDisplayLink) or Cocoa timers (NSTimer) to drive an OpenGL rendering loop
OpenGL Technical Q&As 2009-05-01
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
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
OpenGL Technical Q&As 2007-07-18
FBOBunnies (HTML) (DMG) (ZIP)
Demonstrates how to use framebuffer objects (FBO)
OpenGL Sample Code 2006-09-18
GetProcAdress and OpenGL Entry Points (HTML) (日本語 HTML)
QA1188: Technique for finding function pointers for OpenGL entry points in Cocoa and Carbon
OpenGL Technical Q&As 2002-11-25
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.
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
OpenGL Sample Code 2007-11-05
GLSLShowpiece (HTML) (DMG) (ZIP)
GLSLShowpiece demonstrates several Vertex and Fragment shaders
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
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.
OpenGL 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.
OpenGL Technical Q&As 2002-12-04
LiveVideoMixer (HTML) (DMG) (ZIP)
LiveVideoMixer demonstrates customized video rendering with QuickTime 7 and CoreVideo and OpenGL.
OpenGL Sample Code 2008-04-24
LiveVideoMixer2 (HTML) (DMG) (ZIP)
An updated LiveVideoMixer with DV out over FireWire
OpenGL Sample Code 2006-05-05
NSGLImage (HTML) (DMG) (ZIP)
Deprecated - Demonstrates how to texture in OpenGL with an NSImage and/or NSBitmapImageRep
OpenGL Sample Code 2004-12-01
NSOpenGL Fullscreen (HTML) (DMG) (ZIP)
Demonstrates how to create and switch between windowed and fullscreen OpenGL contexts using NSOpenGL.
OpenGL Sample Code 2004-02-11
NSOpenGLContext Class Reference (HTML) (PDF)
Describes a target for OpenGL commands.
OpenGL Reference 2008-06-09
NSOpenGLPixelBuffer Class Reference (HTML) (PDF)
Describes an OpenGL pixel buffer.
OpenGL Reference 2007-01-31
NSOpenGLPixelFormat Class Reference (HTML) (PDF)
Describes a pixel format for OpenGL rendering.
OpenGL Reference 2008-10-15
NSOpenGLView Class Reference (HTML) (PDF)
Describes a view for OpenGL drawing.
OpenGL Reference 2007-01-26
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.
OpenGL Technical Q&As 2004-12-03
NURBSSurfaceVertexProg (HTML) (DMG) (ZIP)
Uses a vertex program to compute the vertex position for a NURB surface.
OpenGL Sample Code 2003-07-07
OpenGL Capabilities Matrix (HTML)
Lists supported OpenGL extensions and parameter values by various combinations of Mac OS X versions, graphics adapters, and CPU types.
OpenGL Reference 2007-11-30
OpenGL Driver Monitor Decoder Ring (HTML) (日本語 HTML)
QA1334: Describes what each of the parameters available in the OpenGL Driver Monitor measure.
OpenGL Technical Q&As 2004-01-30
OpenGL Driver Monitor User Guide (HTML) (PDF)
Explains how to view the properties supported by the OpenGL drivers available on the system.
OpenGL Guides 2008-02-08
OpenGL Extensions Guide (HTML)
Information about OpenGL functionality supported in Mac OS X.
OpenGL Guides 2003-09-10
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
OpenGL Sample Code 2008-02-06
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
OpenGL Profiler User Guide (HTML) (PDF)
Explains how to assess the efficiency of an OpenGL application.
OpenGL Guides 2008-02-08
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.
OpenGL Guides 2008-06-09
OpenGL Reference Update (HTML) (PDF)
Summarizes the symbols added to the OpenGL framework.
OpenGL Release Notes 2007-07-18
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
OpenGL Technical Notes 2005-02-04
OpenGL Screensaver (HTML) (DMG) (ZIP)
Demonstrates how to integrate OpenGL drawing into a standard Cocoa screen saver on Mac OS X.
OpenGL Sample Code 2003-12-10
OpenGL Shader Builder User Guide (HTML) (PDF)
Explains how to use OpenGL Shader Builder to develop and test GPU programs.
OpenGL 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.
OpenGL Articles 2004-02-02
OpenGLCaptureToMovie (HTML) (DMG) (ZIP)
How to capture the screen on Mac OS X using OpenGL and save to a QuickTime movie.
OpenGL Sample Code 2007-08-30
OpenGLCompositorLab (HTML) (DMG) (ZIP)
Demonstrates using OpenGL to composite multiple sources in hardware. Requires NVIDIA GeForce 4 Ti hardware.
OpenGL Sample Code 2003-04-21
OpenGLScreenSnapshot (HTML) (DMG) (ZIP)
Demonstrates how to get the screen pixels using OpenGL and save them to an image file.
OpenGL Sample Code 2008-08-14
Optimizing OpenGL Data Throughput on Mac OS X (HTML)
Learn how to optimize your OpenGL code to maximize vertex data throughput.
OpenGL Articles 2005-03-21
PBORenderToVertexArray (HTML) (DMG) (ZIP)
This sample demonstrates render-to-vertex-array using FBO, PBO, and VBO.
OpenGL Sample Code 2006-10-02
QCFundamentals (HTML) (DMG) (ZIP)
Demonstrates Coordinate, Interpolation, and Iterative systems in Quartz Composer with an amusing animation
OpenGL Sample Code 2006-08-07
QCGalaxy (HTML) (DMG) (ZIP)
Demonstrates use of Particle Systems and Core Image Filters in Quartz Composer
OpenGL Sample Code 2006-08-07
QTCoreVideo101 (HTML) (DMG) (ZIP)
Demonstrates (with very little code) how to render a QuickTime Movie using CoreVideo and OpenGL.
OpenGL Sample Code 2008-04-24
QTCoreVideo102 (HTML) (DMG) (ZIP)
An application demonstrating the use of QTKit, CoreVdeo, and OpenGL.
OpenGL 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.
OpenGL 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.
OpenGL 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.
OpenGL 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.
OpenGL Sample Code 2009-04-07
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.
OpenGL 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.
OpenGL Sample Code 2005-06-01
Quartz Composer Offline Rendering (HTML) (DMG) (ZIP)
Shows how to render a Quartz Composer composition as a series of images using an OpenGL pBuffer.
OpenGL 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.
OpenGL Sample Code 2005-07-06
Quartz Composer Texture (HTML) (DMG) (ZIP)
Shows how to use a Quartz Composer composition as an OpenGL texture.
OpenGL Sample Code 2005-06-01
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 Technical Q&As 2007-09-18
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.
OpenGL Technical Notes 2008-09-16
Sharpening Full Scene Anti-Aliasing Details (HTML)
QA1268: Using full scene anti-aliasing (FSAA) in OpenGL applications.
OpenGL Technical Q&As 2003-10-10
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
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
OpenGL Technical Q&As 2007-07-16
TexturePerformanceDemo (HTML) (DMG) (ZIP)
OpenGL texture optimization demo for WWDC Session 214
OpenGL Sample Code 2005-06-01
TextureRange (HTML) (DMG) (ZIP)
Shows the fundamental techniques required to fast texture upload performance.
OpenGL Sample Code 2003-07-16
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
Updating OpenGL Contexts (HTML) (日本語 HTML)
QA1209: When and why to update an OpenGL context in response to system and user actions.
OpenGL 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.
OpenGL Technical Q&As 2002-12-19
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
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
OpenGL Technical Q&As 2004-10-28
VBL (HTML) (DMG) (ZIP)
A simple example of how to create an OpenGLView in AppKit.
OpenGL Sample Code 2003-07-07
Vertex Optimization (HTML) (DMG) (ZIP)
Shows examples of optimized vertex throughput.
OpenGL Sample Code 2003-07-07
VertexPerformanceDemo (HTML) (DMG) (ZIP)
Vertex optimization demo for WWDC Session 214
OpenGL Sample Code 2005-06-01
VertexPerformanceTest (HTML) (DMG) (ZIP)
A tool that measures triangle throughput and allows comparison of different methods.
OpenGL Sample Code 2003-01-14
VideoHardwareInfo (HTML) (DMG) (ZIP)
Query VRAM, Quartz Extreme support, OpenGL extensions and renderer, GLSL version and support.
OpenGL Sample Code 2007-05-14
WebKitCIPlugIn (HTML) (DMG) (ZIP)
This sample WebKit plugin for Safari demonstrate how to use CoreImage in a HTML page.
OpenGL Sample Code 2005-11-28
BlitNoVBL (HTML) (DMG) (ZIP)
Shows how to draw directly to the screen without syncing to the VBL of the monitor.
Performance 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.
Performance Sample Code 2003-01-14
Coalesced Updates (HTML)
TN2133: How to achieve the maxium frame rate in your Mac OS X application
Performance Technical Notes 2006-01-20
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
Drawing Performance Guidelines (HTML) (PDF)
Guidelines for improving the speed of drawing code.
Performance Guides 2006-04-04
Driving OpenGL Rendering Loops (HTML)
QA1385: Using Core Video display links (CVDisplayLink) or Cocoa timers (NSTimer) to drive an OpenGL rendering loop
Performance Technical Q&As 2009-05-01
FBOBunnies (HTML) (DMG) (ZIP)
Demonstrates how to use framebuffer objects (FBO)
Performance Sample Code 2006-09-18
Fractal Performance (HTML) (DMG) (ZIP)
Three fractal applications that show various bottlenecks and how they can be fixed.
Performance Sample Code 2006-04-17
GeekGameBoard (HTML) (DMG) (ZIP)
Shows how to use Core Animation for the user interface of a board or card game.
Performance Sample Code 2007-12-19