2011-01-18 2 views
0

Je me demande s'il y a une fonction de temps dans le SDK Apple qui est garantie d'augmenter de façon monotone? J'ai entendu parler de [NSDate timeIntervalSinceReferenceDate] (qui n'est pas précis) et la fonction c mach_absolute_time.Comment chronométrer les animations openGL sur iPhone?

Comment toutes ces personnes chronométrent leurs animations dans OpenGL ES (existe-t-il une solution indépendante de la trame)?

Répondre

1

J'utilise CADisplayLink pour chronométrer mon animation. Lorsque vous créez un nouveau projet opengl-es sur xCode, il vous donne un exemple de codes opengl-es, et il contrôle l'animation par CADisplayLink. alt text

EDIT:

Je trouve que je comprends mal ce problème. Je vérifie la méthode CFAbsoluteTimeGetCurrent() sur ce apple on-line doc, et il a déclaré que la méthode peut ne pas augmenter de façon monotone. Et la méthode CACurrentMediaTime() dont j'ai préféré la valeur dérivée par mach_absolute_time(). Le document à propos de CACurrentMediaTime() est on this link.

+0

CADisplayLink ne vous donnera pas les horaires précis si vous sautez des cadres. – nornagon

1

Pour l'heure indépendante du débit de trame, j'utilise généralement la fonction CFAbsoluteTimeGetCurrent(). Il renvoie CFAbsoluteTime (que je crois est typedef'd à double) depuis une date arbitrairement loin dans le passé.