gpt4 book ai didi

ios - glkView :drawInRect: and glkViewControllerUpdate:? OpenGL ES 2 - iOS 之间的区别

转载 作者:可可西里 更新时间:2023-11-01 04:42:32 24 4
gpt4 key购买 nike

在我的渲染循环中,这两种方法在目的上应该有什么区别?

苹果有话要说....

关于更新() View Controller 调用其委托(delegate)的 glkViewControllerUpdate: 方法。您的委托(delegate)应更新不涉及将结果呈现到屏幕的帧数据。

关于 drawInRect:GLKView 对象将其 OpenGL ES 上下文作为当前上下文并将其帧缓冲区绑定(bind)为 OpenGL ES 渲染命令的目标。然后您的委托(delegate)方法应该绘制 View 的内容。

所以基本上,当我在我的 View Controller 中创建一个 GLKView 时,该 Controller 就变成了 delate,所以我会并排查看这些方法。

我假设 update() 应该包含任何转换或其他逻辑。

最佳答案

首先,Apple 正试图帮助您将时序与帧速率分离开来。如果您的游戏总是设法在分配给单帧的时间内绘制一帧,则这两个帧将同步发生。但是,即使屏幕上出现大量对象并且您的帧速率略有下降,您仍然会每秒获得相同数量的更新,因此对象仍会以相同的速度移动。

其次,它们帮助您将代码划分为模型- View - Controller 。对象的呈现方式应与其行为方式脱钩。

因此,无论是什么引起动画,您的更新都应该进行,您的绘图应该呈现当前状态。

关于ios - glkView :drawInRect: and glkViewControllerUpdate:? OpenGL ES 2 - iOS 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9678411/

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