Index: cc/trees/damage_tracker.cc |
diff --git a/cc/trees/damage_tracker.cc b/cc/trees/damage_tracker.cc |
index 4d0e9353eff098a12f39f88da672c6ded7052b76..3953ab3c36dae7a3378cc727503ced6af024426f 100644 |
--- a/cc/trees/damage_tracker.cc |
+++ b/cc/trees/damage_tracker.cc |
@@ -289,6 +289,16 @@ void DamageTracker::ExtendDamageForLayer(LayerImpl* layer, |
gfx::RectF(gfx::PointF(), layer->content_bounds())); |
data.Update(rect_in_target_space, mailboxId_); |
+ // Union layer's update_rect with damage_rect |
+ if (!layer->damage_rect().IsEmpty()) { |
+ gfx::RectF rect = layer->update_rect(); |
+ gfx::RectF layer_rect = gfx::ScaleRect(layer->damage_rect(), |
+ 1 / layer->contents_scale_x(), |
+ 1 / layer->contents_scale_y()); |
+ layer->SetUpdateRect(gfx::UnionRects(rect, layer_rect)); |
danakj
2014/04/14 17:17:07
instead of setting the UpdateRect on the layer, ju
sohanjg
2014/04/15 10:03:48
Done.
|
+ layer->ResetDamageRect(); |
danakj
2014/04/14 17:17:07
Instead of clearing the damage rect here, you can
sohanjg
2014/04/15 10:03:48
Done.
|
+ } |
+ |
if (layer_is_new || layer->LayerPropertyChanged()) { |
// If a layer is new or has changed, then its entire layer rect affects the |
// target surface. |