Apple Developer Connection
Advanced Search
Member Login Log In | Not a Member? Contact ADC

Graphics & Imaging Overview

Mac OS X is built around a powerful, integrated stack of graphics technologies that provide a solid foundation for developers to create great desktop, web, and media applications. The Mac OS X graphic system is composed of separate subsystems that handle windowing, 2D and 3D graphics, animation, image manipulation, and multimedia. These subsystems synergize with one another to provide applications with graphics capabilities that far exceed what is possible on other operating systems.

On the Desktop

On the desktop, Mac OS X integrates Quartz, OpenGL, Core Animation, Core Image, and QuickTime, plus other technologies, providing a rich set of graphics capabilities and APIs to application developers.

Quartz is the powerful graphics technology family that forms the foundation of the 2D imaging model for Mac OS X. Quartz offers two integral parts, the sophisticated Quartz 2D drawing engine and the Quartz Compositor advanced windowing environment. Quartz's feature-rich drawing engine leverages the Portable Document Format (PDF) drawing model and offers Mac OS X applications professional-strength drawing features and performance. Quartz Compositor manages the onscreen presentation of Quartz 2D, OpenGL, QuickTime, and other content. Quartz Compositor acts as a "visual mixing board" to composite each application's graphic content into the Mac OS X look and feel.

OpenGL is the bedrock of Mac OS X graphics. It is "the" industry standard 3D graphics API for creating powerful entertainment, visualization, and content creation software. OpenGL derives its power from a high-performance graphics Hardware Abstraction Layer (HAL). OpenGL takes full advantage of the growing power and sophistication of Graphics Processing Units (GPUs). Mac OS X features a highly optimized, multicore enhanced, 64-bit implementation of OpenGL and the OpenGL Shading Language&madash;far more advanced than what is typically found on other UNIX-based systems.

Core Animation handles the layout and rendering of animations, from simple to complex. Core Animation is a layer-based animation framework that provides an easy programming model for developers. Layers are the building blocks that make possible filter effects, transparency, and automatic transitions between states. Core Animation supports multiple media types, including text, 2D graphics, OpenGL, and video. Core Animation is GPU accelerated and multicore enhanced, and you can start using it in your application to deliver a great user experience.

Core Image is, simply put, "image effects made easy." With Core Image, developers can easily create real-time capable image processing solutions that automatically take full advantage of the latest GPU or multcore CPUs. Core Image performs its processing using 32-bit floating-point math, making it a great choice performing multiple filter operations on high-precision image data. It includes over 125 built-in filter effects, such as blur/sharpen, color effects, distortions, and more. Although most tasks can be performed by combing the built-in filters, developers can create Image Units which encapsulate their own custom filter techniques. With its power and flexibility, Core Image forms the ideal image processing core for your graphics application.

Time-based graphics on Mac OS X are provided by QuickTime 7, which enables developers to manipulate, enhance, and store video, sound, animation, graphics, text and music. QuickTime 7 not only delivers stunning video quality at remarkably low data rates, it supports every major file format for images and video, and delivers sound quality rivaling that of uncompressed CD audio. And for web streaming, QuickTime gets the job done in real-time.

Developers can take advantage of APIs that make it easier to access the power behind these core technologies. The Image Kit framework wraps the power of Core Image and other technologies, making it easier to add stunning features to your app. Image Kit includes a robust image view that supports common image editing operations, including crop, rotate, scale, and more, as well as filter effects, slideshow and a picture taker. QT Kit is a 64-bit Cocoa API for accessing QuickTime. It provides easy application integration, Core Animation support, and an API for capturing video directly from devices. Quartz Composer lets you build stunning motion graphics, data visualizations, and effects using an approachable visual programming model.

The Web

The Apple Web platform includes a powerful HTML engine, the Web Kit framework, layered over graphics technologies that include Quartz 2D and QuickTime on Mac OS X, Windows, and iPhone. These superior technologies have made Mac OS X a popular platform for web developers. Mac OS X also includes an expansive selection of tools for content creation, programming, and productivity enhancement.

Hybrid applications combine Cocoa with web technology so you can bring a richer experience to web users, and also incorporate web pages in a desktop application. Your application should take advantage of both worlds. For example, NetNewsWire streamlines RSS feeds into an easy-to-use Mac interface. Pyro brings the browser-based Campfire chat program to the Desktop.

Applications on the Web are built using Web 2.0. These include websites with participation, such as Wikipedia, and websites such as Google Maps that feel like desktop applications. .Mac Mail uses Web 2.0 techniques to present a browser-based interface with a look and feel similar to that of the Mail application on Mac OS X.

Make Mac OS X your platform for building a rich Web 2.0 website, adding "The Web" to your desktop application, creating new web development tools, and developing great web applications for iPhone.

Media

The Apple media platform is built on H.264 — "the" media standard — and QuickTime. H.264 is designed from the ground up to scale, which means you get great throughput on Full HD, SD, and 3G platforms. It is used for real-time video chat in iChat AV; iTunes movies and TV shows; and the delivery of YouTube videos to Apple TV. H.264 brings fast encoding speed, QTKit integration (capture and export) and full-screen playback.

The combination of QuickTime and AJAX is a perfect example of Web technology embracing media. This combination enables you to deliver rich media control via JavaScript. QuickTime is built to work with web standards, and includes expanded DOM event support and HTML 5 compatibility; cross browser support for Safari, Internet Explorer, Firefox, and Opera; and cross-platform support.

iPhone is the newest media platform, and it includes built-in support for high-quality playback via H.264 and QuickTime. As a developer, you need to remember that media on iPhone can be sync'd via iTunes or streamed via Safari. H.264 on iPhone supports video with audio via WiFi and EDGE. In addition, QuickTime includes support for building iPhone-compatible streams, so you can provide reference movies in multiple formats that best match the device requesting the stream.

Ready, Go!

It's time to think beyond traditional APIs and start developing for the greater ecosystem of devices, sites, and content. The desktop, web, and media platforms are all part of the complete user experience. Make your program fast, efficient, and memorable with rich media, whether you are bringing your web application to desktop users or reaching the iPhone with Web 2.0 applications.

For news, updates and links to other ADC content related to Graphics & Imaging on Mac OS X, return to the Graphics & Imaging topic page.

Updated: 2008-02-04