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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/paint/GeometryMapperTest.cpp

Issue 2743733004: Revert of Reduce copying of local data structures in GeometryMapper and PaintLayerClipper. (Closed)
Patch Set: Created 3 years, 9 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 | « third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.cpp ('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 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/paint/GeometryMapper.h" 5 #include "platform/graphics/paint/GeometryMapper.h"
6 6
7 #include "platform/geometry/GeometryTestHelpers.h" 7 #include "platform/geometry/GeometryTestHelpers.h"
8 #include "platform/geometry/LayoutRect.h" 8 #include "platform/geometry/LayoutRect.h"
9 #include "platform/graphics/BoxReflection.h" 9 #include "platform/graphics/BoxReflection.h"
10 #include "platform/graphics/filters/SkiaImageFilterBuilder.h" 10 #include "platform/graphics/filters/SkiaImageFilterBuilder.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 return descendantTransform->getTransformCache().getCachedTransform( 46 return descendantTransform->getTransformCache().getCachedTransform(
47 ancestorTransform); 47 ancestorTransform);
48 } 48 }
49 49
50 const TransformPaintPropertyNode* lowestCommonAncestor( 50 const TransformPaintPropertyNode* lowestCommonAncestor(
51 const TransformPaintPropertyNode* a, 51 const TransformPaintPropertyNode* a,
52 const TransformPaintPropertyNode* b) { 52 const TransformPaintPropertyNode* b) {
53 return GeometryMapper::lowestCommonAncestor(a, b); 53 return GeometryMapper::lowestCommonAncestor(a, b);
54 } 54 }
55 55
56 void sourceToDestinationVisualRectInternal( 56 FloatRect sourceToDestinationVisualRectInternal(
57 const FloatRect& rect,
57 const PropertyTreeState& sourceState, 58 const PropertyTreeState& sourceState,
58 const PropertyTreeState& destinationState, 59 const PropertyTreeState& destinationState,
59 FloatRect& mappingRect,
60 bool& success) { 60 bool& success) {
61 geometryMapper->localToAncestorVisualRectInternal( 61 return geometryMapper
62 sourceState, destinationState, mappingRect, success); 62 ->localToAncestorVisualRectInternal(rect, sourceState, destinationState,
63 success)
64 .rect();
63 } 65 }
64 66
65 void localToAncestorVisualRectInternal(const PropertyTreeState& localState, 67 FloatRect localToAncestorVisualRectInternal(
66 const PropertyTreeState& ancestorState, 68 const FloatRect& rect,
67 FloatRect& mappingRect, 69 const PropertyTreeState& localState,
68 bool& success) { 70 const PropertyTreeState& ancestorState,
69 geometryMapper->localToAncestorVisualRectInternal(localState, ancestorState, 71 bool& success) {
70 mappingRect, success); 72 return geometryMapper
73 ->localToAncestorVisualRectInternal(rect, localState, ancestorState,
74 success)
75 .rect();
71 } 76 }
72 77
73 void localToAncestorRectInternal( 78 FloatRect localToAncestorRectInternal(
79 const FloatRect& rect,
74 const TransformPaintPropertyNode* localTransformNode, 80 const TransformPaintPropertyNode* localTransformNode,
75 const TransformPaintPropertyNode* ancestorTransformNode, 81 const TransformPaintPropertyNode* ancestorTransformNode,
76 FloatRect& rect,
77 bool& success) { 82 bool& success) {
78 geometryMapper->localToAncestorRectInternal( 83 return geometryMapper->localToAncestorRectInternal(
79 localTransformNode, ancestorTransformNode, rect, success); 84 rect, localTransformNode, ancestorTransformNode, success);
80 } 85 }
81 86
82 private: 87 private:
83 void SetUp() override { geometryMapper = GeometryMapper::create(); } 88 void SetUp() override { geometryMapper = GeometryMapper::create(); }
84 89
85 void TearDown() override { geometryMapper.reset(); } 90 void TearDown() override { geometryMapper.reset(); }
86 }; 91 };
87 92
88 const static float kTestEpsilon = 1e-6; 93 const static float kTestEpsilon = 1e-6;
89 94
(...skipping 21 matching lines...) Expand all
111 EXPECT_EQ(expected.isInfinite(), actual.isInfinite()); \ 116 EXPECT_EQ(expected.isInfinite(), actual.isInfinite()); \
112 if (!expected.isInfinite()) \ 117 if (!expected.isInfinite()) \
113 EXPECT_RECT_EQ(expected.rect(), actual.rect()); \ 118 EXPECT_RECT_EQ(expected.rect(), actual.rect()); \
114 } while (false) 119 } while (false)
115 120
116 #define CHECK_MAPPINGS(inputRect, expectedVisualRect, expectedTransformedRect, \ 121 #define CHECK_MAPPINGS(inputRect, expectedVisualRect, expectedTransformedRect, \
117 expectedTransformToAncestor, \ 122 expectedTransformToAncestor, \
118 expectedClipInAncestorSpace, localPropertyTreeState, \ 123 expectedClipInAncestorSpace, localPropertyTreeState, \
119 ancestorPropertyTreeState, hasRadius) \ 124 ancestorPropertyTreeState, hasRadius) \
120 do { \ 125 do { \
121 FloatRect floatRect = inputRect; \ 126 FloatClipRect clipRect = geometryMapper->localToAncestorVisualRect( \
122 geometryMapper->localToAncestorVisualRect( \ 127 inputRect, localPropertyTreeState, ancestorPropertyTreeState); \
123 localPropertyTreeState, ancestorPropertyTreeState, floatRect); \ 128 EXPECT_EQ(hasRadius, clipRect.hasRadius()); \
124 EXPECT_RECT_EQ(expectedVisualRect, floatRect); \ 129 EXPECT_RECT_EQ(expectedVisualRect, clipRect.rect()); \
125 FloatClipRect floatClipRect; \ 130 clipRect = geometryMapper->localToAncestorClipRect( \
126 floatClipRect = geometryMapper->localToAncestorClipRect( \
127 localPropertyTreeState, ancestorPropertyTreeState); \ 131 localPropertyTreeState, ancestorPropertyTreeState); \
128 EXPECT_EQ(hasRadius, floatClipRect.hasRadius()); \ 132 EXPECT_EQ(hasRadius, clipRect.hasRadius()); \
129 EXPECT_CLIP_RECT_EQ(expectedClipInAncestorSpace, floatClipRect); \ 133 EXPECT_CLIP_RECT_EQ(expectedClipInAncestorSpace, clipRect); \
130 floatRect = inputRect; \ 134 clipRect = geometryMapper->sourceToDestinationVisualRect( \
131 geometryMapper->sourceToDestinationVisualRect( \ 135 inputRect, localPropertyTreeState, ancestorPropertyTreeState); \
132 localPropertyTreeState, ancestorPropertyTreeState, floatRect); \ 136 EXPECT_EQ(hasRadius, clipRect.hasRadius()); \
133 EXPECT_RECT_EQ(expectedVisualRect, floatRect); \ 137 EXPECT_RECT_EQ(expectedVisualRect, clipRect.rect()); \
134 FloatRect testMappedRect = inputRect; \ 138 EXPECT_RECT_EQ(expectedTransformedRect, \
135 geometryMapper->localToAncestorRect(localPropertyTreeState.transform(), \ 139 geometryMapper->localToAncestorRect( \
136 ancestorPropertyTreeState.transform(), \ 140 inputRect, localPropertyTreeState.transform(), \
137 testMappedRect); \ 141 ancestorPropertyTreeState.transform())); \
138 EXPECT_RECT_EQ(expectedTransformedRect, testMappedRect); \ 142 EXPECT_RECT_EQ(expectedTransformedRect, \
139 testMappedRect = inputRect; \ 143 geometryMapper->sourceToDestinationRect( \
140 geometryMapper->sourceToDestinationRect( \ 144 inputRect, localPropertyTreeState.transform(), \
141 localPropertyTreeState.transform(), \ 145 ancestorPropertyTreeState.transform())); \
142 ancestorPropertyTreeState.transform(), testMappedRect); \
143 EXPECT_RECT_EQ(expectedTransformedRect, testMappedRect); \
144 if (ancestorPropertyTreeState.transform() != \ 146 if (ancestorPropertyTreeState.transform() != \
145 localPropertyTreeState.transform()) { \ 147 localPropertyTreeState.transform()) { \
146 const TransformationMatrix* transformForTesting = \ 148 const TransformationMatrix* transformForTesting = \
147 getTransform(localPropertyTreeState.transform(), \ 149 getTransform(localPropertyTreeState.transform(), \
148 ancestorPropertyTreeState.transform()); \ 150 ancestorPropertyTreeState.transform()); \
149 CHECK(transformForTesting); \ 151 CHECK(transformForTesting); \
150 EXPECT_EQ(expectedTransformToAncestor, *transformForTesting); \ 152 EXPECT_EQ(expectedTransformToAncestor, *transformForTesting); \
151 } \ 153 } \
152 if (ancestorPropertyTreeState.clip() != localPropertyTreeState.clip()) { \ 154 if (ancestorPropertyTreeState.clip() != localPropertyTreeState.clip()) { \
153 const FloatClipRect* outputClipForTesting = \ 155 const FloatClipRect* outputClipForTesting = \
154 getClip(localPropertyTreeState.clip(), ancestorPropertyTreeState); \ 156 getClip(localPropertyTreeState.clip(), ancestorPropertyTreeState); \
155 DCHECK(outputClipForTesting); \ 157 DCHECK(outputClipForTesting); \
156 EXPECT_EQ(expectedClipInAncestorSpace, *outputClipForTesting) \ 158 EXPECT_EQ(expectedClipInAncestorSpace, *outputClipForTesting) \
157 << "expected: " << expectedClipInAncestorSpace.rect().toString() \ 159 << expectedClipInAncestorSpace.rect().toString() << " " \
158 << " (hasRadius: " << expectedClipInAncestorSpace.hasRadius() \ 160 << outputClipForTesting->rect().toString(); \
159 << ") " \
160 << "actual: " << outputClipForTesting->rect().toString() \
161 << " (hasRadius: " << outputClipForTesting->hasRadius() << ")"; \
162 } \ 161 } \
163 } while (false) 162 } while (false)
164 163
165 TEST_F(GeometryMapperTest, Root) { 164 TEST_F(GeometryMapperTest, Root) {
166 FloatRect input(0, 0, 100, 100); 165 FloatRect input(0, 0, 100, 100);
167 166
168 bool hasRadius = false; 167 bool hasRadius = false;
169 CHECK_MAPPINGS(input, input, input, 168 CHECK_MAPPINGS(input, input, input,
170 TransformPaintPropertyNode::root()->matrix(), FloatClipRect(), 169 TransformPaintPropertyNode::root()->matrix(), FloatClipRect(),
171 rootPropertyTreeState(), rootPropertyTreeState(), hasRadius); 170 rootPropertyTreeState(), rootPropertyTreeState(), hasRadius);
(...skipping 23 matching lines...) Expand all
195 PropertyTreeState localState = rootPropertyTreeState(); 194 PropertyTreeState localState = rootPropertyTreeState();
196 localState.setTransform(transform.get()); 195 localState.setTransform(transform.get());
197 196
198 FloatRect input(0, 0, 100, 100); 197 FloatRect input(0, 0, 100, 100);
199 FloatRect output = transformMatrix.mapRect(input); 198 FloatRect output = transformMatrix.mapRect(input);
200 199
201 bool hasRadius = false; 200 bool hasRadius = false;
202 CHECK_MAPPINGS(input, output, output, transform->matrix(), FloatClipRect(), 201 CHECK_MAPPINGS(input, output, output, transform->matrix(), FloatClipRect(),
203 localState, rootPropertyTreeState(), hasRadius); 202 localState, rootPropertyTreeState(), hasRadius);
204 203
205 geometryMapper->ancestorToLocalRect(rootPropertyTreeState().transform(), 204 EXPECT_RECT_EQ(input, geometryMapper->ancestorToLocalRect(
206 localState.transform(), output); 205 output, rootPropertyTreeState().transform(),
207 EXPECT_RECT_EQ(input, output); 206 localState.transform()));
208 } 207 }
209 208
210 TEST_F(GeometryMapperTest, RotationAndScaleTransform) { 209 TEST_F(GeometryMapperTest, RotationAndScaleTransform) {
211 TransformationMatrix transformMatrix; 210 TransformationMatrix transformMatrix;
212 transformMatrix.rotate(45); 211 transformMatrix.rotate(45);
213 transformMatrix.scale(2); 212 transformMatrix.scale(2);
214 RefPtr<TransformPaintPropertyNode> transform = 213 RefPtr<TransformPaintPropertyNode> transform =
215 TransformPaintPropertyNode::create(rootPropertyTreeState().transform(), 214 TransformPaintPropertyNode::create(rootPropertyTreeState().transform(),
216 transformMatrix, 215 transformMatrix,
217 FloatPoint3D(0, 0, 0)); 216 FloatPoint3D(0, 0, 0));
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 input, // Transformed rect (not clipped). 413 input, // Transformed rect (not clipped).
415 TransformPaintPropertyNode::root() 414 TransformPaintPropertyNode::root()
416 ->matrix(), // Transform matrix to ancestor space 415 ->matrix(), // Transform matrix to ancestor space
417 clipRect, // Clip rect in ancestor space 416 clipRect, // Clip rect in ancestor space
418 localState, 417 localState,
419 ancestorState, hasRadius); 418 ancestorState, hasRadius);
420 419
421 ancestorState.setClip(clip1.get()); 420 ancestorState.setClip(clip1.get());
422 FloatRect output2(10, 10, 50, 50); 421 FloatRect output2(10, 10, 50, 50);
423 422
424 FloatClipRect clipRect2; 423 clipRect.setRect(clip2->clipRect().rect());
425 clipRect2.setRect(clip2->clipRect().rect());
426 424
427 hasRadius = false; 425 hasRadius = false;
428 CHECK_MAPPINGS(input, // Input 426 CHECK_MAPPINGS(input, // Input
429 output2, // Visual rect 427 output2, // Visual rect
430 input, // Transformed rect (not clipped). 428 input, // Transformed rect (not clipped).
431 TransformPaintPropertyNode::root() 429 TransformPaintPropertyNode::root()
432 ->matrix(), // Transform matrix to ancestor space 430 ->matrix(), // Transform matrix to ancestor space
433 clipRect2, // Clip rect in ancestor space 431 clipRect, // Clip rect in ancestor space
434 localState, ancestorState, hasRadius); 432 localState,
433 ancestorState, hasRadius);
435 } 434 }
436 435
437 TEST_F(GeometryMapperTest, TwoClipsTransformAbove) { 436 TEST_F(GeometryMapperTest, TwoClipsTransformAbove) {
438 RefPtr<TransformPaintPropertyNode> transform = 437 RefPtr<TransformPaintPropertyNode> transform =
439 TransformPaintPropertyNode::create(rootPropertyTreeState().transform(), 438 TransformPaintPropertyNode::create(rootPropertyTreeState().transform(),
440 TransformationMatrix(), 439 TransformationMatrix(),
441 FloatPoint3D()); 440 FloatPoint3D());
442 441
443 FloatRoundedRect clipRect1( 442 FloatRoundedRect clipRect1(
444 FloatRect(10, 10, 50, 50), 443 FloatRect(10, 10, 50, 50),
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
623 TransformPaintPropertyNode::create(rootPropertyTreeState().transform(), 622 TransformPaintPropertyNode::create(rootPropertyTreeState().transform(),
624 rotateTransform2, FloatPoint3D()); 623 rotateTransform2, FloatPoint3D());
625 624
626 PropertyTreeState transform1State = rootPropertyTreeState(); 625 PropertyTreeState transform1State = rootPropertyTreeState();
627 transform1State.setTransform(transform1.get()); 626 transform1State.setTransform(transform1.get());
628 PropertyTreeState transform2State = rootPropertyTreeState(); 627 PropertyTreeState transform2State = rootPropertyTreeState();
629 transform2State.setTransform(transform2.get()); 628 transform2State.setTransform(transform2.get());
630 629
631 bool success; 630 bool success;
632 FloatRect input(0, 0, 100, 100); 631 FloatRect input(0, 0, 100, 100);
633 FloatRect result = input; 632 FloatRect result = localToAncestorVisualRectInternal(
634 localToAncestorVisualRectInternal(transform1State, transform2State, result, 633 input, transform1State, transform2State, success);
635 success);
636 // Fails, because the transform2state is not an ancestor of transform1State. 634 // Fails, because the transform2state is not an ancestor of transform1State.
637 EXPECT_FALSE(success); 635 EXPECT_FALSE(success);
638 EXPECT_RECT_EQ(input, result); 636 EXPECT_RECT_EQ(input, result);
639 637
640 result = input; 638 result = localToAncestorRectInternal(input, transform1.get(),
641 localToAncestorRectInternal(transform1.get(), transform2.get(), result, 639 transform2.get(), success);
642 success);
643 // Fails, because the transform2state is not an ancestor of transform1State. 640 // Fails, because the transform2state is not an ancestor of transform1State.
644 EXPECT_FALSE(success); 641 EXPECT_FALSE(success);
645 EXPECT_RECT_EQ(input, result); 642 EXPECT_RECT_EQ(input, result);
646 643
647 result = input; 644 result = localToAncestorVisualRectInternal(input, transform2State,
648 localToAncestorVisualRectInternal(transform2State, transform1State, result, 645 transform1State, success);
649 success);
650 // Fails, because the transform1state is not an ancestor of transform2State. 646 // Fails, because the transform1state is not an ancestor of transform2State.
651 EXPECT_FALSE(success); 647 EXPECT_FALSE(success);
652 EXPECT_RECT_EQ(input, result); 648 EXPECT_RECT_EQ(input, result);
653 649
654 result = input; 650 result = localToAncestorRectInternal(input, transform2.get(),
655 localToAncestorRectInternal(transform2.get(), transform1.get(), result, 651 transform1.get(), success);
656 success);
657 // Fails, because the transform1state is not an ancestor of transform2State. 652 // Fails, because the transform1state is not an ancestor of transform2State.
658 EXPECT_FALSE(success); 653 EXPECT_FALSE(success);
659 EXPECT_RECT_EQ(input, result); 654 EXPECT_RECT_EQ(input, result);
660 655
661 FloatRect expected = 656 FloatRect expected =
662 rotateTransform2.inverse().mapRect(rotateTransform1.mapRect(input)); 657 rotateTransform2.inverse().mapRect(rotateTransform1.mapRect(input));
663 result = input; 658 result = geometryMapper
664 geometryMapper->sourceToDestinationVisualRect(transform1State, 659 ->sourceToDestinationVisualRect(input, transform1State,
665 transform2State, result); 660 transform2State)
661 .rect();
666 EXPECT_RECT_EQ(expected, result); 662 EXPECT_RECT_EQ(expected, result);
667 663
668 result = input; 664 result = geometryMapper->sourceToDestinationRect(input, transform1.get(),
669 geometryMapper->sourceToDestinationRect(transform1.get(), transform2.get(), 665 transform2.get());
670 result);
671 EXPECT_RECT_EQ(expected, result); 666 EXPECT_RECT_EQ(expected, result);
672 } 667 }
673 668
674 TEST_F(GeometryMapperTest, SiblingTransformsWithClip) { 669 TEST_F(GeometryMapperTest, SiblingTransformsWithClip) {
675 // These transforms are siblings. Thus mapping from one to the other requires 670 // These transforms are siblings. Thus mapping from one to the other requires
676 // going through the root. 671 // going through the root.
677 TransformationMatrix rotateTransform1; 672 TransformationMatrix rotateTransform1;
678 rotateTransform1.rotate(45); 673 rotateTransform1.rotate(45);
679 RefPtr<TransformPaintPropertyNode> transform1 = 674 RefPtr<TransformPaintPropertyNode> transform1 =
680 TransformPaintPropertyNode::create(rootPropertyTreeState().transform(), 675 TransformPaintPropertyNode::create(rootPropertyTreeState().transform(),
(...skipping 17 matching lines...) Expand all
698 693
699 bool success; 694 bool success;
700 FloatRect input(0, 0, 100, 100); 695 FloatRect input(0, 0, 100, 100);
701 696
702 // Test map from transform1State to transform2AndClipState. 697 // Test map from transform1State to transform2AndClipState.
703 FloatRect expected = 698 FloatRect expected =
704 rotateTransform2.inverse().mapRect(rotateTransform1.mapRect(input)); 699 rotateTransform2.inverse().mapRect(rotateTransform1.mapRect(input));
705 700
706 // sourceToDestinationVisualRect ignores clip from the common ancestor to 701 // sourceToDestinationVisualRect ignores clip from the common ancestor to
707 // destination. 702 // destination.
708 FloatRect result = input; 703 FloatRect result = sourceToDestinationVisualRectInternal(
709 sourceToDestinationVisualRectInternal(transform1State, transform2AndClipState, 704 input, transform1State, transform2AndClipState, success);
710 result, success);
711 // Fails, because the clip of the destination state is not an ancestor of the 705 // Fails, because the clip of the destination state is not an ancestor of the
712 // clip of the source state. 706 // clip of the source state.
713 EXPECT_FALSE(success); 707 EXPECT_FALSE(success);
714 708
715 // sourceToDestinationRect applies transforms only. 709 // sourceToDestinationRect applies transforms only.
716 result = input; 710 result = geometryMapper->sourceToDestinationRect(input, transform1.get(),
717 geometryMapper->sourceToDestinationRect(transform1.get(), transform2.get(), 711 transform2.get());
718 result);
719 EXPECT_RECT_EQ(expected, result); 712 EXPECT_RECT_EQ(expected, result);
720 713
721 // Test map from transform2AndClipState to transform1State. 714 // Test map from transform2AndClipState to transform1State.
722 FloatRect expectedUnclipped = 715 FloatRect expectedUnclipped =
723 rotateTransform1.inverse().mapRect(rotateTransform2.mapRect(input)); 716 rotateTransform1.inverse().mapRect(rotateTransform2.mapRect(input));
724 FloatRect expectedClipped = rotateTransform1.inverse().mapRect( 717 FloatRect expectedClipped = rotateTransform1.inverse().mapRect(
725 rotateTransform2.mapRect(FloatRect(10, 10, 70, 70))); 718 rotateTransform2.mapRect(FloatRect(10, 10, 70, 70)));
726 719
727 // sourceToDestinationVisualRect ignores clip from the common ancestor to 720 // sourceToDestinationVisualRect ignores clip from the common ancestor to
728 // destination. 721 // destination.
729 result = input; 722 result = geometryMapper
730 geometryMapper->sourceToDestinationVisualRect(transform2AndClipState, 723 ->sourceToDestinationVisualRect(input, transform2AndClipState,
731 transform1State, result); 724 transform1State)
725 .rect();
732 EXPECT_RECT_EQ(expectedClipped, result); 726 EXPECT_RECT_EQ(expectedClipped, result);
733 727
734 // sourceToDestinationRect applies transforms only. 728 // sourceToDestinationRect applies transforms only.
735 result = input; 729 result = geometryMapper->sourceToDestinationRect(input, transform2.get(),
736 geometryMapper->sourceToDestinationRect(transform2.get(), transform1.get(), 730 transform1.get());
737 result);
738 EXPECT_RECT_EQ(expectedUnclipped, result); 731 EXPECT_RECT_EQ(expectedUnclipped, result);
739 } 732 }
740 733
741 TEST_F(GeometryMapperTest, LowestCommonAncestor) { 734 TEST_F(GeometryMapperTest, LowestCommonAncestor) {
742 TransformationMatrix matrix; 735 TransformationMatrix matrix;
743 RefPtr<TransformPaintPropertyNode> child1 = 736 RefPtr<TransformPaintPropertyNode> child1 =
744 TransformPaintPropertyNode::create(rootPropertyTreeState().transform(), 737 TransformPaintPropertyNode::create(rootPropertyTreeState().transform(),
745 matrix, FloatPoint3D()); 738 matrix, FloatPoint3D());
746 RefPtr<TransformPaintPropertyNode> child2 = 739 RefPtr<TransformPaintPropertyNode> child2 =
747 TransformPaintPropertyNode::create(rootPropertyTreeState().transform(), 740 TransformPaintPropertyNode::create(rootPropertyTreeState().transform(),
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
842 FloatRect input(100, 100, 50, 50); 835 FloatRect input(100, 100, 50, 50);
843 // Reflection is at (50, 100, 50, 50). 836 // Reflection is at (50, 100, 50, 50).
844 FloatRect output(50, 100, 100, 50); 837 FloatRect output(50, 100, 100, 50);
845 838
846 bool hasRadius = false; 839 bool hasRadius = false;
847 CHECK_MAPPINGS(input, output, input, TransformationMatrix(), FloatClipRect(), 840 CHECK_MAPPINGS(input, output, input, TransformationMatrix(), FloatClipRect(),
848 localState, rootPropertyTreeState(), hasRadius); 841 localState, rootPropertyTreeState(), hasRadius);
849 } 842 }
850 843
851 } // namespace blink 844 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698