Quartz 2D: графический API для macOS и iOS. Основан на PDF 1.4, обеспечивает рисование в декартовой системе координат, независимое от устройств и разрешения.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Quartz 2D — это встроенный API для двухмерной графики для платформ macOS и iOS, являющийся частью фреймворка Core Graphics.
Quartz 2D is the native two dimensional graphics rendering API for macOS and iOS platforms, part of the Core Graphics framework.
Рисунок в кварце 2D
Quartz 2D расширяет функции рисования, связанные с QuickDraw. Наиболее заметное отличие заключается в том, что Quartz 2D устраняет зависимость от конкретного выходного устройства и разрешения. Модель рисования, используемая в Quartz 2D, основана на спецификации PDF 1.4. Рисование выполняется в декартовой системе координат, где текст, векторы или растровые изображения размещаются на сетке. Однако вывод рисунка не отправляется напрямую на выходное устройство. Quartz 2D использует графические контексты – среды, в которых происходит рисование. Каждый графический контекст определяет способ представления рисунка: в окне, на принтере, в слое OpenGL или вне экрана. Каждый контекст растрирует рисунок в требуемом разрешении, не изменяя при этом данные, определяющие рисунок. Таким образом, контексты обеспечивают независимость Quartz 2D от разрешения и устройства. Например, контекст окна может растрировать объект до разрешения экрана для отображения графики, а тот же объект может быть отправлен в контекст печати с гораздо более высоким разрешением. Это позволяет использовать одни и те же графические команды для получения вывода на любом устройстве с оптимальным разрешением.
Quartz 2D expands the drawing functions associated with QuickDraw. The most notable difference is that Quartz 2D eliminates output device and resolution specificity. The drawing model utilized by Quartz 2D is based on PDF specification 1.4. Drawing takes place using a Cartesian coordinate system, where text, vectors, or bitmap images are placed on a grid. However, drawing output is not sent directly to the output device. Quartz 2D uses graphics contexts, environments in which drawing takes place. Each graphics context defines how the drawing should be presented: in a window, sent to a printer, an OpenGL layer, or off screen. Each context rasterizes the drawing at the desired resolution without altering the data that defines the drawing. Thus, contexts are the mechanism by which Quartz 2D employs resolution and device independence. For example, a window context may rasterize an object to the appropriate screen resolution to create actual graphics on the display. The same object can be sent to a printing context at a much higher resolution. This permits the same graphics commands to yield output on any device using the most appropriate resolution.
История
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.
Quartz 2D is similar to NeXT's Display PostScript in its use of contexts. It first appeared as the 2D graphics rendering library called Core Graphics Rendering; along with Core Graphics Services (Compositing), it was wrapped into the initial incarnation of Quartz. Quartz (and its renderer) were first demonstrated at WWDC in May 1999. Presently, the name Quartz 2D more precisely defines the 2D rendering capabilities of Core Graphics (Quartz). With the release of Mac OS X 10.2, marketing attention focused on Quartz Extreme, the composition layer, leaving the term "Quartz" to refer to the Core Graphics framework or just its 2D renderer. Presently, Quartz technologies can describe all of the rendering and compositing technologies introduced by macOS (including Core Image for example). Prior to Mac OS X Tiger, QuickDraw rendering outperformed that of Quartz 2D. Mac OS X 10.4 rectified this, substantially increasing the standard rendering performance of Quartz 2D. Tiger also introduced Quartz 2D Extreme: optional graphics processor (GPU) acceleration for Quartz 2D, although it is not an officially supported feature. In Mac OS X Leopard, Quartz 2D Extreme was renamed QuartzGL.