gpt4 book ai didi

iOS:Core Graphics 是在 OpenGL 之上实现的吗?

转载 作者:技术小花猫 更新时间:2023-10-29 10:56:21 30 4
gpt4 key购买 nike

我找到了一张显示 Core Graphics 在 OpenGL 之上实现的图表,另一张将其与 OpenGL 放在一起。我认为 Apple 会给每个人平等访问图形硬件的权限是明智的,但话又说回来,我对他们使用的图形芯片了解不多……也许它一直都是 3D?

这里有人知 Prop 体情况吗?

最佳答案

是的,在 iOS 上,Core Graphics (Quartz) 似乎位于 OpenGL ES 之上,用于以屏幕为目标的绘图,尽管不是以我们可以访问的明确方式。

Core Graphics 获取矢量元素(线、弧等)和一些光栅元素(图像)并处理它们以显示到屏幕或其他形式的输出(PDF 文件、打印等)。如果目标是 iOS 上的屏幕,这些矢量元素将托管在 CALayer 中,直接或通过 UIView 的支持层。

这些 Core Animation 图层有效地包裹了 GPU 上的矩形纹理,这就是 Core Animation 可以在甚至原始 iPhone 硬件上提供图层的平滑平移、缩放和旋转的方式。我现在找不到它的引用资料,但至少有一个 WWDC 演示文稿指出 Core Animation 使用 OpenGL ES 与 GPU 通信以执行此硬件加速。在新的双 GPU MacBook Pro 上可以观察到类似的情况,当使用 Core Animation 与应用程序交互时,更强大的 GPU 会发挥作用。

因为 Core Graphics 在绘制到屏幕时将矢量和光栅元素栅格化为 CALayer,并且 CALayer 有效地包裹了 OpenGL ES 纹理,所以我将 OpenGL ES 放在 iOS 上的 Core Graphics 下面,但仅适用于 Core图形正在渲染到屏幕上。您看到的层次结构中并排放置的原因可能是由于三个因素:在 Mac 上,并非所有 View 都是分层支持的,因此它们可能不会以相同的方式进行硬件加速;我们无法真正与标准 UI 元素的 OpenGL ES 支持进行交互,因此从开发人员的角度来看,它们是不同的概念; Core Graphics 可用于渲染到屏幕外上下文,如 PDF 文件或图像。

关于iOS:Core Graphics 是在 OpenGL 之上实现的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7558636/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com