I can't help but smile at this one since there was a thread not that
long ago talking about how people should just use OpenGL. This yet
again shows how useful it would be if the native bitmap canvas calls
could be accelerated.
Anyway here are some ideas:
- Do some kind of screen space culling.
- Unroll the loop. Not sure if the compiler does it. If you know there
are 100 then maybe make a loop that does 5-10 per loop. Even if you
only know it's always even then do two per loop.
- If the images don't always move/update then you could render to a
bitmap and use it as a cache. If it's something like a tiled game then
layers could be cached and marked dirty. I do this.
- use OpenGL :(
On 10/13/2010 7:46 PM, JoelDuggan wrote:
Hey all,
I'm looking for some help optimizing some bitmap drawing code.
Here's my pseudo-code:
draw() {
lockCanvas()
drawbackgroundBitmap()
for (100times) {
drawbitmap(x,y);
}
unlockCanvas()
}
That inner loop is my bottleneck. It is taking 160ms to run the whole
function. 80% of that is spent making the drawBitmap calls in the
loop. Is there a faster method to draw the bitmaps. The bitmaps are
basically a fifo (actually an Arraylist) where new ones are added and
old ones are removed. Would openGL help?
Thanks in advance.
--
Leigh McRae
www.lonedwarfgames.com
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en