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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp

Issue 2616353003: Clarify property tree id-to-index map names. (Closed)
Patch Set: Sync to head. Created 3 years, 11 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/trees/property_tree_builder.cc ('k') | 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "platform/graphics/compositing/PaintArtifactCompositor.h" 5 #include "platform/graphics/compositing/PaintArtifactCompositor.h"
6 6
7 #include "cc/layers/content_layer_client.h" 7 #include "cc/layers/content_layer_client.h"
8 #include "cc/layers/layer.h" 8 #include "cc/layers/layer.h"
9 #include "cc/layers/picture_layer.h" 9 #include "cc/layers/picture_layer.h"
10 #include "cc/playback/compositing_display_item.h" 10 #include "cc/playback/compositing_display_item.h"
(...skipping 698 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 transformTree.set_needs_update(true); 709 transformTree.set_needs_update(true);
710 710
711 m_transformNodeMap.set(TransformPaintPropertyNode::root(), transformNode.id); 711 m_transformNodeMap.set(TransformPaintPropertyNode::root(), transformNode.id);
712 m_rootLayer->SetTransformTreeIndex(transformNode.id); 712 m_rootLayer->SetTransformTreeIndex(transformNode.id);
713 } 713 }
714 714
715 void PropertyTreeManager::setupRootClipNode() { 715 void PropertyTreeManager::setupRootClipNode() {
716 // cc is hardcoded to use clip node index 1 for viewport clip. 716 // cc is hardcoded to use clip node index 1 for viewport clip.
717 cc::ClipTree& clipTree = m_propertyTrees.clip_tree; 717 cc::ClipTree& clipTree = m_propertyTrees.clip_tree;
718 clipTree.clear(); 718 clipTree.clear();
719 m_propertyTrees.clip_id_to_index_map.clear(); 719 m_propertyTrees.layer_id_to_clip_node_index.clear();
720 cc::ClipNode& clipNode = 720 cc::ClipNode& clipNode =
721 *clipTree.Node(clipTree.Insert(cc::ClipNode(), kRealRootNodeId)); 721 *clipTree.Node(clipTree.Insert(cc::ClipNode(), kRealRootNodeId));
722 DCHECK_EQ(clipNode.id, kSecondaryRootNodeId); 722 DCHECK_EQ(clipNode.id, kSecondaryRootNodeId);
723 723
724 clipNode.resets_clip = true; 724 clipNode.resets_clip = true;
725 clipNode.owning_layer_id = m_rootLayer->id(); 725 clipNode.owning_layer_id = m_rootLayer->id();
726 clipNode.clip_type = cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP; 726 clipNode.clip_type = cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP;
727 clipNode.clip = gfx::RectF( 727 clipNode.clip = gfx::RectF(
728 gfx::SizeF(m_rootLayer->GetLayerTree()->device_viewport_size())); 728 gfx::SizeF(m_rootLayer->GetLayerTree()->device_viewport_size()));
729 clipNode.transform_id = kRealRootNodeId; 729 clipNode.transform_id = kRealRootNodeId;
730 clipNode.target_transform_id = kRealRootNodeId; 730 clipNode.target_transform_id = kRealRootNodeId;
731 clipNode.target_effect_id = kSecondaryRootNodeId; 731 clipNode.target_effect_id = kSecondaryRootNodeId;
732 m_propertyTrees.clip_id_to_index_map[clipNode.owning_layer_id] = clipNode.id; 732 m_propertyTrees.layer_id_to_clip_node_index[clipNode.owning_layer_id] =
733 clipNode.id;
733 734
734 m_clipNodeMap.set(ClipPaintPropertyNode::root(), clipNode.id); 735 m_clipNodeMap.set(ClipPaintPropertyNode::root(), clipNode.id);
735 m_rootLayer->SetClipTreeIndex(clipNode.id); 736 m_rootLayer->SetClipTreeIndex(clipNode.id);
736 } 737 }
737 738
738 void PropertyTreeManager::setupRootEffectNode() { 739 void PropertyTreeManager::setupRootEffectNode() {
739 // cc is hardcoded to use effect node index 1 for root render surface. 740 // cc is hardcoded to use effect node index 1 for root render surface.
740 cc::EffectTree& effectTree = m_propertyTrees.effect_tree; 741 cc::EffectTree& effectTree = m_propertyTrees.effect_tree;
741 effectTree.clear(); 742 effectTree.clear();
742 m_propertyTrees.effect_id_to_index_map.clear(); 743 m_propertyTrees.layer_id_to_effect_node_index.clear();
743 cc::EffectNode& effectNode = 744 cc::EffectNode& effectNode =
744 *effectTree.Node(effectTree.Insert(cc::EffectNode(), kInvalidNodeId)); 745 *effectTree.Node(effectTree.Insert(cc::EffectNode(), kInvalidNodeId));
745 DCHECK_EQ(effectNode.id, kSecondaryRootNodeId); 746 DCHECK_EQ(effectNode.id, kSecondaryRootNodeId);
746 effectNode.owning_layer_id = m_rootLayer->id(); 747 effectNode.owning_layer_id = m_rootLayer->id();
747 effectNode.transform_id = kRealRootNodeId; 748 effectNode.transform_id = kRealRootNodeId;
748 effectNode.clip_id = kSecondaryRootNodeId; 749 effectNode.clip_id = kSecondaryRootNodeId;
749 effectNode.has_render_surface = true; 750 effectNode.has_render_surface = true;
750 m_propertyTrees.effect_id_to_index_map[effectNode.owning_layer_id] = 751 m_propertyTrees.layer_id_to_effect_node_index[effectNode.owning_layer_id] =
751 effectNode.id; 752 effectNode.id;
752 753
753 m_effectStack.push_back( 754 m_effectStack.push_back(
754 BlinkEffectAndCcIdPair{EffectPaintPropertyNode::root(), effectNode.id}); 755 BlinkEffectAndCcIdPair{EffectPaintPropertyNode::root(), effectNode.id});
755 m_rootLayer->SetEffectTreeIndex(effectNode.id); 756 m_rootLayer->SetEffectTreeIndex(effectNode.id);
756 } 757 }
757 758
758 void PropertyTreeManager::setupRootScrollNode() { 759 void PropertyTreeManager::setupRootScrollNode() {
759 cc::ScrollTree& scrollTree = m_propertyTrees.scroll_tree; 760 cc::ScrollTree& scrollTree = m_propertyTrees.scroll_tree;
760 scrollTree.clear(); 761 scrollTree.clear();
761 m_propertyTrees.scroll_id_to_index_map.clear(); 762 m_propertyTrees.layer_id_to_scroll_node_index.clear();
762 cc::ScrollNode& scrollNode = 763 cc::ScrollNode& scrollNode =
763 *scrollTree.Node(scrollTree.Insert(cc::ScrollNode(), kRealRootNodeId)); 764 *scrollTree.Node(scrollTree.Insert(cc::ScrollNode(), kRealRootNodeId));
764 DCHECK_EQ(scrollNode.id, kSecondaryRootNodeId); 765 DCHECK_EQ(scrollNode.id, kSecondaryRootNodeId);
765 scrollNode.owning_layer_id = m_rootLayer->id(); 766 scrollNode.owning_layer_id = m_rootLayer->id();
766 scrollNode.transform_id = kSecondaryRootNodeId; 767 scrollNode.transform_id = kSecondaryRootNodeId;
767 m_propertyTrees.scroll_id_to_index_map[scrollNode.owning_layer_id] = 768 m_propertyTrees.layer_id_to_scroll_node_index[scrollNode.owning_layer_id] =
768 scrollNode.id; 769 scrollNode.id;
769 770
770 m_scrollNodeMap.set(ScrollPaintPropertyNode::root(), scrollNode.id); 771 m_scrollNodeMap.set(ScrollPaintPropertyNode::root(), scrollNode.id);
771 m_rootLayer->SetScrollTreeIndex(scrollNode.id); 772 m_rootLayer->SetScrollTreeIndex(scrollNode.id);
772 } 773 }
773 774
774 int PropertyTreeManager::compositorIdForTransformNode( 775 int PropertyTreeManager::compositorIdForTransformNode(
775 const TransformPaintPropertyNode* transformNode) { 776 const TransformPaintPropertyNode* transformNode) {
776 DCHECK(transformNode); 777 DCHECK(transformNode);
777 // TODO(crbug.com/645615): Remove the failsafe here. 778 // TODO(crbug.com/645615): Remove the failsafe here.
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
826 auto it = m_clipNodeMap.find(clipNode); 827 auto it = m_clipNodeMap.find(clipNode);
827 if (it != m_clipNodeMap.end()) 828 if (it != m_clipNodeMap.end())
828 return it->value; 829 return it->value;
829 830
830 scoped_refptr<cc::Layer> dummyLayer = cc::Layer::Create(); 831 scoped_refptr<cc::Layer> dummyLayer = cc::Layer::Create();
831 int parentId = compositorIdForClipNode(clipNode->parent()); 832 int parentId = compositorIdForClipNode(clipNode->parent());
832 int id = clipTree().Insert(cc::ClipNode(), parentId); 833 int id = clipTree().Insert(cc::ClipNode(), parentId);
833 834
834 cc::ClipNode& compositorNode = *clipTree().Node(id); 835 cc::ClipNode& compositorNode = *clipTree().Node(id);
835 compositorNode.owning_layer_id = dummyLayer->id(); 836 compositorNode.owning_layer_id = dummyLayer->id();
836 m_propertyTrees.clip_id_to_index_map[compositorNode.owning_layer_id] = id; 837 m_propertyTrees.layer_id_to_clip_node_index[compositorNode.owning_layer_id] =
838 id;
837 839
838 // TODO(jbroman): Don't discard rounded corners. 840 // TODO(jbroman): Don't discard rounded corners.
839 compositorNode.clip = clipNode->clipRect().rect(); 841 compositorNode.clip = clipNode->clipRect().rect();
840 compositorNode.transform_id = 842 compositorNode.transform_id =
841 compositorIdForTransformNode(clipNode->localTransformSpace()); 843 compositorIdForTransformNode(clipNode->localTransformSpace());
842 compositorNode.target_transform_id = kRealRootNodeId; 844 compositorNode.target_transform_id = kRealRootNodeId;
843 compositorNode.target_effect_id = kSecondaryRootNodeId; 845 compositorNode.target_effect_id = kSecondaryRootNodeId;
844 compositorNode.clip_type = cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP; 846 compositorNode.clip_type = cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP;
845 compositorNode.layers_are_clipped = true; 847 compositorNode.layers_are_clipped = true;
846 compositorNode.layers_are_clipped_when_surfaces_disabled = true; 848 compositorNode.layers_are_clipped_when_surfaces_disabled = true;
(...skipping 20 matching lines...) Expand all
867 869
868 auto it = m_scrollNodeMap.find(scrollNode); 870 auto it = m_scrollNodeMap.find(scrollNode);
869 if (it != m_scrollNodeMap.end()) 871 if (it != m_scrollNodeMap.end())
870 return it->value; 872 return it->value;
871 873
872 int parentId = compositorIdForScrollNode(scrollNode->parent()); 874 int parentId = compositorIdForScrollNode(scrollNode->parent());
873 int id = scrollTree().Insert(cc::ScrollNode(), parentId); 875 int id = scrollTree().Insert(cc::ScrollNode(), parentId);
874 876
875 cc::ScrollNode& compositorNode = *scrollTree().Node(id); 877 cc::ScrollNode& compositorNode = *scrollTree().Node(id);
876 compositorNode.owning_layer_id = parentId; 878 compositorNode.owning_layer_id = parentId;
877 m_propertyTrees.scroll_id_to_index_map[compositorNode.owning_layer_id] = id; 879 m_propertyTrees
880 .layer_id_to_scroll_node_index[compositorNode.owning_layer_id] = id;
878 881
879 compositorNode.scrollable = true; 882 compositorNode.scrollable = true;
880 883
881 compositorNode.scroll_clip_layer_bounds.SetSize(scrollNode->clip().width(), 884 compositorNode.scroll_clip_layer_bounds.SetSize(scrollNode->clip().width(),
882 scrollNode->clip().height()); 885 scrollNode->clip().height());
883 compositorNode.bounds.SetSize(scrollNode->bounds().width(), 886 compositorNode.bounds.SetSize(scrollNode->bounds().width(),
884 scrollNode->bounds().height()); 887 scrollNode->bounds().height());
885 compositorNode.user_scrollable_horizontal = 888 compositorNode.user_scrollable_horizontal =
886 scrollNode->userScrollableHorizontal(); 889 scrollNode->userScrollableHorizontal();
887 compositorNode.user_scrollable_vertical = 890 compositorNode.user_scrollable_vertical =
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
1021 // or a child with exotic blend mode is detected. 1024 // or a child with exotic blend mode is detected.
1022 // TODO(crbug.com/504464): There is ongoing work in cc to delay render surface 1025 // TODO(crbug.com/504464): There is ongoing work in cc to delay render surface
1023 // decision until later phase of the pipeline. Remove premature optimization 1026 // decision until later phase of the pipeline. Remove premature optimization
1024 // here once the work is ready. 1027 // here once the work is ready.
1025 if (!nextEffect->filter().isEmpty() || 1028 if (!nextEffect->filter().isEmpty() ||
1026 nextEffect->blendMode() != SkBlendMode::kSrcOver) 1029 nextEffect->blendMode() != SkBlendMode::kSrcOver)
1027 effectNode.has_render_surface = true; 1030 effectNode.has_render_surface = true;
1028 effectNode.opacity = nextEffect->opacity(); 1031 effectNode.opacity = nextEffect->opacity();
1029 effectNode.filters = nextEffect->filter().asCcFilterOperations(); 1032 effectNode.filters = nextEffect->filter().asCcFilterOperations();
1030 effectNode.blend_mode = nextEffect->blendMode(); 1033 effectNode.blend_mode = nextEffect->blendMode();
1031 m_propertyTrees.effect_id_to_index_map[effectNode.owning_layer_id] = 1034 m_propertyTrees.layer_id_to_effect_node_index[effectNode.owning_layer_id] =
1032 effectNode.id; 1035 effectNode.id;
1033 m_effectStack.push_back(BlinkEffectAndCcIdPair{nextEffect, effectNode.id}); 1036 m_effectStack.push_back(BlinkEffectAndCcIdPair{nextEffect, effectNode.id});
1034 1037
1035 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); 1038 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber);
1036 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId); 1039 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId);
1037 dummyLayer->SetClipTreeIndex(outputClipId); 1040 dummyLayer->SetClipTreeIndex(outputClipId);
1038 dummyLayer->SetEffectTreeIndex(effectNode.id); 1041 dummyLayer->SetEffectTreeIndex(effectNode.id);
1039 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); 1042 dummyLayer->SetScrollTreeIndex(kRealRootNodeId);
1040 } 1043 }
1041 1044
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
1228 #ifndef NDEBUG 1231 #ifndef NDEBUG
1229 void PaintArtifactCompositor::showDebugData() { 1232 void PaintArtifactCompositor::showDebugData() {
1230 LOG(ERROR) << layersAsJSON(LayerTreeIncludesDebugInfo) 1233 LOG(ERROR) << layersAsJSON(LayerTreeIncludesDebugInfo)
1231 ->toPrettyJSONString() 1234 ->toPrettyJSONString()
1232 .utf8() 1235 .utf8()
1233 .data(); 1236 .data();
1234 } 1237 }
1235 #endif 1238 #endif
1236 1239
1237 } // namespace blink 1240 } // namespace blink
OLDNEW
« no previous file with comments | « cc/trees/property_tree_builder.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698