summaryrefslogtreecommitdiffstats
path: root/cc/debug
diff options
context:
space:
mode:
authordanakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-10 22:33:08 +0000
committerdanakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-10 22:33:08 +0000
commitf636ce801b677854048affa6d550a9ac84c611b0 (patch)
tree9183d3dc2d897b80a2df18dfe8e5eda47c3f025f /cc/debug
parent51dacee518ef680a24973a3573c09433c43e83ca (diff)
downloadchromium_src-f636ce801b677854048affa6d550a9ac84c611b0.zip
chromium_src-f636ce801b677854048affa6d550a9ac84c611b0.tar.gz
chromium_src-f636ce801b677854048affa6d550a9ac84c611b0.tar.bz2
cc: Fix damage when the HUD is enabled.
When the HUD is on, and partial swaps are enabled, the damage rects emitted by the renderer do not include the HUD, so the HUD is not updated correctly on screen. Previously we disabled partial swap in the renderer compositor to force the hud to display, but in ubercomp, partial swap is never used in the renderer, and the damage rect is given to the browser instead. So we need to update the renderer's damage rect in this case. R=enne@chromium.org, piman@chromium.org, caseq, enne BUG=350495 Review URL: https://codereview.chromium.org/191433002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256052 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/debug')
-rw-r--r--cc/debug/debug_rect_history.cc8
-rw-r--r--cc/debug/debug_rect_history.h5
2 files changed, 8 insertions, 5 deletions
diff --git a/cc/debug/debug_rect_history.cc b/cc/debug/debug_rect_history.cc
index 47c952e..e165aed 100644
--- a/cc/debug/debug_rect_history.cc
+++ b/cc/debug/debug_rect_history.cc
@@ -26,6 +26,7 @@ DebugRectHistory::~DebugRectHistory() {}
void DebugRectHistory::SaveDebugRectsForCurrentFrame(
LayerImpl* root_layer,
+ LayerImpl* hud_layer,
const LayerImplList& render_surface_layer_list,
const std::vector<gfx::Rect>& occluding_screen_space_rects,
const std::vector<gfx::Rect>& non_occluding_screen_space_rects,
@@ -47,7 +48,7 @@ void DebugRectHistory::SaveDebugRectsForCurrentFrame(
SavePaintRects(root_layer);
if (debug_state.show_property_changed_rects)
- SavePropertyChangedRects(render_surface_layer_list);
+ SavePropertyChangedRects(render_surface_layer_list, hud_layer);
if (debug_state.show_surface_damage_rects)
SaveSurfaceDamageRects(render_surface_layer_list);
@@ -89,7 +90,8 @@ void DebugRectHistory::SavePaintRects(LayerImpl* layer) {
}
void DebugRectHistory::SavePropertyChangedRects(
- const LayerImplList& render_surface_layer_list) {
+ const LayerImplList& render_surface_layer_list,
+ LayerImpl* hud_layer) {
for (int surface_index = render_surface_layer_list.size() - 1;
surface_index >= 0;
--surface_index) {
@@ -107,7 +109,7 @@ void DebugRectHistory::SavePropertyChangedRects(
layer, render_surface_layer->id()))
continue;
- if (layer->LayerIsAlwaysDamaged())
+ if (layer == hud_layer)
continue;
if (layer->LayerPropertyChanged()) {
diff --git a/cc/debug/debug_rect_history.h b/cc/debug/debug_rect_history.h
index 33b74a2..f5ee0be 100644
--- a/cc/debug/debug_rect_history.h
+++ b/cc/debug/debug_rect_history.h
@@ -77,6 +77,7 @@ class DebugRectHistory {
// reset.
void SaveDebugRectsForCurrentFrame(
LayerImpl* root_layer,
+ LayerImpl* hud_layer,
const LayerImplList& render_surface_layer_list,
const std::vector<gfx::Rect>& occluding_screen_space_rects,
const std::vector<gfx::Rect>& non_occluding_screen_space_rects,
@@ -88,8 +89,8 @@ class DebugRectHistory {
DebugRectHistory();
void SavePaintRects(LayerImpl* layer);
- void SavePropertyChangedRects(
- const LayerImplList& render_surface_layer_list);
+ void SavePropertyChangedRects(const LayerImplList& render_surface_layer_list,
+ LayerImpl* hud_layer);
void SaveSurfaceDamageRects(
const LayerImplList& render_surface_layer_list);
void SaveScreenSpaceRects(