Chromium Code Reviews| Index: cc/layers/layer.cc |
| diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc |
| index 63b9990d65faf0e9cb34cac442e7a2c03c44e08a..cf79858f2471784f90c71b17b04f48286ffa86a6 100644 |
| --- a/cc/layers/layer.cc |
| +++ b/cc/layers/layer.cc |
| @@ -67,6 +67,7 @@ Layer::Layer() |
| draw_checkerboard_for_missing_tiles_(false), |
| force_render_surface_(false), |
| transform_is_invertible_(true), |
| + has_render_surface_(false), |
| background_color_(0), |
| opacity_(1.f), |
| blend_mode_(SkXfermode::kSrcOver_Mode), |
| @@ -876,7 +877,6 @@ void Layer::PushPropertiesTo(LayerImpl* layer) { |
| layer->SetDoubleSided(double_sided_); |
| layer->SetDrawCheckerboardForMissingTiles( |
| draw_checkerboard_for_missing_tiles_); |
| - layer->SetForceRenderSurface(force_render_surface_); |
| layer->SetDrawsContent(DrawsContent()); |
| layer->SetHideLayerAndSubtree(hide_layer_and_subtree_); |
| if (!layer->FilterIsAnimatingOnImplOnly() && !FilterIsAnimating()) |
| @@ -910,6 +910,7 @@ void Layer::PushPropertiesTo(LayerImpl* layer) { |
| layer->SetScrollClipLayer(scroll_clip_layer_id_); |
| layer->set_user_scrollable_horizontal(user_scrollable_horizontal_); |
| layer->set_user_scrollable_vertical(user_scrollable_vertical_); |
| + layer->SetHasRenderSurface(has_render_surface_); |
| LayerImpl* scroll_parent = NULL; |
| if (scroll_parent_) { |
| @@ -1078,19 +1079,28 @@ scoped_refptr<base::debug::ConvertableToTraceFormat> Layer::TakeDebugInfo() { |
| return NULL; |
| } |
| +void Layer::SetHasRenderSurface(bool has_render_surface) { |
| + if (has_render_surface_ == has_render_surface) { |
|
danakj
2014/09/03 19:30:33
nit: no {}
awoloszyn
2014/09/09 15:31:35
Done.
|
| + return; |
| + } |
| + has_render_surface_ = has_render_surface; |
|
danakj
2014/09/03 19:30:33
Can this function just Create/reset the surface an
awoloszyn
2014/09/09 15:31:35
As far as I can tell we cannot. Once we return fro
danakj
2014/09/25 16:02:11
I see, at some point we can probably remove the Re
|
| + // We do not need SetNeedsCommit here, since this is only ever called |
| + // during a commit, from CalculateDrawProperties. |
| + SetNeedsPushProperties(); |
| +} |
| + |
| void Layer::CreateRenderSurface() { |
| - DCHECK(!draw_properties_.render_surface); |
| - draw_properties_.render_surface = make_scoped_ptr(new RenderSurface(this)); |
| - draw_properties_.render_target = this; |
| + DCHECK(!render_surface_); |
| + render_surface_ = make_scoped_ptr(new RenderSurface(this)); |
| } |
| void Layer::ClearRenderSurface() { |
| - draw_properties_.render_surface.reset(); |
| + render_surface_.reset(); |
| } |
| void Layer::ClearRenderSurfaceLayerList() { |
| - if (draw_properties_.render_surface) |
| - draw_properties_.render_surface->layer_list().clear(); |
| + if (render_surface_) |
| + render_surface_->layer_list().clear(); |
| } |
| gfx::Vector2dF Layer::ScrollOffsetForAnimation() const { |