Введение

Quartz 2D — это встроенный API для двухмерной графики для платформ macOS и iOS, являющийся частью фреймворка Core Graphics.

Рисунок в кварце 2D

Quartz 2D расширяет функции рисования, связанные с QuickDraw. Наиболее заметное отличие заключается в том, что Quartz 2D устраняет зависимость от конкретного выходного устройства и разрешения. Модель рисования, используемая в Quartz 2D, основана на спецификации PDF 1.4. Рисование выполняется в декартовой системе координат, где текст, векторы или растровые изображения размещаются на сетке. Однако вывод рисунка не отправляется напрямую на выходное устройство. Quartz 2D использует графические контексты – среды, в которых происходит рисование. Каждый графический контекст определяет способ представления рисунка: в окне, на принтере, в слое OpenGL или вне экрана. Каждый контекст растрирует рисунок в требуемом разрешении, не изменяя при этом данные, определяющие рисунок. Таким образом, контексты обеспечивают независимость Quartz 2D от разрешения и устройства. Например, контекст окна может растрировать объект до разрешения экрана для отображения графики, а тот же объект может быть отправлен в контекст печати с гораздо более высоким разрешением. Это позволяет использовать одни и те же графические команды для получения вывода на любом устройстве с оптимальным разрешением.

История

Quartz 2D похож на Display PostScript от NeXT в использовании контекстов. Он впервые появился как библиотека рендеринга 2D-графики под названием Core Graphics Rendering; вместе с Core Graphics Services (композитинг) он был объединен в первоначальную версию Quartz. Quartz (и его рендерер) впервые были продемонстрированы на WWDC в мае 1999 года. В настоящее время название Quartz 2D более точно определяет возможности 2D-рендеринга Core Graphics (Quartz). С выпуском Mac OS X 10.2 маркетинговое внимание сосредоточилось на Quartz Extreme, слое композитинга, в то время как термин "Quartz" стал использоваться для обозначения фреймворка Core Graphics или просто его 2D-рендерера. В настоящее время технологии Quartz могут охватывать все технологии рендеринга и композитинга, представленные в macOS (включая, например, Core Image). До Mac OS X Tiger рендеринг QuickDraw был производительнее, чем у Quartz 2D. Mac OS X 10.4 исправила это, значительно повысив стандартную производительность рендеринга Quartz 2D. Tiger также представил Quartz 2D Extreme: необязательное аппаратное ускорение графического процессора (GPU) для Quartz 2D, хотя эта функция не поддерживается официально. В Mac OS X Leopard Quartz 2D Extreme был переименован в QuartzGL.