首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS:核心图形是基于OpenGL实现的吗?

iOS:核心图形是基于OpenGL实现的吗?
EN

Stack Overflow用户
提问于 2011-09-27 01:10:23
回答 4查看 9.7K关注 0票数 11

我发现一个图表显示了在OpenGL上实现的核心图形,另一个图表将其与OpenGL放在一起。我认为苹果让每个人都能平等使用图形硬件是明智的,但话又说回来,我对他们使用的图形芯片了解不多……也许它一直都是3D的?

这里有人知道细节吗?

EN

回答 4

Stack Overflow用户

发布于 2011-09-27 02:57:45

是的,iOS核心图形(石英)似乎位于OpenGL ES之上,用于绘制针对屏幕的图形,尽管不是以我们可以访问的明确方式。

核心图形采用矢量元素(直线、圆弧等)以及一些光栅图像(图像),并对其进行处理以显示到屏幕上或用于其他形式的输出(PDF文件、打印等)。如果目标是iOS上的屏幕,那么这些矢量元素将直接或通过CALayer的支持层托管在UIView中。

这些核心动画层是图形处理器上矩形纹理的有效包装器,这就是核心动画如何在原始iPhone硬件上提供层的平滑平移、缩放和旋转。我现在找不到它的参考资料,但至少有一个WWDC演示文稿指出,核心动画使用OpenGL ES与图形处理器进行通信,以执行此硬件加速。类似的事情可以在新的双图形处理器MacBook Pro上观察到,当使用核心动画与应用程序交互时,功能更强大的图形处理器开始发挥作用。

因为核心图形在绘制到屏幕时将矢量和栅格元素栅格到CALayer中,并且CALayer有效地环绕OpenGL ES纹理,所以我会将OpenGL ES放在iOS的核心图形下面,但仅在核心图形呈现到屏幕的情况下。在你看到的层次结构中并排放置的原因可能是由于三个因素:在Mac上,并不是所有的视图都是层支持的,所以它们可能不是以相同的方式进行硬件加速的;我们不能真正与标准UI元素的OpenGL ES支持交互,所以从开发人员的角度来看,它们是截然不同的概念;核心图形可以用来渲染到屏幕外的上下文,比如PDF文件或图像。

票数 20
EN

Stack Overflow用户

发布于 2011-09-27 02:03:43

Core Graphics和OpenGL是两个完全独立的系统。请看下面的(source)图像,其中显示了两者在同一级别列出。在同一页下面的Core Graphics的描述也表明它是最底层的原生绘图系统。

另请参阅About OpenGL ES页面。它显示了OpenGL代码直接在图形处理器上运行,如果你向下滚动,你会发现有一些事情是使用OpenGL的应用程序无法完成的。显然,如果CG是基于OpenGL的,你将永远不能做这些事情。

最后,看看iOS的Drawing Model页面。在顶部,它将OpenGL与本机绘图进行比较,表明它们彼此独立工作。

票数 7
EN

Stack Overflow用户

发布于 2013-12-18 05:50:09

核心图形和OpenGL是两种不同的技术。UIKit和AppKit都构建在这两者之上,以及核心动画。您可以在苹果的文档(Core Animation Programming Guide)中看到图形技术堆栈

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7558636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档