| Index: cc/layers/layer_impl.cc
|
| diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc
|
| index f0e85b130018485a7cbcb43f6a1bea39104bb0ea..c6bb3807250abe5e742915adad8b4ff26974b311 100644
|
| --- a/cc/layers/layer_impl.cc
|
| +++ b/cc/layers/layer_impl.cc
|
| @@ -85,6 +85,7 @@ LayerImpl::LayerImpl(LayerTreeImpl* tree_impl,
|
| num_dependents_need_push_properties_(0),
|
| sorting_context_id_(0),
|
| current_draw_mode_(DRAW_MODE_NONE),
|
| + force_render_surface_(false),
|
| num_layer_or_descendants_with_copy_request_(0),
|
| frame_timing_requests_dirty_(false),
|
| visited_(false),
|
| @@ -277,7 +278,6 @@ void LayerImpl::PassCopyRequests(
|
| if (requests->empty())
|
| return;
|
|
|
| - DCHECK(render_surface());
|
| bool was_empty = copy_requests_.empty();
|
| for (auto& request : *requests)
|
| copy_requests_.push_back(std::move(request));
|
| @@ -571,6 +571,7 @@ void LayerImpl::PushPropertiesTo(LayerImpl* layer) {
|
| layer->SetDrawsContent(DrawsContent());
|
| layer->SetHideLayerAndSubtree(hide_layer_and_subtree_);
|
| layer->SetHasRenderSurface(!!render_surface());
|
| + layer->SetForceRenderSurface(force_render_surface_);
|
| layer->SetFilters(filters());
|
| layer->SetBackgroundFilters(background_filters());
|
| layer->SetMasksToBounds(masks_to_bounds_);
|
| @@ -1328,6 +1329,12 @@ bool LayerImpl::HasOnlyTranslationTransforms() const {
|
| observer_type);
|
| }
|
|
|
| +bool LayerImpl::AnimationsPreserveAxisAlignment() const {
|
| + return layer_animation_controller_
|
| + ? layer_animation_controller_->AnimationsPreserveAxisAlignment()
|
| + : layer_tree_impl_->AnimationsPreserveAxisAlignment(this);
|
| +}
|
| +
|
| bool LayerImpl::MaximumTargetScale(float* max_scale) const {
|
| if (!layer_animation_controller_)
|
| return layer_tree_impl_->MaximumTargetScale(this, max_scale);
|
| @@ -1767,7 +1774,6 @@ void LayerImpl::SetHasRenderSurface(bool should_have_render_surface) {
|
| return;
|
|
|
| SetNeedsPushProperties();
|
| - layer_tree_impl()->set_needs_update_draw_properties();
|
| if (should_have_render_surface) {
|
| render_surface_ = make_scoped_ptr(new RenderSurfaceImpl(this));
|
| return;
|
| @@ -1804,6 +1810,14 @@ gfx::Transform LayerImpl::ScreenSpaceTransform() const {
|
| return draw_properties().screen_space_transform;
|
| }
|
|
|
| +void LayerImpl::SetForceRenderSurface(bool force_render_surface) {
|
| + if (force_render_surface == force_render_surface_)
|
| + return;
|
| +
|
| + force_render_surface_ = force_render_surface;
|
| + NoteLayerPropertyChanged();
|
| +}
|
| +
|
| Region LayerImpl::GetInvalidationRegion() {
|
| return Region(update_rect_);
|
| }
|
|
|