2011-04-03 5 views
0

Salut J'ai utilisé open gl pour dessiner des objets sur un fond noir et la performance a été bonne jusqu'à présent. Maintenant, quand j'ajoute une texture rectangulaire (similaire à un fond de niveau), la performance est mauvaise. Comment puis-je améliorer cela?Problème de performance Android OpenGL

Le code que j'utilise pour dessiner l'arrière-plan est la suivante et est mis en œuvre dans la méthode onDraw()

gl.glPushMatrix(); 
gl.glEnable(GL10.GL_TEXTURE_2D); 
level1.draw(gl); 
gl.glPopMatrix(); 

La texture de ce fond est chargé une fois que cela ne change pas ou Animer.

Répondre

4

Supprimez le sleep(100000) de draw().

+0

Etes-vous sûr que sleep() est liée à ralentissement :) – ognian

+0

Je n'ai pas de sommeil (100000) dans ma méthode de tirage. Est-il possible de modifier la méthode dessiner des objets afin qu'elle ne soit pas appelée sur chaque onDraw mais plutôt avant cela et maintenue en place? – user560571

0

Vous dites que vous utilisez une texture rectangulaire. Avez-vous veillé à ce que ses dimensions soient une puissance de 2? Selon l'implémentation d'OpenGL, cela peut fonctionner correctement, travailler lentement ou ne pas fonctionner du tout si vous ne le faites pas.