OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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_impl.h" | 5 #include "cc/layers/layer_impl.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 487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
498 return GetEffectTree() | 498 return GetEffectTree() |
499 .Node(effect_tree_index()) | 499 .Node(effect_tree_index()) |
500 ->num_copy_requests_in_subtree; | 500 ->num_copy_requests_in_subtree; |
501 } | 501 } |
502 | 502 |
503 void LayerImpl::UpdatePropertyTreeTransformIsAnimated(bool is_animated) { | 503 void LayerImpl::UpdatePropertyTreeTransformIsAnimated(bool is_animated) { |
504 PropertyTrees* property_trees = GetPropertyTrees(); | 504 PropertyTrees* property_trees = GetPropertyTrees(); |
505 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, | 505 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, |
506 id())) { | 506 id())) { |
507 TransformTree& transform_tree = GetTransformTree(); | 507 TransformTree& transform_tree = GetTransformTree(); |
508 TransformNode* node = | 508 TransformNode* node = transform_tree.Node( |
509 transform_tree.Node(property_trees->transform_id_to_index_map[id()]); | 509 property_trees->layer_id_to_transform_node_index[id()]); |
510 // A LayerImpl's own current state is insufficient for determining whether | 510 // A LayerImpl's own current state is insufficient for determining whether |
511 // it owns a TransformNode, since this depends on the state of the | 511 // it owns a TransformNode, since this depends on the state of the |
512 // corresponding Layer at the time of the last commit. For example, if | 512 // corresponding Layer at the time of the last commit. For example, if |
513 // |is_animated| is false, this might mean a transform animation just ticked | 513 // |is_animated| is false, this might mean a transform animation just ticked |
514 // past its finish point (so the LayerImpl still owns a TransformNode) or it | 514 // past its finish point (so the LayerImpl still owns a TransformNode) or it |
515 // might mean that a transform animation was removed during commit or | 515 // might mean that a transform animation was removed during commit or |
516 // activation (and, in that case, the LayerImpl will no longer own a | 516 // activation (and, in that case, the LayerImpl will no longer own a |
517 // TransformNode, unless it has non-animation-related reasons for owning a | 517 // TransformNode, unless it has non-animation-related reasons for owning a |
518 // node). | 518 // node). |
519 if (node->has_potential_animation != is_animated) { | 519 if (node->has_potential_animation != is_animated) { |
(...skipping 26 matching lines...) Expand all Loading... |
546 | 546 |
547 void LayerImpl::OnIsAnimatingChanged(const PropertyAnimationState& mask, | 547 void LayerImpl::OnIsAnimatingChanged(const PropertyAnimationState& mask, |
548 const PropertyAnimationState& state) { | 548 const PropertyAnimationState& state) { |
549 DCHECK(layer_tree_impl_); | 549 DCHECK(layer_tree_impl_); |
550 PropertyTrees* property_trees = GetPropertyTrees(); | 550 PropertyTrees* property_trees = GetPropertyTrees(); |
551 | 551 |
552 TransformNode* transform_node = nullptr; | 552 TransformNode* transform_node = nullptr; |
553 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, | 553 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, |
554 id())) { | 554 id())) { |
555 transform_node = GetTransformTree().Node( | 555 transform_node = GetTransformTree().Node( |
556 property_trees->transform_id_to_index_map[id()]); | 556 property_trees->layer_id_to_transform_node_index[id()]); |
557 } | 557 } |
558 | 558 |
559 EffectNode* effect_node = nullptr; | 559 EffectNode* effect_node = nullptr; |
560 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::EFFECT, id())) { | 560 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::EFFECT, id())) { |
561 effect_node = | 561 effect_node = GetEffectTree().Node( |
562 GetEffectTree().Node(property_trees->effect_id_to_index_map[id()]); | 562 property_trees->layer_id_to_effect_node_index[id()]); |
563 } | 563 } |
564 | 564 |
565 for (int property = TargetProperty::FIRST_TARGET_PROPERTY; | 565 for (int property = TargetProperty::FIRST_TARGET_PROPERTY; |
566 property <= TargetProperty::LAST_TARGET_PROPERTY; ++property) { | 566 property <= TargetProperty::LAST_TARGET_PROPERTY; ++property) { |
567 switch (property) { | 567 switch (property) { |
568 case TargetProperty::TRANSFORM: | 568 case TargetProperty::TRANSFORM: |
569 if (transform_node) { | 569 if (transform_node) { |
570 if (mask.currently_running[property]) | 570 if (mask.currently_running[property]) |
571 transform_node->is_currently_animating = | 571 transform_node->is_currently_animating = |
572 state.currently_running[property]; | 572 state.currently_running[property]; |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
714 | 714 |
715 void LayerImpl::SetContentsOpaque(bool opaque) { | 715 void LayerImpl::SetContentsOpaque(bool opaque) { |
716 contents_opaque_ = opaque; | 716 contents_opaque_ = opaque; |
717 } | 717 } |
718 | 718 |
719 float LayerImpl::Opacity() const { | 719 float LayerImpl::Opacity() const { |
720 PropertyTrees* property_trees = GetPropertyTrees(); | 720 PropertyTrees* property_trees = GetPropertyTrees(); |
721 if (!property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::EFFECT, id())) | 721 if (!property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::EFFECT, id())) |
722 return 1.f; | 722 return 1.f; |
723 EffectNode* node = | 723 EffectNode* node = |
724 GetEffectTree().Node(property_trees->effect_id_to_index_map[id()]); | 724 GetEffectTree().Node(property_trees->layer_id_to_effect_node_index[id()]); |
725 return node->opacity; | 725 return node->opacity; |
726 } | 726 } |
727 | 727 |
728 const gfx::Transform& LayerImpl::Transform() const { | 728 const gfx::Transform& LayerImpl::Transform() const { |
729 PropertyTrees* property_trees = GetPropertyTrees(); | 729 PropertyTrees* property_trees = GetPropertyTrees(); |
730 DCHECK(property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, | 730 DCHECK(property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, |
731 id())); | 731 id())); |
732 TransformNode* node = | 732 TransformNode* node = GetTransformTree().Node( |
733 GetTransformTree().Node(property_trees->transform_id_to_index_map[id()]); | 733 property_trees->layer_id_to_transform_node_index[id()]); |
734 return node->local; | 734 return node->local; |
735 } | 735 } |
736 | 736 |
737 void LayerImpl::SetElementId(ElementId element_id) { | 737 void LayerImpl::SetElementId(ElementId element_id) { |
738 if (element_id == element_id_) | 738 if (element_id == element_id_) |
739 return; | 739 return; |
740 | 740 |
741 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), | 741 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), |
742 "LayerImpl::SetElementId", "element", | 742 "LayerImpl::SetElementId", "element", |
743 element_id.AsValue().release()); | 743 element_id.AsValue().release()); |
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1097 | 1097 |
1098 ScrollTree& LayerImpl::GetScrollTree() const { | 1098 ScrollTree& LayerImpl::GetScrollTree() const { |
1099 return GetPropertyTrees()->scroll_tree; | 1099 return GetPropertyTrees()->scroll_tree; |
1100 } | 1100 } |
1101 | 1101 |
1102 TransformTree& LayerImpl::GetTransformTree() const { | 1102 TransformTree& LayerImpl::GetTransformTree() const { |
1103 return GetPropertyTrees()->transform_tree; | 1103 return GetPropertyTrees()->transform_tree; |
1104 } | 1104 } |
1105 | 1105 |
1106 } // namespace cc | 1106 } // namespace cc |
OLD | NEW |