Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 687 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 698 const cc::TransformTree& transformTree = propertyTrees().transform_tree; | 698 const cc::TransformTree& transformTree = propertyTrees().transform_tree; |
| 699 const cc::TransformNode& transformNode = | 699 const cc::TransformNode& transformNode = |
| 700 *transformTree.Node(scrollNode.transform_id); | 700 *transformTree.Node(scrollNode.transform_id); |
| 701 EXPECT_TRUE(transformNode.local.IsIdentity()); | 701 EXPECT_TRUE(transformNode.local.IsIdentity()); |
| 702 EXPECT_EQ(gfx::ScrollOffset(-7, -9), transformNode.scroll_offset); | 702 EXPECT_EQ(gfx::ScrollOffset(-7, -9), transformNode.scroll_offset); |
| 703 | 703 |
| 704 EXPECT_EQ(MainThreadScrollingReason::kNotScrollingOnMain, | 704 EXPECT_EQ(MainThreadScrollingReason::kNotScrollingOnMain, |
| 705 scrollNode.main_thread_scrolling_reasons); | 705 scrollNode.main_thread_scrolling_reasons); |
| 706 } | 706 } |
| 707 | 707 |
| 708 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, TransformUnderScrollNode) { | |
| 709 RefPtr<TransformPaintPropertyNode> scrollTranslation = | |
| 710 TransformPaintPropertyNode::createScrollTranslation( | |
| 711 TransformPaintPropertyNode::root(), | |
| 712 TransformationMatrix().translate(7, 9), FloatPoint3D(), false, 0, | |
| 713 CompositingReasonNone, CompositorElementId(), | |
| 714 ScrollPaintPropertyNode::root(), IntSize(11, 13), IntSize(27, 31), | |
| 715 true, false, 0 /* mainThreadScrollingReasons */); | |
| 716 | |
| 717 RefPtr<TransformPaintPropertyNode> transform = | |
| 718 TransformPaintPropertyNode::create( | |
| 719 scrollTranslation, TransformationMatrix(), FloatPoint3D(), false, 0, | |
| 720 CompositingReason3DTransform); | |
| 721 | |
| 722 TestPaintArtifact artifact; | |
| 723 artifact | |
| 724 .chunk(scrollTranslation, ClipPaintPropertyNode::root(), | |
| 725 EffectPaintPropertyNode::root()) | |
| 726 .rectDrawing(FloatRect(2, 4, 6, 8), Color::black) | |
| 727 .chunk(transform, ClipPaintPropertyNode::root(), | |
| 728 EffectPaintPropertyNode::root()) | |
| 729 .rectDrawing(FloatRect(1, 3, 5, 7), Color::white); | |
| 730 update(artifact.build()); | |
| 731 | |
| 732 const cc::ScrollTree& scrollTree = propertyTrees().scroll_tree; | |
| 733 // Node #0 reserved for null; #1 for root render surface. | |
| 734 ASSERT_EQ(3u, scrollTree.size()); | |
| 735 const cc::ScrollNode& scrollNode = *scrollTree.Node(2); | |
| 736 | |
| 737 // Both layers should refer to the same scroll tree node. | |
| 738 EXPECT_EQ(scrollNode.id, contentLayerAt(0)->scroll_tree_index()); | |
| 739 EXPECT_EQ(scrollNode.id, contentLayerAt(1)->scroll_tree_index()); | |
| 740 | |
| 741 const cc::TransformTree& transformTree = propertyTrees().transform_tree; | |
| 742 const cc::TransformNode& scrollTransformNode = | |
| 743 *transformTree.Node(scrollNode.transform_id); | |
| 744 // The layers have different transform nodes. | |
| 745 EXPECT_EQ(scrollTransformNode.id, contentLayerAt(0)->transform_tree_index()); | |
|
pdr.
2017/02/02 04:22:32
There is not yet any end-to-end infrastructure for
| |
| 746 EXPECT_NE(scrollTransformNode.id, contentLayerAt(1)->transform_tree_index()); | |
| 747 } | |
| 748 | |
| 708 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, NestedScrollNodes) { | 749 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, NestedScrollNodes) { |
| 709 RefPtr<EffectPaintPropertyNode> effect = | 750 RefPtr<EffectPaintPropertyNode> effect = |
| 710 createOpacityOnlyEffect(EffectPaintPropertyNode::root(), 0.5); | 751 createOpacityOnlyEffect(EffectPaintPropertyNode::root(), 0.5); |
| 711 | 752 |
| 712 CompositorElementId expectedCompositorElementIdA = CompositorElementId(2, 0); | 753 CompositorElementId expectedCompositorElementIdA = CompositorElementId(2, 0); |
| 713 RefPtr<TransformPaintPropertyNode> scrollTranslationA = | 754 RefPtr<TransformPaintPropertyNode> scrollTranslationA = |
| 714 TransformPaintPropertyNode::createScrollTranslation( | 755 TransformPaintPropertyNode::createScrollTranslation( |
| 715 TransformPaintPropertyNode::root(), | 756 TransformPaintPropertyNode::root(), |
| 716 TransformationMatrix().translate(11, 13), FloatPoint3D(), false, 0, | 757 TransformationMatrix().translate(11, 13), FloatPoint3D(), false, 0, |
| 717 CompositingReasonNone, expectedCompositorElementIdA, | 758 CompositingReasonNone, expectedCompositorElementIdA, |
| (...skipping 923 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1641 artifact | 1682 artifact |
| 1642 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), | 1683 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), |
| 1643 effect.get()) | 1684 effect.get()) |
| 1644 .rectDrawing(FloatRect(100, 100, 200, 100), Color::black); | 1685 .rectDrawing(FloatRect(100, 100, 200, 100), Color::black); |
| 1645 update(artifact.build()); | 1686 update(artifact.build()); |
| 1646 | 1687 |
| 1647 EXPECT_EQ(2, elementIdToEffectNodeIndex(expectedCompositorElementId)); | 1688 EXPECT_EQ(2, elementIdToEffectNodeIndex(expectedCompositorElementId)); |
| 1648 } | 1689 } |
| 1649 | 1690 |
| 1650 } // namespace blink | 1691 } // namespace blink |
| OLD | NEW |