石英内核、核心图形和石英2D 有什么区别?

我想知道是否有人能够精确地区分这两者? 对于我的理解,核心图形只是一个“框架包”,其中包含石英核心和石英2D。但我不确定石英2D 是否真的是石英核心?也许有人可以在这里画条线?这两者之间的区别是什么?

在查看文档时,我看到 Quartz Core 只列出了所有的 Core Animation 内容。所以石英核 = = 核心动画?

34427 次浏览

来自 石英二维编程指南:

石英2D API 是核心的一部分 图形框架,所以你可以看到 石英称为核心图形 或者,简单地说,计算机图形学。

当提到 Mac/iPhone 上的2-D 绘图时,我倾向于交替使用 Quartz 和 Core Graphics,即使这在技术上并不正确。

IPhone 上的 Quartz 核心框架包含用于核心动画的类和支持元素,还包含用于核心图像的项。

Quartz 2D 是实现绘图的核心图形框架的 API。
Quartz Core 是一个包含用于动画和图像处理的 API 的框架。


Quartz 框架及其 API

CoreGraphics.framework

  • Quartz 2D API 管理图形上下文并实现绘图。
  • Quartz Services API 提供对窗口服务器的低级访问,包括显示硬件、分辨率、刷新率等。

QuartzCore.framework

Quartz.framework仅限 OS X

这三个框架都在下面使用 OpenGL,因为在 iOS 或 OSX 中的所有绘制都在某个时候使用 OpenGL。有关详细信息,请参阅 MacOSX 技术概述的 媒体层框架部分。

其他你可能听说过的“石英”技术:

  • 石英极限: 用于石英作曲的 GPU 加速。
  • QuartzGL (又名“石英 2D极限”) : 用于石英2D 的 GPU 加速。

这些是 GPU 渲染的内部实现,而不是 API。它们决定是否在 CPU 中创建窗口缓冲区,并且只使用 OpenGL 作为纹理(默认)上传,还是使用 OpenGL (并不总能提高性能)完成整个渲染。您可以使用 QuartzGLEnable Info.plist 设置在两者之间进行交替。有关解释,请参阅约翰 · 西拉库萨对 Mac OS X Tiger 的评论,第二页和第三页。

“ Quartz”和“ Core”是随机分布在框架和 API 上的营销名称。如果他们想制造一个混乱的命名混乱,他们成功了。

但是要小心,新的单视图应用程序将默认链接 CoreGraphics 框架,但不链接 QuartzCore。因此,如果使用 CAEAGLLayer执行任何操作,您可能会很快得到一个“未知对象”错误。