我目前正在使用CADisplayLink
来显示一个效果很好的OpenGL动画。但是,有时参数会发生变化,我需要立即重绘视图,并且不能等到CADisplayLink
请求下一帧。如果我不这样做,我会弄错一帧,这在我的情况下看起来非常糟糕。
那么,如何在不干扰CADisplayLink
内容的情况下强制重绘EAGLView
呢?
例如,如果您的CADisplayLink正在调用方法drawFrame,那么只需在需要时调用drawFrame即可。如果您不想,则无需等待CADisplayLink。
您的问题表明您将数据存储在视图中而不是数据存储在数据对象中。您应该能够随时更改数据,并且您的视图应该在需要显示时更新。将数据移动到模型对象,并让EAGLView
在从CADisplayLink
请求时基于数据绘制自身,而不是在数据更改时重新绘制自身。