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

Side by Side Diff: cc/layers/layer.cc

Issue 2846653002: cc : Stop pushing layers from hidden subtrees at commit
Patch Set: hide mask layer also Created 3 years, 7 months 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 unified diff | Download patch
OLDNEW
1 // Copyright 2010 The Chromium Authors. All rights reserved. 1 // Copyright 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/layers/layer.h" 5 #include "cc/layers/layer.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 // Layer IDs start from 1. 79 // Layer IDs start from 1.
80 inputs_(g_next_layer_id.GetNext() + 1), 80 inputs_(g_next_layer_id.GetNext() + 1),
81 num_descendants_that_draw_content_(0), 81 num_descendants_that_draw_content_(0),
82 transform_tree_index_(TransformTree::kInvalidNodeId), 82 transform_tree_index_(TransformTree::kInvalidNodeId),
83 effect_tree_index_(EffectTree::kInvalidNodeId), 83 effect_tree_index_(EffectTree::kInvalidNodeId),
84 clip_tree_index_(ClipTree::kInvalidNodeId), 84 clip_tree_index_(ClipTree::kInvalidNodeId),
85 scroll_tree_index_(ScrollTree::kInvalidNodeId), 85 scroll_tree_index_(ScrollTree::kInvalidNodeId),
86 property_tree_sequence_number_(-1), 86 property_tree_sequence_number_(-1),
87 should_flatten_transform_from_property_tree_(false), 87 should_flatten_transform_from_property_tree_(false),
88 draws_content_(false), 88 draws_content_(false),
89 is_hidden_(false),
89 use_local_transform_for_backface_visibility_(false), 90 use_local_transform_for_backface_visibility_(false),
90 should_check_backface_visibility_(false), 91 should_check_backface_visibility_(false),
91 force_render_surface_for_testing_(false), 92 force_render_surface_for_testing_(false),
92 subtree_property_changed_(false), 93 subtree_property_changed_(false),
93 may_contain_video_(false), 94 may_contain_video_(false),
94 is_scroll_clip_layer_(false), 95 is_scroll_clip_layer_(false),
95 needs_show_scrollbars_(false), 96 needs_show_scrollbars_(false),
96 subtree_has_copy_request_(false), 97 subtree_has_copy_request_(false),
97 safe_opaque_background_color_(0), 98 safe_opaque_background_color_(0),
98 num_unclipped_descendants_(0) {} 99 num_unclipped_descendants_(0) {}
(...skipping 1021 matching lines...) Expand 10 before | Expand all | Expand 10 after
1120 std::unique_ptr<CopyOutputResult> result) { 1121 std::unique_ptr<CopyOutputResult> result) {
1121 main_thread_task_runner->PostTask( 1122 main_thread_task_runner->PostTask(
1122 FROM_HERE, base::BindOnce(&RunCopyCallbackOnMainThread, 1123 FROM_HERE, base::BindOnce(&RunCopyCallbackOnMainThread,
1123 base::Passed(&request), base::Passed(&result))); 1124 base::Passed(&request), base::Passed(&result)));
1124 } 1125 }
1125 1126
1126 bool Layer::IsSnapped() { 1127 bool Layer::IsSnapped() {
1127 return scrollable(); 1128 return scrollable();
1128 } 1129 }
1129 1130
1131 bool Layer::IsSurfaceLayer() const {
1132 return false;
1133 }
1134
1135 const SurfaceId* Layer::GetSurfaceId() const {
1136 return nullptr;
1137 }
1138
1130 void Layer::PushPropertiesTo(LayerImpl* layer) { 1139 void Layer::PushPropertiesTo(LayerImpl* layer) {
1131 TRACE_EVENT0("cc", "Layer::PushPropertiesTo"); 1140 TRACE_EVENT0("cc", "Layer::PushPropertiesTo");
1132 DCHECK(layer_tree_host_); 1141 DCHECK(layer_tree_host_);
1133 1142
1134 // The ElementId should be set first because other setters depend on it such 1143 // The ElementId should be set first because other setters depend on it such
1135 // as LayerImpl::SetScrollClipLayer. 1144 // as LayerImpl::SetScrollClipLayer.
1136 layer->SetElementId(inputs_.element_id); 1145 layer->SetElementId(inputs_.element_id);
1137 layer->SetBackgroundColor(inputs_.background_color); 1146 layer->SetBackgroundColor(inputs_.background_color);
1138 layer->SetSafeOpaqueBackgroundColor(safe_opaque_background_color_); 1147 layer->SetSafeOpaqueBackgroundColor(safe_opaque_background_color_);
1139 layer->SetBounds(inputs_.bounds); 1148 layer->SetBounds(inputs_.bounds);
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
1276 return inputs_.client->TakeDebugInfo(this); 1285 return inputs_.client->TakeDebugInfo(this);
1277 else 1286 else
1278 return nullptr; 1287 return nullptr;
1279 } 1288 }
1280 1289
1281 void Layer::didUpdateMainThreadScrollingReasons() { 1290 void Layer::didUpdateMainThreadScrollingReasons() {
1282 if (inputs_.client) 1291 if (inputs_.client)
1283 inputs_.client->didUpdateMainThreadScrollingReasons(); 1292 inputs_.client->didUpdateMainThreadScrollingReasons();
1284 } 1293 }
1285 1294
1295 void Layer::SetIsHidden(bool is_hidden) {
1296 DCHECK(layer_tree_host_);
1297 if (is_hidden == is_hidden_)
1298 return;
1299 is_hidden_ = is_hidden;
1300 // We don't push layers that are hidden to compositor thread at commit. So,
1301 // we need a full tree sync when is_hidden changes.
1302 layer_tree_host_->SetNeedsFullTreeSync();
1303 SetNeedsPushProperties();
1304 }
1305
1286 void Layer::SetSubtreePropertyChanged() { 1306 void Layer::SetSubtreePropertyChanged() {
1287 if (subtree_property_changed_) 1307 if (subtree_property_changed_)
1288 return; 1308 return;
1289 subtree_property_changed_ = true; 1309 subtree_property_changed_ = true;
1290 SetNeedsPushProperties(); 1310 SetNeedsPushProperties();
1291 } 1311 }
1292 1312
1293 void Layer::SetMayContainVideo(bool yes) { 1313 void Layer::SetMayContainVideo(bool yes) {
1294 if (may_contain_video_ == yes) 1314 if (may_contain_video_ == yes)
1295 return; 1315 return;
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
1427 ->subtree_has_copy_request; 1447 ->subtree_has_copy_request;
1428 } 1448 }
1429 1449
1430 gfx::Transform Layer::ScreenSpaceTransform() const { 1450 gfx::Transform Layer::ScreenSpaceTransform() const {
1431 DCHECK_NE(transform_tree_index_, TransformTree::kInvalidNodeId); 1451 DCHECK_NE(transform_tree_index_, TransformTree::kInvalidNodeId);
1432 return draw_property_utils::ScreenSpaceTransform( 1452 return draw_property_utils::ScreenSpaceTransform(
1433 this, layer_tree_host_->property_trees()->transform_tree); 1453 this, layer_tree_host_->property_trees()->transform_tree);
1434 } 1454 }
1435 1455
1436 } // namespace cc 1456 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698