Jump To:
Leopard Reference Library: Graphics & Imaging
OpenGL is a cross-platform, standards-based C programming interface that is widely used for games, animation, CAD/CAM, medical imaging, and other applications that need a framework for visualizing and manipulating complex, three-dimensional shapes. OpenGL programs are highly portable and produce consistent results on any supported platform. Apple's implementation of OpenGL has been optimized for the Macintosh platform and includes a suite of ARM and platform-specific extensions that give developers access to advanced graphics hardware capabilities.

Document Descriptions
On Off
Display

Sort by
Title
Sorted 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.
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.
Articles 2007-05-15
Optimizing OpenGL Data Throughput on Mac OS X (HTML)
Learn how to optimize your OpenGL code to maximize vertex data throughput.
Articles 2005-03-21
OpenGL Tools for Serious Graphics Development (HTML)
Learn how Apple's best-of-breed OpenGL tools help developers locate, analyze, and debug graphics bottlenecks.
Articles 2004-02-02
OpenGL Shader Builder User Guide (HTML) (PDF)
Explains how to use OpenGL Shader Builder to develop and test GPU programs.
Guides 2008-06-23
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.
Guides 2008-06-09
OpenGL Driver Monitor User Guide (HTML) (PDF)
Explains how to view the properties supported by the OpenGL drivers available on the system.
Guides 2008-02-08
OpenGL Profiler User Guide (HTML) (PDF)
Explains how to assess the efficiency of an OpenGL application.
Guides 2008-02-08
OpenGL Extensions Guide (HTML)
Information about OpenGL functionality supported in Mac OS X.
Guides 2003-09-10
NSOpenGLPixelFormat Class Reference (HTML) (PDF)
Describes a pixel format for OpenGL rendering.
Reference 2008-10-15
NSOpenGLContext Class Reference (HTML) (PDF)
Describes a target for OpenGL commands.
Reference 2008-06-09
OpenGL Capabilities Matrix (HTML)
Lists supported OpenGL extensions and parameter values by various combinations of Mac OS X versions, graphics adapters, and CPU types.
Reference 2007-11-30
AGL Reference (HTML) (PDF)
Describes the Apple graphics library for Carbon applications that use OpenGL.
Reference 2007-10-31
CGL Reference (HTML) (PDF)
Describes Apple's low level interface for OpenGL contexts.
Reference 2007-06-28
NSOpenGLPixelBuffer Class Reference (HTML) (PDF)
Describes an OpenGL pixel buffer.
Reference 2007-01-31
NSOpenGLView Class Reference (HTML) (PDF)
Describes a view for OpenGL drawing.
Reference 2007-01-26
AGL Reference Update (HTML) (PDF)
Summarizes the symbols added to the AGL framework.
Release Notes 2007-07-18
OpenGL Reference Update (HTML) (PDF)
Summarizes the symbols added to the OpenGL framework.
Release Notes 2007-07-18
QTCoreVideo202 (HTML) (DMG) (ZIP)
Demonstrates how to render a QuickTime Movie using OpenGL PBO and the Core Video pixel buffer pipeline.
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.
Sample Code 2009-04-07
CALayerEssentials (HTML) (DMG) (ZIP)
Demonstrates the basics of setting up various Core Animation layers
Sample Code 2008-09-30
OpenGLScreenSnapshot (HTML) (DMG) (ZIP)
Demonstrates how to get the screen pixels using OpenGL and save them to an image file.
Sample Code 2008-08-14
CoreImageGLTextureFBO (HTML) (DMG) (ZIP)
Making OpenGL textures with Core Image
Sample Code 2008-07-30
GLSL Basics Cocoa (HTML) (DMG) (ZIP)
GLSL fundamentals using NSOpenGLView
Sample Code 2008-07-30
QTCoreVideo102 (HTML) (DMG) (ZIP)
An application demonstrating the use of QTKit, CoreVdeo, and 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.
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.
Sample Code 2008-06-06
LiveVideoMixer (HTML) (DMG) (ZIP)
LiveVideoMixer demonstrates customized video rendering with QuickTime 7 and CoreVideo and OpenGL.
Sample Code 2008-04-24
QTCoreVideo101 (HTML) (DMG) (ZIP)
Demonstrates (with very little code) how to render a QuickTime Movie using CoreVideo and OpenGL.
Sample Code 2008-04-24
GLUT (HTML) (DMG) (ZIP)
The OpenGL Utility Toolkit (GLUT) for Mac OS X version 3.4.0 (supporting the GLUT 3.7 API)
Sample Code 2008-02-08
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
Sample Code 2008-02-06
BoingX (HTML) (DMG) (ZIP)
Shows off using Quartz Extreme to provide borderless OpenGL content on the desktop.
Sample Code 2007-11-06
GLSL Showpiece Lite (HTML) (DMG) (ZIP)
Using GLSL from a Cocoa application
Sample Code 2007-11-05
Cocoa OpenGL (HTML) (DMG) (ZIP)
Demonstrates using Cocoa with OpenGL, including window setup and event handling.
Sample Code 2007-10-22
OpenGLCaptureToMovie (HTML) (DMG) (ZIP)
How to capture the screen on Mac OS X using OpenGL and save to a QuickTime movie.
Sample Code 2007-08-30
VideoHardwareInfo (HTML) (DMG) (ZIP)
Query VRAM, Quartz Extreme support, OpenGL extensions and renderer, GLSL version and support.
Sample Code 2007-05-14
PBORenderToVertexArray (HTML) (DMG) (ZIP)
This sample demonstrates render-to-vertex-array using FBO, PBO, and VBO.
Sample Code 2006-10-02
CITransitionSelectorSample2 (HTML) (DMG) (ZIP)
Showing all available Core Image transitions in a scrollable NSOpenGLView
Sample Code 2006-09-18
FBOBunnies (HTML) (DMG) (ZIP)
Demonstrates how to use framebuffer objects (FBO)
Sample Code 2006-09-18
QCFundamentals (HTML) (DMG) (ZIP)
Demonstrates Coordinate, Interpolation, and Iterative systems in Quartz Composer with an amusing animation
Sample Code 2006-08-07
QCGalaxy (HTML) (DMG) (ZIP)
Demonstrates use of Particle Systems and Core Image Filters in Quartz Composer
Sample Code 2006-08-07
GLSLShowpiece (HTML) (DMG) (ZIP)
GLSLShowpiece demonstrates several Vertex and Fragment shaders
Sample Code 2006-07-17
LiveVideoMixer2 (HTML) (DMG) (ZIP)
An updated LiveVideoMixer with DV out over FireWire
Sample Code 2006-05-05
WebKitCIPlugIn (HTML) (DMG) (ZIP)
This sample WebKit plugin for Safari demonstrate how to use CoreImage in a HTML page.
Sample Code 2005-11-28
CIAnnotation (HTML) (DMG) (ZIP)
Image annotation application using Core Image Filters. Demonstrates creation and usage of Image Units.
Sample Code 2005-08-01
Quartz Composer QCTV (HTML) (DMG) (ZIP)
Shows how to build a fake TV system using Quartz Composer as the foundation motion graphics.
Sample Code 2005-07-06
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.
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.
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.
Sample Code 2005-06-01
Quartz Composer Texture (HTML) (DMG) (ZIP)
Shows how to use a Quartz Composer composition as an OpenGL texture.
Sample Code 2005-06-01
TexturePerformanceDemo (HTML) (DMG) (ZIP)
OpenGL texture optimization demo for WWDC Session 214
Sample Code 2005-06-01
VertexPerformanceDemo (HTML) (DMG) (ZIP)
Vertex optimization demo for WWDC Session 214
Sample Code 2005-06-01
NSGLImage (HTML) (DMG) (ZIP)
Deprecated - Demonstrates how to texture in OpenGL with an NSImage and/or NSBitmapImageRep
Sample Code 2004-12-01
GLCarbon1ContextPbuffer (HTML) (DMG) (ZIP)
Demostrates using OpenGL pixel buffers with a single shared context.
Sample Code 2004-03-26
GLCarbonSharedPbuffer (HTML) (DMG) (ZIP)
Demostrates sharing a single OpenGL pixel buffer with multiple other contexts.
Sample Code 2004-03-26
GLUTBasics (HTML) (DMG) (ZIP)
Simple GLUT example which can be used as starter code.
Sample Code 2004-03-26
GLUTSurfaceTexture (HTML) (DMG) (ZIP)
Example of using the new glutSurfaceTexture.
Sample Code 2004-03-26
NSOpenGL Fullscreen (HTML) (DMG) (ZIP)
Demonstrates how to create and switch between windowed and fullscreen OpenGL contexts using NSOpenGL.
Sample Code 2004-02-11
OpenGL Screensaver (HTML) (DMG) (ZIP)
Demonstrates how to integrate OpenGL drawing into a standard Cocoa screen saver on Mac OS X.
Sample Code 2003-12-10
Draw Pixels (HTML) (DMG) (ZIP)
An example of the correct use of DrawPixels.
Sample Code 2003-07-16
TextureRange (HTML) (DMG) (ZIP)
Shows the fundamental techniques required to fast texture upload performance.
Sample Code 2003-07-16
AGLSurfaceTexture (HTML) (DMG) (ZIP)
Example of render to texture/texture from surface using aglSurfaceTexture.
Sample Code 2003-07-07
Carbon GLSnapshot (HTML) (DMG) (ZIP)
Demonstrates the use of OpenGL with Quicktime to capture OpenGL content.
Sample Code 2003-07-07
NURBSSurfaceVertexProg (HTML) (DMG) (ZIP)
Uses a vertex program to compute the vertex position for a NURB surface.
Sample Code 2003-07-07
SurfaceVertexProgram (HTML) (DMG) (ZIP)
Vertex program that demonstrates the use of a UV mesh to draw an implicit surface.
Sample Code 2003-07-07
VBL (HTML) (DMG) (ZIP)
A simple example of how to create an OpenGLView in AppKit.
Sample Code 2003-07-07
Vertex Optimization (HTML) (DMG) (ZIP)
Shows examples of optimized vertex throughput.
Sample Code 2003-07-07
CubePuzzle (HTML) (DMG) (ZIP)
Models a Rubik's Cube using Cocoa and 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.
Sample Code 2003-04-21
OpenGLCompositorLab (HTML) (DMG) (ZIP)
Demonstrates using OpenGL to composite multiple sources in hardware. Requires NVIDIA GeForce 4 Ti hardware.
Sample Code 2003-04-21
GLUTStereo (HTML) (DMG) (ZIP)
Shows how to use stereo with GLUT under Mac OS X v10.2.3 or later.
Sample Code 2003-02-20
aglClipBufferRect (HTML) (DMG) (ZIP)
Shows the use of clip regions and buffer rects in AGL.
Sample Code 2003-01-14
VertexPerformanceTest (HTML) (DMG) (ZIP)
A tool that measures triangle throughput and allows comparison of different methods.
Sample Code 2003-01-14
OpenGL Performance Optimization : The Basics (HTML)
TN2093: This document describes some of the concepts and techniques for optimizing performance in OpenGL applications.
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.
Technical Notes 2008-09-16
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.
Technical Notes 2006-11-07
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
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.
Technical Notes 2003-12-29
Driving OpenGL Rendering Loops (HTML)
QA1385: Using Core Video display links (CVDisplayLink) or Cocoa timers (NSTimer) to drive an OpenGL rendering loop
Technical Q&As 2009-05-01
Using GLUT and OpenGL on Mac OS X (HTML)
QA1613: States the required steps to add GLUT and OpenGL to an Xcode project.
Technical Q&As 2008-10-13
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)
Technical Q&As 2008-01-04
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""
Technical Q&As 2007-10-30
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.
Technical Q&As 2007-09-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
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
Technical Q&As 2007-07-16
Context Sharing Tips (HTML) (日本語 HTML)
QA1248: How to correctly share OpenGL contexts and what the limits on this sharing are.
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.
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
Technical Q&As 2004-10-28
glFlush() vs. glFinish() (HTML)
QA1158: Explanation of the differences between glFlush() and glFinish()
Technical Q&As 2004-10-11
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.
Technical Q&As 2004-10-11
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.
Technical Q&As 2004-02-13
OpenGL Driver Monitor Decoder Ring (HTML) (日本語 HTML)
QA1334: Describes what each of the parameters available in the OpenGL Driver Monitor measure.
Technical Q&As 2004-01-30
Sharpening Full Scene Anti-Aliasing Details (HTML)
QA1268: Using full scene anti-aliasing (FSAA) in OpenGL applications.
Technical Q&As 2003-10-10
Updating OpenGL Contexts (HTML) (日本語 HTML)
QA1209: When and why to update an OpenGL context in response to system and user actions.
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.
Technical Q&As 2002-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.
Technical Q&As 2002-12-04
GetProcAdress and OpenGL Entry Points (HTML) (日本語 HTML)
QA1188: Technique for finding function pointers for OpenGL entry points in Cocoa and Carbon
Technical Q&As 2002-11-25