diff options
| author | Michael Jurka <mikejurka@google.com> | 2012-04-02 09:45:36 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-04-02 09:45:36 -0700 |
| commit | e6c966caa3aff3099e6fb00caefa10387f57b9c3 (patch) | |
| tree | 83cc40d420f132a1b1d22f3d6fc8d733c760643d /core/java | |
| parent | 78b0d9faddd11b0d33fe5164bb83224ff89e4305 (diff) | |
| parent | a3fabff98590d26f0c362cb09dc378fece66215c (diff) | |
| download | frameworks_base-e6c966caa3aff3099e6fb00caefa10387f57b9c3.zip frameworks_base-e6c966caa3aff3099e6fb00caefa10387f57b9c3.tar.gz frameworks_base-e6c966caa3aff3099e6fb00caefa10387f57b9c3.tar.bz2 | |
Merge "Add frame counter to dumpGfxInfo"
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/view/HardwareRenderer.java | 20 | ||||
| -rw-r--r-- | core/java/android/view/WindowManagerImpl.java | 7 |
2 files changed, 22 insertions, 5 deletions
diff --git a/core/java/android/view/HardwareRenderer.java b/core/java/android/view/HardwareRenderer.java index be640dc..133f601 100644 --- a/core/java/android/view/HardwareRenderer.java +++ b/core/java/android/view/HardwareRenderer.java @@ -259,7 +259,14 @@ public abstract class HardwareRenderer { * @param pw */ abstract void dumpGfxInfo(PrintWriter pw); - + + /** + * Outputs the total number of frames rendered (used for fps calculations) + * + * @return the number of frames rendered + */ + abstract long getFrameCount(); + /** * Sets the directory to use as a persistent storage for hardware rendering * resources. @@ -513,7 +520,7 @@ public abstract class HardwareRenderer { GL mGl; HardwareCanvas mCanvas; - int mFrameCount; + long mFrameCount; Paint mDebugPaint; static boolean sDirtyRegions; @@ -591,6 +598,11 @@ public abstract class HardwareRenderer { } } + @Override + long getFrameCount() { + return mFrameCount; + } + /** * Indicates whether this renderer instance can track and update dirty regions. */ @@ -1056,13 +1068,13 @@ public abstract class HardwareRenderer { callbacks.onHardwarePostDraw(canvas); canvas.restoreToCount(saveCount); view.mRecreateDisplayList = false; - + mFrameCount++; if (mDebugDirtyRegions) { if (mDebugPaint == null) { mDebugPaint = new Paint(); mDebugPaint.setColor(0x7fff0000); } - if (dirty != null && (mFrameCount++ & 1) == 0) { + if (dirty != null && (mFrameCount & 1) == 0) { canvas.drawRect(dirty, mDebugPaint); } } diff --git a/core/java/android/view/WindowManagerImpl.java b/core/java/android/view/WindowManagerImpl.java index f2ee9f9..a45a87e 100644 --- a/core/java/android/view/WindowManagerImpl.java +++ b/core/java/android/view/WindowManagerImpl.java @@ -510,8 +510,13 @@ public class WindowManagerImpl implements WindowManager { String name = root.getClass().getName() + '@' + Integer.toHexString(hashCode()); - pw.printf(" %s: %d views, %.2f kB (display lists)\n", + pw.printf(" %s: %d views, %.2f kB (display lists)", name, info[0], info[1] / 1024.0f); + HardwareRenderer renderer = root.getView().mAttachInfo.mHardwareRenderer; + if (renderer != null) { + pw.printf(", %d frames rendered", renderer.getFrameCount()); + } + pw.printf("\n"); viewsCount += info[0]; displayListsSize += info[1]; |
