OLD | NEW |
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 662 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
673 TRACE_EVENT_INSTANT1( | 673 TRACE_EVENT_INSTANT1( |
674 "cc", "LayerTreeHostInProcess::UpdateLayers_BuiltPropertyTrees", | 674 "cc", "LayerTreeHostInProcess::UpdateLayers_BuiltPropertyTrees", |
675 TRACE_EVENT_SCOPE_THREAD, "property_trees", | 675 TRACE_EVENT_SCOPE_THREAD, "property_trees", |
676 property_trees->AsTracedValue()); | 676 property_trees->AsTracedValue()); |
677 } else { | 677 } else { |
678 TRACE_EVENT_INSTANT1( | 678 TRACE_EVENT_INSTANT1( |
679 "cc", "LayerTreeHostInProcess::UpdateLayers_ReceivedPropertyTrees", | 679 "cc", "LayerTreeHostInProcess::UpdateLayers_ReceivedPropertyTrees", |
680 TRACE_EVENT_SCOPE_THREAD, "property_trees", | 680 TRACE_EVENT_SCOPE_THREAD, "property_trees", |
681 property_trees->AsTracedValue()); | 681 property_trees->AsTracedValue()); |
682 } | 682 } |
683 draw_property_utils::UpdatePropertyTrees(property_trees, | 683 draw_property_utils::UpdatePropertyTrees(this, property_trees, |
684 can_render_to_separate_surface); | 684 can_render_to_separate_surface); |
685 draw_property_utils::FindLayersThatNeedUpdates(this, property_trees, | 685 draw_property_utils::FindLayersThatNeedUpdates(this, property_trees, |
686 &update_layer_list); | 686 &update_layer_list); |
687 } | 687 } |
688 | 688 |
689 for (const auto& layer : update_layer_list) | 689 for (const auto& layer : update_layer_list) |
690 layer->SavePaintProperties(); | 690 layer->SavePaintProperties(); |
691 | 691 |
692 bool content_is_suitable_for_gpu = true; | 692 bool content_is_suitable_for_gpu = true; |
693 bool did_paint_content = | 693 bool did_paint_content = |
(...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1234 void LayerTreeHost::SetElementOpacityMutated(ElementId element_id, | 1234 void LayerTreeHost::SetElementOpacityMutated(ElementId element_id, |
1235 ElementListType list_type, | 1235 ElementListType list_type, |
1236 float opacity) { | 1236 float opacity) { |
1237 Layer* layer = LayerByElementId(element_id); | 1237 Layer* layer = LayerByElementId(element_id); |
1238 DCHECK(layer); | 1238 DCHECK(layer); |
1239 DCHECK_GE(opacity, 0.f); | 1239 DCHECK_GE(opacity, 0.f); |
1240 DCHECK_LE(opacity, 1.f); | 1240 DCHECK_LE(opacity, 1.f); |
1241 layer->OnOpacityAnimated(opacity); | 1241 layer->OnOpacityAnimated(opacity); |
1242 | 1242 |
1243 if (EffectNode* node = | 1243 if (EffectNode* node = |
1244 property_trees_.effect_tree.FindNodeFromOwningLayerId(layer->id())) { | 1244 property_trees_.effect_tree.UpdateNodeFromOwningLayerId( |
| 1245 layer->id())) { |
1245 DCHECK_EQ(layer->effect_tree_index(), node->id); | 1246 DCHECK_EQ(layer->effect_tree_index(), node->id); |
1246 if (node->opacity == opacity) | 1247 if (node->opacity == opacity) |
1247 return; | 1248 return; |
1248 | 1249 |
1249 node->opacity = opacity; | 1250 node->opacity = opacity; |
1250 property_trees_.effect_tree.set_needs_update(true); | 1251 property_trees_.effect_tree.set_needs_update(true); |
1251 } | 1252 } |
1252 | 1253 |
1253 SetNeedsUpdateLayers(); | 1254 SetNeedsUpdateLayers(); |
1254 } | 1255 } |
1255 | 1256 |
1256 void LayerTreeHost::SetElementTransformMutated( | 1257 void LayerTreeHost::SetElementTransformMutated( |
1257 ElementId element_id, | 1258 ElementId element_id, |
1258 ElementListType list_type, | 1259 ElementListType list_type, |
1259 const gfx::Transform& transform) { | 1260 const gfx::Transform& transform) { |
1260 Layer* layer = LayerByElementId(element_id); | 1261 Layer* layer = LayerByElementId(element_id); |
1261 DCHECK(layer); | 1262 DCHECK(layer); |
1262 layer->OnTransformAnimated(transform); | 1263 layer->OnTransformAnimated(transform); |
1263 | 1264 |
1264 if (TransformNode* node = | 1265 if (TransformNode* node = |
1265 property_trees_.transform_tree.FindNodeFromOwningLayerId( | 1266 property_trees_.transform_tree.UpdateNodeFromOwningLayerId( |
1266 layer->id())) { | 1267 layer->id())) { |
1267 DCHECK_EQ(layer->transform_tree_index(), node->id); | 1268 DCHECK_EQ(layer->transform_tree_index(), node->id); |
1268 if (node->local == transform) | 1269 if (node->local == transform) |
1269 return; | 1270 return; |
1270 | 1271 |
1271 node->local = transform; | 1272 node->local = transform; |
1272 node->needs_local_transform_update = true; | 1273 node->needs_local_transform_update = true; |
1273 node->has_potential_animation = true; | 1274 node->has_potential_animation = true; |
1274 property_trees_.transform_tree.set_needs_update(true); | 1275 property_trees_.transform_tree.set_needs_update(true); |
1275 } | 1276 } |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1326 LayerListReverseIterator<Layer> LayerTreeHost::rend() { | 1327 LayerListReverseIterator<Layer> LayerTreeHost::rend() { |
1327 return LayerListReverseIterator<Layer>(nullptr); | 1328 return LayerListReverseIterator<Layer>(nullptr); |
1328 } | 1329 } |
1329 | 1330 |
1330 void LayerTreeHost::SetNeedsDisplayOnAllLayers() { | 1331 void LayerTreeHost::SetNeedsDisplayOnAllLayers() { |
1331 for (auto* layer : *this) | 1332 for (auto* layer : *this) |
1332 layer->SetNeedsDisplay(); | 1333 layer->SetNeedsDisplay(); |
1333 } | 1334 } |
1334 | 1335 |
1335 } // namespace cc | 1336 } // namespace cc |
OLD | NEW |