gpt4 book ai didi

macos - 核心动画架构

转载 作者:行者123 更新时间:2023-12-03 03:47:54 24 4
gpt4 key购买 nike

来自documentation看起来核心动画层位于 OpenGL 和 Quartz2D 之上。 IE。执行核心动画命令应该产生一系列 Quartz2D 和 OpenGL 命令,我说得对吗?

在界面生成器中的“ View 效果”选项卡下,我们可以设置核心动画层。内部发生了什么?当我们勾选上下文 View 选项时,屏幕上的内容(按钮、滚动条等)不是使用主上下文或 currentContext(view) 绘制的,而是为它们创建新的位图上下文。引擎盖下到底发生了什么?

有人可以解释一下 CoreAnimation Layer 和 Quartz2d/OpenGL 之间的关系吗?

最佳答案

核心动画层本质上是 OpenGL 表面的高级抽象。它们由 GPU 存储和操作,因此层的操作速度非常快。 CALayer 对象本身非常轻量级,并且没有事件处理。

Layer-backed NSView 对象(如果您在 Interface Builder 中启用复选框,就会得到该对象)是将其内容绘制到核心动画层中的 View ,同样存储在 GPU 内存中并使用与普通 CALayer 对象具有相同的性能优势,但具有普通 NSView 的所有功能。

发生的情况是 View 的内容被渲染(通过 Quartz)到它的支持层(本质上是一个 OpenGL 纹理)。如果图层的内容发生变化, View 只需再次绘制。

View 图层的位置、比例、旋转等的变化不需要重新绘制 View 的内容。这意味着大多数时候 CPU 不必参与不断地重绘 View 。

关于macos - 核心动画架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6610695/

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