Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Unified Diff: cc/layers/layer_impl.cc

Issue 1491033002: Create RenderSurface on Effect Tree (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@alwayspt
Patch Set: address review comments Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_);
}

Powered by Google App Engine
This is Rietveld 408576698