Chromium Code Reviews| 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. |