Подтвердить что ты не робот

Какая разница между Quartz Core, Core Graphics и Quartz 2D?

Интересно, может ли кто-то отличить именно это? Насколько я понимаю, Core Graphics - это всего лишь "Framework Package", который содержит Quartz Core и Quartz 2D. Но я не уверен, действительно ли Quartz 2D является Quartz Core? Может быть, кто-то может нарисовать там несколько строк? Что составляет различия между ними?

При взгляде на документацию я вижу, что Quartz Core публикует все материалы Core Animation. Итак, Quartz Core == Основная анимация?

4b9b3361

Ответ 1

Из Quartz 2D Programming Guide:

Quartz 2D API является частью Core Графическая структура, поэтому вы можете видеть Кварц называется Core Graphics или, просто, CG.

У меня есть склонность использовать кварцевую и основную графику взаимозаменяемо при обращении к двухмерному рисунку на Mac/iPhone, даже если это не технически правильно.

Основа Quartz Core на iPhone содержит классы и вспомогательные элементы для Core Animation, а также содержит элементы, используемые для Core Image.

Ответ 2

Quartz 2D - это API-интерфейс платформы Core Graphics, которая реализует чертеж.
Quartz Core - это платформа, которая включает в себя API для анимации и обработки изображений.


Кварцевые рамки и их API

CoreGraphics.framework

  • Quartz 2D API управляет графическим контекстом и реализует чертеж.
  • API Quartz предоставляет низкоуровневый доступ к серверу окон. Это включает в себя аппаратное обеспечение дисплея, разрешение, частоту обновления и другие.

QuartzCore.framework

  • Core Animation: Objective-C API для 2D-анимации.
  • Core Image: обработка изображений и видео (фильтры, warp, переходы). iOS 5

Quartz.framework OS X только

  • Image Kit: отображать и редактировать изображения.
  • PDF Kit: отображение и редактирование PDF файлов.
  • Quartz Composer: отображать композиции кварцевых композиторов.
  • QuickLookUI: просмотр элементов мультимедиа.

Все три фреймворка используют OpenGL внизу, потому что все чертежи в iOS или OS X проходят через OpenGL в какой-то момент. Подробнее см. В разделе "Структуры медиа-слоя" в обзоре технологий Mac OS X.

Другие технологии "кварца", о которых вы, возможно, слышали:

  • Quartz Extreme: ускорение графического процессора для кварцевого композитора.
  • QuartzGL (он же "Quartz 2D Extreme" ): ускорение GPU для Quartz 2D.

Это внутренние реализации рендеринга GPU, а не API. Они решают, нужно ли создавать буфер окна в ЦП и использовать OpenGL для загрузки как текстуры (по умолчанию) или для всего рендеринга с использованием OpenGL, который not всегда повышает производительность. Вы можете переключаться между ними, используя параметр QuartzGLEnable Info.plist. Объяснение см. В обзоре John Siracusa Mac OS X 10.4 Tiger, страницы 13 и 14.

"Кварц" и "Ядро" - это маркетинговые имена, разбросанные по фреймворкам и API, случайным образом. Если им захотелось создать путаницу в именовании, им это удалось.

Ответ 3

Однако будьте осторожны, новое приложение с одним представлением свяжет структуру CoreGraphics по умолчанию, но не QuartzCore. Таким образом, вы можете быстро получить ошибку "неизвестного объекта", если вы делаете что-либо с CAEAGLLayer, например.