summaryrefslogtreecommitdiffstats
path: root/libs/rs/rsContext.cpp
diff options
context:
space:
mode:
authorAlex Sakhartchouk <alexst@google.com>2010-08-03 12:03:16 -0700
committerAlex Sakhartchouk <alexst@google.com>2010-08-03 12:03:16 -0700
commit6de555001bc9b3ea6baf8ce1293e6c366a9bd6ce (patch)
treed562c09856e02eaa2a478ed616fd465ea7a58c8a /libs/rs/rsContext.cpp
parent89a524ac2d4a36739e51b01b336c0bade77e2ee0 (diff)
downloadframeworks_base-6de555001bc9b3ea6baf8ce1293e6c366a9bd6ce.zip
frameworks_base-6de555001bc9b3ea6baf8ce1293e6c366a9bd6ce.tar.gz
frameworks_base-6de555001bc9b3ea6baf8ce1293e6c366a9bd6ce.tar.bz2
Adding onscreen frame and script time for debugging.
Change-Id: I5780092d14d49dae556b9969b937c7768e705a64
Diffstat (limited to 'libs/rs/rsContext.cpp')
-rw-r--r--libs/rs/rsContext.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp
index d1784f3..61ef5d4 100644
--- a/libs/rs/rsContext.cpp
+++ b/libs/rs/rsContext.cpp
@@ -259,6 +259,44 @@ static bool getProp(const char *str)
return 0 != strcmp(buf, "0");
}
+void Context::displayDebugStats()
+{
+ char buffer[128];
+ sprintf(buffer, "Frame %i ms, Script %i ms", mTimeMSLastFrame, mTimeMSLastScript);
+ float oldR = mStateVertex.color[0];
+ float oldG = mStateVertex.color[1];
+ float oldB = mStateVertex.color[2];
+ float oldA = mStateVertex.color[3];
+
+ float shadowCol = 0.2f;
+ mStateVertex.color[0] = shadowCol;
+ mStateVertex.color[1] = shadowCol;
+ mStateVertex.color[2] = shadowCol;
+ mStateVertex.color[3] = 1.0f;
+ if (!checkVersion2_0()) {
+ glColor4f(shadowCol, shadowCol, shadowCol, 1.0f);
+ }
+ mStateFont.renderText(buffer, 5, getHeight() - 5);
+
+ float textCol = 0.9f;
+ mStateVertex.color[0] = textCol;
+ mStateVertex.color[1] = textCol;
+ mStateVertex.color[2] = textCol;
+ mStateVertex.color[3] = 1.0f;
+ if (!checkVersion2_0()) {
+ glColor4f(textCol, textCol, textCol, 1.0f);
+ }
+ mStateFont.renderText(buffer, 4, getHeight() - 6);
+
+ mStateVertex.color[0] = oldR;
+ mStateVertex.color[1] = oldG;
+ mStateVertex.color[2] = oldB;
+ mStateVertex.color[3] = oldA;
+ if (!checkVersion2_0()) {
+ glColor4f(oldR, oldG, oldB, oldA);
+ }
+}
+
void * Context::threadProc(void *vrsc)
{
Context *rsc = static_cast<Context *>(vrsc);
@@ -271,6 +309,7 @@ void * Context::threadProc(void *vrsc)
rsc->props.mLogScripts = getProp("debug.rs.script");
rsc->props.mLogObjects = getProp("debug.rs.object");
rsc->props.mLogShaders = getProp("debug.rs.shader");
+ rsc->props.mLogVisual = getProp("debug.rs.visual");
ScriptTLSStruct *tlsStruct = new ScriptTLSStruct;
if (!tlsStruct) {
@@ -308,6 +347,11 @@ void * Context::threadProc(void *vrsc)
uint32_t targetTime = 0;
if (mDraw && rsc->mIsGraphicsContext) {
targetTime = rsc->runRootScript();
+
+ if(rsc->props.mLogVisual) {
+ rsc->displayDebugStats();
+ }
+
mDraw = targetTime && !rsc->mPaused;
rsc->timerSet(RS_TIMER_CLEAR_SWAP);
eglSwapBuffers(rsc->mEGL.mDisplay, rsc->mEGL.mSurface);