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

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

Issue 2612883002: Rename cc property tree node owner_id to owning_layer_id. (Closed)
Patch Set: 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/transform_node.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 670 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 void PropertyTreeManager::setupRootClipNode() { 681 void PropertyTreeManager::setupRootClipNode() {
682 // cc is hardcoded to use clip node index 1 for viewport clip. 682 // cc is hardcoded to use clip node index 1 for viewport clip.
683 cc::ClipTree& clipTree = m_propertyTrees.clip_tree; 683 cc::ClipTree& clipTree = m_propertyTrees.clip_tree;
684 clipTree.clear(); 684 clipTree.clear();
685 m_propertyTrees.clip_id_to_index_map.clear(); 685 m_propertyTrees.clip_id_to_index_map.clear();
686 cc::ClipNode& clipNode = 686 cc::ClipNode& clipNode =
687 *clipTree.Node(clipTree.Insert(cc::ClipNode(), kRealRootNodeId)); 687 *clipTree.Node(clipTree.Insert(cc::ClipNode(), kRealRootNodeId));
688 DCHECK_EQ(clipNode.id, kSecondaryRootNodeId); 688 DCHECK_EQ(clipNode.id, kSecondaryRootNodeId);
689 689
690 clipNode.resets_clip = true; 690 clipNode.resets_clip = true;
691 clipNode.owner_id = m_rootLayer->id(); 691 clipNode.owning_layer_id = m_rootLayer->id();
692 clipNode.clip_type = cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP; 692 clipNode.clip_type = cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP;
693 clipNode.clip = gfx::RectF( 693 clipNode.clip = gfx::RectF(
694 gfx::SizeF(m_rootLayer->GetLayerTree()->device_viewport_size())); 694 gfx::SizeF(m_rootLayer->GetLayerTree()->device_viewport_size()));
695 clipNode.transform_id = kRealRootNodeId; 695 clipNode.transform_id = kRealRootNodeId;
696 clipNode.target_transform_id = kRealRootNodeId; 696 clipNode.target_transform_id = kRealRootNodeId;
697 clipNode.target_effect_id = kSecondaryRootNodeId; 697 clipNode.target_effect_id = kSecondaryRootNodeId;
698 m_propertyTrees.clip_id_to_index_map[clipNode.owner_id] = clipNode.id; 698 m_propertyTrees.clip_id_to_index_map[clipNode.owning_layer_id] = clipNode.id;
699 699
700 m_clipNodeMap.set(ClipPaintPropertyNode::root(), clipNode.id); 700 m_clipNodeMap.set(ClipPaintPropertyNode::root(), clipNode.id);
701 m_rootLayer->SetClipTreeIndex(clipNode.id); 701 m_rootLayer->SetClipTreeIndex(clipNode.id);
702 } 702 }
703 703
704 void PropertyTreeManager::setupRootEffectNode() { 704 void PropertyTreeManager::setupRootEffectNode() {
705 // cc is hardcoded to use effect node index 1 for root render surface. 705 // cc is hardcoded to use effect node index 1 for root render surface.
706 cc::EffectTree& effectTree = m_propertyTrees.effect_tree; 706 cc::EffectTree& effectTree = m_propertyTrees.effect_tree;
707 effectTree.clear(); 707 effectTree.clear();
708 m_propertyTrees.effect_id_to_index_map.clear(); 708 m_propertyTrees.effect_id_to_index_map.clear();
709 cc::EffectNode& effectNode = 709 cc::EffectNode& effectNode =
710 *effectTree.Node(effectTree.Insert(cc::EffectNode(), kInvalidNodeId)); 710 *effectTree.Node(effectTree.Insert(cc::EffectNode(), kInvalidNodeId));
711 DCHECK_EQ(effectNode.id, kSecondaryRootNodeId); 711 DCHECK_EQ(effectNode.id, kSecondaryRootNodeId);
712 effectNode.owner_id = m_rootLayer->id(); 712 effectNode.owning_layer_id = m_rootLayer->id();
713 effectNode.transform_id = kRealRootNodeId; 713 effectNode.transform_id = kRealRootNodeId;
714 effectNode.clip_id = kSecondaryRootNodeId; 714 effectNode.clip_id = kSecondaryRootNodeId;
715 effectNode.has_render_surface = true; 715 effectNode.has_render_surface = true;
716 m_propertyTrees.effect_id_to_index_map[effectNode.owner_id] = effectNode.id; 716 m_propertyTrees.effect_id_to_index_map[effectNode.owning_layer_id] =
717 effectNode.id;
717 718
718 m_effectStack.append( 719 m_effectStack.append(
719 BlinkEffectAndCcIdPair{EffectPaintPropertyNode::root(), effectNode.id}); 720 BlinkEffectAndCcIdPair{EffectPaintPropertyNode::root(), effectNode.id});
720 m_rootLayer->SetEffectTreeIndex(effectNode.id); 721 m_rootLayer->SetEffectTreeIndex(effectNode.id);
721 } 722 }
722 723
723 void PropertyTreeManager::setupRootScrollNode() { 724 void PropertyTreeManager::setupRootScrollNode() {
724 cc::ScrollTree& scrollTree = m_propertyTrees.scroll_tree; 725 cc::ScrollTree& scrollTree = m_propertyTrees.scroll_tree;
725 scrollTree.clear(); 726 scrollTree.clear();
726 m_propertyTrees.scroll_id_to_index_map.clear(); 727 m_propertyTrees.scroll_id_to_index_map.clear();
727 cc::ScrollNode& scrollNode = 728 cc::ScrollNode& scrollNode =
728 *scrollTree.Node(scrollTree.Insert(cc::ScrollNode(), kRealRootNodeId)); 729 *scrollTree.Node(scrollTree.Insert(cc::ScrollNode(), kRealRootNodeId));
729 DCHECK_EQ(scrollNode.id, kSecondaryRootNodeId); 730 DCHECK_EQ(scrollNode.id, kSecondaryRootNodeId);
730 scrollNode.owner_id = m_rootLayer->id(); 731 scrollNode.owning_layer_id = m_rootLayer->id();
731 scrollNode.transform_id = kSecondaryRootNodeId; 732 scrollNode.transform_id = kSecondaryRootNodeId;
732 m_propertyTrees.scroll_id_to_index_map[scrollNode.owner_id] = scrollNode.id; 733 m_propertyTrees.scroll_id_to_index_map[scrollNode.owning_layer_id] =
734 scrollNode.id;
733 735
734 m_scrollNodeMap.set(ScrollPaintPropertyNode::root(), scrollNode.id); 736 m_scrollNodeMap.set(ScrollPaintPropertyNode::root(), scrollNode.id);
735 m_rootLayer->SetScrollTreeIndex(scrollNode.id); 737 m_rootLayer->SetScrollTreeIndex(scrollNode.id);
736 } 738 }
737 739
738 int PropertyTreeManager::compositorIdForTransformNode( 740 int PropertyTreeManager::compositorIdForTransformNode(
739 const TransformPaintPropertyNode* transformNode) { 741 const TransformPaintPropertyNode* transformNode) {
740 DCHECK(transformNode); 742 DCHECK(transformNode);
741 // TODO(crbug.com/645615): Remove the failsafe here. 743 // TODO(crbug.com/645615): Remove the failsafe here.
742 if (!transformNode) 744 if (!transformNode)
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
789 791
790 auto it = m_clipNodeMap.find(clipNode); 792 auto it = m_clipNodeMap.find(clipNode);
791 if (it != m_clipNodeMap.end()) 793 if (it != m_clipNodeMap.end())
792 return it->value; 794 return it->value;
793 795
794 scoped_refptr<cc::Layer> dummyLayer = cc::Layer::Create(); 796 scoped_refptr<cc::Layer> dummyLayer = cc::Layer::Create();
795 int parentId = compositorIdForClipNode(clipNode->parent()); 797 int parentId = compositorIdForClipNode(clipNode->parent());
796 int id = clipTree().Insert(cc::ClipNode(), parentId); 798 int id = clipTree().Insert(cc::ClipNode(), parentId);
797 799
798 cc::ClipNode& compositorNode = *clipTree().Node(id); 800 cc::ClipNode& compositorNode = *clipTree().Node(id);
799 compositorNode.owner_id = dummyLayer->id(); 801 compositorNode.owning_layer_id = dummyLayer->id();
800 m_propertyTrees.clip_id_to_index_map[compositorNode.owner_id] = id; 802 m_propertyTrees.clip_id_to_index_map[compositorNode.owning_layer_id] = id;
801 803
802 // TODO(jbroman): Don't discard rounded corners. 804 // TODO(jbroman): Don't discard rounded corners.
803 compositorNode.clip = clipNode->clipRect().rect(); 805 compositorNode.clip = clipNode->clipRect().rect();
804 compositorNode.transform_id = 806 compositorNode.transform_id =
805 compositorIdForTransformNode(clipNode->localTransformSpace()); 807 compositorIdForTransformNode(clipNode->localTransformSpace());
806 compositorNode.target_transform_id = kRealRootNodeId; 808 compositorNode.target_transform_id = kRealRootNodeId;
807 compositorNode.target_effect_id = kSecondaryRootNodeId; 809 compositorNode.target_effect_id = kSecondaryRootNodeId;
808 compositorNode.clip_type = cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP; 810 compositorNode.clip_type = cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP;
809 compositorNode.layers_are_clipped = true; 811 compositorNode.layers_are_clipped = true;
810 compositorNode.layers_are_clipped_when_surfaces_disabled = true; 812 compositorNode.layers_are_clipped_when_surfaces_disabled = true;
(...skipping 19 matching lines...) Expand all
830 return kSecondaryRootNodeId; 832 return kSecondaryRootNodeId;
831 833
832 auto it = m_scrollNodeMap.find(scrollNode); 834 auto it = m_scrollNodeMap.find(scrollNode);
833 if (it != m_scrollNodeMap.end()) 835 if (it != m_scrollNodeMap.end())
834 return it->value; 836 return it->value;
835 837
836 int parentId = compositorIdForScrollNode(scrollNode->parent()); 838 int parentId = compositorIdForScrollNode(scrollNode->parent());
837 int id = scrollTree().Insert(cc::ScrollNode(), parentId); 839 int id = scrollTree().Insert(cc::ScrollNode(), parentId);
838 840
839 cc::ScrollNode& compositorNode = *scrollTree().Node(id); 841 cc::ScrollNode& compositorNode = *scrollTree().Node(id);
840 compositorNode.owner_id = parentId; 842 compositorNode.owning_layer_id = parentId;
841 m_propertyTrees.scroll_id_to_index_map[compositorNode.owner_id] = id; 843 m_propertyTrees.scroll_id_to_index_map[compositorNode.owning_layer_id] = id;
842 844
843 compositorNode.scrollable = true; 845 compositorNode.scrollable = true;
844 846
845 compositorNode.scroll_clip_layer_bounds.SetSize(scrollNode->clip().width(), 847 compositorNode.scroll_clip_layer_bounds.SetSize(scrollNode->clip().width(),
846 scrollNode->clip().height()); 848 scrollNode->clip().height());
847 compositorNode.bounds.SetSize(scrollNode->bounds().width(), 849 compositorNode.bounds.SetSize(scrollNode->bounds().width(),
848 scrollNode->bounds().height()); 850 scrollNode->bounds().height());
849 compositorNode.user_scrollable_horizontal = 851 compositorNode.user_scrollable_horizontal =
850 scrollNode->userScrollableHorizontal(); 852 scrollNode->userScrollableHorizontal();
851 compositorNode.user_scrollable_vertical = 853 compositorNode.user_scrollable_vertical =
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
967 // We currently create dummy layers to host effect nodes and corresponding 969 // We currently create dummy layers to host effect nodes and corresponding
968 // render surfaces. This should be removed once cc implements better support 970 // render surfaces. This should be removed once cc implements better support
969 // for freestanding property trees. 971 // for freestanding property trees.
970 scoped_refptr<cc::Layer> dummyLayer = nextEffect->ensureDummyLayer(); 972 scoped_refptr<cc::Layer> dummyLayer = nextEffect->ensureDummyLayer();
971 m_rootLayer->AddChild(dummyLayer); 973 m_rootLayer->AddChild(dummyLayer);
972 974
973 int outputClipId = compositorIdForClipNode(nextEffect->outputClip()); 975 int outputClipId = compositorIdForClipNode(nextEffect->outputClip());
974 976
975 cc::EffectNode& effectNode = *effectTree().Node(effectTree().Insert( 977 cc::EffectNode& effectNode = *effectTree().Node(effectTree().Insert(
976 cc::EffectNode(), compositorIdForCurrentEffectNode())); 978 cc::EffectNode(), compositorIdForCurrentEffectNode()));
977 effectNode.owner_id = dummyLayer->id(); 979 effectNode.owning_layer_id = dummyLayer->id();
978 effectNode.clip_id = outputClipId; 980 effectNode.clip_id = outputClipId;
979 // Every effect is supposed to have render surface enabled for grouping, 981 // Every effect is supposed to have render surface enabled for grouping,
980 // but we can get away without one if the effect is opacity-only and has only 982 // but we can get away without one if the effect is opacity-only and has only
981 // one compositing child with kSrcOver blend mode. This is both for 983 // one compositing child with kSrcOver blend mode. This is both for
982 // optimization and not introducing sub-pixel differences in layout tests. 984 // optimization and not introducing sub-pixel differences in layout tests.
983 // See PropertyTreeManager::switchToEffectNode() and above where we 985 // See PropertyTreeManager::switchToEffectNode() and above where we
984 // retrospectively enable render surface when more than one compositing child 986 // retrospectively enable render surface when more than one compositing child
985 // or a child with exotic blend mode is detected. 987 // or a child with exotic blend mode is detected.
986 // TODO(crbug.com/504464): There is ongoing work in cc to delay render surface 988 // TODO(crbug.com/504464): There is ongoing work in cc to delay render surface
987 // decision until later phase of the pipeline. Remove premature optimization 989 // decision until later phase of the pipeline. Remove premature optimization
988 // here once the work is ready. 990 // here once the work is ready.
989 if (!nextEffect->filter().isEmpty() || 991 if (!nextEffect->filter().isEmpty() ||
990 nextEffect->blendMode() != SkBlendMode::kSrcOver) 992 nextEffect->blendMode() != SkBlendMode::kSrcOver)
991 effectNode.has_render_surface = true; 993 effectNode.has_render_surface = true;
992 effectNode.opacity = nextEffect->opacity(); 994 effectNode.opacity = nextEffect->opacity();
993 effectNode.filters = nextEffect->filter().asCcFilterOperations(); 995 effectNode.filters = nextEffect->filter().asCcFilterOperations();
994 effectNode.blend_mode = nextEffect->blendMode(); 996 effectNode.blend_mode = nextEffect->blendMode();
995 m_propertyTrees.effect_id_to_index_map[effectNode.owner_id] = effectNode.id; 997 m_propertyTrees.effect_id_to_index_map[effectNode.owning_layer_id] =
998 effectNode.id;
996 m_effectStack.append(BlinkEffectAndCcIdPair{nextEffect, effectNode.id}); 999 m_effectStack.append(BlinkEffectAndCcIdPair{nextEffect, effectNode.id});
997 1000
998 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); 1001 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber);
999 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId); 1002 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId);
1000 dummyLayer->SetClipTreeIndex(outputClipId); 1003 dummyLayer->SetClipTreeIndex(outputClipId);
1001 dummyLayer->SetEffectTreeIndex(effectNode.id); 1004 dummyLayer->SetEffectTreeIndex(effectNode.id);
1002 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); 1005 dummyLayer->SetScrollTreeIndex(kRealRootNodeId);
1003 } 1006 }
1004 1007
1005 } // namespace 1008 } // namespace
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
1197 #ifndef NDEBUG 1200 #ifndef NDEBUG
1198 void PaintArtifactCompositor::showDebugData() { 1201 void PaintArtifactCompositor::showDebugData() {
1199 LOG(ERROR) << layersAsJSON(LayerTreeIncludesDebugInfo) 1202 LOG(ERROR) << layersAsJSON(LayerTreeIncludesDebugInfo)
1200 ->toPrettyJSONString() 1203 ->toPrettyJSONString()
1201 .utf8() 1204 .utf8()
1202 .data(); 1205 .data();
1203 } 1206 }
1204 #endif 1207 #endif
1205 1208
1206 } // namespace blink 1209 } // namespace blink
OLDNEW
« no previous file with comments | « cc/trees/transform_node.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698