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

Side by Side Diff: cc/trees/layer_tree_host.cc

Issue 2878743002: Set opacity and transform mutations directly on property tree for SPv2. (Closed)
Patch Set: 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.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 1253 matching lines...) Expand 10 before | Expand all | Expand 10 after
1264 ElementListType list_type, 1264 ElementListType list_type,
1265 const FilterOperations& filters) { 1265 const FilterOperations& filters) {
1266 Layer* layer = LayerByElementId(element_id); 1266 Layer* layer = LayerByElementId(element_id);
1267 DCHECK(layer); 1267 DCHECK(layer);
1268 layer->OnFilterAnimated(filters); 1268 layer->OnFilterAnimated(filters);
1269 } 1269 }
1270 1270
1271 void LayerTreeHost::SetElementOpacityMutated(ElementId element_id, 1271 void LayerTreeHost::SetElementOpacityMutated(ElementId element_id,
1272 ElementListType list_type, 1272 ElementListType list_type,
1273 float opacity) { 1273 float opacity) {
1274 DCHECK_GE(opacity, 0.f);
1275 DCHECK_LE(opacity, 1.f);
1276
1277 if (settings_.use_layer_lists) {
1278 // TODO(wkorman): Do we need to do the update-node-from-owning-layer-id
wkorman 2017/05/11 18:19:14 Seeking your input here. I'm not sure how to think
chrishtr 2017/05/11 19:52:46 Yes, we should remove the owning node logic and ma
1279 // below?
1280 property_trees_.effect_tree.OnOpacityAnimated(element_id, opacity);
1281 return;
1282 }
1283
1274 Layer* layer = LayerByElementId(element_id); 1284 Layer* layer = LayerByElementId(element_id);
1275 DCHECK(layer); 1285 DCHECK(layer);
1276 DCHECK_GE(opacity, 0.f);
1277 DCHECK_LE(opacity, 1.f);
1278 layer->OnOpacityAnimated(opacity); 1286 layer->OnOpacityAnimated(opacity);
1279 1287
1280 if (EffectNode* node = 1288 if (EffectNode* node =
1281 property_trees_.effect_tree.UpdateNodeFromOwningLayerId( 1289 property_trees_.effect_tree.UpdateNodeFromOwningLayerId(
1282 layer->id())) { 1290 layer->id())) {
1283 DCHECK_EQ(layer->effect_tree_index(), node->id); 1291 DCHECK_EQ(layer->effect_tree_index(), node->id);
1284 if (node->opacity == opacity) 1292 if (node->opacity == opacity)
1285 return; 1293 return;
1286 1294
1287 node->opacity = opacity; 1295 node->opacity = opacity;
1288 property_trees_.effect_tree.set_needs_update(true); 1296 property_trees_.effect_tree.set_needs_update(true);
1289 } 1297 }
1290 1298
1291 SetNeedsUpdateLayers(); 1299 SetNeedsUpdateLayers();
1292 } 1300 }
1293 1301
1294 void LayerTreeHost::SetElementTransformMutated( 1302 void LayerTreeHost::SetElementTransformMutated(
1295 ElementId element_id, 1303 ElementId element_id,
1296 ElementListType list_type, 1304 ElementListType list_type,
1297 const gfx::Transform& transform) { 1305 const gfx::Transform& transform) {
1306 if (settings_.use_layer_lists) {
1307 // TODO(wkorman): Do we need to do the update-node-from-owning-layer-id
1308 // below?
1309 property_trees_.transform_tree.OnTransformAnimated(element_id, transform);
1310 return;
1311 }
1312
1298 Layer* layer = LayerByElementId(element_id); 1313 Layer* layer = LayerByElementId(element_id);
1299 DCHECK(layer); 1314 DCHECK(layer);
1300 layer->OnTransformAnimated(transform); 1315 layer->OnTransformAnimated(transform);
1301 1316
1302 if (TransformNode* node = 1317 if (TransformNode* node =
1303 property_trees_.transform_tree.UpdateNodeFromOwningLayerId( 1318 property_trees_.transform_tree.UpdateNodeFromOwningLayerId(
1304 layer->id())) { 1319 layer->id())) {
1305 DCHECK_EQ(layer->transform_tree_index(), node->id); 1320 DCHECK_EQ(layer->transform_tree_index(), node->id);
1306 if (node->local == transform) 1321 if (node->local == transform)
1307 return; 1322 return;
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
1438 void LayerTreeHost::SetNeedsDisplayOnAllLayers() { 1453 void LayerTreeHost::SetNeedsDisplayOnAllLayers() {
1439 for (auto* layer : *this) 1454 for (auto* layer : *this)
1440 layer->SetNeedsDisplay(); 1455 layer->SetNeedsDisplay();
1441 } 1456 }
1442 1457
1443 void LayerTreeHost::SetHasCopyRequest(bool has_copy_request) { 1458 void LayerTreeHost::SetHasCopyRequest(bool has_copy_request) {
1444 has_copy_request_ = has_copy_request; 1459 has_copy_request_ = has_copy_request;
1445 } 1460 }
1446 1461
1447 } // namespace cc 1462 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698