From 3c37dba2da292e0342d39731d6fe558340521bb5 Mon Sep 17 00:00:00 2001 From: hendrikw Date: Fri, 26 Sep 2014 17:52:53 -0700 Subject: [PATCH] cc: Allow fully solid layers to contribute pixels for telemetry The theory is that some of the tests that check mean_pixels_approximated could become worse after my change because PLI's drawn as solid color were not adding its drawn pixels into the calculation. I can't replicate the test, possibly due to lack of throttling on my phone, so the plan is to commit this change and see if the tests go back to normal. Even if it doesn't improve the test, the change is correct and should be committed regardless. BUG=416446 Review URL: https://codereview.chromium.org/607063003 Cr-Commit-Position: refs/heads/master@{#297087} --- cc/layers/picture_layer_impl.cc | 3 ++- cc/layers/solid_color_layer_impl.cc | 10 ++++++++-- cc/layers/solid_color_layer_impl.h | 3 ++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc index 37c83289700ab..9a43916a7ff07 100644 --- a/cc/layers/picture_layer_impl.cc +++ b/cc/layers/picture_layer_impl.cc @@ -171,7 +171,8 @@ void PictureLayerImpl::AppendQuads( shared_quad_state, content_bounds(), draw_properties().target_space_transform, - pile_->solid_color()); + pile_->solid_color(), + append_quads_data); return; } diff --git a/cc/layers/solid_color_layer_impl.cc b/cc/layers/solid_color_layer_impl.cc index 0d343c579e099..5e0a64027d105 100644 --- a/cc/layers/solid_color_layer_impl.cc +++ b/cc/layers/solid_color_layer_impl.cc @@ -6,6 +6,7 @@ #include +#include "cc/layers/append_quads_data.h" #include "cc/quads/solid_color_draw_quad.h" #include "cc/trees/occlusion_tracker.h" @@ -32,7 +33,8 @@ void SolidColorLayerImpl::AppendSolidQuads( SharedQuadState* shared_quad_state, const gfx::Size& content_bounds, const gfx::Transform& target_space_transform, - SkColor color) { + SkColor color, + AppendQuadsData* append_quads_data) { Occlusion occlusion = occlusion_tracker.GetCurrentOcclusionForLayer(target_space_transform); @@ -51,6 +53,9 @@ void SolidColorLayerImpl::AppendSolidQuads( if (visible_quad_rect.IsEmpty()) continue; + append_quads_data->visible_content_area += + visible_quad_rect.width() * visible_quad_rect.height(); + SolidColorDrawQuad* quad = render_pass->CreateAndAppendDrawQuad(); quad->SetNew( @@ -75,7 +80,8 @@ void SolidColorLayerImpl::AppendQuads( shared_quad_state, content_bounds(), draw_properties().target_space_transform, - background_color()); + background_color(), + append_quads_data); } const char* SolidColorLayerImpl::LayerTypeAsString() const { diff --git a/cc/layers/solid_color_layer_impl.h b/cc/layers/solid_color_layer_impl.h index 598eed2e996ab..e59db0f57261a 100644 --- a/cc/layers/solid_color_layer_impl.h +++ b/cc/layers/solid_color_layer_impl.h @@ -24,7 +24,8 @@ class CC_EXPORT SolidColorLayerImpl : public LayerImpl { SharedQuadState* shared_quad_state, const gfx::Size& content_bounds, const gfx::Transform& target_space_transform, - SkColor color); + SkColor color, + AppendQuadsData* append_quads_data); virtual ~SolidColorLayerImpl();