Quartz Compositor es el servidor de pantalla y gestor de ventanas en Mac OS X. Es responsable de presentar y mantener la interfaz gráfica Aqua.
Quartz Compositor es el facilitador exclusivo para ubicar bitmaps en la memoria de la tarjeta gráfica. La salida de bitmap de Quartz 2D, OpenGL, Core Image, QuickTime o de otros procesos es escrita a una dirección de memoria específica o backing store. El Compositor entonces lee los datos de los backing stores y los ensambla en una imagen para la pantalla, escribiendo esa imagen en la memoria de la tarjeta gráfica. Quartz Compositor solamente acepta datos rasterizados y es el único proceso que tiene acceso directo al buffer de gráficos.[1]
Administrando ventanas individuales, Quartz Compositor acepta una imagen bitmap del contenido de la ventana del renderer, junto con su posición. La elección del renderer corresponde a cada aplicación individual, aunque la mayoría usa Quartz 2D. Quartz Compositor entonces actúa como una "mesa de mezclas visual," agregando la ventana en cuestión a la escena completa para la pantalla. Este modelo hace que el servidor de ventanas de Mac OS X sea único, ya que los procesos individuales no tienen permiso para solicitar posesión de la pantalla.[2]
En su rol de administrador de ventanas, Quartz Compositor también tiene una cola de eventos que recibe los eventos, como pulsaciones de teclas y clics de mouse. El Quartz Compositor toma los eventos de esta cola, determina qué proceso es dueño de la ventana en la que ocurrió el evento y passa el evento a ese proceso.[3]
Mac OS X v10.2 introdujo Quartz Extreme: aceleración por el procesador gráfico (GPU) para el Quartz Compositor. Con Quartz Extreme, no se utilizan ciclos del procesador central (CPU) para la composición de la escena. Quartz Compositor se ejecuta usando el procesador gráfico (GPU) encapsulando cada backing store en un mapa de texturas o superficie OpenGL. La GPU compone las superficies y mapas para proveer la imagen final que es enviada a la pantalla.
Quartz Extreme solamente usa comandos OpenGL y requiere una tarjeta gráfica conectada a un puerto AGP 2X o superior (incluyendo AGP 4X, 8X y PCI Express) que soporte texturas y mapas de tamaño arbitrario, ya que la mayor parte de los renderers no tiene limitación de tamaño (Quartz 2D por ejemplo).[1] Está habilitado automáticamente en sistemas Mac con uno de los siguientes tipos de tarjeta gráfica:[4]
Quartz Extreme no es lo mismo que Quartz 2D Extreme, que es la aceleración por GPU opcional para el renderer Quartz. Adicionalmente, cualquier GPU que sea capaz de renderizar instrucciones de Core Image es capaz de usar Quartz Extreme.