Quartz Compositor

Last updated
Quartz Compositor
Operating system macOS
Type
License Proprietary software under EULA
Website web.archive.org/web/20150322043623/https://developer.apple.com/technologies/mac/graphics-and-animation.html

Quartz Compositor is the display server (and at the same time the compositing window manager) in macOS. It is responsible for presenting and maintaining rasterized, rendered graphics from the rest of the Core Graphics framework and other renderers in the Quartz technologies family. [1]

Contents

Overview

The bitmap output from Quartz 2D, OpenGL, Core Image, QuickTime, or other process is written to a specific memory location, or backing store. The Compositor then reads the data from the backing stores and assembles each into one image for the display, writing that image to the frame buffer memory of the graphics card. Quartz Compositor only accepts raster data, and is the only process that can directly access the graphics frame buffer. [2]

In managing individual windows, Quartz Compositor accepts a bitmap image of the window's contents from its renderer, along with its position. The choice of the renderer is up to the individual application, although most use Quartz 2D. Quartz Compositor then acts as a "visual mixing board," by adding the given window to the whole scene for the display.

In its role as window manager, Quartz Compositor also has an event queue which receives events, such as key strokes and mouse clicks. The Quartz Compositor takes the events from the queue, determines which process owns the window where the event occurred, and passes the event on to the process. [3]

Quartz Extreme

Mac OS X v10.2 introduced Quartz Extreme: graphics processor (GPU) acceleration for the Quartz Compositor. With Quartz Extreme, far fewer central processing unit (CPU) cycles are needed for scene composition. Instead, the Quartz Compositor encapsulates each rendered backing store in an OpenGL texture map or surface. It then directs the GPU to compose the surfaces and maps to provide the final image, which is delivered to the frame buffer.

Quartz Extreme only uses OpenGL commands, and requires a graphics card connected to an AGP 2X or faster bus (including AGP 4X, 8X, and PCI Express), supporting textures and maps of arbitrary size, since many of the renderers have no size limitation (Quartz 2D for example). [2] In Mac OS X Tiger, it is automatically enabled on Mac systems with one of the following types of graphics cards: [4]

As of OS X El Capitan, Quartz Extreme is enabled on all supported Macs.

QuartzGL

QuartzGL (called Quartz 2D Extreme when it was introduced in Mac OS X Tiger) is GPU acceleration for the Quartz 2D API. With QuartzGL enabled, all Quartz drawing commands are translated to OpenGL commands and executed on the GPU. This differs from Quartz Extreme, which still executes Quartz drawing commands on the CPU but performs final composition using the GPU.

As of OS X Mountain Lion, QuartzGL is still not enabled by default. However, it is possible to enable it using the Quartz Debug application included in the Apple Developer Tools. QuartzGL will be disabled once again upon quitting the Quartz Debug utility. A workaround is to force quit the Quartz Debug application, which will leave QuartzGL enabled system-wide.

All graphics cards capable of supporting Core Image also support QuartzGL.

See also

Related Research Articles

OpenGL Cross-platform graphics API

OpenGL is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering.

Windowing system Software that manages separately different parts of display screens

In computing, a windowing system is software that manages separately different parts of display screens. It is a type of graphical user interface (GUI) which implements the WIMP paradigm for a user interface.

QuickDraw is the 2D graphics library and associated Application Programming Interface (API) which is a core part of the classic Mac OS operating system. It was initially written by Bill Atkinson and Andy Hertzfeld. QuickDraw still existed as part of the libraries of Mac OS X, but had been largely superseded by the more modern Quartz graphics system. In Mac OS X v10.4, QuickDraw has been officially deprecated. In Mac OS X v10.5 applications using QuickDraw cannot make use of the added 64-bit support. In Mac OS X v10.8, QuickDraw header support was removed from the operating system. Applications using QuickDraw will still run under OS X 10.8 through macOS 10.13; however, the current versions of Xcode and the macOS SDK do not contain the header files to compile such programs.

Graphics processing unit Specialized electronic circuit; graphics accelerator

A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mobile phones, personal computers, workstations, and game consoles.

Quartz 2D is the native two-dimensional graphics rendering API for macOS and iOS platforms, part of the Core Graphics framework.

X.Org Server is the free and open-source implementation of the X Window System display server stewarded by the X.Org Foundation.

