Jump To:
Leopard Reference Library
Carbon is a set of C APIs offering developers an advanced user interface tool kit, event handling, the Quartz 2D graphics library, and multiprocessing support. Developers have access to other C and C++ APIs, including the OpenGL drawing system and the Mach microkernel.

A guided introduction and learning path for developers new to Carbon.   Essential information for developers using procedural C.   C API references organized by framework.
Document Descriptions
On Off
Display

Sort by
Title
Sorted by
Topic
Sort by
Resource Type
Sort by
Date
Web Services Core Programming Guide (HTML) (PDF)
Explains how to use the new Web Services client-side frameworks available in Mac OS X.
Networking Guides 2009-01-06
64-Bit Guide for Carbon Developers (HTML) (PDF)
Explains the changes necessary to create a 64-bit executable version of a Carbon application.
Performance Guides 2007-12-11
BSDLLCTest (HTML) (DMG) (ZIP)
Program sample demonstrates how to send and receive raw LLC Ethernet packets.
Performance Sample Code 2003-06-12
Changing the TCP Window Size (HTML)
NW47: Describes how to change the TCP window size in Open Transport.
Performance Technical Q&As 1997-03-14
Code Size Performance Guidelines (HTML) (PDF)
Guidelines for reducing the size of an application binary.
Performance Guides 2006-06-28
Code Speed Performance Guidelines (HTML) (PDF)
Guidelines for improving the performance and efficiency of code.
Performance Guides 2005-07-07
CopyBits vs. CopyMask (HTML) (DMG) (ZIP)
Deprecated - CopyBits (using a mask region) vs. CopyMask (using a mask BitMap). Which do you think is faster?
Performance Sample Code 2003-07-22
Debugger Services Reference (HTML) (PDF)
Describes the C API for standard exception-handling and assertion functions used in Carbon applications.
Performance Reference 2003-01-01
Debugging Programming Topics for Core Foundation (HTML) (PDF)
Tips and techniques for debugging Core Foundation code.
Performance Guides 2003-01-17
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
DockBrowser (HTML) (DMG) (ZIP)
Demonstrates how to use CFNetServices to take advantage of Bonjour service discovery and name resolution.
Performance Sample Code 2005-02-08
Drawing Performance Guidelines (HTML) (PDF)
Guidelines for improving the speed of drawing code.
Performance Guides 2006-04-04
Error -151 and NewGWorld (HTML)
Deprecated - QD18: Explains what the error code -151 means when in NewGWorld.
Performance Technical Q&As 1995-09-15
Error Handler Reference (HTML) (PDF)
Describes the C API for a Mac OS 9 service that assumes control when certain low-level system errors occur.
Performance Reference 2003-01-01
File-System Performance Guidelines (HTML) (PDF)
Guidelines for improving the performance of file-related code.
Performance Guides 2005-07-07
GDB for MacsBug Veterans (HTML)
TN2030: Translate your experience with MacsBug into a working knowledge of the GNU source-level debugger (GDB).
Performance Technical Notes 2001-10-18
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.
Performance Technical Q&As 2002-12-04
icon cache demo (HTML) (DMG) (ZIP)
Demonstrates the use of an icon cache to limit the search for icon resource to one resource file.
Performance Sample Code 2003-01-30
Launch Time Performance Guidelines (HTML) (PDF)
Guidelines for improving the launch performance of an application.
Performance Guides 2006-04-04
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.
Performance Technical Notes 2003-02-13
Maximizing Mac OS X Application Performance (HTML)
Learn how to achieve better performance on Mac OS X.
Performance Articles 2003-06-23
Memory Allocation Recommendations on Mac OS X (HTML)
TN2130: Recommends the best ways to allocate memory on Mac OS X.
Performance Technical Notes 2005-07-12
Memory Usage Performance Guidelines (HTML) (PDF)
Guidelines for improving the performance of memory-related code.
Performance Guides 2006-06-28
Multiprocessing Services Programming Guide (HTML) (PDF)
Explains how to implement preemptive tasks in Carbon applications.
Performance Guides 2007-10-31
Multiprocessing Services Reference (HTML) (PDF)
Describes the C API for creating preemptively scheduled tasks in Carbon applications.
Performance Reference 2008-02-08
OTScheduleDeferredTask When Task Running (HTML) (日本語 HTML)
NW52: Describes what happens when you use OTScheduleDefferedTask to schedule a task that is running.
Performance Technical Q&As 1997-10-13
Performance Overview (HTML) (PDF)
Introduces the factors that determine performance.
Performance Guides 2006-10-03
Porting Multithreaded Applications from Win32 to Mac OS X (HTML)
Learn how Mac OS X handles multithreading, before porting your Win32 application.
Performance Articles 2005-06-20
Problem with PaintRgn on 256-color Screens (HTML)
Deprecated - QD23: PaintRgn with RGBForeColor and transfer mode addOver doesn't return color to original on 256-color-screens.
Performance Technical Q&As 1995-09-15
Quartz 2D Thread Safety (HTML) (日本語 HTML)
QA1238: Explains the thread-safety issues for the Quartz 2D API.
Performance Technical Q&As 2003-02-25
Requirements for Quartz GL (HTML)
QA1536: Describes the requirements for enabling Quartz GL.
Performance Technical Q&As 2008-08-08
Taking Advantage of the Accelerate Framework (HTML)
Learn how your application can run on PowerPC- or Intel-based Macs without processor-specific customization.
Performance Articles 2005-10-03
Threading Programming Guide (HTML) (PDF)
Explains how to use threads in Cocoa applications.
Performance Guides 2008-02-08
Using Temporary Memory with OpenPicture (HTML)
Deprecated - QD20: Provides several techniques of causing OpenPicture to allocate temporary memory for a picture handle.
Performance Technical Q&As 1996-02-01
vDSP Complex Vector Conversion Reference (HTML) (PDF)
Describes functions that convert complex vectors between interleaved and split forms.
Performance Reference 2007-06-15
vDSP Correlation, Convolution, and Filtering Reference (HTML) (PDF)
Describes an interface for performing correlation, convolution, and filtering operations on real or complex signals.
Performance Reference 2009-01-06
vDSP Matrix Operations Reference (HTML) (PDF)
Describes an interface for matrix arithmetic operations.
Performance Reference 2009-01-06
vDSP One-Dimensional Fast Fourier Transforms Reference (HTML) (PDF)
Describes an interface for performing one-dimensional fast Fourier transforms on an input signal.
Performance Reference 2009-01-06
vDSP Single-Vector Operations Reference (HTML) (PDF)
This document describes the C API for performing common routines on a single vector in vDSP.
Performance Reference 2009-01-07
vDSP Two-Dimensional Fast Fourier Transforms Reference (HTML) (PDF)
Improved function discussions and corrections.
Performance Reference 2008-11-19
vDSP Vector Scalar Arithmetic Operations Reference (HTML) (PDF)
Describes vDSP functions that perform arithmetic operations combining a scalar with each element of a vector.
Performance Reference 2007-06-15
vDSP Vector-To-Scalar Operations Reference (HTML) (PDF)
Describes functions that receive a vector as input and compute scalars as output.
Performance Reference 2009-01-06
vDSP Vector-to-Vector Arithmetic Operations Reference (HTML) (PDF)
Describes functions that receive a vector as input and return a vector as output.
Performance Reference 2009-01-06
64-Bit Guide for Carbon Developers (HTML) (PDF)
Explains the changes necessary to create a 64-bit executable version of a Carbon application.
Porting Guides 2007-12-11
Adopting Universal Binaries on Mac OS X (HTML)
Learn about universal binaries and how to get your applications ready for Intel-based Macs.
Porting Articles 2005-08-26
Carbon Porting Tutorial (HTML) (DMG) (ZIP)
Porting a simple application from Mac OS 9 to Mac OS X
Porting Sample Code 2006-07-25
CarbonCocoa_PictureCursor (HTML) (DMG) (ZIP)
Demonstrates how to use NSCursor from a Carbon based application.
Porting Sample Code 2007-01-12
Core Endian Reference (HTML) (PDF)
Describes the C API for creating and installing callbacks to byte swap custom data.
Porting Reference 2007-05-29
CrossEvents (HTML) (DMG) (ZIP)
Demonstrates how to send CarbonEvents and NSNotifications between Carbon and Cocoa.
Porting Sample Code 2007-05-31
Current GDevice Dependencies (HTML) (日本語 HTML)
QA1115: Describes potential problems with creating windows or ports when the current GDevice isn't the main device.
Porting Technical Q&As 2002-02-13
Detecting Classic and Carbon X Environments (HTML) (日本語 HTML)
OV03: Describes how to find out if your application is running in the Classic environment in Mac OS X.
Porting Technical Q&As 2000-10-16
Going Universal: Audio Developers Catch the Wave (HTML)
Learn how audio developers who built universal binaries of their applications are reaping the benefits.
Porting Articles 2006-07-18
MoreIsBetter (HTML) (DMG) (ZIP)
Library providing indispensable wrapers and workarounds for many areas of Mac OS programming.
Porting Sample Code 2003-10-27
Moving Your Project from CodeWarrior to Xcode (HTML)
Get started moving your project from CodeWarrior to Xcode.
Porting Articles 2005-11-28
New HID Manager APIs for Mac OS X version 10.5 (HTML)
TN2187: Mac OS X version 10.5 introduces new APIs for the HID Manager.
Porting Technical Notes 2008-01-23
Pascal to C: PROCEDURE Parameters (HTML)
Deprecated - PT31: Nested procedures and PROCEDURE parameters in Pascal when converting them into C or C++.
Porting Technical Notes 1990-02-01
Porting CodeWarrior Projects to Xcode (HTML) (PDF)
Explains how to move software projects from CodeWarrior to Xcode and compares the two development environments.
Porting Guides 2006-10-26
Porting Multithreaded Applications from Win32 to Mac OS X (HTML)
Learn how Mac OS X handles multithreading, before porting your Win32 application.
Porting Articles 2005-06-20
Problems recording CopyBits into a PICT on Mac OS X 10.2 (HTML) (日本語 HTML)
QA1189: Identifies a problem with CopyBits and PICT on Mac OS X 10.2 and gives a simple workaround.
Porting Technical Q&As 2002-11-19
QDFlushPortBuffer (HTML) (日本語 HTML)
QD65: Describes a possible solution for window update problems under Carbon.
Porting Technical Q&As 2000-11-08
QDSwapPort (HTML) (日本語 HTML)
QA1128: Explains when to use QDSwapPort.
Porting Technical Q&As 2002-11-06
QuickDraw Text Anti-Aliasing using Quartz 2D (HTML) (日本語 HTML)
QA1193: Describes APIs added to Mac OS X to allow applications to draw QD text using CG anti-aliasing.
Porting Technical Q&As 2002-10-29
Scoping Your Transition Projects (HTML)
Learn how to transition to Intel-based Macs.
Porting Articles 2005-09-27
SDKExample (HTML) (DMG) (ZIP)
Shows how to weak-link against the Carbon framework in various SDKs to adopt new OS features in a single executable.
Porting Sample Code 2005-06-06
Setting environment variables for user processes (HTML)
QA1067: Tells how to set environment variables for user processes.
Porting Technical Q&As 2001-10-25
Switching from Code Warrior to Xcode (HTML)
Learn how to import your projects from CodeWarrior.
Porting Articles 2003-10-24
TCP/IP Option Sizes (HTML) (日本語 HTML)
NW62: Enumerates the TCP/IP options and their sizes for Open Transport.
Porting Technical Q&As 1999-04-26
Universal Binary Programming Guidelines, Second Edition (HTML) (PDF)
Conceptual information and tips for writing code that runs on PowerPC-based and Intel-based Macintosh computers.
Porting Guides 2009-02-04
Carbon Printing Reference (HTML) (PDF)
Describes the C API used by Carbon applications to provide a user interface for printing.
Printing Reference 2007-07-24
CarbonQuartzDrawingWPrinting (HTML) (DMG) (ZIP)
Deprecated - Demonstrates mixing QuickDraw and Quartz 2D drawing both on screen and during printing.
Printing Sample Code 2003-01-14
CGContext Bounds (HTML)
QA1048: Explains how to determine the bounds of a CGContext.
Printing Technical Q&As 2001-07-02
CGContextAddLineToPoint, CGContextAddCurveToPoint, et. al. (HTML)
QA1049: Explains why the CGContextAddXYZ APIs don't draw anything immediately.
Printing Technical Q&As 2001-07-02
CGContextClosePath (HTML)
QA1046: Explains when you should call CGContextClosePath.
Printing Technical Q&As 2001-10-02
Cocoa PDE with Carbon Printing (HTML) (DMG) (ZIP)
Application that uses a Cocoa PDE along with the Carbon Printing APIs.
Printing Sample Code 2007-07-27
Core Printing Reference (HTML) (PDF)
Describes the C API that provides an abstraction layer for application printing.
Printing Reference 2007-07-24
Creating Printing Presets for iPhoto (HTML) (PDF)
Rules for creating and installing printer-specific collections of settings. Includes a sample file.
Printing Guides 2005-07-07
Drawing a Path Multiple Times (HTML)
QA1047: Explains that path drawing operations consume the path.
Printing Technical Q&As 2001-07-02
The Enhanced Print Apple Event (HTML)
TN2082: Describes an enhancement to the print Apple event that gives developers more control over scripted printing.
Printing Technical Notes 2003-12-09
Extending Printing Dialogs (HTML) (PDF)
A guide to developing printing dialog extensions, including basic concepts and a documented Carbon-based sample project.
Printing Guides 2006-10-03
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
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.
Printing Technical Q&As 2003-02-25
How to measure CG text (HTML)
QA1051: Explains how to measure Core Graphics text.
Printing Technical Q&As 2007-08-02
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
PDEPanel Protocol Reference (HTML) (PDF)
Describes the informal protocol used to implement custom panes in a printing dialog.
Printing Reference 2007-12-11
PDEPlugIn Protocol Reference (HTML) (PDF)
Describes the informal protocol used to add custom panes to a printing dialog.
Printing Reference 2007-12-11
PDEPlugInCallbackProtocol Reference (HTML) (PDF)
Describes the informal protocol used to access information about the current print job.
Printing Reference 2007-12-11
PDEProject (HTML) (DMG) (ZIP)
Deprecated - Demonstrates an application-hosted printing dialog extension (PDE) that displays a custom pane in the Print dialog.
Printing Sample Code 2003-01-14
PMPrinterPrintWithFile (HTML) (DMG) (ZIP)
How to send files, for example PostScript and PDF, directly to the printer. Replaces the pict-ps path.
Printing Sample Code 2006-07-18
PMPrinterTest (HTML) (DMG) (ZIP)
Demonstrates using the PMPrinter APIs to obtain information about the connected printers.
Printing Sample Code 2009-02-13
Printer Queue vs. Printer Name (HTML)
QA1407: Explains the difference between a printer queue and a printer name.
Printing Technical Q&As 2007-04-26
Printing Plug-in Interfaces Reference (HTML) (PDF)
Describes the various callback interfaces that Mac OS X printing plug-ins implement in Carbon.
Printing Reference 2003-07-31
Providing PDF Workflow Options in the Print Dialog (HTML) (PDF)
Installation information and examples, including the use of Automator workflows.
Printing Guides 2007-10-31
Quartz 2D Interpolation (HTML) (日本語 HTML)
QA1186: Explains how to control Quartz 2D's image interpolation.
Printing Technical Q&As 2002-10-29
Quartz 2D Thread Safety (HTML) (日本語 HTML)
QA1238: Explains the thread-safety issues for the Quartz 2D API.
Printing Technical Q&As 2003-02-25
Saving Printer Settings for Automatic Printing (HTML)
TN2155: Describes how you can save a a user selected Printer, Print Settings and Page Format to disk.
Printing Technical Notes 2007-03-29
Saving the current Core Graphics Path (HTML)
QA1056: Explains that the Core Graphics save and restore GState APIs do not affect the path.
Printing Technical Q&As 2001-10-02
Supporting Printing in Your Carbon Application (HTML) (PDF)
Explains how to support printing in Carbon applications. Includes creating PDFs and porting from Mac OS 9.
Printing Guides 2004-08-31
Ticket Services Reference (HTML) (PDF)
Describes the C API used by printer modules and PDEs to communicate printing information to the system.
Printing Reference 2002-10-23
Turning Off Core Graphics Clipping (HTML)
QA1050: Explains how to clear the clipping path for a CGContext.
Printing Technical Q&As 2001-07-02
Unexpected CG state changes (HTML)
QA1045: Explains why the Core Graphics drawing state sometimes changes for no apparent reason.
Printing Technical Q&As 2001-07-02