2010-11-03 14 views
1

J'ai la scène stockée dans le tableau sous forme de collection de formes qui est représentée par une séquence de points. Je dessine cette scène avec les fonctions CGContextMoveToPoint, CGContextAddLineToPoint, CGContextSetFillColorWithColor et CGContextFillPath. Le problème est que j'ai besoin de redessiner la scène sur l'événement de la minuterie avec un intervalle court (0,01 sec) et le redessin de la scène est très lent. Y a-t-il un moyen d'accélérer ce genre de choses? Ou seulement OpenGLES peut m'aider?Comment accélérer le quartz 2d

Répondre

5

Les graphiques 2D (Core Graphics) ne sont pas accélérés sur l'iPhone. Les remplissages de chemin sont probablement liés à l'UC. Si vous voulez une accélération matérielle, vous devrez convertir votre scène en OpenGL ES (bandes triangulaires et textures). Même en utilisant OpenGL ES, vous devrez optimiser vos graphiques assez bien pour obtenir une fréquence d'images de 60 Hz (0,017 sec).

Une autre possibilité est de pré-rendre vos formes dans CALayers, et d'animer les couches (échelle, rotation, superposition, masquer, etc.) L'animation CALayer est également assistée par matériel.

+0

compris, merci – heximal