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

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: Sync to head and share test logic. 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 | cc/trees/layer_tree_host_unittest.cc » ('j') | 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 1260 matching lines...) Expand 10 before | Expand all | Expand 10 after
1271 } 1271 }
1272 1272
1273 Layer* layer = LayerByElementId(element_id); 1273 Layer* layer = LayerByElementId(element_id);
1274 DCHECK(layer); 1274 DCHECK(layer);
1275 layer->OnFilterAnimated(filters); 1275 layer->OnFilterAnimated(filters);
1276 } 1276 }
1277 1277
1278 void LayerTreeHost::SetElementOpacityMutated(ElementId element_id, 1278 void LayerTreeHost::SetElementOpacityMutated(ElementId element_id,
1279 ElementListType list_type, 1279 ElementListType list_type,
1280 float opacity) { 1280 float opacity) {
1281 DCHECK_GE(opacity, 0.f);
1282 DCHECK_LE(opacity, 1.f);
1283
1284 if (settings_.use_layer_lists) {
1285 property_trees_.effect_tree.OnOpacityAnimated(element_id, opacity);
1286 return;
1287 }
1288
1281 Layer* layer = LayerByElementId(element_id); 1289 Layer* layer = LayerByElementId(element_id);
1282 DCHECK(layer); 1290 DCHECK(layer);
1283 DCHECK_GE(opacity, 0.f);
1284 DCHECK_LE(opacity, 1.f);
1285 layer->OnOpacityAnimated(opacity); 1291 layer->OnOpacityAnimated(opacity);
1286 1292
1287 if (EffectNode* node = 1293 if (EffectNode* node =
1288 property_trees_.effect_tree.UpdateNodeFromOwningLayerId( 1294 property_trees_.effect_tree.UpdateNodeFromOwningLayerId(
1289 layer->id())) { 1295 layer->id())) {
1290 DCHECK_EQ(layer->effect_tree_index(), node->id); 1296 DCHECK_EQ(layer->effect_tree_index(), node->id);
1291 if (node->opacity == opacity) 1297 if (node->opacity == opacity)
1292 return; 1298 return;
1293 1299
1294 node->opacity = opacity; 1300 node->opacity = opacity;
1295 property_trees_.effect_tree.set_needs_update(true); 1301 property_trees_.effect_tree.set_needs_update(true);
1296 } 1302 }
1297 1303
1298 SetNeedsUpdateLayers(); 1304 SetNeedsUpdateLayers();
1299 } 1305 }
1300 1306
1301 void LayerTreeHost::SetElementTransformMutated( 1307 void LayerTreeHost::SetElementTransformMutated(
1302 ElementId element_id, 1308 ElementId element_id,
1303 ElementListType list_type, 1309 ElementListType list_type,
1304 const gfx::Transform& transform) { 1310 const gfx::Transform& transform) {
1311 if (settings_.use_layer_lists) {
1312 property_trees_.transform_tree.OnTransformAnimated(element_id, transform);
1313 return;
1314 }
1315
1305 Layer* layer = LayerByElementId(element_id); 1316 Layer* layer = LayerByElementId(element_id);
1306 DCHECK(layer); 1317 DCHECK(layer);
1307 layer->OnTransformAnimated(transform); 1318 layer->OnTransformAnimated(transform);
1308 1319
1309 if (TransformNode* node = 1320 if (TransformNode* node =
1310 property_trees_.transform_tree.UpdateNodeFromOwningLayerId( 1321 property_trees_.transform_tree.UpdateNodeFromOwningLayerId(
1311 layer->id())) { 1322 layer->id())) {
1312 DCHECK_EQ(layer->transform_tree_index(), node->id); 1323 DCHECK_EQ(layer->transform_tree_index(), node->id);
1313 if (node->local == transform) 1324 if (node->local == transform)
1314 return; 1325 return;
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
1445 void LayerTreeHost::SetNeedsDisplayOnAllLayers() { 1456 void LayerTreeHost::SetNeedsDisplayOnAllLayers() {
1446 for (auto* layer : *this) 1457 for (auto* layer : *this)
1447 layer->SetNeedsDisplay(); 1458 layer->SetNeedsDisplay();
1448 } 1459 }
1449 1460
1450 void LayerTreeHost::SetHasCopyRequest(bool has_copy_request) { 1461 void LayerTreeHost::SetHasCopyRequest(bool has_copy_request) {
1451 has_copy_request_ = has_copy_request; 1462 has_copy_request_ = has_copy_request;
1452 } 1463 }
1453 1464
1454 } // namespace cc 1465 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/trees/layer_tree_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698