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 "config.h" | 5 #include "config.h" |
6 #include "platform/graphics/paint/PaintChunker.h" | 6 #include "platform/graphics/paint/PaintChunker.h" |
7 | 7 |
8 #include "platform/RuntimeEnabledFeatures.h" | 8 #include "platform/RuntimeEnabledFeatures.h" |
9 #include <gmock/gmock.h> | 9 #include <gmock/gmock.h> |
10 #include <gtest/gtest.h> | 10 #include <gtest/gtest.h> |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 } | 79 } |
80 | 80 |
81 TEST_F(PaintChunkerTest, BuildMultipleChunksWithSinglePropertyChanging) | 81 TEST_F(PaintChunkerTest, BuildMultipleChunksWithSinglePropertyChanging) |
82 { | 82 { |
83 PaintChunker chunker; | 83 PaintChunker chunker; |
84 chunker.updateCurrentPaintChunkProperties(rootPaintChunkProperties()); | 84 chunker.updateCurrentPaintChunkProperties(rootPaintChunkProperties()); |
85 chunker.incrementDisplayItemIndex(); | 85 chunker.incrementDisplayItemIndex(); |
86 chunker.incrementDisplayItemIndex(); | 86 chunker.incrementDisplayItemIndex(); |
87 | 87 |
88 PaintChunkProperties simpleTransform; | 88 PaintChunkProperties simpleTransform; |
89 simpleTransform.transform = adoptRef(new TransformPaintPropertyNode(Transfor
mationMatrix(0, 1, 2, 3, 4, 5), FloatPoint3D(9, 8, 7))); | 89 simpleTransform.transform = TransformPaintPropertyNode::create(Transformatio
nMatrix(0, 1, 2, 3, 4, 5), FloatPoint3D(9, 8, 7)); |
90 | 90 |
91 chunker.updateCurrentPaintChunkProperties(simpleTransform); | 91 chunker.updateCurrentPaintChunkProperties(simpleTransform); |
92 chunker.incrementDisplayItemIndex(); | 92 chunker.incrementDisplayItemIndex(); |
93 | 93 |
94 PaintChunkProperties anotherTransform; | 94 PaintChunkProperties anotherTransform; |
95 anotherTransform.transform = adoptRef(new TransformPaintPropertyNode(Transfo
rmationMatrix(0, 1, 2, 3, 4, 5), FloatPoint3D(9, 8, 7))); | 95 anotherTransform.transform = TransformPaintPropertyNode::create(Transformati
onMatrix(0, 1, 2, 3, 4, 5), FloatPoint3D(9, 8, 7)); |
96 chunker.updateCurrentPaintChunkProperties(anotherTransform); | 96 chunker.updateCurrentPaintChunkProperties(anotherTransform); |
97 chunker.incrementDisplayItemIndex(); | 97 chunker.incrementDisplayItemIndex(); |
98 | 98 |
99 Vector<PaintChunk> chunks = chunker.releasePaintChunks(); | 99 Vector<PaintChunk> chunks = chunker.releasePaintChunks(); |
100 | 100 |
101 EXPECT_THAT(chunks, ElementsAre( | 101 EXPECT_THAT(chunks, ElementsAre( |
102 PaintChunk(0, 2, rootPaintChunkProperties()), | 102 PaintChunk(0, 2, rootPaintChunkProperties()), |
103 PaintChunk(2, 3, simpleTransform), | 103 PaintChunk(2, 3, simpleTransform), |
104 PaintChunk(3, 4, anotherTransform))); | 104 PaintChunk(3, 4, anotherTransform))); |
105 } | 105 } |
106 | 106 |
107 TEST_F(PaintChunkerTest, BuildLinearChunksFromNestedTransforms) | 107 TEST_F(PaintChunkerTest, BuildLinearChunksFromNestedTransforms) |
108 { | 108 { |
109 // Test that "nested" transforms linearize using the following | 109 // Test that "nested" transforms linearize using the following |
110 // sequence of transforms and display items: | 110 // sequence of transforms and display items: |
111 // <root xform>, <paint>, <a xform>, <paint>, <paint>, </a xform>, <paint>,
</root xform> | 111 // <root xform>, <paint>, <a xform>, <paint>, <paint>, </a xform>, <paint>,
</root xform> |
112 PaintChunker chunker; | 112 PaintChunker chunker; |
113 chunker.updateCurrentPaintChunkProperties(rootPaintChunkProperties()); | 113 chunker.updateCurrentPaintChunkProperties(rootPaintChunkProperties()); |
114 chunker.incrementDisplayItemIndex(); | 114 chunker.incrementDisplayItemIndex(); |
115 | 115 |
116 PaintChunkProperties simpleTransform; | 116 PaintChunkProperties simpleTransform; |
117 simpleTransform.transform = adoptRef(new TransformPaintPropertyNode(Transfor
mationMatrix(0, 1, 2, 3, 4, 5), FloatPoint3D(9, 8, 7))); | 117 simpleTransform.transform = TransformPaintPropertyNode::create(Transformatio
nMatrix(0, 1, 2, 3, 4, 5), FloatPoint3D(9, 8, 7)); |
118 chunker.updateCurrentPaintChunkProperties(simpleTransform); | 118 chunker.updateCurrentPaintChunkProperties(simpleTransform); |
119 chunker.incrementDisplayItemIndex(); | 119 chunker.incrementDisplayItemIndex(); |
120 chunker.incrementDisplayItemIndex(); | 120 chunker.incrementDisplayItemIndex(); |
121 | 121 |
122 chunker.updateCurrentPaintChunkProperties(rootPaintChunkProperties()); | 122 chunker.updateCurrentPaintChunkProperties(rootPaintChunkProperties()); |
123 chunker.incrementDisplayItemIndex(); | 123 chunker.incrementDisplayItemIndex(); |
124 | 124 |
125 Vector<PaintChunk> chunks = chunker.releasePaintChunks(); | 125 Vector<PaintChunk> chunks = chunker.releasePaintChunks(); |
126 | 126 |
127 EXPECT_THAT(chunks, ElementsAre( | 127 EXPECT_THAT(chunks, ElementsAre( |
128 PaintChunk(0, 1, rootPaintChunkProperties()), | 128 PaintChunk(0, 1, rootPaintChunkProperties()), |
129 PaintChunk(1, 3, simpleTransform), | 129 PaintChunk(1, 3, simpleTransform), |
130 PaintChunk(3, 4, rootPaintChunkProperties()))); | 130 PaintChunk(3, 4, rootPaintChunkProperties()))); |
131 } | 131 } |
132 | 132 |
133 TEST_F(PaintChunkerTest, ChangingPropertiesWithoutItems) | 133 TEST_F(PaintChunkerTest, ChangingPropertiesWithoutItems) |
134 { | 134 { |
135 // Test that properties can change without display items being generated. | 135 // Test that properties can change without display items being generated. |
136 PaintChunker chunker; | 136 PaintChunker chunker; |
137 chunker.updateCurrentPaintChunkProperties(rootPaintChunkProperties()); | 137 chunker.updateCurrentPaintChunkProperties(rootPaintChunkProperties()); |
138 chunker.incrementDisplayItemIndex(); | 138 chunker.incrementDisplayItemIndex(); |
139 | 139 |
140 PaintChunkProperties firstTransform; | 140 PaintChunkProperties firstTransform; |
141 firstTransform.transform = adoptRef(new TransformPaintPropertyNode(Transform
ationMatrix(0, 1, 2, 3, 4, 5), FloatPoint3D(9, 8, 7))); | 141 firstTransform.transform = TransformPaintPropertyNode::create(Transformation
Matrix(0, 1, 2, 3, 4, 5), FloatPoint3D(9, 8, 7)); |
142 chunker.updateCurrentPaintChunkProperties(firstTransform); | 142 chunker.updateCurrentPaintChunkProperties(firstTransform); |
143 | 143 |
144 PaintChunkProperties secondTransform; | 144 PaintChunkProperties secondTransform; |
145 secondTransform.transform = adoptRef(new TransformPaintPropertyNode(Transfor
mationMatrix(9, 8, 7, 6, 5, 4), FloatPoint3D(3, 2, 1))); | 145 secondTransform.transform = TransformPaintPropertyNode::create(Transformatio
nMatrix(9, 8, 7, 6, 5, 4), FloatPoint3D(3, 2, 1)); |
146 chunker.updateCurrentPaintChunkProperties(secondTransform); | 146 chunker.updateCurrentPaintChunkProperties(secondTransform); |
147 | 147 |
148 chunker.incrementDisplayItemIndex(); | 148 chunker.incrementDisplayItemIndex(); |
149 Vector<PaintChunk> chunks = chunker.releasePaintChunks(); | 149 Vector<PaintChunk> chunks = chunker.releasePaintChunks(); |
150 | 150 |
151 EXPECT_THAT(chunks, ElementsAre( | 151 EXPECT_THAT(chunks, ElementsAre( |
152 PaintChunk(0, 1, rootPaintChunkProperties()), | 152 PaintChunk(0, 1, rootPaintChunkProperties()), |
153 PaintChunk(1, 2, secondTransform))); | 153 PaintChunk(1, 2, secondTransform))); |
154 } | 154 } |
155 | 155 |
156 // TODO(pdr): Add more tests once we have more paint properties. | 156 // TODO(pdr): Add more tests once we have more paint properties. |
157 | 157 |
158 } // namespace | 158 } // namespace |
159 } // namespace blink | 159 } // namespace blink |
OLD | NEW |