Chromium Code Reviews| Index: cc/layers/layer.cc |
| diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc |
| index dd150e38598fbe6c739644929154ebf8d83d8e13..cda2eacab5496fd88a258ecd759b1b69aa220b32 100644 |
| --- a/cc/layers/layer.cc |
| +++ b/cc/layers/layer.cc |
| @@ -55,7 +55,8 @@ Layer::Layer() |
| draw_checkerboard_for_missing_tiles_(false), |
| force_render_surface_(false), |
| replica_layer_(NULL), |
| - raster_scale_(0.f) { |
| + raster_scale_(0.f), |
| + saved_paint_properties_(false) { |
| if (layer_id_ < 0) { |
| s_next_layer_id = 1; |
| layer_id_ = s_next_layer_id++; |
| @@ -729,7 +730,8 @@ void Layer::PushPropertiesTo(LayerImpl* layer) { |
| layer->SetAnchorPoint(anchor_point_); |
| layer->SetAnchorPointZ(anchor_point_z_); |
| layer->SetBackgroundColor(background_color_); |
| - layer->SetBounds(paint_properties_.bounds); |
| + layer->SetBounds(saved_paint_properties_ ? paint_properties_.bounds |
| + : bounds_); |
| layer->SetContentBounds(content_bounds()); |
| layer->SetContentsScale(contents_scale_x(), contents_scale_y()); |
| layer->SetDebugName(debug_name_); |
| @@ -825,6 +827,8 @@ void Layer::PushPropertiesTo(LayerImpl* layer) { |
| // crbug.com/259088 |
| needs_push_properties_ = layer_animation_controller_->has_any_animation(); |
| num_dependents_need_push_properties_ = 0; |
| + |
| + saved_paint_properties_ = false; |
| } |
| scoped_ptr<LayerImpl> Layer::CreateLayerImpl(LayerTreeImpl* tree_impl) { |
| @@ -839,10 +843,12 @@ void Layer::SavePaintProperties() { |
| // TODO(reveman): Save all layer properties that we depend on not |
| // changing until PushProperties() has been called. crbug.com/231016 |
| paint_properties_.bounds = bounds_; |
| + saved_paint_properties_ = true; |
| } |
| bool Layer::Update(ResourceUpdateQueue* queue, |
| const OcclusionTracker* occlusion) { |
| + DCHECK(saved_paint_properties_); |
|
enne (OOO)
2013/08/02 17:00:48
This seems like something that could be easily ski
danakj
2013/08/02 21:57:28
Done.
|
| return false; |
| } |