Split surface code into helper functions to avoid code duplication, and
distinguish between screen resizes and surface recreation. The former
happens when toggling the softkeyb, where we just have to reset the
viewport. Fixes garbled textures in those cases.
Since not every engine respects pauseEngine(), or they're in a state
where it simply gets ignored, put all threads in a group coma. Without
this, code still kept looping and wasting cpu cycles, while the user
might want to do use her/his droid for something else.
- make the startup sequence more linear
- use SurfaceHolder events
- get rid of the surface lock
- remove unnecessary JNI calls
- make the ScummVM class implement Runnable
- cleanup
Most games register a music channel, and when there is no music,
they still stream silence (and run through all the Converter::flow
code!). Scan the buffer for that to pause the AudioTrack. Ugly, but
worth it - reduces CPU usage on many games and hence saves battery life.
Only works in situations without any registered channels (or all paused)
at the mixer (like on the launcher or GMM).
CPU usage before (Galaxy Tab):
~5% scummvm
~15% mediaserver
After:
~2% scummvm
0% mediaserver
;)
This commits a slightly modified patch from my patch tracker item #3104630
"OSYSTEM: Add logging API as proposed by Max on -devel".
I was not able to test compilation on Android and SamsungTV, since there is no
toolchain for those on buildbot (or I was too blind to find them).
svn-id: r54339
This appears to work around a blank screen bug Nexus1. I never
tracked it down, but as far as I can tell it is triggered by multiple
overlapping updates before flushing the texture to screen. This
condition only happens in the overlay atm so an extra redraw isn't the
end of the world.
(Also remove an unused _full_screen_dirty property)
svn-id: r53801