OLD | NEW |
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/display_item_list.h" | 10 #include "cc/playback/display_item_list.h" |
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
514 int id = clipTree().Insert(cc::ClipNode(), parentId); | 514 int id = clipTree().Insert(cc::ClipNode(), parentId); |
515 | 515 |
516 cc::ClipNode& compositorNode = *clipTree().Node(id); | 516 cc::ClipNode& compositorNode = *clipTree().Node(id); |
517 compositorNode.owner_id = dummyLayer->id(); | 517 compositorNode.owner_id = dummyLayer->id(); |
518 | 518 |
519 // TODO(jbroman): Don't discard rounded corners. | 519 // TODO(jbroman): Don't discard rounded corners. |
520 compositorNode.clip = clipNode->clipRect().rect(); | 520 compositorNode.clip = clipNode->clipRect().rect(); |
521 compositorNode.transform_id = | 521 compositorNode.transform_id = |
522 compositorIdForTransformNode(clipNode->localTransformSpace()); | 522 compositorIdForTransformNode(clipNode->localTransformSpace()); |
523 compositorNode.target_transform_id = kRealRootNodeId; | 523 compositorNode.target_transform_id = kRealRootNodeId; |
| 524 compositorNode.target_effect_id = kSecondaryRootNodeId; |
524 compositorNode.applies_local_clip = true; | 525 compositorNode.applies_local_clip = true; |
525 compositorNode.layers_are_clipped = true; | 526 compositorNode.layers_are_clipped = true; |
526 compositorNode.layers_are_clipped_when_surfaces_disabled = true; | 527 compositorNode.layers_are_clipped_when_surfaces_disabled = true; |
527 | 528 |
528 m_rootLayer->AddChild(dummyLayer); | 529 m_rootLayer->AddChild(dummyLayer); |
529 dummyLayer->SetTransformTreeIndex(compositorNode.transform_id); | 530 dummyLayer->SetTransformTreeIndex(compositorNode.transform_id); |
530 dummyLayer->SetClipTreeIndex(id); | 531 dummyLayer->SetClipTreeIndex(id); |
531 dummyLayer->SetEffectTreeIndex(kSecondaryRootNodeId); | 532 dummyLayer->SetEffectTreeIndex(kSecondaryRootNodeId); |
532 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); | 533 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); |
533 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); | 534 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
666 scoped_refptr<cc::Layer> dummyLayer = cc::Layer::Create(); | 667 scoped_refptr<cc::Layer> dummyLayer = cc::Layer::Create(); |
667 m_rootLayer->AddChild(dummyLayer); | 668 m_rootLayer->AddChild(dummyLayer); |
668 | 669 |
669 // Also cc assumes a clip node is always created by a layer that creates | 670 // Also cc assumes a clip node is always created by a layer that creates |
670 // render surface. | 671 // render surface. |
671 cc::ClipNode& dummyClip = | 672 cc::ClipNode& dummyClip = |
672 *clipTree().Node(clipTree().Insert(cc::ClipNode(), kSecondaryRootNodeId)); | 673 *clipTree().Node(clipTree().Insert(cc::ClipNode(), kSecondaryRootNodeId)); |
673 dummyClip.owner_id = dummyLayer->id(); | 674 dummyClip.owner_id = dummyLayer->id(); |
674 dummyClip.transform_id = kRealRootNodeId; | 675 dummyClip.transform_id = kRealRootNodeId; |
675 dummyClip.target_transform_id = kRealRootNodeId; | 676 dummyClip.target_transform_id = kRealRootNodeId; |
| 677 dummyClip.target_effect_id = kSecondaryRootNodeId; |
676 | 678 |
677 cc::EffectNode& effectNode = *effectTree().Node(effectTree().Insert( | 679 cc::EffectNode& effectNode = *effectTree().Node(effectTree().Insert( |
678 cc::EffectNode(), compositorIdForCurrentEffectNode())); | 680 cc::EffectNode(), compositorIdForCurrentEffectNode())); |
679 effectNode.owner_id = dummyLayer->id(); | 681 effectNode.owner_id = dummyLayer->id(); |
680 effectNode.clip_id = dummyClip.id; | 682 effectNode.clip_id = dummyClip.id; |
681 effectNode.opacity = nextEffect->opacity(); | 683 effectNode.opacity = nextEffect->opacity(); |
682 m_effectStack.append(BlinkEffectAndCcIdPair{nextEffect, effectNode.id}); | 684 m_effectStack.append(BlinkEffectAndCcIdPair{nextEffect, effectNode.id}); |
683 | 685 |
684 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); | 686 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); |
685 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId); | 687 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId); |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
758 | 760 |
759 if (m_extraDataForTestingEnabled) | 761 if (m_extraDataForTestingEnabled) |
760 m_extraDataForTesting->contentLayers.append(layer); | 762 m_extraDataForTesting->contentLayers.append(layer); |
761 } | 763 } |
762 m_contentLayerClients.clear(); | 764 m_contentLayerClients.clear(); |
763 m_contentLayerClients.swap(newContentLayerClients); | 765 m_contentLayerClients.swap(newContentLayerClients); |
764 | 766 |
765 // Mark the property trees as having been rebuilt. | 767 // Mark the property trees as having been rebuilt. |
766 layerTree->property_trees()->sequence_number = kPropertyTreeSequenceNumber; | 768 layerTree->property_trees()->sequence_number = kPropertyTreeSequenceNumber; |
767 layerTree->property_trees()->needs_rebuild = false; | 769 layerTree->property_trees()->needs_rebuild = false; |
| 770 layerTree->property_trees()->ResetCachedData(); |
768 } | 771 } |
769 | 772 |
770 } // namespace blink | 773 } // namespace blink |
OLD | NEW |