我想知道是否有人可以准确地区分这些?据我了解,Core Graphics 只是一个包含 Quartz Core 和 Quartz 2D 的“框架包”。但我不确定 Quartz 2D 是否真的是 Quartz Core?也许有人可以在那里画一些线?是什么构成了它们之间的差异?
查看文档时,我看到 Quartz Core 仅列出了所有 Core Animation 内容。所以 Quartz Core == Core Animation?
我想知道是否有人可以准确地区分这些?据我了解,Core Graphics 只是一个包含 Quartz Core 和 Quartz 2D 的“框架包”。但我不确定 Quartz 2D 是否真的是 Quartz Core?也许有人可以在那里画一些线?是什么构成了它们之间的差异?
查看文档时,我看到 Quartz Core 仅列出了所有 Core Animation 内容。所以 Quartz Core == Core Animation?
Quartz 2D 是实现绘图的 Core Graphics 框架的 API。
Quartz Core 是一个包含动画和图像处理 API 的框架。
CoreGraphics.framework
QuartzCore.framework
Quartz.framework
仅限 OS X
这三个框架都在底层使用了 OpenGL,因为 iOS 或 OS X 中的所有绘图在某些时候都通过 OpenGL。有关详细信息,请参阅Mac OS X 技术概述的媒体层框架部分。
您可能听说过的其他“石英”技术:
这些是 GPU 渲染的内部实现,而不是 API。他们决定是在 CPU 中创建窗口缓冲区并仅使用 OpenGL 作为纹理上传(默认)还是使用 OpenGL 进行整个渲染,这并不总是能提高性能。您可以使用QuartzGLEnable Info.plist 设置在两者之间交替。有关解释,请参阅 John Siracusa 对 Mac OS X 10.4 Tiger 的评论,第13和14页。
“Quartz”和“Core”是随机散布在框架和 API 上的营销名称。如果他们想制造混乱的命名混乱,他们成功了。
Quartz 2D API 是 Core Graphics 框架的一部分,因此您可能会看到 Quartz 被称为 Core Graphics 或简称为 CG。
当提到 Mac / iPhone 上的 2-D 绘图时,我倾向于交替使用 Quartz 和 Core Graphics,即使这在技术上并不正确。
iPhone 上的Quartz Core 框架包含 Core Animation 的类和支持元素,还包含用于 Core Image 的项目。
但是要小心,一个新的单视图应用程序会默认链接 CoreGraphics 框架,而不是 QuartzCore。CAEAGLLayer
因此,例如,如果您正在做任何事情,您可能会很快收到“未知对象”错误。