| 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 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 165 Pointee(drawsRectangle(FloatRect(0, 0, 100, 100), Color::white))); | 165 Pointee(drawsRectangle(FloatRect(0, 0, 100, 100), Color::white))); |
| 166 EXPECT_EQ(translation(50, -50), child->screen_space_transform()); | 166 EXPECT_EQ(translation(50, -50), child->screen_space_transform()); |
| 167 EXPECT_EQ(gfx::Size(100, 100), child->bounds()); | 167 EXPECT_EQ(gfx::Size(100, 100), child->bounds()); |
| 168 } | 168 } |
| 169 | 169 |
| 170 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, OneTransform) { | 170 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, OneTransform) { |
| 171 // A 90 degree clockwise rotation about (100, 100). | 171 // A 90 degree clockwise rotation about (100, 100). |
| 172 RefPtr<TransformPaintPropertyNode> transform = | 172 RefPtr<TransformPaintPropertyNode> transform = |
| 173 TransformPaintPropertyNode::create( | 173 TransformPaintPropertyNode::create( |
| 174 TransformPaintPropertyNode::root(), TransformationMatrix().rotate(90), | 174 TransformPaintPropertyNode::root(), TransformationMatrix().rotate(90), |
| 175 FloatPoint3D(100, 100, 0), false, 0, CompositingReason3DTransform); | 175 FloatPoint3D(100, 100, 0), nullptr, false, 0, |
| 176 CompositingReason3DTransform); |
| 176 | 177 |
| 177 TestPaintArtifact artifact; | 178 TestPaintArtifact artifact; |
| 178 artifact | 179 artifact |
| 179 .chunk(transform, ClipPaintPropertyNode::root(), | 180 .chunk(transform, ClipPaintPropertyNode::root(), |
| 180 EffectPaintPropertyNode::root()) | 181 EffectPaintPropertyNode::root()) |
| 181 .rectDrawing(FloatRect(0, 0, 100, 100), Color::white); | 182 .rectDrawing(FloatRect(0, 0, 100, 100), Color::white); |
| 182 artifact | 183 artifact |
| 183 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), | 184 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), |
| 184 EffectPaintPropertyNode::root()) | 185 EffectPaintPropertyNode::root()) |
| 185 .rectDrawing(FloatRect(0, 0, 100, 100), Color::gray); | 186 .rectDrawing(FloatRect(0, 0, 100, 100), Color::gray); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 211 Pointee(drawsRectangle(FloatRect(0, 0, 100, 100), Color::gray))); | 212 Pointee(drawsRectangle(FloatRect(0, 0, 100, 100), Color::gray))); |
| 212 EXPECT_EQ(gfx::Transform(), layer->screen_space_transform()); | 213 EXPECT_EQ(gfx::Transform(), layer->screen_space_transform()); |
| 213 } | 214 } |
| 214 } | 215 } |
| 215 | 216 |
| 216 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, TransformCombining) { | 217 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, TransformCombining) { |
| 217 // A translation by (5, 5) within a 2x scale about (10, 10). | 218 // A translation by (5, 5) within a 2x scale about (10, 10). |
| 218 RefPtr<TransformPaintPropertyNode> transform1 = | 219 RefPtr<TransformPaintPropertyNode> transform1 = |
| 219 TransformPaintPropertyNode::create( | 220 TransformPaintPropertyNode::create( |
| 220 TransformPaintPropertyNode::root(), TransformationMatrix().scale(2), | 221 TransformPaintPropertyNode::root(), TransformationMatrix().scale(2), |
| 221 FloatPoint3D(10, 10, 0), false, 0, CompositingReason3DTransform); | 222 FloatPoint3D(10, 10, 0), nullptr, false, 0, |
| 223 CompositingReason3DTransform); |
| 222 RefPtr<TransformPaintPropertyNode> transform2 = | 224 RefPtr<TransformPaintPropertyNode> transform2 = |
| 223 TransformPaintPropertyNode::create( | 225 TransformPaintPropertyNode::create( |
| 224 transform1, TransformationMatrix().translate(5, 5), FloatPoint3D(), | 226 transform1, TransformationMatrix().translate(5, 5), FloatPoint3D(), |
| 225 false, 0, CompositingReason3DTransform); | 227 nullptr, false, 0, CompositingReason3DTransform); |
| 226 | 228 |
| 227 TestPaintArtifact artifact; | 229 TestPaintArtifact artifact; |
| 228 artifact | 230 artifact |
| 229 .chunk(transform1, ClipPaintPropertyNode::root(), | 231 .chunk(transform1, ClipPaintPropertyNode::root(), |
| 230 EffectPaintPropertyNode::root()) | 232 EffectPaintPropertyNode::root()) |
| 231 .rectDrawing(FloatRect(0, 0, 300, 200), Color::white); | 233 .rectDrawing(FloatRect(0, 0, 300, 200), Color::white); |
| 232 artifact | 234 artifact |
| 233 .chunk(transform2, ClipPaintPropertyNode::root(), | 235 .chunk(transform2, ClipPaintPropertyNode::root(), |
| 234 EffectPaintPropertyNode::root()) | 236 EffectPaintPropertyNode::root()) |
| 235 .rectDrawing(FloatRect(0, 0, 300, 200), Color::black); | 237 .rectDrawing(FloatRect(0, 0, 300, 200), Color::black); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 271 TransformPaintPropertyNode::create(TransformPaintPropertyNode::root(), | 273 TransformPaintPropertyNode::create(TransformPaintPropertyNode::root(), |
| 272 TransformationMatrix(), | 274 TransformationMatrix(), |
| 273 FloatPoint3D()); | 275 FloatPoint3D()); |
| 274 RefPtr<TransformPaintPropertyNode> transform2 = | 276 RefPtr<TransformPaintPropertyNode> transform2 = |
| 275 TransformPaintPropertyNode::create( | 277 TransformPaintPropertyNode::create( |
| 276 transform1, TransformationMatrix().rotate3d(0, 45, 0), | 278 transform1, TransformationMatrix().rotate3d(0, 45, 0), |
| 277 FloatPoint3D()); | 279 FloatPoint3D()); |
| 278 RefPtr<TransformPaintPropertyNode> transform3 = | 280 RefPtr<TransformPaintPropertyNode> transform3 = |
| 279 TransformPaintPropertyNode::create( | 281 TransformPaintPropertyNode::create( |
| 280 transform2, TransformationMatrix().rotate3d(0, 45, 0), | 282 transform2, TransformationMatrix().rotate3d(0, 45, 0), |
| 281 FloatPoint3D(), transformIsFlattened); | 283 FloatPoint3D(), nullptr, transformIsFlattened); |
| 282 | 284 |
| 283 TestPaintArtifact artifact; | 285 TestPaintArtifact artifact; |
| 284 artifact | 286 artifact |
| 285 .chunk(transform3, ClipPaintPropertyNode::root(), | 287 .chunk(transform3, ClipPaintPropertyNode::root(), |
| 286 EffectPaintPropertyNode::root()) | 288 EffectPaintPropertyNode::root()) |
| 287 .rectDrawing(FloatRect(0, 0, 300, 200), Color::white); | 289 .rectDrawing(FloatRect(0, 0, 300, 200), Color::white); |
| 288 update(artifact.build()); | 290 update(artifact.build()); |
| 289 | 291 |
| 290 ASSERT_EQ(1u, contentLayerCount()); | 292 ASSERT_EQ(1u, contentLayerCount()); |
| 291 const cc::Layer* layer = contentLayerAt(0); | 293 const cc::Layer* layer = contentLayerAt(0); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 318 | 320 |
| 319 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, SortingContextID) { | 321 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, SortingContextID) { |
| 320 // Has no 3D rendering context. | 322 // Has no 3D rendering context. |
| 321 RefPtr<TransformPaintPropertyNode> transform1 = | 323 RefPtr<TransformPaintPropertyNode> transform1 = |
| 322 TransformPaintPropertyNode::create(TransformPaintPropertyNode::root(), | 324 TransformPaintPropertyNode::create(TransformPaintPropertyNode::root(), |
| 323 TransformationMatrix(), | 325 TransformationMatrix(), |
| 324 FloatPoint3D()); | 326 FloatPoint3D()); |
| 325 // Establishes a 3D rendering context. | 327 // Establishes a 3D rendering context. |
| 326 RefPtr<TransformPaintPropertyNode> transform2 = | 328 RefPtr<TransformPaintPropertyNode> transform2 = |
| 327 TransformPaintPropertyNode::create(transform1, TransformationMatrix(), | 329 TransformPaintPropertyNode::create(transform1, TransformationMatrix(), |
| 328 FloatPoint3D(), false, 1, | 330 FloatPoint3D(), nullptr, false, 1, |
| 329 CompositingReason3DTransform); | 331 CompositingReason3DTransform); |
| 330 // Extends the 3D rendering context of transform2. | 332 // Extends the 3D rendering context of transform2. |
| 331 RefPtr<TransformPaintPropertyNode> transform3 = | 333 RefPtr<TransformPaintPropertyNode> transform3 = |
| 332 TransformPaintPropertyNode::create(transform2, TransformationMatrix(), | 334 TransformPaintPropertyNode::create(transform2, TransformationMatrix(), |
| 333 FloatPoint3D(), false, 1, | 335 FloatPoint3D(), nullptr, false, 1, |
| 334 CompositingReason3DTransform); | 336 CompositingReason3DTransform); |
| 335 // Establishes a 3D rendering context distinct from transform2. | 337 // Establishes a 3D rendering context distinct from transform2. |
| 336 RefPtr<TransformPaintPropertyNode> transform4 = | 338 RefPtr<TransformPaintPropertyNode> transform4 = |
| 337 TransformPaintPropertyNode::create(transform2, TransformationMatrix(), | 339 TransformPaintPropertyNode::create(transform2, TransformationMatrix(), |
| 338 FloatPoint3D(), false, 2, | 340 FloatPoint3D(), nullptr, false, 2, |
| 339 CompositingReason3DTransform); | 341 CompositingReason3DTransform); |
| 340 | 342 |
| 341 TestPaintArtifact artifact; | 343 TestPaintArtifact artifact; |
| 342 artifact | 344 artifact |
| 343 .chunk(transform1, ClipPaintPropertyNode::root(), | 345 .chunk(transform1, ClipPaintPropertyNode::root(), |
| 344 EffectPaintPropertyNode::root()) | 346 EffectPaintPropertyNode::root()) |
| 345 .rectDrawing(FloatRect(0, 0, 300, 200), Color::white); | 347 .rectDrawing(FloatRect(0, 0, 300, 200), Color::white); |
| 346 artifact | 348 artifact |
| 347 .chunk(transform2, ClipPaintPropertyNode::root(), | 349 .chunk(transform2, ClipPaintPropertyNode::root(), |
| 348 EffectPaintPropertyNode::root()) | 350 EffectPaintPropertyNode::root()) |
| (...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 662 const cc::EffectNode& convertedEffect3 = *effectTree.Node(4); | 664 const cc::EffectNode& convertedEffect3 = *effectTree.Node(4); |
| 663 EXPECT_EQ(convertedRootEffect.id, convertedEffect3.parent_id); | 665 EXPECT_EQ(convertedRootEffect.id, convertedEffect3.parent_id); |
| 664 EXPECT_FLOAT_EQ(0.2, convertedEffect3.opacity); | 666 EXPECT_FLOAT_EQ(0.2, convertedEffect3.opacity); |
| 665 | 667 |
| 666 EXPECT_EQ(convertedEffect2.id, contentLayerAt(0)->effect_tree_index()); | 668 EXPECT_EQ(convertedEffect2.id, contentLayerAt(0)->effect_tree_index()); |
| 667 EXPECT_EQ(convertedEffect1.id, contentLayerAt(1)->effect_tree_index()); | 669 EXPECT_EQ(convertedEffect1.id, contentLayerAt(1)->effect_tree_index()); |
| 668 EXPECT_EQ(convertedEffect3.id, contentLayerAt(2)->effect_tree_index()); | 670 EXPECT_EQ(convertedEffect3.id, contentLayerAt(2)->effect_tree_index()); |
| 669 } | 671 } |
| 670 | 672 |
| 671 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, OneScrollNode) { | 673 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, OneScrollNode) { |
| 674 RefPtr<ScrollPaintPropertyNode> scroll = ScrollPaintPropertyNode::create( |
| 675 ScrollPaintPropertyNode::root(), IntSize(11, 13), IntSize(27, 31), true, |
| 676 false, 0 /* mainThreadScrollingReasons */); |
| 677 CompositorElementId expectedCompositorElementId = CompositorElementId(2, 0); |
| 672 RefPtr<TransformPaintPropertyNode> scrollTranslation = | 678 RefPtr<TransformPaintPropertyNode> scrollTranslation = |
| 673 TransformPaintPropertyNode::create(TransformPaintPropertyNode::root(), | 679 TransformPaintPropertyNode::create( |
| 674 TransformationMatrix().translate(7, 9), | 680 TransformPaintPropertyNode::root(), |
| 675 FloatPoint3D()); | 681 TransformationMatrix().translate(7, 9), FloatPoint3D(), scroll.get(), |
| 676 CompositorElementId expectedCompositorElementId = CompositorElementId(2, 0); | 682 false, 0, CompositingReasonNone, expectedCompositorElementId); |
| 677 RefPtr<ScrollPaintPropertyNode> scroll = ScrollPaintPropertyNode::create( | |
| 678 ScrollPaintPropertyNode::root(), scrollTranslation, IntSize(11, 13), | |
| 679 IntSize(27, 31), true, false, 0 /* mainThreadScrollingReasons */, | |
| 680 expectedCompositorElementId); | |
| 681 | 683 |
| 682 TestPaintArtifact artifact; | 684 TestPaintArtifact artifact; |
| 683 artifact | 685 artifact |
| 684 .chunk(scrollTranslation, ClipPaintPropertyNode::root(), | 686 .chunk(scrollTranslation, ClipPaintPropertyNode::root(), |
| 685 EffectPaintPropertyNode::root(), scroll) | 687 EffectPaintPropertyNode::root(), scroll) |
| 686 .rectDrawing(FloatRect(11, 13, 17, 19), Color::white); | 688 .rectDrawing(FloatRect(11, 13, 17, 19), Color::white); |
| 687 update(artifact.build()); | 689 update(artifact.build()); |
| 688 | 690 |
| 689 const cc::ScrollTree& scrollTree = propertyTrees().scroll_tree; | 691 const cc::ScrollTree& scrollTree = propertyTrees().scroll_tree; |
| 690 // Node #0 reserved for null; #1 for root render surface. | 692 // Node #0 reserved for null; #1 for root render surface. |
| (...skipping 16 matching lines...) Expand all Loading... |
| 707 EXPECT_EQ(gfx::ScrollOffset(-7, -9), transformNode.scroll_offset); | 709 EXPECT_EQ(gfx::ScrollOffset(-7, -9), transformNode.scroll_offset); |
| 708 | 710 |
| 709 EXPECT_EQ(MainThreadScrollingReason::kNotScrollingOnMain, | 711 EXPECT_EQ(MainThreadScrollingReason::kNotScrollingOnMain, |
| 710 scrollNode.main_thread_scrolling_reasons); | 712 scrollNode.main_thread_scrolling_reasons); |
| 711 } | 713 } |
| 712 | 714 |
| 713 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, NestedScrollNodes) { | 715 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, NestedScrollNodes) { |
| 714 RefPtr<EffectPaintPropertyNode> effect = | 716 RefPtr<EffectPaintPropertyNode> effect = |
| 715 createOpacityOnlyEffect(EffectPaintPropertyNode::root(), 0.5); | 717 createOpacityOnlyEffect(EffectPaintPropertyNode::root(), 0.5); |
| 716 | 718 |
| 719 RefPtr<ScrollPaintPropertyNode> scrollA = ScrollPaintPropertyNode::create( |
| 720 ScrollPaintPropertyNode::root(), IntSize(2, 3), IntSize(5, 7), false, |
| 721 true, MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects); |
| 717 CompositorElementId expectedCompositorElementIdA = CompositorElementId(2, 0); | 722 CompositorElementId expectedCompositorElementIdA = CompositorElementId(2, 0); |
| 718 CompositorElementId expectedCompositorElementIdB = CompositorElementId(3, 0); | |
| 719 RefPtr<TransformPaintPropertyNode> scrollTranslationA = | 723 RefPtr<TransformPaintPropertyNode> scrollTranslationA = |
| 720 TransformPaintPropertyNode::create( | 724 TransformPaintPropertyNode::create( |
| 721 TransformPaintPropertyNode::root(), | 725 TransformPaintPropertyNode::root(), |
| 722 TransformationMatrix().translate(11, 13), FloatPoint3D()); | 726 TransformationMatrix().translate(11, 13), FloatPoint3D(), |
| 723 RefPtr<ScrollPaintPropertyNode> scrollA = ScrollPaintPropertyNode::create( | 727 scrollA.get(), false, 0, CompositingReasonNone, |
| 724 ScrollPaintPropertyNode::root(), scrollTranslationA, IntSize(2, 3), | 728 expectedCompositorElementIdA); |
| 725 IntSize(5, 7), false, true, | 729 RefPtr<ScrollPaintPropertyNode> scrollB = ScrollPaintPropertyNode::create( |
| 726 MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects, | 730 scrollA, IntSize(19, 23), IntSize(29, 31), true, false, |
| 727 expectedCompositorElementIdA); | 731 0 /* mainThreadScrollingReasons */); |
| 732 CompositorElementId expectedCompositorElementIdB = CompositorElementId(3, 0); |
| 728 RefPtr<TransformPaintPropertyNode> scrollTranslationB = | 733 RefPtr<TransformPaintPropertyNode> scrollTranslationB = |
| 729 TransformPaintPropertyNode::create( | 734 TransformPaintPropertyNode::create( |
| 730 scrollTranslationA, TransformationMatrix().translate(37, 41), | 735 scrollTranslationA, TransformationMatrix().translate(37, 41), |
| 731 FloatPoint3D()); | 736 FloatPoint3D(), scrollB.get(), false, 0, CompositingReasonNone, |
| 732 RefPtr<ScrollPaintPropertyNode> scrollB = ScrollPaintPropertyNode::create( | 737 expectedCompositorElementIdB); |
| 733 scrollA, scrollTranslationB, IntSize(19, 23), IntSize(29, 31), true, | |
| 734 false, 0 /* mainThreadScrollingReasons */, expectedCompositorElementIdB); | |
| 735 TestPaintArtifact artifact; | 738 TestPaintArtifact artifact; |
| 736 artifact | 739 artifact |
| 737 .chunk(scrollTranslationA, ClipPaintPropertyNode::root(), effect, scrollA) | 740 .chunk(scrollTranslationA, ClipPaintPropertyNode::root(), effect, scrollA) |
| 738 .rectDrawing(FloatRect(7, 11, 13, 17), Color::white); | 741 .rectDrawing(FloatRect(7, 11, 13, 17), Color::white); |
| 739 artifact | 742 artifact |
| 740 .chunk(scrollTranslationB, ClipPaintPropertyNode::root(), effect, scrollB) | 743 .chunk(scrollTranslationB, ClipPaintPropertyNode::root(), effect, scrollB) |
| 741 .rectDrawing(FloatRect(1, 2, 3, 5), Color::white); | 744 .rectDrawing(FloatRect(1, 2, 3, 5), Color::white); |
| 742 update(artifact.build()); | 745 update(artifact.build()); |
| 743 | 746 |
| 744 const cc::ScrollTree& scrollTree = propertyTrees().scroll_tree; | 747 const cc::ScrollTree& scrollTree = propertyTrees().scroll_tree; |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 859 const cc::Layer* layer = contentLayerAt(0); | 862 const cc::Layer* layer = contentLayerAt(0); |
| 860 EXPECT_THAT(layer->GetPicture(), Pointee(drawsRectangles(rectsWithColor))); | 863 EXPECT_THAT(layer->GetPicture(), Pointee(drawsRectangles(rectsWithColor))); |
| 861 } | 864 } |
| 862 } | 865 } |
| 863 | 866 |
| 864 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, Merge2DTransform) { | 867 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, Merge2DTransform) { |
| 865 RefPtr<TransformPaintPropertyNode> transform = | 868 RefPtr<TransformPaintPropertyNode> transform = |
| 866 TransformPaintPropertyNode::create( | 869 TransformPaintPropertyNode::create( |
| 867 TransformPaintPropertyNode::root(), | 870 TransformPaintPropertyNode::root(), |
| 868 TransformationMatrix().translate(50, 50), FloatPoint3D(100, 100, 0), | 871 TransformationMatrix().translate(50, 50), FloatPoint3D(100, 100, 0), |
| 869 false, 0); | 872 nullptr, false, 0); |
| 870 | 873 |
| 871 TestPaintArtifact testArtifact; | 874 TestPaintArtifact testArtifact; |
| 872 testArtifact | 875 testArtifact |
| 873 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), | 876 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), |
| 874 EffectPaintPropertyNode::root()) | 877 EffectPaintPropertyNode::root()) |
| 875 .rectDrawing(FloatRect(0, 0, 100, 100), Color::white); | 878 .rectDrawing(FloatRect(0, 0, 100, 100), Color::white); |
| 876 testArtifact | 879 testArtifact |
| 877 .chunk(transform.get(), ClipPaintPropertyNode::root(), | 880 .chunk(transform.get(), ClipPaintPropertyNode::root(), |
| 878 EffectPaintPropertyNode::root()) | 881 EffectPaintPropertyNode::root()) |
| 879 .rectDrawing(FloatRect(0, 0, 100, 100), Color::black); | 882 .rectDrawing(FloatRect(0, 0, 100, 100), Color::black); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 908 const cc::Layer* layer = contentLayerAt(0); | 911 const cc::Layer* layer = contentLayerAt(0); |
| 909 EXPECT_THAT(layer->GetPicture(), Pointee(drawsRectangles(rectsWithColor))); | 912 EXPECT_THAT(layer->GetPicture(), Pointee(drawsRectangles(rectsWithColor))); |
| 910 } | 913 } |
| 911 } | 914 } |
| 912 | 915 |
| 913 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, | 916 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, |
| 914 Merge2DTransformDirectAncestor) { | 917 Merge2DTransformDirectAncestor) { |
| 915 RefPtr<TransformPaintPropertyNode> transform = | 918 RefPtr<TransformPaintPropertyNode> transform = |
| 916 TransformPaintPropertyNode::create( | 919 TransformPaintPropertyNode::create( |
| 917 TransformPaintPropertyNode::root(), TransformationMatrix(), | 920 TransformPaintPropertyNode::root(), TransformationMatrix(), |
| 918 FloatPoint3D(), false, 0, CompositingReason3DTransform); | 921 FloatPoint3D(), nullptr, false, 0, CompositingReason3DTransform); |
| 919 | 922 |
| 920 RefPtr<TransformPaintPropertyNode> transform2 = | 923 RefPtr<TransformPaintPropertyNode> transform2 = |
| 921 TransformPaintPropertyNode::create( | 924 TransformPaintPropertyNode::create( |
| 922 transform.get(), TransformationMatrix().translate(50, 50), | 925 transform.get(), TransformationMatrix().translate(50, 50), |
| 923 FloatPoint3D(100, 100, 0), false, 0); | 926 FloatPoint3D(100, 100, 0), nullptr, false, 0); |
| 924 | 927 |
| 925 TestPaintArtifact testArtifact; | 928 TestPaintArtifact testArtifact; |
| 926 testArtifact | 929 testArtifact |
| 927 .chunk(transform.get(), ClipPaintPropertyNode::root(), | 930 .chunk(transform.get(), ClipPaintPropertyNode::root(), |
| 928 EffectPaintPropertyNode::root()) | 931 EffectPaintPropertyNode::root()) |
| 929 .rectDrawing(FloatRect(0, 0, 100, 100), Color::white); | 932 .rectDrawing(FloatRect(0, 0, 100, 100), Color::white); |
| 930 // The second chunk can merge into the first because it has a descendant | 933 // The second chunk can merge into the first because it has a descendant |
| 931 // state of the first's transform and no direct compositing reason. | 934 // state of the first's transform and no direct compositing reason. |
| 932 testArtifact | 935 testArtifact |
| 933 .chunk(transform2.get(), ClipPaintPropertyNode::root(), | 936 .chunk(transform2.get(), ClipPaintPropertyNode::root(), |
| (...skipping 18 matching lines...) Expand all Loading... |
| 952 rectsWithColor.push_back( | 955 rectsWithColor.push_back( |
| 953 RectWithColor(FloatRect(50, 50, 100, 100), Color::black)); | 956 RectWithColor(FloatRect(50, 50, 100, 100), Color::black)); |
| 954 | 957 |
| 955 const cc::Layer* layer = contentLayerAt(0); | 958 const cc::Layer* layer = contentLayerAt(0); |
| 956 EXPECT_THAT(layer->GetPicture(), Pointee(drawsRectangles(rectsWithColor))); | 959 EXPECT_THAT(layer->GetPicture(), Pointee(drawsRectangles(rectsWithColor))); |
| 957 } | 960 } |
| 958 } | 961 } |
| 959 | 962 |
| 960 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, MergeTransformOrigin) { | 963 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, MergeTransformOrigin) { |
| 961 RefPtr<TransformPaintPropertyNode> transform = | 964 RefPtr<TransformPaintPropertyNode> transform = |
| 962 TransformPaintPropertyNode::create(TransformPaintPropertyNode::root(), | 965 TransformPaintPropertyNode::create( |
| 963 TransformationMatrix().rotate(45), | 966 TransformPaintPropertyNode::root(), TransformationMatrix().rotate(45), |
| 964 FloatPoint3D(100, 100, 0), false, 0); | 967 FloatPoint3D(100, 100, 0), nullptr, false, 0); |
| 965 | 968 |
| 966 TestPaintArtifact testArtifact; | 969 TestPaintArtifact testArtifact; |
| 967 testArtifact | 970 testArtifact |
| 968 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), | 971 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), |
| 969 EffectPaintPropertyNode::root()) | 972 EffectPaintPropertyNode::root()) |
| 970 .rectDrawing(FloatRect(0, 0, 100, 100), Color::white); | 973 .rectDrawing(FloatRect(0, 0, 100, 100), Color::white); |
| 971 testArtifact | 974 testArtifact |
| 972 .chunk(transform.get(), ClipPaintPropertyNode::root(), | 975 .chunk(transform.get(), ClipPaintPropertyNode::root(), |
| 973 EffectPaintPropertyNode::root()) | 976 EffectPaintPropertyNode::root()) |
| 974 .rectDrawing(FloatRect(0, 0, 100, 100), Color::black); | 977 .rectDrawing(FloatRect(0, 0, 100, 100), Color::black); |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1055 } | 1058 } |
| 1056 | 1059 |
| 1057 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, MergeNested) { | 1060 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, MergeNested) { |
| 1058 // Tests merging of an opacity effect, inside of a clip, inside of a | 1061 // Tests merging of an opacity effect, inside of a clip, inside of a |
| 1059 // transform. | 1062 // transform. |
| 1060 | 1063 |
| 1061 RefPtr<TransformPaintPropertyNode> transform = | 1064 RefPtr<TransformPaintPropertyNode> transform = |
| 1062 TransformPaintPropertyNode::create( | 1065 TransformPaintPropertyNode::create( |
| 1063 TransformPaintPropertyNode::root(), | 1066 TransformPaintPropertyNode::root(), |
| 1064 TransformationMatrix().translate(50, 50), FloatPoint3D(100, 100, 0), | 1067 TransformationMatrix().translate(50, 50), FloatPoint3D(100, 100, 0), |
| 1065 false, 0); | 1068 nullptr, false, 0); |
| 1066 | 1069 |
| 1067 RefPtr<ClipPaintPropertyNode> clip = ClipPaintPropertyNode::create( | 1070 RefPtr<ClipPaintPropertyNode> clip = ClipPaintPropertyNode::create( |
| 1068 ClipPaintPropertyNode::root(), transform.get(), | 1071 ClipPaintPropertyNode::root(), transform.get(), |
| 1069 FloatRoundedRect(10, 20, 50, 60)); | 1072 FloatRoundedRect(10, 20, 50, 60)); |
| 1070 | 1073 |
| 1071 float opacity = 2.0 / 255.0; | 1074 float opacity = 2.0 / 255.0; |
| 1072 RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::create( | 1075 RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::create( |
| 1073 EffectPaintPropertyNode::root(), transform.get(), clip.get(), | 1076 EffectPaintPropertyNode::root(), transform.get(), clip.get(), |
| 1074 CompositorFilterOperations(), opacity, SkBlendMode::kSrcOver); | 1077 CompositorFilterOperations(), opacity, SkBlendMode::kSrcOver); |
| 1075 | 1078 |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1115 | 1118 |
| 1116 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, ClipPushedUp) { | 1119 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, ClipPushedUp) { |
| 1117 // Tests merging of an element which has a clipapplied to it, | 1120 // Tests merging of an element which has a clipapplied to it, |
| 1118 // but has an ancestor transform of them. This can happen for fixed- | 1121 // but has an ancestor transform of them. This can happen for fixed- |
| 1119 // or absolute-position elements which escape scroll transforms. | 1122 // or absolute-position elements which escape scroll transforms. |
| 1120 | 1123 |
| 1121 RefPtr<TransformPaintPropertyNode> transform = | 1124 RefPtr<TransformPaintPropertyNode> transform = |
| 1122 TransformPaintPropertyNode::create( | 1125 TransformPaintPropertyNode::create( |
| 1123 TransformPaintPropertyNode::root(), | 1126 TransformPaintPropertyNode::root(), |
| 1124 TransformationMatrix().translate(20, 25), FloatPoint3D(100, 100, 0), | 1127 TransformationMatrix().translate(20, 25), FloatPoint3D(100, 100, 0), |
| 1125 false, 0); | 1128 nullptr, false, 0); |
| 1126 | 1129 |
| 1127 RefPtr<TransformPaintPropertyNode> transform2 = | 1130 RefPtr<TransformPaintPropertyNode> transform2 = |
| 1128 TransformPaintPropertyNode::create( | 1131 TransformPaintPropertyNode::create( |
| 1129 transform.get(), TransformationMatrix().translate(20, 25), | 1132 transform.get(), TransformationMatrix().translate(20, 25), |
| 1130 FloatPoint3D(100, 100, 0), false, 0); | 1133 FloatPoint3D(100, 100, 0), nullptr, false, 0); |
| 1131 | 1134 |
| 1132 RefPtr<ClipPaintPropertyNode> clip = ClipPaintPropertyNode::create( | 1135 RefPtr<ClipPaintPropertyNode> clip = ClipPaintPropertyNode::create( |
| 1133 ClipPaintPropertyNode::root(), transform2.get(), | 1136 ClipPaintPropertyNode::root(), transform2.get(), |
| 1134 FloatRoundedRect(10, 20, 50, 60)); | 1137 FloatRoundedRect(10, 20, 50, 60)); |
| 1135 | 1138 |
| 1136 TestPaintArtifact testArtifact; | 1139 TestPaintArtifact testArtifact; |
| 1137 testArtifact | 1140 testArtifact |
| 1138 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), | 1141 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), |
| 1139 EffectPaintPropertyNode::root()) | 1142 EffectPaintPropertyNode::root()) |
| 1140 .rectDrawing(FloatRect(0, 0, 100, 100), Color::white); | 1143 .rectDrawing(FloatRect(0, 0, 100, 100), Color::white); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1177 | 1180 |
| 1178 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, EffectPushedUp) { | 1181 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, EffectPushedUp) { |
| 1179 // Tests merging of an element which has an effect applied to it, | 1182 // Tests merging of an element which has an effect applied to it, |
| 1180 // but has an ancestor transform of them. This can happen for fixed- | 1183 // but has an ancestor transform of them. This can happen for fixed- |
| 1181 // or absolute-position elements which escape scroll transforms. | 1184 // or absolute-position elements which escape scroll transforms. |
| 1182 | 1185 |
| 1183 RefPtr<TransformPaintPropertyNode> transform = | 1186 RefPtr<TransformPaintPropertyNode> transform = |
| 1184 TransformPaintPropertyNode::create( | 1187 TransformPaintPropertyNode::create( |
| 1185 TransformPaintPropertyNode::root(), | 1188 TransformPaintPropertyNode::root(), |
| 1186 TransformationMatrix().translate(20, 25), FloatPoint3D(100, 100, 0), | 1189 TransformationMatrix().translate(20, 25), FloatPoint3D(100, 100, 0), |
| 1187 false, 0); | 1190 nullptr, false, 0); |
| 1188 | 1191 |
| 1189 RefPtr<TransformPaintPropertyNode> transform2 = | 1192 RefPtr<TransformPaintPropertyNode> transform2 = |
| 1190 TransformPaintPropertyNode::create( | 1193 TransformPaintPropertyNode::create( |
| 1191 transform.get(), TransformationMatrix().translate(20, 25), | 1194 transform.get(), TransformationMatrix().translate(20, 25), |
| 1192 FloatPoint3D(100, 100, 0), false, 0); | 1195 FloatPoint3D(100, 100, 0), nullptr, false, 0); |
| 1193 | 1196 |
| 1194 float opacity = 2.0 / 255.0; | 1197 float opacity = 2.0 / 255.0; |
| 1195 RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::create( | 1198 RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::create( |
| 1196 EffectPaintPropertyNode::root(), transform2.get(), | 1199 EffectPaintPropertyNode::root(), transform2.get(), |
| 1197 ClipPaintPropertyNode::root(), CompositorFilterOperations(), opacity, | 1200 ClipPaintPropertyNode::root(), CompositorFilterOperations(), opacity, |
| 1198 SkBlendMode::kSrcOver); | 1201 SkBlendMode::kSrcOver); |
| 1199 | 1202 |
| 1200 TestPaintArtifact testArtifact; | 1203 TestPaintArtifact testArtifact; |
| 1201 testArtifact | 1204 testArtifact |
| 1202 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), | 1205 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1240 | 1243 |
| 1241 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, EffectAndClipPushedUp) { | 1244 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, EffectAndClipPushedUp) { |
| 1242 // Tests merging of an element which has an effect applied to it, | 1245 // Tests merging of an element which has an effect applied to it, |
| 1243 // but has an ancestor transform of them. This can happen for fixed- | 1246 // but has an ancestor transform of them. This can happen for fixed- |
| 1244 // or absolute-position elements which escape scroll transforms. | 1247 // or absolute-position elements which escape scroll transforms. |
| 1245 | 1248 |
| 1246 RefPtr<TransformPaintPropertyNode> transform = | 1249 RefPtr<TransformPaintPropertyNode> transform = |
| 1247 TransformPaintPropertyNode::create( | 1250 TransformPaintPropertyNode::create( |
| 1248 TransformPaintPropertyNode::root(), | 1251 TransformPaintPropertyNode::root(), |
| 1249 TransformationMatrix().translate(20, 25), FloatPoint3D(100, 100, 0), | 1252 TransformationMatrix().translate(20, 25), FloatPoint3D(100, 100, 0), |
| 1250 false, 0); | 1253 nullptr, false, 0); |
| 1251 | 1254 |
| 1252 RefPtr<TransformPaintPropertyNode> transform2 = | 1255 RefPtr<TransformPaintPropertyNode> transform2 = |
| 1253 TransformPaintPropertyNode::create( | 1256 TransformPaintPropertyNode::create( |
| 1254 transform.get(), TransformationMatrix().translate(20, 25), | 1257 transform.get(), TransformationMatrix().translate(20, 25), |
| 1255 FloatPoint3D(100, 100, 0), false, 0); | 1258 FloatPoint3D(100, 100, 0), nullptr, false, 0); |
| 1256 | 1259 |
| 1257 RefPtr<ClipPaintPropertyNode> clip = ClipPaintPropertyNode::create( | 1260 RefPtr<ClipPaintPropertyNode> clip = ClipPaintPropertyNode::create( |
| 1258 ClipPaintPropertyNode::root(), transform.get(), | 1261 ClipPaintPropertyNode::root(), transform.get(), |
| 1259 FloatRoundedRect(10, 20, 50, 60)); | 1262 FloatRoundedRect(10, 20, 50, 60)); |
| 1260 | 1263 |
| 1261 float opacity = 2.0 / 255.0; | 1264 float opacity = 2.0 / 255.0; |
| 1262 RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::create( | 1265 RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::create( |
| 1263 EffectPaintPropertyNode::root(), transform2.get(), clip.get(), | 1266 EffectPaintPropertyNode::root(), transform2.get(), clip.get(), |
| 1264 CompositorFilterOperations(), opacity, SkBlendMode::kSrcOver); | 1267 CompositorFilterOperations(), opacity, SkBlendMode::kSrcOver); |
| 1265 | 1268 |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1409 const cc::Layer* layer = contentLayerAt(0); | 1412 const cc::Layer* layer = contentLayerAt(0); |
| 1410 EXPECT_THAT(layer->GetPicture(), Pointee(drawsRectangles(rectsWithColor))); | 1413 EXPECT_THAT(layer->GetPicture(), Pointee(drawsRectangles(rectsWithColor))); |
| 1411 } | 1414 } |
| 1412 } | 1415 } |
| 1413 | 1416 |
| 1414 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, TwoTransformsClipBetween) { | 1417 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, TwoTransformsClipBetween) { |
| 1415 RefPtr<TransformPaintPropertyNode> transform = | 1418 RefPtr<TransformPaintPropertyNode> transform = |
| 1416 TransformPaintPropertyNode::create( | 1419 TransformPaintPropertyNode::create( |
| 1417 TransformPaintPropertyNode::root(), | 1420 TransformPaintPropertyNode::root(), |
| 1418 TransformationMatrix().translate(20, 25), FloatPoint3D(100, 100, 0), | 1421 TransformationMatrix().translate(20, 25), FloatPoint3D(100, 100, 0), |
| 1419 false, 0); | 1422 nullptr, false, 0); |
| 1420 RefPtr<ClipPaintPropertyNode> clip = ClipPaintPropertyNode::create( | 1423 RefPtr<ClipPaintPropertyNode> clip = ClipPaintPropertyNode::create( |
| 1421 ClipPaintPropertyNode::root(), TransformPaintPropertyNode::root(), | 1424 ClipPaintPropertyNode::root(), TransformPaintPropertyNode::root(), |
| 1422 FloatRoundedRect(0, 0, 50, 60)); | 1425 FloatRoundedRect(0, 0, 50, 60)); |
| 1423 RefPtr<TransformPaintPropertyNode> transform2 = | 1426 RefPtr<TransformPaintPropertyNode> transform2 = |
| 1424 TransformPaintPropertyNode::create( | 1427 TransformPaintPropertyNode::create( |
| 1425 transform.get(), TransformationMatrix().translate(20, 25), | 1428 transform.get(), TransformationMatrix().translate(20, 25), |
| 1426 FloatPoint3D(100, 100, 0), false, 0); | 1429 FloatPoint3D(100, 100, 0), nullptr, false, 0); |
| 1427 TestPaintArtifact testArtifact; | 1430 TestPaintArtifact testArtifact; |
| 1428 testArtifact | 1431 testArtifact |
| 1429 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), | 1432 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), |
| 1430 EffectPaintPropertyNode::root()) | 1433 EffectPaintPropertyNode::root()) |
| 1431 .rectDrawing(FloatRect(0, 0, 100, 100), Color::white); | 1434 .rectDrawing(FloatRect(0, 0, 100, 100), Color::white); |
| 1432 testArtifact | 1435 testArtifact |
| 1433 .chunk(transform2.get(), clip.get(), EffectPaintPropertyNode::root()) | 1436 .chunk(transform2.get(), clip.get(), EffectPaintPropertyNode::root()) |
| 1434 .rectDrawing(FloatRect(0, 0, 300, 400), Color::black); | 1437 .rectDrawing(FloatRect(0, 0, 300, 400), Color::black); |
| 1435 testArtifact | 1438 testArtifact |
| 1436 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), | 1439 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1457 const cc::Layer* layer = contentLayerAt(0); | 1460 const cc::Layer* layer = contentLayerAt(0); |
| 1458 EXPECT_THAT(layer->GetPicture(), Pointee(drawsRectangles(rectsWithColor))); | 1461 EXPECT_THAT(layer->GetPicture(), Pointee(drawsRectangles(rectsWithColor))); |
| 1459 } | 1462 } |
| 1460 } | 1463 } |
| 1461 | 1464 |
| 1462 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, OverlapTransform) { | 1465 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, OverlapTransform) { |
| 1463 RefPtr<TransformPaintPropertyNode> transform = | 1466 RefPtr<TransformPaintPropertyNode> transform = |
| 1464 TransformPaintPropertyNode::create( | 1467 TransformPaintPropertyNode::create( |
| 1465 TransformPaintPropertyNode::root(), | 1468 TransformPaintPropertyNode::root(), |
| 1466 TransformationMatrix().translate(50, 50), FloatPoint3D(100, 100, 0), | 1469 TransformationMatrix().translate(50, 50), FloatPoint3D(100, 100, 0), |
| 1467 false, 0, CompositingReason3DTransform); | 1470 nullptr, false, 0, CompositingReason3DTransform); |
| 1468 | 1471 |
| 1469 TestPaintArtifact testArtifact; | 1472 TestPaintArtifact testArtifact; |
| 1470 testArtifact.chunk(defaultPaintChunkProperties()) | 1473 testArtifact.chunk(defaultPaintChunkProperties()) |
| 1471 .rectDrawing(FloatRect(0, 0, 100, 100), Color::white); | 1474 .rectDrawing(FloatRect(0, 0, 100, 100), Color::white); |
| 1472 testArtifact | 1475 testArtifact |
| 1473 .chunk(transform.get(), ClipPaintPropertyNode::root(), | 1476 .chunk(transform.get(), ClipPaintPropertyNode::root(), |
| 1474 EffectPaintPropertyNode::root()) | 1477 EffectPaintPropertyNode::root()) |
| 1475 .rectDrawing(FloatRect(0, 0, 100, 100), Color::black); | 1478 .rectDrawing(FloatRect(0, 0, 100, 100), Color::black); |
| 1476 testArtifact.chunk(defaultPaintChunkProperties()) | 1479 testArtifact.chunk(defaultPaintChunkProperties()) |
| 1477 .rectDrawing(FloatRect(0, 0, 200, 300), Color::gray); | 1480 .rectDrawing(FloatRect(0, 0, 200, 300), Color::gray); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1512 | 1515 |
| 1513 GeometryMapper geometryMapper; | 1516 GeometryMapper geometryMapper; |
| 1514 PaintArtifactCompositor::PendingLayer pendingLayer(paintChunk); | 1517 PaintArtifactCompositor::PendingLayer pendingLayer(paintChunk); |
| 1515 EXPECT_TRUE(PaintArtifactCompositor::mightOverlap(paintChunk2, pendingLayer, | 1518 EXPECT_TRUE(PaintArtifactCompositor::mightOverlap(paintChunk2, pendingLayer, |
| 1516 geometryMapper)); | 1519 geometryMapper)); |
| 1517 | 1520 |
| 1518 RefPtr<TransformPaintPropertyNode> transform = | 1521 RefPtr<TransformPaintPropertyNode> transform = |
| 1519 TransformPaintPropertyNode::create( | 1522 TransformPaintPropertyNode::create( |
| 1520 TransformPaintPropertyNode::root(), | 1523 TransformPaintPropertyNode::root(), |
| 1521 TransformationMatrix().translate(99, 0), FloatPoint3D(100, 100, 0), | 1524 TransformationMatrix().translate(99, 0), FloatPoint3D(100, 100, 0), |
| 1522 false); | 1525 nullptr, false); |
| 1523 | 1526 |
| 1524 paintChunk2.properties.propertyTreeState.setTransform(transform.get()); | 1527 paintChunk2.properties.propertyTreeState.setTransform(transform.get()); |
| 1525 EXPECT_TRUE(PaintArtifactCompositor::mightOverlap(paintChunk2, pendingLayer, | 1528 EXPECT_TRUE(PaintArtifactCompositor::mightOverlap(paintChunk2, pendingLayer, |
| 1526 geometryMapper)); | 1529 geometryMapper)); |
| 1527 | 1530 |
| 1528 RefPtr<TransformPaintPropertyNode> transform2 = | 1531 RefPtr<TransformPaintPropertyNode> transform2 = |
| 1529 TransformPaintPropertyNode::create( | 1532 TransformPaintPropertyNode::create( |
| 1530 TransformPaintPropertyNode::root(), | 1533 TransformPaintPropertyNode::root(), |
| 1531 TransformationMatrix().translate(100, 0), FloatPoint3D(100, 100, 0), | 1534 TransformationMatrix().translate(100, 0), FloatPoint3D(100, 100, 0), |
| 1532 false); | 1535 nullptr, false); |
| 1533 paintChunk2.properties.propertyTreeState.setTransform(transform2.get()); | 1536 paintChunk2.properties.propertyTreeState.setTransform(transform2.get()); |
| 1534 | 1537 |
| 1535 EXPECT_FALSE(PaintArtifactCompositor::mightOverlap(paintChunk2, pendingLayer, | 1538 EXPECT_FALSE(PaintArtifactCompositor::mightOverlap(paintChunk2, pendingLayer, |
| 1536 geometryMapper)); | 1539 geometryMapper)); |
| 1537 } | 1540 } |
| 1538 | 1541 |
| 1539 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, PendingLayer) { | 1542 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, PendingLayer) { |
| 1540 PaintChunk chunk1; | 1543 PaintChunk chunk1; |
| 1541 chunk1.properties.propertyTreeState = PropertyTreeState( | 1544 chunk1.properties.propertyTreeState = PropertyTreeState( |
| 1542 TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), | 1545 TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), |
| (...skipping 30 matching lines...) Expand all Loading... |
| 1573 EXPECT_TRUE(pendingLayer.backfaceHidden); | 1576 EXPECT_TRUE(pendingLayer.backfaceHidden); |
| 1574 EXPECT_FALSE(pendingLayer.knownToBeOpaque); | 1577 EXPECT_FALSE(pendingLayer.knownToBeOpaque); |
| 1575 EXPECT_BLINK_FLOAT_RECT_EQ(FloatRect(-5, -25, 45, 85), pendingLayer.bounds); | 1578 EXPECT_BLINK_FLOAT_RECT_EQ(FloatRect(-5, -25, 45, 85), pendingLayer.bounds); |
| 1576 } | 1579 } |
| 1577 | 1580 |
| 1578 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, PendingLayerWithGeometry) { | 1581 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, PendingLayerWithGeometry) { |
| 1579 RefPtr<TransformPaintPropertyNode> transform = | 1582 RefPtr<TransformPaintPropertyNode> transform = |
| 1580 TransformPaintPropertyNode::create( | 1583 TransformPaintPropertyNode::create( |
| 1581 TransformPaintPropertyNode::root(), | 1584 TransformPaintPropertyNode::root(), |
| 1582 TransformationMatrix().translate(20, 25), FloatPoint3D(100, 100, 0), | 1585 TransformationMatrix().translate(20, 25), FloatPoint3D(100, 100, 0), |
| 1583 false, 0); | 1586 nullptr, false, 0); |
| 1584 | 1587 |
| 1585 PaintChunk chunk1; | 1588 PaintChunk chunk1; |
| 1586 chunk1.properties.propertyTreeState = PropertyTreeState( | 1589 chunk1.properties.propertyTreeState = PropertyTreeState( |
| 1587 TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), | 1590 TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), |
| 1588 EffectPaintPropertyNode::root(), ScrollPaintPropertyNode::root()); | 1591 EffectPaintPropertyNode::root(), ScrollPaintPropertyNode::root()); |
| 1589 chunk1.bounds = FloatRect(0, 0, 30, 40); | 1592 chunk1.bounds = FloatRect(0, 0, 30, 40); |
| 1590 | 1593 |
| 1591 PaintArtifactCompositor::PendingLayer pendingLayer(chunk1); | 1594 PaintArtifactCompositor::PendingLayer pendingLayer(chunk1); |
| 1592 | 1595 |
| 1593 EXPECT_BLINK_FLOAT_RECT_EQ(FloatRect(0, 0, 30, 40), pendingLayer.bounds); | 1596 EXPECT_BLINK_FLOAT_RECT_EQ(FloatRect(0, 0, 30, 40), pendingLayer.bounds); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1630 | 1633 |
| 1631 // Chunk 3 covers the entire layer, so now it's opaque. | 1634 // Chunk 3 covers the entire layer, so now it's opaque. |
| 1632 EXPECT_TRUE(pendingLayer.knownToBeOpaque); | 1635 EXPECT_TRUE(pendingLayer.knownToBeOpaque); |
| 1633 } | 1636 } |
| 1634 | 1637 |
| 1635 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, TransformWithElementId) { | 1638 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, TransformWithElementId) { |
| 1636 CompositorElementId expectedCompositorElementId(2, 0); | 1639 CompositorElementId expectedCompositorElementId(2, 0); |
| 1637 RefPtr<TransformPaintPropertyNode> transform = | 1640 RefPtr<TransformPaintPropertyNode> transform = |
| 1638 TransformPaintPropertyNode::create( | 1641 TransformPaintPropertyNode::create( |
| 1639 TransformPaintPropertyNode::root(), TransformationMatrix().rotate(90), | 1642 TransformPaintPropertyNode::root(), TransformationMatrix().rotate(90), |
| 1640 FloatPoint3D(100, 100, 0), false, 0, CompositingReason3DTransform, | 1643 FloatPoint3D(100, 100, 0), nullptr, false, 0, |
| 1641 expectedCompositorElementId); | 1644 CompositingReason3DTransform, expectedCompositorElementId); |
| 1642 | 1645 |
| 1643 TestPaintArtifact artifact; | 1646 TestPaintArtifact artifact; |
| 1644 artifact | 1647 artifact |
| 1645 .chunk(transform, ClipPaintPropertyNode::root(), | 1648 .chunk(transform, ClipPaintPropertyNode::root(), |
| 1646 EffectPaintPropertyNode::root()) | 1649 EffectPaintPropertyNode::root()) |
| 1647 .rectDrawing(FloatRect(100, 100, 200, 100), Color::black); | 1650 .rectDrawing(FloatRect(100, 100, 200, 100), Color::black); |
| 1648 update(artifact.build()); | 1651 update(artifact.build()); |
| 1649 | 1652 |
| 1650 EXPECT_EQ(2, elementIdToTransformNodeIndex(expectedCompositorElementId)); | 1653 EXPECT_EQ(2, elementIdToTransformNodeIndex(expectedCompositorElementId)); |
| 1651 } | 1654 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1663 artifact | 1666 artifact |
| 1664 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), | 1667 .chunk(TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), |
| 1665 effect.get()) | 1668 effect.get()) |
| 1666 .rectDrawing(FloatRect(100, 100, 200, 100), Color::black); | 1669 .rectDrawing(FloatRect(100, 100, 200, 100), Color::black); |
| 1667 update(artifact.build()); | 1670 update(artifact.build()); |
| 1668 | 1671 |
| 1669 EXPECT_EQ(2, elementIdToEffectNodeIndex(expectedCompositorElementId)); | 1672 EXPECT_EQ(2, elementIdToEffectNodeIndex(expectedCompositorElementId)); |
| 1670 } | 1673 } |
| 1671 | 1674 |
| 1672 } // namespace blink | 1675 } // namespace blink |
| OLD | NEW |