diff options
| author | Alex Sakhartchouk <alexst@google.com> | 2010-08-03 12:03:16 -0700 |
|---|---|---|
| committer | Alex Sakhartchouk <alexst@google.com> | 2010-08-03 12:03:16 -0700 |
| commit | 6de555001bc9b3ea6baf8ce1293e6c366a9bd6ce (patch) | |
| tree | d562c09856e02eaa2a478ed616fd465ea7a58c8a /libs/rs/rsContext.cpp | |
| parent | 89a524ac2d4a36739e51b01b336c0bade77e2ee0 (diff) | |
| download | frameworks_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.cpp | 44 |
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); |
