Введение
Система рендеринга окон, используемая в macOS. Quartz Compositor — это сервер отображения (и одновременно компоновщик окон) в macOS. Он отвечает за отображение и поддержку растрированной, отрисованной графики из остальной части фреймворка Core Graphics и других модулей рендеринга семейства технологий Quartz.
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.
Обзор
Выходное растровое изображение из Quartz 2D, OpenGL, Core Image, QuickTime или другого процесса записывается в определенное местоположение памяти или буфер обмена. Затем Compositor считывает данные из буферов обмена и собирает их в единое изображение для отображения, записывая это изображение в видеопамять графического процессора. Quartz Compositor принимает только растровые данные и является единственным процессом, имеющим прямой доступ к графическому буферу кадров. При управлении отдельными окнами Quartz Compositor получает растровое изображение содержимого окна от его рендерера вместе с его позицией. Выбор рендерера остается за конкретным приложением, хотя большинство используют Quartz 2D. Затем Quartz Compositor выступает в роли "визуального микшера", добавляя данное окно ко всей сцене для отображения. В качестве менеджера окон Quartz Compositor также имеет очередь событий, которая принимает события, такие как нажатия клавиш и щелчки мыши. Compositor извлекает события из очереди, определяет, какому процессу принадлежит окно, в котором произошло событие, и передает это событие соответствующему процессу.
КварцGL
QuartzGL (изначально называвшийся Quartz 2D Extreme при представлении в Mac OS X Tiger) — это аппаратное ускорение GPU для API Quartz 2D. При включенной QuartzGL все команды рисования Quartz преобразуются в команды OpenGL и выполняются на GPU. Это отличается от Quartz Extreme, который продолжает выполнять команды рисования Quartz на CPU, но использует GPU для финальной композиции. По состоянию на OS X Mountain Lion, QuartzGL по умолчанию остается отключенным. Однако его можно включить с помощью приложения Quartz Debug, входящего в состав Apple Developer Tools. QuartzGL будет отключен повторно при закрытии утилиты Quartz Debug. В качестве обходного пути можно принудительно завершить работу приложения Quartz Debug, что позволит QuartzGL оставаться включенным во всей системе. Все графические карты, поддерживающие Core Image, также поддерживают QuartzGL.