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

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

Issue 2118993002: Detemplatize cc property nodes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 5 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 | « cc/input/scroll_state_unittest.cc ('k') | cc/layers/layer_impl.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 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 13 matching lines...) Expand all
24 #include "cc/layers/layer_impl.h" 24 #include "cc/layers/layer_impl.h"
25 #include "cc/layers/layer_proto_converter.h" 25 #include "cc/layers/layer_proto_converter.h"
26 #include "cc/layers/scrollbar_layer_interface.h" 26 #include "cc/layers/scrollbar_layer_interface.h"
27 #include "cc/output/copy_output_request.h" 27 #include "cc/output/copy_output_request.h"
28 #include "cc/output/copy_output_result.h" 28 #include "cc/output/copy_output_result.h"
29 #include "cc/proto/cc_conversions.h" 29 #include "cc/proto/cc_conversions.h"
30 #include "cc/proto/gfx_conversions.h" 30 #include "cc/proto/gfx_conversions.h"
31 #include "cc/proto/layer.pb.h" 31 #include "cc/proto/layer.pb.h"
32 #include "cc/proto/skia_conversions.h" 32 #include "cc/proto/skia_conversions.h"
33 #include "cc/trees/draw_property_utils.h" 33 #include "cc/trees/draw_property_utils.h"
34 #include "cc/trees/effect_node.h"
34 #include "cc/trees/layer_tree_host.h" 35 #include "cc/trees/layer_tree_host.h"
35 #include "cc/trees/layer_tree_impl.h" 36 #include "cc/trees/layer_tree_impl.h"
37 #include "cc/trees/transform_node.h"
36 #include "third_party/skia/include/core/SkImageFilter.h" 38 #include "third_party/skia/include/core/SkImageFilter.h"
37 #include "ui/gfx/geometry/rect_conversions.h" 39 #include "ui/gfx/geometry/rect_conversions.h"
38 #include "ui/gfx/geometry/vector2d_conversions.h" 40 #include "ui/gfx/geometry/vector2d_conversions.h"
39 41
40 namespace cc { 42 namespace cc {
41 43
42 base::StaticAtomicSequenceNumber g_next_layer_id; 44 base::StaticAtomicSequenceNumber g_next_layer_id;
43 45
44 Layer::Inputs::Inputs() 46 Layer::Inputs::Inputs()
45 : // Layer IDs start from 1. 47 : // Layer IDs start from 1.
(...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 // non-1 value or vice-versa as render surfaces can change. 494 // non-1 value or vice-versa as render surfaces can change.
493 bool force_rebuild = opacity == 1.f || inputs_.opacity == 1.f; 495 bool force_rebuild = opacity == 1.f || inputs_.opacity == 1.f;
494 inputs_.opacity = opacity; 496 inputs_.opacity = opacity;
495 SetSubtreePropertyChanged(); 497 SetSubtreePropertyChanged();
496 if (layer_tree_host_ && !force_rebuild) { 498 if (layer_tree_host_ && !force_rebuild) {
497 PropertyTrees* property_trees = layer_tree_host_->property_trees(); 499 PropertyTrees* property_trees = layer_tree_host_->property_trees();
498 auto effect_id_to_index = property_trees->effect_id_to_index_map.find(id()); 500 auto effect_id_to_index = property_trees->effect_id_to_index_map.find(id());
499 if (effect_id_to_index != property_trees->effect_id_to_index_map.end()) { 501 if (effect_id_to_index != property_trees->effect_id_to_index_map.end()) {
500 EffectNode* node = 502 EffectNode* node =
501 property_trees->effect_tree.Node(effect_id_to_index->second); 503 property_trees->effect_tree.Node(effect_id_to_index->second);
502 node->data.opacity = opacity; 504 node->opacity = opacity;
503 node->data.effect_changed = true; 505 node->effect_changed = true;
504 property_trees->effect_tree.set_needs_update(true); 506 property_trees->effect_tree.set_needs_update(true);
505 SetNeedsCommitNoRebuild(); 507 SetNeedsCommitNoRebuild();
506 return; 508 return;
507 } 509 }
508 } 510 }
509 SetNeedsCommit(); 511 SetNeedsCommit();
510 } 512 }
511 513
512 float Layer::EffectiveOpacity() const { 514 float Layer::EffectiveOpacity() const {
513 return inputs_.hide_layer_and_subtree ? 0.f : inputs_.opacity; 515 return inputs_.hide_layer_and_subtree ? 0.f : inputs_.opacity;
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 return; 609 return;
608 610
609 SetSubtreePropertyChanged(); 611 SetSubtreePropertyChanged();
610 PropertyTrees* property_trees = layer_tree_host_->property_trees(); 612 PropertyTrees* property_trees = layer_tree_host_->property_trees();
611 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, 613 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
612 id())) { 614 id())) {
613 DCHECK_EQ(transform_tree_index(), 615 DCHECK_EQ(transform_tree_index(),
614 property_trees->transform_id_to_index_map[id()]); 616 property_trees->transform_id_to_index_map[id()]);
615 TransformNode* transform_node = 617 TransformNode* transform_node =
616 property_trees->transform_tree.Node(transform_tree_index()); 618 property_trees->transform_tree.Node(transform_tree_index());
617 transform_node->data.update_post_local_transform(position, 619 transform_node->update_post_local_transform(position, transform_origin());
618 transform_origin()); 620 transform_node->needs_local_transform_update = true;
619 transform_node->data.needs_local_transform_update = true; 621 transform_node->transform_changed = true;
620 transform_node->data.transform_changed = true;
621 layer_tree_host_->property_trees()->transform_tree.set_needs_update(true); 622 layer_tree_host_->property_trees()->transform_tree.set_needs_update(true);
622 SetNeedsCommitNoRebuild(); 623 SetNeedsCommitNoRebuild();
623 return; 624 return;
624 } 625 }
625 626
626 SetNeedsCommit(); 627 SetNeedsCommit();
627 } 628 }
628 629
629 bool Layer::IsContainerForFixedPositionLayers() const { 630 bool Layer::IsContainerForFixedPositionLayers() const {
630 if (!inputs_.transform.IsIdentityOrTranslation()) 631 if (!inputs_.transform.IsIdentityOrTranslation())
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
662 // We need to trigger a rebuild if we could have affected 2d axis 663 // We need to trigger a rebuild if we could have affected 2d axis
663 // alignment. We'll check to see if transform and inputs_.transform 664 // alignment. We'll check to see if transform and inputs_.transform
664 // are axis 665 // are axis
665 // align with respect to one another. 666 // align with respect to one another.
666 DCHECK_EQ(transform_tree_index(), 667 DCHECK_EQ(transform_tree_index(),
667 property_trees->transform_id_to_index_map[id()]); 668 property_trees->transform_id_to_index_map[id()]);
668 TransformNode* transform_node = 669 TransformNode* transform_node =
669 property_trees->transform_tree.Node(transform_tree_index()); 670 property_trees->transform_tree.Node(transform_tree_index());
670 bool preserves_2d_axis_alignment = 671 bool preserves_2d_axis_alignment =
671 Are2dAxisAligned(inputs_.transform, transform); 672 Are2dAxisAligned(inputs_.transform, transform);
672 transform_node->data.local = transform; 673 transform_node->local = transform;
673 transform_node->data.needs_local_transform_update = true; 674 transform_node->needs_local_transform_update = true;
674 transform_node->data.transform_changed = true; 675 transform_node->transform_changed = true;
675 layer_tree_host_->property_trees()->transform_tree.set_needs_update(true); 676 layer_tree_host_->property_trees()->transform_tree.set_needs_update(true);
676 if (preserves_2d_axis_alignment) 677 if (preserves_2d_axis_alignment)
677 SetNeedsCommitNoRebuild(); 678 SetNeedsCommitNoRebuild();
678 else 679 else
679 SetNeedsCommit(); 680 SetNeedsCommit();
680 inputs_.transform = transform; 681 inputs_.transform = transform;
681 return; 682 return;
682 } 683 }
683 } 684 }
684 685
(...skipping 12 matching lines...) Expand all
697 return; 698 return;
698 699
699 SetSubtreePropertyChanged(); 700 SetSubtreePropertyChanged();
700 PropertyTrees* property_trees = layer_tree_host_->property_trees(); 701 PropertyTrees* property_trees = layer_tree_host_->property_trees();
701 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, 702 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
702 id())) { 703 id())) {
703 DCHECK_EQ(transform_tree_index(), 704 DCHECK_EQ(transform_tree_index(),
704 property_trees->transform_id_to_index_map[id()]); 705 property_trees->transform_id_to_index_map[id()]);
705 TransformNode* transform_node = 706 TransformNode* transform_node =
706 property_trees->transform_tree.Node(transform_tree_index()); 707 property_trees->transform_tree.Node(transform_tree_index());
707 transform_node->data.update_pre_local_transform(transform_origin); 708 transform_node->update_pre_local_transform(transform_origin);
708 transform_node->data.update_post_local_transform(position(), 709 transform_node->update_post_local_transform(position(), transform_origin);
709 transform_origin); 710 transform_node->needs_local_transform_update = true;
710 transform_node->data.needs_local_transform_update = true; 711 transform_node->transform_changed = true;
711 transform_node->data.transform_changed = true;
712 layer_tree_host_->property_trees()->transform_tree.set_needs_update(true); 712 layer_tree_host_->property_trees()->transform_tree.set_needs_update(true);
713 SetNeedsCommitNoRebuild(); 713 SetNeedsCommitNoRebuild();
714 return; 714 return;
715 } 715 }
716 716
717 SetNeedsCommit(); 717 SetNeedsCommit();
718 } 718 }
719 719
720 bool Layer::AnimationsPreserveAxisAlignment() const { 720 bool Layer::AnimationsPreserveAxisAlignment() const {
721 DCHECK(layer_tree_host_); 721 DCHECK(layer_tree_host_);
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
828 PropertyTrees* property_trees = layer_tree_host_->property_trees(); 828 PropertyTrees* property_trees = layer_tree_host_->property_trees();
829 if (scroll_tree_index() != -1 && scrollable()) 829 if (scroll_tree_index() != -1 && scrollable())
830 property_trees->scroll_tree.SetScrollOffset(id(), scroll_offset); 830 property_trees->scroll_tree.SetScrollOffset(id(), scroll_offset);
831 831
832 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, 832 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
833 id())) { 833 id())) {
834 DCHECK_EQ(transform_tree_index(), 834 DCHECK_EQ(transform_tree_index(),
835 property_trees->transform_id_to_index_map[id()]); 835 property_trees->transform_id_to_index_map[id()]);
836 TransformNode* transform_node = 836 TransformNode* transform_node =
837 property_trees->transform_tree.Node(transform_tree_index()); 837 property_trees->transform_tree.Node(transform_tree_index());
838 transform_node->data.scroll_offset = CurrentScrollOffset(); 838 transform_node->scroll_offset = CurrentScrollOffset();
839 transform_node->data.needs_local_transform_update = true; 839 transform_node->needs_local_transform_update = true;
840 property_trees->transform_tree.set_needs_update(true); 840 property_trees->transform_tree.set_needs_update(true);
841 SetNeedsCommitNoRebuild(); 841 SetNeedsCommitNoRebuild();
842 return; 842 return;
843 } 843 }
844 844
845 SetNeedsCommit(); 845 SetNeedsCommit();
846 } 846 }
847 847
848 void Layer::SetScrollOffsetFromImplSide( 848 void Layer::SetScrollOffsetFromImplSide(
849 const gfx::ScrollOffset& scroll_offset) { 849 const gfx::ScrollOffset& scroll_offset) {
(...skipping 11 matching lines...) Expand all
861 PropertyTrees* property_trees = layer_tree_host_->property_trees(); 861 PropertyTrees* property_trees = layer_tree_host_->property_trees();
862 if (scroll_tree_index() != -1 && scrollable()) 862 if (scroll_tree_index() != -1 && scrollable())
863 property_trees->scroll_tree.SetScrollOffset(id(), scroll_offset); 863 property_trees->scroll_tree.SetScrollOffset(id(), scroll_offset);
864 864
865 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, 865 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
866 id())) { 866 id())) {
867 DCHECK_EQ(transform_tree_index(), 867 DCHECK_EQ(transform_tree_index(),
868 property_trees->transform_id_to_index_map[id()]); 868 property_trees->transform_id_to_index_map[id()]);
869 TransformNode* transform_node = 869 TransformNode* transform_node =
870 property_trees->transform_tree.Node(transform_tree_index()); 870 property_trees->transform_tree.Node(transform_tree_index());
871 transform_node->data.scroll_offset = CurrentScrollOffset(); 871 transform_node->scroll_offset = CurrentScrollOffset();
872 transform_node->data.needs_local_transform_update = true; 872 transform_node->needs_local_transform_update = true;
873 property_trees->transform_tree.set_needs_update(true); 873 property_trees->transform_tree.set_needs_update(true);
874 needs_rebuild = false; 874 needs_rebuild = false;
875 } 875 }
876 876
877 if (needs_rebuild) 877 if (needs_rebuild)
878 property_trees->needs_rebuild = true; 878 property_trees->needs_rebuild = true;
879 879
880 if (!inputs_.did_scroll_callback.is_null()) 880 if (!inputs_.did_scroll_callback.is_null())
881 inputs_.did_scroll_callback.Run(); 881 inputs_.did_scroll_callback.Run();
882 // The callback could potentially change the layer structure: 882 // The callback could potentially change the layer structure:
(...skipping 776 matching lines...) Expand 10 before | Expand all | Expand 10 after
1659 // Changing the opacity may make a previously hidden layer visible, so a new 1659 // Changing the opacity may make a previously hidden layer visible, so a new
1660 // recording may be needed. 1660 // recording may be needed.
1661 SetNeedsUpdate(); 1661 SetNeedsUpdate();
1662 if (layer_tree_host_) { 1662 if (layer_tree_host_) {
1663 PropertyTrees* property_trees = layer_tree_host_->property_trees(); 1663 PropertyTrees* property_trees = layer_tree_host_->property_trees();
1664 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::EFFECT, 1664 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::EFFECT,
1665 id())) { 1665 id())) {
1666 DCHECK_EQ(effect_tree_index(), 1666 DCHECK_EQ(effect_tree_index(),
1667 property_trees->effect_id_to_index_map[id()]); 1667 property_trees->effect_id_to_index_map[id()]);
1668 EffectNode* node = property_trees->effect_tree.Node(effect_tree_index()); 1668 EffectNode* node = property_trees->effect_tree.Node(effect_tree_index());
1669 node->data.opacity = opacity; 1669 node->opacity = opacity;
1670 property_trees->effect_tree.set_needs_update(true); 1670 property_trees->effect_tree.set_needs_update(true);
1671 } 1671 }
1672 } 1672 }
1673 } 1673 }
1674 1674
1675 void Layer::OnTransformAnimated(const gfx::Transform& transform) { 1675 void Layer::OnTransformAnimated(const gfx::Transform& transform) {
1676 if (inputs_.transform == transform) 1676 if (inputs_.transform == transform)
1677 return; 1677 return;
1678 inputs_.transform = transform; 1678 inputs_.transform = transform;
1679 // Changing the transform may change the visible part of this layer, so a new 1679 // Changing the transform may change the visible part of this layer, so a new
1680 // recording may be needed. 1680 // recording may be needed.
1681 SetNeedsUpdate(); 1681 SetNeedsUpdate();
1682 if (layer_tree_host_) { 1682 if (layer_tree_host_) {
1683 PropertyTrees* property_trees = layer_tree_host_->property_trees(); 1683 PropertyTrees* property_trees = layer_tree_host_->property_trees();
1684 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, 1684 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
1685 id())) { 1685 id())) {
1686 DCHECK_EQ(transform_tree_index(), 1686 DCHECK_EQ(transform_tree_index(),
1687 property_trees->transform_id_to_index_map[id()]); 1687 property_trees->transform_id_to_index_map[id()]);
1688 TransformNode* node = 1688 TransformNode* node =
1689 property_trees->transform_tree.Node(transform_tree_index()); 1689 property_trees->transform_tree.Node(transform_tree_index());
1690 node->data.local = transform; 1690 node->local = transform;
1691 node->data.needs_local_transform_update = true; 1691 node->needs_local_transform_update = true;
1692 node->data.has_potential_animation = true; 1692 node->has_potential_animation = true;
1693 property_trees->transform_tree.set_needs_update(true); 1693 property_trees->transform_tree.set_needs_update(true);
1694 } 1694 }
1695 } 1695 }
1696 } 1696 }
1697 1697
1698 void Layer::OnScrollOffsetAnimated(const gfx::ScrollOffset& scroll_offset) { 1698 void Layer::OnScrollOffsetAnimated(const gfx::ScrollOffset& scroll_offset) {
1699 // Do nothing. Scroll deltas will be sent from the compositor thread back 1699 // Do nothing. Scroll deltas will be sent from the compositor thread back
1700 // to the main thread in the same manner as during non-animated 1700 // to the main thread in the same manner as during non-animated
1701 // compositor-driven scrolling. 1701 // compositor-driven scrolling.
1702 } 1702 }
1703 1703
1704 void Layer::OnTransformIsCurrentlyAnimatingChanged( 1704 void Layer::OnTransformIsCurrentlyAnimatingChanged(
1705 bool is_currently_animating) { 1705 bool is_currently_animating) {
1706 DCHECK(layer_tree_host_); 1706 DCHECK(layer_tree_host_);
1707 PropertyTrees* property_trees = layer_tree_host_->property_trees(); 1707 PropertyTrees* property_trees = layer_tree_host_->property_trees();
1708 if (!property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, 1708 if (!property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
1709 id())) 1709 id()))
1710 return; 1710 return;
1711 DCHECK_EQ(transform_tree_index(), 1711 DCHECK_EQ(transform_tree_index(),
1712 property_trees->transform_id_to_index_map[id()]); 1712 property_trees->transform_id_to_index_map[id()]);
1713 TransformNode* node = 1713 TransformNode* node =
1714 property_trees->transform_tree.Node(transform_tree_index()); 1714 property_trees->transform_tree.Node(transform_tree_index());
1715 node->data.is_currently_animating = is_currently_animating; 1715 node->is_currently_animating = is_currently_animating;
1716 } 1716 }
1717 1717
1718 void Layer::OnTransformIsPotentiallyAnimatingChanged( 1718 void Layer::OnTransformIsPotentiallyAnimatingChanged(
1719 bool has_potential_animation) { 1719 bool has_potential_animation) {
1720 if (!layer_tree_host_) 1720 if (!layer_tree_host_)
1721 return; 1721 return;
1722 PropertyTrees* property_trees = layer_tree_host_->property_trees(); 1722 PropertyTrees* property_trees = layer_tree_host_->property_trees();
1723 if (!property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, 1723 if (!property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
1724 id())) 1724 id()))
1725 return; 1725 return;
1726 DCHECK_EQ(transform_tree_index(), 1726 DCHECK_EQ(transform_tree_index(),
1727 property_trees->transform_id_to_index_map[id()]); 1727 property_trees->transform_id_to_index_map[id()]);
1728 TransformNode* node = 1728 TransformNode* node =
1729 property_trees->transform_tree.Node(transform_tree_index()); 1729 property_trees->transform_tree.Node(transform_tree_index());
1730 1730
1731 node->data.has_potential_animation = has_potential_animation; 1731 node->has_potential_animation = has_potential_animation;
1732 if (has_potential_animation) { 1732 if (has_potential_animation) {
1733 node->data.has_only_translation_animations = HasOnlyTranslationTransforms(); 1733 node->has_only_translation_animations = HasOnlyTranslationTransforms();
1734 } else { 1734 } else {
1735 node->data.has_only_translation_animations = true; 1735 node->has_only_translation_animations = true;
1736 } 1736 }
1737 property_trees->transform_tree.set_needs_update(true); 1737 property_trees->transform_tree.set_needs_update(true);
1738 } 1738 }
1739 1739
1740 void Layer::OnOpacityIsCurrentlyAnimatingChanged(bool is_currently_animating) { 1740 void Layer::OnOpacityIsCurrentlyAnimatingChanged(bool is_currently_animating) {
1741 DCHECK(layer_tree_host_); 1741 DCHECK(layer_tree_host_);
1742 PropertyTrees* property_trees = layer_tree_host_->property_trees(); 1742 PropertyTrees* property_trees = layer_tree_host_->property_trees();
1743 if (!property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::EFFECT, id())) 1743 if (!property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::EFFECT, id()))
1744 return; 1744 return;
1745 DCHECK_EQ(effect_tree_index(), property_trees->effect_id_to_index_map[id()]); 1745 DCHECK_EQ(effect_tree_index(), property_trees->effect_id_to_index_map[id()]);
1746 EffectNode* node = property_trees->effect_tree.Node(effect_tree_index()); 1746 EffectNode* node = property_trees->effect_tree.Node(effect_tree_index());
1747 node->data.is_currently_animating_opacity = is_currently_animating; 1747 node->is_currently_animating_opacity = is_currently_animating;
1748 } 1748 }
1749 1749
1750 void Layer::OnOpacityIsPotentiallyAnimatingChanged( 1750 void Layer::OnOpacityIsPotentiallyAnimatingChanged(
1751 bool has_potential_animation) { 1751 bool has_potential_animation) {
1752 DCHECK(layer_tree_host_); 1752 DCHECK(layer_tree_host_);
1753 PropertyTrees* property_trees = layer_tree_host_->property_trees(); 1753 PropertyTrees* property_trees = layer_tree_host_->property_trees();
1754 if (!property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::EFFECT, id())) 1754 if (!property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::EFFECT, id()))
1755 return; 1755 return;
1756 DCHECK_EQ(effect_tree_index(), property_trees->effect_id_to_index_map[id()]); 1756 DCHECK_EQ(effect_tree_index(), property_trees->effect_id_to_index_map[id()]);
1757 EffectNode* node = property_trees->effect_tree.Node(effect_tree_index()); 1757 EffectNode* node = property_trees->effect_tree.Node(effect_tree_index());
1758 node->data.has_potential_opacity_animation = 1758 node->has_potential_opacity_animation =
1759 has_potential_animation || OpacityCanAnimateOnImplThread(); 1759 has_potential_animation || OpacityCanAnimateOnImplThread();
1760 property_trees->effect_tree.set_needs_update(true); 1760 property_trees->effect_tree.set_needs_update(true);
1761 } 1761 }
1762 1762
1763 bool Layer::HasActiveAnimationForTesting() const { 1763 bool Layer::HasActiveAnimationForTesting() const {
1764 return layer_tree_host_ ? layer_tree_host_->HasActiveAnimationForTesting(this) 1764 return layer_tree_host_ ? layer_tree_host_->HasActiveAnimationForTesting(this)
1765 : false; 1765 : false;
1766 } 1766 }
1767 1767
1768 void Layer::SetHasWillChangeTransformHint(bool has_will_change) { 1768 void Layer::SetHasWillChangeTransformHint(bool has_will_change) {
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
1855 // PushPropertiesTo() propagates layer debug info to the impl 1855 // PushPropertiesTo() propagates layer debug info to the impl
1856 // side -- otherwise this won't happen for the the layers that 1856 // side -- otherwise this won't happen for the the layers that
1857 // remain unchanged since tracing started. 1857 // remain unchanged since tracing started.
1858 SetNeedsPushProperties(); 1858 SetNeedsPushProperties();
1859 } 1859 }
1860 1860
1861 int Layer::num_copy_requests_in_target_subtree() { 1861 int Layer::num_copy_requests_in_target_subtree() {
1862 return layer_tree_host() 1862 return layer_tree_host()
1863 ->property_trees() 1863 ->property_trees()
1864 ->effect_tree.Node(effect_tree_index()) 1864 ->effect_tree.Node(effect_tree_index())
1865 ->data.num_copy_requests_in_subtree; 1865 ->num_copy_requests_in_subtree;
1866 } 1866 }
1867 1867
1868 gfx::Transform Layer::screen_space_transform() const { 1868 gfx::Transform Layer::screen_space_transform() const {
1869 DCHECK_NE(transform_tree_index_, -1); 1869 DCHECK_NE(transform_tree_index_, -1);
1870 return draw_property_utils::ScreenSpaceTransform( 1870 return draw_property_utils::ScreenSpaceTransform(
1871 this, layer_tree_host_->property_trees()->transform_tree); 1871 this, layer_tree_host_->property_trees()->transform_tree);
1872 } 1872 }
1873 1873
1874 } // namespace cc 1874 } // namespace cc
OLDNEW
« no previous file with comments | « cc/input/scroll_state_unittest.cc ('k') | cc/layers/layer_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698