I’ve been doing some initial drawing tests on the iPhone with so-so results.
Turns out it uses a graphics chip that renders different tile sections of the screen in parallel. I couldn’t find any info on how big the tiles are offhand.
Here are my very informal results. [Clarification: I'm drawing tile/sprite images as a series of individual calls, each with its own 2D transform]
In 1/60th of a second, the iPhone can draw about:
24 textured polygons in the same spot, quarter-screen size or less.
OR 75 spaced-out polys (32×32 in this case)
OR 6 full-screen polys.
Notes:
- This is with a tight drawing-only loop. Logic & sound adds a bit of overhead – not an excessive amount but then again every bit hurts.
- Things that didn’t significantly improve the speed: turning off texturing, turning off back-buffer clear, turning off alpha blending, using texture formats with fewer bytes per pixel.
In light of this I’m gonna tweak Plasmacore for iPhone so that it’s CYOB (Clear Your Own Backbuffer). Not to save time clearing the backbuffer, but to allow you to get tricky (if you want) and only redraw altered portions of the screen. The good news is that Plasmacore (as usual) will still update() at 60fps no matter how slow the draw() is going, so things might get a little rougher but they won’t get slower.
A final tip will be to avoid drawing font-based text – use prerendered words!