Index: cc/picture_pile_impl.cc |
=================================================================== |
--- cc/picture_pile_impl.cc (revision 170195) |
+++ cc/picture_pile_impl.cc (working copy) |
@@ -4,7 +4,9 @@ |
#include "base/debug/trace_event.h" |
#include "cc/picture_pile_impl.h" |
+#include "cc/rendering_stats.h" |
#include "third_party/skia/include/core/SkCanvas.h" |
+#include "third_party/skia/include/core/SkSize.h" |
namespace cc { |
@@ -28,7 +30,10 @@ |
return clone; |
} |
-void PicturePileImpl::Raster(SkCanvas* canvas, gfx::Rect rect) { |
+void PicturePileImpl::Raster(SkCanvas* canvas, gfx::Rect rect, |
+ RenderingStats* stats) { |
+ base::TimeTicks rasterizeBeginTime = base::TimeTicks::Now(); |
+ |
// TODO(enne): do this more efficiently, i.e. top down with Skia clips |
canvas->save(); |
canvas->translate(-rect.x(), -rect.y()); |
@@ -39,8 +44,14 @@ |
if (!pile_[i]->LayerRect().Intersects(rect)) |
continue; |
pile_[i]->Raster(canvas); |
+ |
+ SkISize deviceSize = canvas->getDeviceSize(); |
+ stats->totalPixelsRasterized += deviceSize.width() * deviceSize.height(); |
} |
canvas->restore(); |
+ |
+ stats->totalRasterizeTimeInSeconds += (base::TimeTicks::Now() - |
+ rasterizeBeginTime).InSecondsF(); |
} |
} // namespace cc |