Age | Commit message (Collapse) | Author |
|
|
|
Same issue as in the last commit: glTexSubImage2D is slow, so cache
all copyRect*() calls in a buffer, and update the dirty rect once
when drawing. Reduces CPU usage on 16bit games significantly.
Also, lockScreen() returns now pixel data for non-CLUT8 games instead
of asserting.
|
|
Some GLES drivers suck so much that uploading data to the GPU takes
ages. CLUT8 games now use a faked paletted texture, which internally
uses a RGB565 hardware texture (Android's native pixel format).
This seems to be the only way to efficiently implement constant
changing textures with GLES1 - at the cost of extra buffers.
Then again, we can now use glTexSubImage2D to only update the dirty
rects, which wasn't possible before because glCompressedTexSubImage2D
is only usable on GLES2. This commit does exactly that.
Overall, the CPU usage is massively reduced for CLUT8 games.
|
|
This reduces the CPU usage on 640x480 games by ~5% on my droid when
reuploading the textures to the GPU
|
|
There's no point in doing that in initSize() every time
|
|
Supported pixel formats: 565, 5551, 4444
Missing: 555 (doesn't exist on GLES)
|
|
|
|
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.
|
|
|
|
|
|
When calling glDeleteTextures() we need a valid surface.
|
|
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
;)
|
|
Move the audio thread to the bright side
|
|
|
|
|
|
|
|
|
|
And get rid of unnecessary JNI calls to get a pointer to g_system
|
|
|
|
|
|
master
Conflicts:
backends/platform/android/android.cpp
engines/sci/graphics/screen.cpp
engines/sci/graphics/transitions.cpp
|
|
- added a few macros for convinience
- use them
- replaced CHECK_GL_ERROR with GLCALL
- spam GLCALL
|
|
|
|
maybe now?
|
|
and hoping for buildbot to pick up the toolchain now
|
|
|
|
JNI calls can happen through the timer mechanism (hence from another
thread). Attach the timer thread to the VM to prevent assert()s
|
|
add bionic replacement __assert2(), so we actually see what's happening
|
|
adb logcat ScummVM:\* \*:S
|
|
get rid of -DANDROID and -DANDROID_BACKEND
|
|
svn-id: r55850
|
|
svn-id: r55806
|
|
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
|
|
svn-id: r53160
|
|
Our warning() and error() functions always add an exclamation mark
to the end of the message anyway.
svn-id: r52791
|
|
This removes the final private library - we should be completely above
board now.
svn-id: r50677
|
|
svn-id: r49594
|
|
svn-id: r49507
|
|
The usual Android version doesn't actually print the assert message
before aborting.
svn-id: r49506
|
|
svn-id: r49505
|
|
svn-id: r49453
|