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) { |
enne (OOO)
2015/12/02 21:59:51
I guess you need this to force the creation of a n
|
+ if (force_render_surface == force_render_surface_) |
+ return; |
+ |
+ force_render_surface_ = force_render_surface; |
+ NoteLayerPropertyChanged(); |
+} |
+ |
Region LayerImpl::GetInvalidationRegion() { |
return Region(update_rect_); |
} |