glkView:drawInRect:和glkViewControllerUpdate之间的区别? OpenGL ES 2 – iOS

在我的渲染循环中,这两个方法之间应该有什么区别,明智的目的?

苹果有这个说….

关于update() 视图控制器调用它的委托的glkViewControllerUpdate:方法。 您的委托应更新帧数据,而不涉及将结果呈现在屏幕上。

关于drawInRect: GLKView对象将其OpenGL ES上下文作为当前上下文,并绑定其帧缓冲区作为OpenGL ES渲染命令的目标。 你的委托方法应该绘制视图的内容。

所以基本上,当我在我的视图控制器中创build一个GLKView,该控制器成为delate,所以我正在看这些方法并排。

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

首先,苹果正试图帮助你解决帧速率的时间问题。 如果你的游戏总是在分配给一个帧的时间内画出一个帧,那么两者将以锁步方式发生。 但是,即使屏幕上出现了大量的对象,并且帧速率有所下降,您仍然可以获得相同数量的更新,因此对象仍将以相同的速度移动。

第二,他们帮助你保持你的代码被划分为模型视图控制器。 你的物体是如何呈现的,应该与它们的行为分开。

所以你的更新应该继续,不pipe它是什么导致你的animation,你的抽奖应该呈现当前的状态。