Core Image is a pixel-accurate, near-realtime, non-destructive image processing technology in Mac OS X. Implemented as part of the QuartzCore framework of Mac OS X 10.4 and later, Core Image provides a plugin-based architecture for applying filters and effects within the Quartz graphics rendering layer. The framework was later added to iOS in iOS 5.

In Apple's macOS operating system, Quartz is the Quartz 2D and Quartz Compositor part of the Core Graphics framework. Quartz includes both a 2D renderer in Core Graphics and the composition engine that sends instructions to the graphics card. Because of this vertical nature, Quartz is often synonymous with Core Graphics.

OpenGL ES Subset of the OpenGL API for embedded systems

OpenGL for Embedded Systems is a subset of the OpenGL computer graphics rendering application programming interface (API) for rendering 2D and 3D computer graphics such as those used by video games, typically hardware-accelerated using a graphics processing unit (GPU). It is designed for embedded systems like smartphones, tablet computers, video game consoles and PDAs. OpenGL ES is the "most widely deployed 3D graphics API in history".

Core Video is the video processing model employed by macOS. It links the process of decompressing frames from a video source to the rest of the Quartz technologies for image rendering and composition. Both QuickTime X and QuickTime 7 depend on Core Video.

In computing, hardware overlay, a type of video overlay, provides a method of rendering an image to a display screen with a dedicated memory buffer inside computer video hardware. The technique aims to improve the display of a fast-moving video image — such as a computer game, a DVD, or the signal from a TV card. Most video cards manufactured since about 1998 and most media players support hardware overlay.

The Intel Graphics Media Accelerator (GMA) is a series of integrated graphics processors introduced in 2004 by Intel, replacing the earlier Intel Extreme Graphics series and being succeeded by the Intel HD and Iris Graphics series.

Desktop Window Manager is the compositing window manager in Microsoft Windows since Windows Vista that enables the use of hardware acceleration to render the graphical user interface of Windows.

ATI Rage series Series of video cards

The ATI Rage is a series of graphics chipsets developed by ATI Technologies offering graphical user interface (GUI) 2D acceleration, video acceleration, and 3D acceleration developed by ATI Technologies. It is the successor to the ATI Mach series of 2D accelerators.

A compositing window manager, or compositor, is a window manager that provides applications with an off-screen buffer for each window. The window manager composites the window buffers into an image representing the screen and writes the result into the display memory.

Core OpenGL, or CGL, is Apple Inc.'s Macintosh Quartz windowing system interface to the OS X implementation of the OpenGL specification. CGL is analogous to GLX, which is the X11 interface to OpenGL, as well as WGL, which is the Microsoft Windows interface to OpenGL.

The Apple Developer Tools are a suite of software tools from Apple to aid in making software dynamic titles for the macOS and iOS platforms. The developer tools were formerly included on macOS install media, but are now exclusively distributed over the Internet. As of macOS 10.12, Xcode is available as a free download from the Mac App Store.

Wayland (display server protocol) Display system intended to replace X11

Wayland is a communication protocol that specifies the communication between a display server and its clients, as well as a C library implementation of that protocol. A display server using the Wayland protocol is called a Wayland compositor, because it additionally performs the task of a compositing window manager.

Metal (API) iOS, macOS, and tvOS graphics rendering API

Metal is a low-level, low-overhead hardware-accelerated 3D graphic and compute shader API created by Apple. It debuted in iOS 8. Metal combines functions similar to OpenGL and OpenCL in one API. It is intended to improve performance by offering low-level access to the GPU hardware for apps on iOS, iPadOS, macOS, and tvOS. It can be compared to low-level APIs on other platforms such as Vulkan and DirectX 12.

This is a glossary of terms relating to computer graphics.

References

  1. Russell, Matthew (October 11, 2005). "What Is Quartz (or Why Can't Windows Do That)". O'Reilly Mac DevCenter. O'Reilly Media. Archived from the original on 2013-05-27. Retrieved 17 November 2011.
  2. 1 2 Siracusa, John (2005-04-28). "Mac OS X 10.4 Tiger". ArsTechnica . Retrieved 2010-01-15.
  3. "Apple - Developer - Mac OS X Technology Overview: Graphics, Imaging, and Multimedia" . Retrieved 2007-04-18.
  4. "Apple - Mac OS X 10.4: Requirements for Quartz Extreme and Core Image graphics". Archived from the original on 2012-03-19. Retrieved 2007-02-12.