如何在iPhone上对openGL动画进行计时?

时间:2011-01-18 03:45:35

标签: iphone opengl-es timing

我想知道苹果SDK中是否有时间函数可以保证单调递增?我听说过[NSDate timeIntervalSinceReferenceDate](这不准确)和c函数mach_absolute_time

所有这些人如何在openGL ES中定时制作动画(是否有独立于帧的解决方案)?

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

我使用CADisplayLink来计时动画。当您在xCode上创建一个新的opengl-es项目时,它将为您提供一个示例opengl-es代码,并通过CADisplayLink控制动画。alt text

修改

我发现我误解了这个问题。    我检查了这个apple on-line doc上的 CFAbsoluteTimeGetCurrent()方法,它说这个方法可能没有单调增加。方法 CACurrentMediaTime(),我更喜欢由mach_absolute_time()导出值。有关CACurrentMediaTime()的文档是on this link

答案 2 :(得分:1)

对于与帧速率无关的时间,我通常使用CFAbsoluteTimeGetCurrent()函数。它会返回一个CFAbsoluteTime(我相信它是double的typedef),因为某个日期在过去的任意日期。