OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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 "cc/quad_culler.h" | 5 #include "cc/quad_culler.h" |
6 | 6 |
7 #include "cc/append_quads_data.h" | 7 #include "cc/append_quads_data.h" |
8 #include "cc/layer_tiling_data.h" | 8 #include "cc/layer_tiling_data.h" |
9 #include "cc/math_util.h" | 9 #include "cc/math_util.h" |
10 #include "cc/occlusion_tracker.h" | 10 #include "cc/occlusion_tracker.h" |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 DECLARE_AND_INITIALIZE_TEST_QUADS | 117 DECLARE_AND_INITIALIZE_TEST_QUADS |
118 | 118 |
119 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); | 119 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); |
120 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), gfx::Tran
sform(), childRect, 1, false, gfx::Rect(), renderSurfaceLayerList); | 120 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), gfx::Tran
sform(), childRect, 1, false, gfx::Rect(), renderSurfaceLayerList); |
121 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; | 121 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; |
122 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); | 122 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); |
123 | 123 |
124 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); | 124 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); |
125 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); | 125 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); |
126 EXPECT_EQ(quadList.size(), 13u); | 126 EXPECT_EQ(quadList.size(), 13u); |
127 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnOpaque(), 90000, 1
); | 127 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 90000,
1); |
128 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnTranslucent(), 400
00, 1); | 128 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 4
0000, 1); |
129 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsCulledForDrawing(), 0,
1); | 129 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(),
0, 1); |
130 } | 130 } |
131 | 131 |
132 TEST_F(QuadCullerTest, verifyCullChildLinesUpTopLeft) | 132 TEST_F(QuadCullerTest, verifyCullChildLinesUpTopLeft) |
133 { | 133 { |
134 DECLARE_AND_INITIALIZE_TEST_QUADS | 134 DECLARE_AND_INITIALIZE_TEST_QUADS |
135 | 135 |
136 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); | 136 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); |
137 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), gfx::Tran
sform(), childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); | 137 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), gfx::Tran
sform(), childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); |
138 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; | 138 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; |
139 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); | 139 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); |
140 | 140 |
141 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); | 141 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); |
142 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); | 142 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); |
143 EXPECT_EQ(quadList.size(), 9u); | 143 EXPECT_EQ(quadList.size(), 9u); |
144 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnOpaque(), 90000, 1
); | 144 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 90000,
1); |
145 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnTranslucent(), 0,
1); | 145 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 0
, 1); |
146 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsCulledForDrawing(), 400
00, 1); | 146 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(),
40000, 1); |
147 } | 147 } |
148 | 148 |
149 TEST_F(QuadCullerTest, verifyCullWhenChildOpacityNotOne) | 149 TEST_F(QuadCullerTest, verifyCullWhenChildOpacityNotOne) |
150 { | 150 { |
151 DECLARE_AND_INITIALIZE_TEST_QUADS | 151 DECLARE_AND_INITIALIZE_TEST_QUADS |
152 | 152 |
153 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); | 153 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); |
154 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 0.9f, true, gfx::Rect(), renderSurfaceLayerList); | 154 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 0.9f, true, gfx::Rect(), renderSurfaceLayerList); |
155 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; | 155 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; |
156 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); | 156 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); |
157 | 157 |
158 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); | 158 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); |
159 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); | 159 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); |
160 EXPECT_EQ(quadList.size(), 13u); | 160 EXPECT_EQ(quadList.size(), 13u); |
161 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnOpaque(), 90000, 1
); | 161 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 90000,
1); |
162 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnTranslucent(), 400
00, 1); | 162 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 4
0000, 1); |
163 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsCulledForDrawing(), 0,
1); | 163 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(),
0, 1); |
164 } | 164 } |
165 | 165 |
166 TEST_F(QuadCullerTest, verifyCullWhenChildOpaqueFlagFalse) | 166 TEST_F(QuadCullerTest, verifyCullWhenChildOpaqueFlagFalse) |
167 { | 167 { |
168 DECLARE_AND_INITIALIZE_TEST_QUADS | 168 DECLARE_AND_INITIALIZE_TEST_QUADS |
169 | 169 |
170 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); | 170 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); |
171 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 1, false, gfx::Rect(), renderSurfaceLayerList); | 171 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 1, false, gfx::Rect(), renderSurfaceLayerList); |
172 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; | 172 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; |
173 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); | 173 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); |
174 | 174 |
175 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); | 175 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); |
176 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); | 176 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); |
177 EXPECT_EQ(quadList.size(), 13u); | 177 EXPECT_EQ(quadList.size(), 13u); |
178 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnOpaque(), 90000, 1
); | 178 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 90000,
1); |
179 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnTranslucent(), 400
00, 1); | 179 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 4
0000, 1); |
180 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsCulledForDrawing(), 0,
1); | 180 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(),
0, 1); |
181 } | 181 } |
182 | 182 |
183 TEST_F(QuadCullerTest, verifyCullCenterTileOnly) | 183 TEST_F(QuadCullerTest, verifyCullCenterTileOnly) |
184 { | 184 { |
185 DECLARE_AND_INITIALIZE_TEST_QUADS | 185 DECLARE_AND_INITIALIZE_TEST_QUADS |
186 | 186 |
187 childTransform.Translate(50, 50); | 187 childTransform.Translate(50, 50); |
188 | 188 |
189 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); | 189 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); |
190 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); | 190 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); |
(...skipping 12 matching lines...) Expand all Loading... |
203 | 203 |
204 // Next index is 8, not 9, since centre quad culled. | 204 // Next index is 8, not 9, since centre quad culled. |
205 gfx::Rect quadVisibleRect4 = quadList[8]->visible_rect; | 205 gfx::Rect quadVisibleRect4 = quadList[8]->visible_rect; |
206 EXPECT_EQ(quadVisibleRect4.width(), 50); | 206 EXPECT_EQ(quadVisibleRect4.width(), 50); |
207 EXPECT_EQ(quadVisibleRect4.x(), 250); | 207 EXPECT_EQ(quadVisibleRect4.x(), 250); |
208 | 208 |
209 gfx::Rect quadVisibleRect6 = quadList[10]->visible_rect; | 209 gfx::Rect quadVisibleRect6 = quadList[10]->visible_rect; |
210 EXPECT_EQ(quadVisibleRect6.height(), 50); | 210 EXPECT_EQ(quadVisibleRect6.height(), 50); |
211 EXPECT_EQ(quadVisibleRect6.y(), 250); | 211 EXPECT_EQ(quadVisibleRect6.y(), 250); |
212 | 212 |
213 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnOpaque(), 100000,
1); | 213 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 100000
, 1); |
214 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnTranslucent(), 0,
1); | 214 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 0
, 1); |
215 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsCulledForDrawing(), 300
00, 1); | 215 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(),
30000, 1); |
216 } | 216 } |
217 | 217 |
218 TEST_F(QuadCullerTest, verifyCullCenterTileNonIntegralSize1) | 218 TEST_F(QuadCullerTest, verifyCullCenterTileNonIntegralSize1) |
219 { | 219 { |
220 DECLARE_AND_INITIALIZE_TEST_QUADS | 220 DECLARE_AND_INITIALIZE_TEST_QUADS |
221 | 221 |
222 childTransform.Translate(100, 100); | 222 childTransform.Translate(100, 100); |
223 | 223 |
224 // Make the root layer's quad have extent (99.1, 99.1) -> (200.9, 200.9) to
make | 224 // Make the root layer's quad have extent (99.1, 99.1) -> (200.9, 200.9) to
make |
225 // sure it doesn't get culled due to transform rounding. | 225 // sure it doesn't get culled due to transform rounding. |
226 gfx::Transform rootTransform; | 226 gfx::Transform rootTransform; |
227 rootTransform.Translate(99.1, 99.1); | 227 rootTransform.Translate(99.1, 99.1); |
228 rootTransform.Scale(1.018, 1.018); | 228 rootTransform.Scale(1.018, 1.018); |
229 | 229 |
230 rootRect = childRect = gfx::Rect(0, 0, 100, 100); | 230 rootRect = childRect = gfx::Rect(0, 0, 100, 100); |
231 | 231 |
232 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, rootTransform, rootRect,
1, true, gfx::Rect(), renderSurfaceLayerList); | 232 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, rootTransform, rootRect,
1, true, gfx::Rect(), renderSurfaceLayerList); |
233 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); | 233 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); |
234 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; | 234 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; |
235 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); | 235 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); |
236 | 236 |
237 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); | 237 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); |
238 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); | 238 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); |
239 EXPECT_EQ(quadList.size(), 2u); | 239 EXPECT_EQ(quadList.size(), 2u); |
240 | 240 |
241 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnOpaque(), 20363, 1
); | 241 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 20363,
1); |
242 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnTranslucent(), 0,
1); | 242 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 0
, 1); |
243 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsCulledForDrawing(), 0,
1); | 243 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(),
0, 1); |
244 } | 244 } |
245 | 245 |
246 TEST_F(QuadCullerTest, verifyCullCenterTileNonIntegralSize2) | 246 TEST_F(QuadCullerTest, verifyCullCenterTileNonIntegralSize2) |
247 { | 247 { |
248 DECLARE_AND_INITIALIZE_TEST_QUADS | 248 DECLARE_AND_INITIALIZE_TEST_QUADS |
249 | 249 |
250 // Make the child's quad slightly smaller than, and centred over, the root l
ayer tile. | 250 // Make the child's quad slightly smaller than, and centred over, the root l
ayer tile. |
251 // Verify the child does not cause the quad below to be culled due to roundi
ng. | 251 // Verify the child does not cause the quad below to be culled due to roundi
ng. |
252 childTransform.Translate(100.1, 100.1); | 252 childTransform.Translate(100.1, 100.1); |
253 childTransform.Scale(0.982, 0.982); | 253 childTransform.Scale(0.982, 0.982); |
254 | 254 |
255 gfx::Transform rootTransform; | 255 gfx::Transform rootTransform; |
256 rootTransform.Translate(100, 100); | 256 rootTransform.Translate(100, 100); |
257 | 257 |
258 rootRect = childRect = gfx::Rect(0, 0, 100, 100); | 258 rootRect = childRect = gfx::Rect(0, 0, 100, 100); |
259 | 259 |
260 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, rootTransform, rootRect,
1, true, gfx::Rect(), renderSurfaceLayerList); | 260 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, rootTransform, rootRect,
1, true, gfx::Rect(), renderSurfaceLayerList); |
261 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); | 261 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); |
262 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; | 262 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; |
263 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); | 263 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); |
264 | 264 |
265 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); | 265 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); |
266 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); | 266 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); |
267 EXPECT_EQ(quadList.size(), 2u); | 267 EXPECT_EQ(quadList.size(), 2u); |
268 | 268 |
269 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnOpaque(), 19643, 1
); | 269 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 19643,
1); |
270 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnTranslucent(), 0,
1); | 270 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 0
, 1); |
271 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsCulledForDrawing(), 0,
1); | 271 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(),
0, 1); |
272 } | 272 } |
273 | 273 |
274 TEST_F(QuadCullerTest, verifyCullChildLinesUpBottomRight) | 274 TEST_F(QuadCullerTest, verifyCullChildLinesUpBottomRight) |
275 { | 275 { |
276 DECLARE_AND_INITIALIZE_TEST_QUADS | 276 DECLARE_AND_INITIALIZE_TEST_QUADS |
277 | 277 |
278 childTransform.Translate(100, 100); | 278 childTransform.Translate(100, 100); |
279 | 279 |
280 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); | 280 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); |
281 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); | 281 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); |
282 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; | 282 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; |
283 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); | 283 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); |
284 | 284 |
285 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); | 285 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); |
286 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); | 286 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); |
287 EXPECT_EQ(quadList.size(), 9u); | 287 EXPECT_EQ(quadList.size(), 9u); |
288 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnOpaque(), 90000, 1
); | 288 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 90000,
1); |
289 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnTranslucent(), 0,
1); | 289 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 0
, 1); |
290 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsCulledForDrawing(), 400
00, 1); | 290 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(),
40000, 1); |
291 } | 291 } |
292 | 292 |
293 TEST_F(QuadCullerTest, verifyCullSubRegion) | 293 TEST_F(QuadCullerTest, verifyCullSubRegion) |
294 { | 294 { |
295 DECLARE_AND_INITIALIZE_TEST_QUADS | 295 DECLARE_AND_INITIALIZE_TEST_QUADS |
296 | 296 |
297 childTransform.Translate(50, 50); | 297 childTransform.Translate(50, 50); |
298 | 298 |
299 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); | 299 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); |
300 gfx::Rect childOpaqueRect(childRect.x() + childRect.width() / 4, childRect.y
() + childRect.height() / 4, childRect.width() / 2, childRect.height() / 2); | 300 gfx::Rect childOpaqueRect(childRect.x() + childRect.width() / 4, childRect.y
() + childRect.height() / 4, childRect.width() / 2, childRect.height() / 2); |
301 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 1, false, childOpaqueRect, renderSurfaceLayerList); | 301 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 1, false, childOpaqueRect, renderSurfaceLayerList); |
302 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; | 302 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; |
303 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); | 303 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); |
304 | 304 |
305 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); | 305 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); |
306 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); | 306 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); |
307 EXPECT_EQ(quadList.size(), 12u); | 307 EXPECT_EQ(quadList.size(), 12u); |
308 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnOpaque(), 90000, 1
); | 308 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 90000,
1); |
309 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnTranslucent(), 300
00, 1); | 309 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 3
0000, 1); |
310 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsCulledForDrawing(), 100
00, 1); | 310 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(),
10000, 1); |
311 } | 311 } |
312 | 312 |
313 TEST_F(QuadCullerTest, verifyCullSubRegion2) | 313 TEST_F(QuadCullerTest, verifyCullSubRegion2) |
314 { | 314 { |
315 DECLARE_AND_INITIALIZE_TEST_QUADS | 315 DECLARE_AND_INITIALIZE_TEST_QUADS |
316 | 316 |
317 childTransform.Translate(50, 10); | 317 childTransform.Translate(50, 10); |
318 | 318 |
319 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); | 319 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); |
320 gfx::Rect childOpaqueRect(childRect.x() + childRect.width() / 4, childRect.y
() + childRect.height() / 4, childRect.width() / 2, childRect.height() * 3 / 4); | 320 gfx::Rect childOpaqueRect(childRect.x() + childRect.width() / 4, childRect.y
() + childRect.height() / 4, childRect.width() / 2, childRect.height() * 3 / 4); |
321 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 1, false, childOpaqueRect, renderSurfaceLayerList); | 321 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 1, false, childOpaqueRect, renderSurfaceLayerList); |
322 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; | 322 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; |
323 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); | 323 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); |
324 | 324 |
325 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); | 325 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); |
326 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); | 326 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); |
327 EXPECT_EQ(quadList.size(), 12u); | 327 EXPECT_EQ(quadList.size(), 12u); |
328 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnOpaque(), 90000, 1
); | 328 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 90000,
1); |
329 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnTranslucent(), 250
00, 1); | 329 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 2
5000, 1); |
330 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsCulledForDrawing(), 150
00, 1); | 330 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(),
15000, 1); |
331 } | 331 } |
332 | 332 |
333 TEST_F(QuadCullerTest, verifyCullSubRegionCheckOvercull) | 333 TEST_F(QuadCullerTest, verifyCullSubRegionCheckOvercull) |
334 { | 334 { |
335 DECLARE_AND_INITIALIZE_TEST_QUADS | 335 DECLARE_AND_INITIALIZE_TEST_QUADS |
336 | 336 |
337 childTransform.Translate(50, 49); | 337 childTransform.Translate(50, 49); |
338 | 338 |
339 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); | 339 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); |
340 gfx::Rect childOpaqueRect(childRect.x() + childRect.width() / 4, childRect.y
() + childRect.height() / 4, childRect.width() / 2, childRect.height() / 2); | 340 gfx::Rect childOpaqueRect(childRect.x() + childRect.width() / 4, childRect.y
() + childRect.height() / 4, childRect.width() / 2, childRect.height() / 2); |
341 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 1, false, childOpaqueRect, renderSurfaceLayerList); | 341 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 1, false, childOpaqueRect, renderSurfaceLayerList); |
342 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; | 342 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; |
343 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); | 343 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); |
344 | 344 |
345 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); | 345 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); |
346 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); | 346 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); |
347 EXPECT_EQ(quadList.size(), 13u); | 347 EXPECT_EQ(quadList.size(), 13u); |
348 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnOpaque(), 90000, 1
); | 348 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 90000,
1); |
349 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnTranslucent(), 300
00, 1); | 349 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 3
0000, 1); |
350 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsCulledForDrawing(), 100
00, 1); | 350 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(),
10000, 1); |
351 } | 351 } |
352 | 352 |
353 TEST_F(QuadCullerTest, verifyNonAxisAlignedQuadsDontOcclude) | 353 TEST_F(QuadCullerTest, verifyNonAxisAlignedQuadsDontOcclude) |
354 { | 354 { |
355 DECLARE_AND_INITIALIZE_TEST_QUADS | 355 DECLARE_AND_INITIALIZE_TEST_QUADS |
356 | 356 |
357 // Use a small rotation so as to not disturb the geometry significantly. | 357 // Use a small rotation so as to not disturb the geometry significantly. |
358 childTransform.Rotate(1); | 358 childTransform.Rotate(1); |
359 | 359 |
360 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); | 360 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); |
361 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); | 361 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), childTran
sform, childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); |
362 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; | 362 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; |
363 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); | 363 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); |
364 | 364 |
365 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); | 365 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); |
366 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); | 366 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); |
367 EXPECT_EQ(quadList.size(), 13u); | 367 EXPECT_EQ(quadList.size(), 13u); |
368 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnOpaque(), 130000,
1); | 368 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 130000
, 1); |
369 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnTranslucent(), 0,
1); | 369 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 0
, 1); |
370 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsCulledForDrawing(), 0,
1); | 370 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(),
0, 1); |
371 } | 371 } |
372 | 372 |
373 // This test requires some explanation: here we are rotating the quads to be cul
led. | 373 // This test requires some explanation: here we are rotating the quads to be cul
led. |
374 // The 2x2 tile child layer remains in the top-left corner, unrotated, but the 3
x3 | 374 // The 2x2 tile child layer remains in the top-left corner, unrotated, but the 3
x3 |
375 // tile parent layer is rotated by 1 degree. Of the four tiles the child would | 375 // tile parent layer is rotated by 1 degree. Of the four tiles the child would |
376 // normally occlude, three will move (slightly) out from under the child layer,
and | 376 // normally occlude, three will move (slightly) out from under the child layer,
and |
377 // one moves further under the child. Only this last tile should be culled. | 377 // one moves further under the child. Only this last tile should be culled. |
378 TEST_F(QuadCullerTest, verifyNonAxisAlignedQuadsSafelyCulled) | 378 TEST_F(QuadCullerTest, verifyNonAxisAlignedQuadsSafelyCulled) |
379 { | 379 { |
380 DECLARE_AND_INITIALIZE_TEST_QUADS | 380 DECLARE_AND_INITIALIZE_TEST_QUADS |
381 | 381 |
382 // Use a small rotation so as to not disturb the geometry significantly. | 382 // Use a small rotation so as to not disturb the geometry significantly. |
383 gfx::Transform parentTransform; | 383 gfx::Transform parentTransform; |
384 parentTransform.Rotate(1); | 384 parentTransform.Rotate(1); |
385 | 385 |
386 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, parentTransform, rootRec
t, 1, true, gfx::Rect(), renderSurfaceLayerList); | 386 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, parentTransform, rootRec
t, 1, true, gfx::Rect(), renderSurfaceLayerList); |
387 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), gfx::Tran
sform(), childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); | 387 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), gfx::Tran
sform(), childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); |
388 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; | 388 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(-100, -100, 1000, 1000))
; |
389 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); | 389 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); |
390 | 390 |
391 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); | 391 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); |
392 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); | 392 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); |
393 EXPECT_EQ(quadList.size(), 12u); | 393 EXPECT_EQ(quadList.size(), 12u); |
394 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnOpaque(), 100600,
1); | 394 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 100600
, 1); |
395 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnTranslucent(), 0,
1); | 395 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 0
, 1); |
396 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsCulledForDrawing(), 294
00, 1); | 396 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(),
29400, 1); |
397 } | 397 } |
398 | 398 |
399 TEST_F(QuadCullerTest, verifyCullOutsideScissorOverTile) | 399 TEST_F(QuadCullerTest, verifyCullOutsideScissorOverTile) |
400 { | 400 { |
401 DECLARE_AND_INITIALIZE_TEST_QUADS | 401 DECLARE_AND_INITIALIZE_TEST_QUADS |
402 | 402 |
403 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); | 403 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); |
404 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), gfx::Tran
sform(), childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); | 404 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), gfx::Tran
sform(), childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); |
405 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(200, 100, 100, 100)); | 405 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(200, 100, 100, 100)); |
406 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); | 406 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); |
407 | 407 |
408 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); | 408 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); |
409 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); | 409 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); |
410 EXPECT_EQ(quadList.size(), 1u); | 410 EXPECT_EQ(quadList.size(), 1u); |
411 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnOpaque(), 10000, 1
); | 411 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 10000,
1); |
412 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnTranslucent(), 0,
1); | 412 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 0
, 1); |
413 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsCulledForDrawing(), 120
000, 1); | 413 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(),
120000, 1); |
414 } | 414 } |
415 | 415 |
416 TEST_F(QuadCullerTest, verifyCullOutsideScissorOverCulledTile) | 416 TEST_F(QuadCullerTest, verifyCullOutsideScissorOverCulledTile) |
417 { | 417 { |
418 DECLARE_AND_INITIALIZE_TEST_QUADS | 418 DECLARE_AND_INITIALIZE_TEST_QUADS |
419 | 419 |
420 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); | 420 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); |
421 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), gfx::Tran
sform(), childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); | 421 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), gfx::Tran
sform(), childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); |
422 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(100, 100, 100, 100)); | 422 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(100, 100, 100, 100)); |
423 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); | 423 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); |
424 | 424 |
425 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); | 425 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); |
426 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); | 426 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); |
427 EXPECT_EQ(quadList.size(), 1u); | 427 EXPECT_EQ(quadList.size(), 1u); |
428 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnOpaque(), 10000, 1
); | 428 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 10000,
1); |
429 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnTranslucent(), 0,
1); | 429 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 0
, 1); |
430 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsCulledForDrawing(), 120
000, 1); | 430 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(),
120000, 1); |
431 } | 431 } |
432 | 432 |
433 TEST_F(QuadCullerTest, verifyCullOutsideScissorOverPartialTiles) | 433 TEST_F(QuadCullerTest, verifyCullOutsideScissorOverPartialTiles) |
434 { | 434 { |
435 DECLARE_AND_INITIALIZE_TEST_QUADS | 435 DECLARE_AND_INITIALIZE_TEST_QUADS |
436 | 436 |
437 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); | 437 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); |
438 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), gfx::Tran
sform(), childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); | 438 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), gfx::Tran
sform(), childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); |
439 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(50, 50, 200, 200)); | 439 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(50, 50, 200, 200)); |
440 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); | 440 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); |
441 | 441 |
442 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); | 442 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); |
443 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); | 443 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); |
444 EXPECT_EQ(quadList.size(), 9u); | 444 EXPECT_EQ(quadList.size(), 9u); |
445 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnOpaque(), 40000, 1
); | 445 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 40000,
1); |
446 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnTranslucent(), 0,
1); | 446 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 0
, 1); |
447 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsCulledForDrawing(), 900
00, 1); | 447 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(),
90000, 1); |
448 } | 448 } |
449 | 449 |
450 TEST_F(QuadCullerTest, verifyCullOutsideScissorOverNoTiles) | 450 TEST_F(QuadCullerTest, verifyCullOutsideScissorOverNoTiles) |
451 { | 451 { |
452 DECLARE_AND_INITIALIZE_TEST_QUADS | 452 DECLARE_AND_INITIALIZE_TEST_QUADS |
453 | 453 |
454 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); | 454 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); |
455 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), gfx::Tran
sform(), childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); | 455 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), gfx::Tran
sform(), childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); |
456 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(500, 500, 100, 100)); | 456 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(500, 500, 100, 100)); |
457 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); | 457 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); |
458 | 458 |
459 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); | 459 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); |
460 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); | 460 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); |
461 EXPECT_EQ(quadList.size(), 0u); | 461 EXPECT_EQ(quadList.size(), 0u); |
462 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnOpaque(), 0, 1); | 462 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 0, 1); |
463 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnTranslucent(), 0,
1); | 463 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 0
, 1); |
464 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsCulledForDrawing(), 130
000, 1); | 464 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(),
130000, 1); |
465 } | 465 } |
466 | 466 |
467 TEST_F(QuadCullerTest, verifyWithoutMetrics) | 467 TEST_F(QuadCullerTest, verifyWithoutMetrics) |
468 { | 468 { |
469 DECLARE_AND_INITIALIZE_TEST_QUADS | 469 DECLARE_AND_INITIALIZE_TEST_QUADS |
470 | 470 |
471 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); | 471 scoped_ptr<TiledLayerImpl> rootLayer = makeLayer(0, gfx::Transform(), rootRe
ct, 1, true, gfx::Rect(), renderSurfaceLayerList); |
472 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), gfx::Tran
sform(), childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); | 472 scoped_ptr<TiledLayerImpl> childLayer = makeLayer(rootLayer.get(), gfx::Tran
sform(), childRect, 1, true, gfx::Rect(), renderSurfaceLayerList); |
473 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(50, 50, 200, 200), false
); | 473 TestOcclusionTrackerImpl occlusionTracker(gfx::Rect(50, 50, 200, 200), false
); |
474 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); | 474 LayerIteratorType it = LayerIteratorType::begin(&renderSurfaceLayerList); |
475 | 475 |
476 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); | 476 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke
r); |
477 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); | 477 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker
); |
478 EXPECT_EQ(quadList.size(), 9u); | 478 EXPECT_EQ(quadList.size(), 9u); |
479 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnOpaque(), 0, 1); | 479 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 0, 1); |
480 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsDrawnTranslucent(), 0,
1); | 480 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 0
, 1); |
481 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixelsCulledForDrawing(), 0,
1); | 481 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(),
0, 1); |
482 } | 482 } |
483 | 483 |
484 } // namespace | 484 } // namespace |
485 } // namespace cc | 485 } // namespace cc |
OLD | NEW |