summaryrefslogtreecommitdiff
path: root/libs/hwui
diff options
context:
space:
mode:
author ztenghui <ztenghui@google.com> 2017-09-13 10:32:50 -0700
committer Tenghui Zhu <ztenghui@google.com> 2017-09-22 19:44:24 +0000
commit3d30ca1d3c9cbb8e7c6f4194b7e5f79fd44cd0b3 (patch)
tree839703f4c764d960d8951f7882932450fb9a89d8 /libs/hwui
parente8041834b1de4322456c40436240650482217bc9 (diff)
Add systrace for VectorDrawable inflation and draw
We didn't trace the draw from cache. Here we add trace for draw into bitmap, which is normally heavy. fix: 65060698 Bug: 65060698 Test: run test app and get systrace and check Change-Id: Ia81127c4aa285b3277e9c9edbdf356d85cb28b5e (cherry picked from commit cf0c41dbc221c2619212c7e25e6d90a9c4d05b05)
Diffstat (limited to 'libs/hwui')
-rw-r--r--libs/hwui/VectorDrawable.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/libs/hwui/VectorDrawable.cpp b/libs/hwui/VectorDrawable.cpp
index 8a1de02e6a0c..ca179c9a25d2 100644
--- a/libs/hwui/VectorDrawable.cpp
+++ b/libs/hwui/VectorDrawable.cpp
@@ -22,6 +22,7 @@
#include "SkShader.h"
#include <utils/Log.h>
#include "utils/Macros.h"
+#include "utils/TraceUtils.h"
#include "utils/VectorDrawableUtils.h"
#include <math.h>
@@ -593,14 +594,17 @@ void Tree::draw(SkCanvas* canvas) {
void Tree::updateBitmapCache(Bitmap& bitmap, bool useStagingData) {
SkBitmap outCache;
bitmap.getSkBitmap(&outCache);
+ int cacheWidth = outCache.width();
+ int cacheHeight = outCache.height();
+ ATRACE_FORMAT("VectorDrawable repaint %dx%d", cacheWidth, cacheHeight);
outCache.eraseColor(SK_ColorTRANSPARENT);
SkCanvas outCanvas(outCache);
float viewportWidth = useStagingData ?
mStagingProperties.getViewportWidth() : mProperties.getViewportWidth();
float viewportHeight = useStagingData ?
mStagingProperties.getViewportHeight() : mProperties.getViewportHeight();
- float scaleX = outCache.width() / viewportWidth;
- float scaleY = outCache.height() / viewportHeight;
+ float scaleX = cacheWidth / viewportWidth;
+ float scaleY = cacheHeight / viewportHeight;
outCanvas.scale(scaleX, scaleY);
mRootNode->draw(&outCanvas, useStagingData);
}