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

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

Issue 2642183003: Populate cc element id maps for transform/effect nodes. (Closed)
Patch Set: Sync to head. Created 3 years, 10 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 | « no previous file | third_party/WebKit/Source/platform/graphics/compositing/PropertyTreeManager.cpp » ('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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "base/test/test_simple_task_runner.h" 7 #include "base/test/test_simple_task_runner.h"
8 #include "base/threading/thread_task_runner_handle.h" 8 #include "base/threading/thread_task_runner_handle.h"
9 #include "cc/layers/layer.h" 9 #include "cc/layers/layer.h"
10 #include "cc/test/fake_compositor_frame_sink.h" 10 #include "cc/test/fake_compositor_frame_sink.h"
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 WTF::makeUnique<WebLayerTreeViewWithCompositorFrameSink>(settings); 89 WTF::makeUnique<WebLayerTreeViewWithCompositorFrameSink>(settings);
90 m_webLayerTreeView->setRootLayer(*m_paintArtifactCompositor->getWebLayer()); 90 m_webLayerTreeView->setRootLayer(*m_paintArtifactCompositor->getWebLayer());
91 } 91 }
92 92
93 const cc::PropertyTrees& propertyTrees() { 93 const cc::PropertyTrees& propertyTrees() {
94 return *m_webLayerTreeView->layerTreeHost() 94 return *m_webLayerTreeView->layerTreeHost()
95 ->GetLayerTree() 95 ->GetLayerTree()
96 ->property_trees(); 96 ->property_trees();
97 } 97 }
98 98
99 int elementIdToEffectNodeIndex(CompositorElementId elementId) {
100 return m_webLayerTreeView->layerTreeHost()
101 ->GetLayerTree()
102 ->property_trees()
103 ->element_id_to_effect_node_index[elementId];
104 }
105
106 int elementIdToTransformNodeIndex(CompositorElementId elementId) {
107 return m_webLayerTreeView->layerTreeHost()
108 ->GetLayerTree()
109 ->property_trees()
110 ->element_id_to_transform_node_index[elementId];
111 }
112
99 int elementIdToScrollNodeIndex(CompositorElementId elementId) { 113 int elementIdToScrollNodeIndex(CompositorElementId elementId) {
100 return m_webLayerTreeView->layerTreeHost() 114 return m_webLayerTreeView->layerTreeHost()
101 ->GetLayerTree() 115 ->GetLayerTree()
102 ->property_trees() 116 ->property_trees()
103 ->element_id_to_scroll_node_index[elementId]; 117 ->element_id_to_scroll_node_index[elementId];
104 } 118 }
105 119
106 const cc::TransformNode& transformNode(const cc::Layer* layer) { 120 const cc::TransformNode& transformNode(const cc::Layer* layer) {
107 return *propertyTrees().transform_tree.Node(layer->transform_tree_index()); 121 return *propertyTrees().transform_tree.Node(layer->transform_tree_index());
108 } 122 }
(...skipping 1501 matching lines...) Expand 10 before | Expand all | Expand 10 after
1610 PaintChunk chunk3; 1624 PaintChunk chunk3;
1611 chunk3.properties.propertyTreeState = chunk1.properties.propertyTreeState; 1625 chunk3.properties.propertyTreeState = chunk1.properties.propertyTreeState;
1612 chunk3.bounds = FloatRect(0, 0, 50, 60); 1626 chunk3.bounds = FloatRect(0, 0, 50, 60);
1613 chunk3.knownToBeOpaque = true; 1627 chunk3.knownToBeOpaque = true;
1614 pendingLayer.add(chunk3, nullptr); 1628 pendingLayer.add(chunk3, nullptr);
1615 1629
1616 // Chunk 3 covers the entire layer, so now it's opaque. 1630 // Chunk 3 covers the entire layer, so now it's opaque.
1617 EXPECT_TRUE(pendingLayer.knownToBeOpaque); 1631 EXPECT_TRUE(pendingLayer.knownToBeOpaque);
1618 } 1632 }
1619 1633
1634 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, TransformWithElementId) {
1635 CompositorElementId expectedCompositorElementId(2, 0);
1636 RefPtr<TransformPaintPropertyNode> transform =
1637 TransformPaintPropertyNode::create(
1638 TransformPaintPropertyNode::root(), TransformationMatrix().rotate(90),
1639 FloatPoint3D(100, 100, 0), false, 0, CompositingReason3DTransform,
1640 expectedCompositorElementId);
1641
1642 TestPaintArtifact artifact;
1643 artifact
1644 .chunk(transform, ClipPaintPropertyNode::root(),
1645 EffectPaintPropertyNode::root())
1646 .rectDrawing(FloatRect(100, 100, 200, 100), Color::black);
1647 update(artifact.build());
1648
1649 EXPECT_EQ(2, elementIdToTransformNodeIndex(expectedCompositorElementId));
1650 }
1651
1652 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, EffectWithElementId) {
1653 CompositorElementId expectedCompositorElementId(2, 0);
1654 float opacity = 2.0 / 255.0;
1655 RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::create(
1656 EffectPaintPropertyNode::root(), TransformPaintPropertyNode::root(),
1657 ClipPaintPropertyNode::root(), CompositorFilterOperations(), opacity,
1658 SkBlendMode::kSrcOver, CompositingReasonNone,
1659 expectedCompositorElementId);
1660
1661 TestPaintArtifact artifact;
1662 artifact
1663 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(),
1664 effect.get())
1665 .rectDrawing(FloatRect(100, 100, 200, 100), Color::black);
1666 update(artifact.build());
1667
1668 EXPECT_EQ(2, elementIdToEffectNodeIndex(expectedCompositorElementId));
1669 }
1670
1620 } // namespace blink 1671 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/platform/graphics/compositing/PropertyTreeManager.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698