I've recently ported my Canvas based 2D game over to OpenGL and could really need some help getting things up to speed. Until now I draw all sprites using the drawTexture2D extension as recommended in the famous Google IO video.
Now this method doesn't support rotating a sprite. Also like mentioned in the Google video, font rendering using drawTexture2D is real slow when you have your whole font in a single texture and crop this texture for each character.
So until now I've tried (on a G2/Magic):
drawing a highscore table consisting of about 80 characters:
- using drawTexture2D and texture cropping => 12-14fps
- filling a standard vertex array (not a VBO) for each character and then immediately drawing it => 7fps ?!?!
So using standard arrays was even way slower then using texture cropping.
Okay, I guess the overhead of all the openGL calls when drawing each character seperately is just too much for the little G2.
My question is, where to go from here?
For 80 rather small sprites, judging from the chart in the Google video, one should be able to attain ~60fps.
If I combine all the characters and other sprites over the course of a frame and then at the end of the frame render them sortet by texture, resulting in only a few draw calls instead of 80+, should that alone give me such a dramatic performance increase (from 7 to 60)?
How have you gies solved this?
To be honest not being able to make 80 draw calls per frame was a bit shocking to me.
Any input is appreciated.
PS: I'm using the application, activity and OpenGLES setup code from a google example, so I guess that shouldn't be the problem.



) and i use the drawtex extension.

