IOSDEV Telegram 698
Core Graphics: что это, как появился и как на это повлияли деньги?

Core Graphics, также известный под своим маркетинговым названием «Quartz», является одним из старейших связанных с графикой API на платформах.

Quartz является основой большинства 2D-вещей. Хотите рисовать фигуры, заполнять их градиентами и придавать им тени? Это Core Graphics. Показывать изображения на экране? Они проходят через Core Graphics. Создавать PDF? Эм, ну это всё ещё Core Graphics.

CG — это довольно большой API, охватывающий весь спектр базовых геометрических структур данных (таких как точки, размеры, векторы и прямоугольники) и вызовы для манипулирования ими, которые преобразуют пиксели в изображения или в экран, вплоть до обработки событий.

Почему графический API работает с пользовательскими событиями?

Как и все для всего остального, нужно вспомнить историю. А знание истории может объяснить, почему части Core Graphics ведут себя именно так.

Еще в 1980-х, графические API были довольно примитивными. Инструменты были ограничены палитрой и рисовать можно было только основные фигуры. Существовали функции «побитового копирования».

В QuickDraw на Mac была интересная функция, называемая регионами для обрезки, контура или хиттеста (что-то знакомо?✅️)

В 1985 году Apple представила LaserWriter — принтер, мощнее компа, который имел в 12 раз больше оперативной памяти и стоил вдвое дороже. Этот принтер производил (для того времени) невероятно красивый результат благодаря технологии PostScript. Интерпретатор языка PostScript был встроен в LaserWriter, поэтому, когда программа на Mac хотела что-то напечатать, программа (или драйвер принтера) генерировала программный код, который загружался в принтер и выполнялся. А вот тут даже есть пример.

Помимо рендеринга страниц, PostScript является полным по Тьюрингу и вы даже можете написать веб-сервер с его помощью.

Когда инженеры NeXT проектировали свою систему, они выбрали PostScript в качестве модели рендеринга. Отображение PostScript было основой взаимодействия с пользователем. События проходили через систему DPS, а затем отправлялись в приложения.

Почему OS X и iOS не используют Display PostScript?

💵 Дело в деньгах! Adobe взимала лицензионный сбор за Display PostScript.

Кроме того, Apple хорошо известна тем, что хочет владеть как можно большей частью своего технологического стека.

Обычно говорят, что Quartz «основан» на PDF, и в некотором смысле это правда. PDF (Adobe's Portable Document Format) — это модель рисования PostScript.

Quartz был разработан так, чтобы использование API было на то, что поддерживается в PDF, что делало создание PDF-файлов на платформе почти тривиальным.

Те же основные механизмы были сохранены, хотя Display PostScript был заменен на Quartz, включая обработку событий.

🧐 Apple разработала новую структуру, объединив модель PDF с поддержкой альфа-канала, и сегодня мы знаем ее как Quartz 2D. Apple внутри компании называет эту графическую библиотеку Core Graphics, а общедоступное название — Quartz 2D.

📖 Источники при подготовке материала: Mihaela MJ, Mark Dalrymple, дока эпл и, конечно,

@iOS Devтеперь вы знаете больше!
Please open Telegram to view this post
VIEW IN TELEGRAM
👏31👍21🔥9❤‍🔥63🏆3💯1



tgoop.com/iosdev/698
Create:
Last Update:

Core Graphics: что это, как появился и как на это повлияли деньги?

Core Graphics, также известный под своим маркетинговым названием «Quartz», является одним из старейших связанных с графикой API на платформах.

Quartz является основой большинства 2D-вещей. Хотите рисовать фигуры, заполнять их градиентами и придавать им тени? Это Core Graphics. Показывать изображения на экране? Они проходят через Core Graphics. Создавать PDF? Эм, ну это всё ещё Core Graphics.

CG — это довольно большой API, охватывающий весь спектр базовых геометрических структур данных (таких как точки, размеры, векторы и прямоугольники) и вызовы для манипулирования ими, которые преобразуют пиксели в изображения или в экран, вплоть до обработки событий.

Почему графический API работает с пользовательскими событиями?

Как и все для всего остального, нужно вспомнить историю. А знание истории может объяснить, почему части Core Graphics ведут себя именно так.

Еще в 1980-х, графические API были довольно примитивными. Инструменты были ограничены палитрой и рисовать можно было только основные фигуры. Существовали функции «побитового копирования».

В QuickDraw на Mac была интересная функция, называемая регионами для обрезки, контура или хиттеста (что-то знакомо?✅️)

В 1985 году Apple представила LaserWriter — принтер, мощнее компа, который имел в 12 раз больше оперативной памяти и стоил вдвое дороже. Этот принтер производил (для того времени) невероятно красивый результат благодаря технологии PostScript. Интерпретатор языка PostScript был встроен в LaserWriter, поэтому, когда программа на Mac хотела что-то напечатать, программа (или драйвер принтера) генерировала программный код, который загружался в принтер и выполнялся. А вот тут даже есть пример.

Помимо рендеринга страниц, PostScript является полным по Тьюрингу и вы даже можете написать веб-сервер с его помощью.

Когда инженеры NeXT проектировали свою систему, они выбрали PostScript в качестве модели рендеринга. Отображение PostScript было основой взаимодействия с пользователем. События проходили через систему DPS, а затем отправлялись в приложения.

Почему OS X и iOS не используют Display PostScript?

💵 Дело в деньгах! Adobe взимала лицензионный сбор за Display PostScript.

Кроме того, Apple хорошо известна тем, что хочет владеть как можно большей частью своего технологического стека.

Обычно говорят, что Quartz «основан» на PDF, и в некотором смысле это правда. PDF (Adobe's Portable Document Format) — это модель рисования PostScript.

Quartz был разработан так, чтобы использование API было на то, что поддерживается в PDF, что делало создание PDF-файлов на платформе почти тривиальным.

Те же основные механизмы были сохранены, хотя Display PostScript был заменен на Quartz, включая обработку событий.

🧐 Apple разработала новую структуру, объединив модель PDF с поддержкой альфа-канала, и сегодня мы знаем ее как Quartz 2D. Apple внутри компании называет эту графическую библиотеку Core Graphics, а общедоступное название — Quartz 2D.

📖 Источники при подготовке материала: Mihaela MJ, Mark Dalrymple, дока эпл и, конечно,

@iOS Devтеперь вы знаете больше!

BY iOS Dev


Share with your friend now:
tgoop.com/iosdev/698

View MORE
Open in Telegram


Telegram News

Date: |

How to Create a Private or Public Channel on Telegram? Hashtags The Standard Channel Clear Members can post their voice notes of themselves screaming. Interestingly, the group doesn’t allow to post anything else which might lead to an instant ban. As of now, there are more than 330 members in the group.
from us


Telegram iOS Dev
FROM American