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

Side by Side Diff: cc/trees/quad_culler_unittest.cc

Issue 195803003: cc: Remove OverdrawMetrics and --trace-overdraw flag. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rm-overdraw: switches Created 6 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 | Annotate | Revision Log
« no previous file with comments | « cc/trees/quad_culler.cc ('k') | chrome/browser/chromeos/login/chrome_restart_request.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/trees/quad_culler.h" 5 #include "cc/trees/quad_culler.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "cc/base/math_util.h" 9 #include "cc/base/math_util.h"
10 #include "cc/debug/overdraw_metrics.h"
11 #include "cc/layers/append_quads_data.h" 10 #include "cc/layers/append_quads_data.h"
12 #include "cc/layers/render_surface_impl.h" 11 #include "cc/layers/render_surface_impl.h"
13 #include "cc/layers/tiled_layer_impl.h" 12 #include "cc/layers/tiled_layer_impl.h"
14 #include "cc/quads/render_pass_draw_quad.h" 13 #include "cc/quads/render_pass_draw_quad.h"
15 #include "cc/quads/solid_color_draw_quad.h" 14 #include "cc/quads/solid_color_draw_quad.h"
16 #include "cc/quads/tile_draw_quad.h" 15 #include "cc/quads/tile_draw_quad.h"
17 #include "cc/resources/layer_tiling_data.h" 16 #include "cc/resources/layer_tiling_data.h"
18 #include "cc/test/fake_impl_proxy.h" 17 #include "cc/test/fake_impl_proxy.h"
19 #include "cc/test/fake_layer_tree_host_impl.h" 18 #include "cc/test/fake_layer_tree_host_impl.h"
20 #include "cc/test/test_occlusion_tracker.h" 19 #include "cc/test/test_occlusion_tracker.h"
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 true, 130 true,
132 gfx::Rect(), 131 gfx::Rect(),
133 render_surface_layer_list); 132 render_surface_layer_list);
134 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(), 133 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
135 gfx::Transform(), 134 gfx::Transform(),
136 child_rect, 135 child_rect,
137 1.f, 136 1.f,
138 false, 137 false,
139 gfx::Rect(), 138 gfx::Rect(),
140 render_surface_layer_list); 139 render_surface_layer_list);
141 bool record_metrics = true;
142 TestOcclusionTracker<LayerImpl> occlusion_tracker( 140 TestOcclusionTracker<LayerImpl> occlusion_tracker(
143 gfx::Rect(-100, -100, 1000, 1000), record_metrics); 141 gfx::Rect(-100, -100, 1000, 1000));
144 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list); 142 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
145 143
146 AppendQuads(&quad_list, 144 AppendQuads(&quad_list,
147 &shared_state_list, 145 &shared_state_list,
148 child_layer.get(), 146 child_layer.get(),
149 &it, 147 &it,
150 &occlusion_tracker); 148 &occlusion_tracker);
151 AppendQuads(&quad_list, 149 AppendQuads(&quad_list,
152 &shared_state_list, 150 &shared_state_list,
153 root_layer.get(), 151 root_layer.get(),
154 &it, 152 &it,
155 &occlusion_tracker); 153 &occlusion_tracker);
156 EXPECT_EQ(13u, quad_list.size()); 154 EXPECT_EQ(13u, quad_list.size());
157 EXPECT_NEAR(
158 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 90000, 1);
159 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(),
160 40000,
161 1);
162 EXPECT_NEAR(
163 occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(), 0, 1);
164 } 155 }
165 156
166 TEST_F(QuadCullerTest, CullChildLinesUpTopLeft) { 157 TEST_F(QuadCullerTest, CullChildLinesUpTopLeft) {
167 DECLARE_AND_INITIALIZE_TEST_QUADS(); 158 DECLARE_AND_INITIALIZE_TEST_QUADS();
168 159
169 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL, 160 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL,
170 gfx::Transform(), 161 gfx::Transform(),
171 root_rect, 162 root_rect,
172 1.f, 163 1.f,
173 true, 164 true,
174 gfx::Rect(), 165 gfx::Rect(),
175 render_surface_layer_list); 166 render_surface_layer_list);
176 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(), 167 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
177 gfx::Transform(), 168 gfx::Transform(),
178 child_rect, 169 child_rect,
179 1.f, 170 1.f,
180 true, 171 true,
181 gfx::Rect(), 172 gfx::Rect(),
182 render_surface_layer_list); 173 render_surface_layer_list);
183 bool record_metrics = true;
184 TestOcclusionTracker<LayerImpl> occlusion_tracker( 174 TestOcclusionTracker<LayerImpl> occlusion_tracker(
185 gfx::Rect(-100, -100, 1000, 1000), record_metrics); 175 gfx::Rect(-100, -100, 1000, 1000));
186 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list); 176 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
187 177
188 AppendQuads(&quad_list, 178 AppendQuads(&quad_list,
189 &shared_state_list, 179 &shared_state_list,
190 child_layer.get(), 180 child_layer.get(),
191 &it, 181 &it,
192 &occlusion_tracker); 182 &occlusion_tracker);
193 AppendQuads(&quad_list, 183 AppendQuads(&quad_list,
194 &shared_state_list, 184 &shared_state_list,
195 root_layer.get(), 185 root_layer.get(),
196 &it, 186 &it,
197 &occlusion_tracker); 187 &occlusion_tracker);
198 EXPECT_EQ(9u, quad_list.size()); 188 EXPECT_EQ(9u, quad_list.size());
199 EXPECT_NEAR(
200 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 90000, 1);
201 EXPECT_NEAR(
202 occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(), 0, 1);
203 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(),
204 40000,
205 1);
206 } 189 }
207 190
208 TEST_F(QuadCullerTest, CullWhenChildOpacityNotOne) { 191 TEST_F(QuadCullerTest, CullWhenChildOpacityNotOne) {
209 DECLARE_AND_INITIALIZE_TEST_QUADS(); 192 DECLARE_AND_INITIALIZE_TEST_QUADS();
210 193
211 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL, 194 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL,
212 gfx::Transform(), 195 gfx::Transform(),
213 root_rect, 196 root_rect,
214 1.f, 197 1.f,
215 true, 198 true,
216 gfx::Rect(), 199 gfx::Rect(),
217 render_surface_layer_list); 200 render_surface_layer_list);
218 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(), 201 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
219 child_transform, 202 child_transform,
220 child_rect, 203 child_rect,
221 0.9f, 204 0.9f,
222 true, 205 true,
223 gfx::Rect(), 206 gfx::Rect(),
224 render_surface_layer_list); 207 render_surface_layer_list);
225 bool record_metrics = true;
226 TestOcclusionTracker<LayerImpl> occlusion_tracker( 208 TestOcclusionTracker<LayerImpl> occlusion_tracker(
227 gfx::Rect(-100, -100, 1000, 1000), record_metrics); 209 gfx::Rect(-100, -100, 1000, 1000));
228 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list); 210 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
229 211
230 AppendQuads(&quad_list, 212 AppendQuads(&quad_list,
231 &shared_state_list, 213 &shared_state_list,
232 child_layer.get(), 214 child_layer.get(),
233 &it, 215 &it,
234 &occlusion_tracker); 216 &occlusion_tracker);
235 AppendQuads(&quad_list, 217 AppendQuads(&quad_list,
236 &shared_state_list, 218 &shared_state_list,
237 root_layer.get(), 219 root_layer.get(),
238 &it, 220 &it,
239 &occlusion_tracker); 221 &occlusion_tracker);
240 EXPECT_EQ(13u, quad_list.size()); 222 EXPECT_EQ(13u, quad_list.size());
241 EXPECT_NEAR(
242 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 90000, 1);
243 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(),
244 40000,
245 1);
246 EXPECT_NEAR(
247 occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(), 0, 1);
248 } 223 }
249 224
250 TEST_F(QuadCullerTest, CullWhenChildOpaqueFlagFalse) { 225 TEST_F(QuadCullerTest, CullWhenChildOpaqueFlagFalse) {
251 DECLARE_AND_INITIALIZE_TEST_QUADS(); 226 DECLARE_AND_INITIALIZE_TEST_QUADS();
252 227
253 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL, 228 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL,
254 gfx::Transform(), 229 gfx::Transform(),
255 root_rect, 230 root_rect,
256 1.f, 231 1.f,
257 true, 232 true,
258 gfx::Rect(), 233 gfx::Rect(),
259 render_surface_layer_list); 234 render_surface_layer_list);
260 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(), 235 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
261 child_transform, 236 child_transform,
262 child_rect, 237 child_rect,
263 1.f, 238 1.f,
264 false, 239 false,
265 gfx::Rect(), 240 gfx::Rect(),
266 render_surface_layer_list); 241 render_surface_layer_list);
267 bool record_metrics = true;
268 TestOcclusionTracker<LayerImpl> occlusion_tracker( 242 TestOcclusionTracker<LayerImpl> occlusion_tracker(
269 gfx::Rect(-100, -100, 1000, 1000), record_metrics); 243 gfx::Rect(-100, -100, 1000, 1000));
270 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list); 244 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
271 245
272 AppendQuads(&quad_list, 246 AppendQuads(&quad_list,
273 &shared_state_list, 247 &shared_state_list,
274 child_layer.get(), 248 child_layer.get(),
275 &it, 249 &it,
276 &occlusion_tracker); 250 &occlusion_tracker);
277 AppendQuads(&quad_list, 251 AppendQuads(&quad_list,
278 &shared_state_list, 252 &shared_state_list,
279 root_layer.get(), 253 root_layer.get(),
280 &it, 254 &it,
281 &occlusion_tracker); 255 &occlusion_tracker);
282 EXPECT_EQ(13u, quad_list.size()); 256 EXPECT_EQ(13u, quad_list.size());
283 EXPECT_NEAR(
284 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 90000, 1);
285 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(),
286 40000,
287 1);
288 EXPECT_NEAR(
289 occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(), 0, 1);
290 } 257 }
291 258
292 TEST_F(QuadCullerTest, CullCenterTileOnly) { 259 TEST_F(QuadCullerTest, CullCenterTileOnly) {
293 DECLARE_AND_INITIALIZE_TEST_QUADS(); 260 DECLARE_AND_INITIALIZE_TEST_QUADS();
294 261
295 child_transform.Translate(50, 50); 262 child_transform.Translate(50, 50);
296 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL, 263 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL,
297 gfx::Transform(), 264 gfx::Transform(),
298 root_rect, 265 root_rect,
299 1.f, 266 1.f,
300 true, 267 true,
301 gfx::Rect(), 268 gfx::Rect(),
302 render_surface_layer_list); 269 render_surface_layer_list);
303 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(), 270 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
304 child_transform, 271 child_transform,
305 child_rect, 272 child_rect,
306 1.f, 273 1.f,
307 true, 274 true,
308 gfx::Rect(), 275 gfx::Rect(),
309 render_surface_layer_list); 276 render_surface_layer_list);
310 bool record_metrics = true;
311 TestOcclusionTracker<LayerImpl> occlusion_tracker( 277 TestOcclusionTracker<LayerImpl> occlusion_tracker(
312 gfx::Rect(-100, -100, 1000, 1000), record_metrics); 278 gfx::Rect(-100, -100, 1000, 1000));
313 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list); 279 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
314 280
315 AppendQuads(&quad_list, 281 AppendQuads(&quad_list,
316 &shared_state_list, 282 &shared_state_list,
317 child_layer.get(), 283 child_layer.get(),
318 &it, 284 &it,
319 &occlusion_tracker); 285 &occlusion_tracker);
320 AppendQuads(&quad_list, 286 AppendQuads(&quad_list,
321 &shared_state_list, 287 &shared_state_list,
322 root_layer.get(), 288 root_layer.get(),
323 &it, 289 &it,
324 &occlusion_tracker); 290 &occlusion_tracker);
325 ASSERT_EQ(quad_list.size(), 12u); 291 ASSERT_EQ(quad_list.size(), 12u);
326 292
327 gfx::Rect quad_visible_rect1 = quad_list[5]->visible_rect; 293 gfx::Rect quad_visible_rect1 = quad_list[5]->visible_rect;
328 EXPECT_EQ(50, quad_visible_rect1.height()); 294 EXPECT_EQ(50, quad_visible_rect1.height());
329 295
330 gfx::Rect quad_visible_rect3 = quad_list[7]->visible_rect; 296 gfx::Rect quad_visible_rect3 = quad_list[7]->visible_rect;
331 EXPECT_EQ(50, quad_visible_rect3.width()); 297 EXPECT_EQ(50, quad_visible_rect3.width());
332 298
333 // Next index is 8, not 9, since centre quad culled. 299 // Next index is 8, not 9, since centre quad culled.
334 gfx::Rect quad_visible_rect4 = quad_list[8]->visible_rect; 300 gfx::Rect quad_visible_rect4 = quad_list[8]->visible_rect;
335 EXPECT_EQ(50, quad_visible_rect4.width()); 301 EXPECT_EQ(50, quad_visible_rect4.width());
336 EXPECT_EQ(250, quad_visible_rect4.x()); 302 EXPECT_EQ(250, quad_visible_rect4.x());
337 303
338 gfx::Rect quad_visible_rect6 = quad_list[10]->visible_rect; 304 gfx::Rect quad_visible_rect6 = quad_list[10]->visible_rect;
339 EXPECT_EQ(50, quad_visible_rect6.height()); 305 EXPECT_EQ(50, quad_visible_rect6.height());
340 EXPECT_EQ(250, quad_visible_rect6.y()); 306 EXPECT_EQ(250, quad_visible_rect6.y());
341
342 EXPECT_NEAR(
343 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 100000, 1);
344 EXPECT_NEAR(
345 occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(), 0, 1);
346 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(),
347 30000,
348 1);
349 } 307 }
350 308
351 TEST_F(QuadCullerTest, CullCenterTileNonIntegralSize1) { 309 TEST_F(QuadCullerTest, CullCenterTileNonIntegralSize1) {
352 DECLARE_AND_INITIALIZE_TEST_QUADS(); 310 DECLARE_AND_INITIALIZE_TEST_QUADS();
353 311
354 child_transform.Translate(100, 100); 312 child_transform.Translate(100, 100);
355 313
356 // Make the root layer's quad have extent (99.1, 99.1) -> (200.9, 200.9) to 314 // Make the root layer's quad have extent (99.1, 99.1) -> (200.9, 200.9) to
357 // make sure it doesn't get culled due to transform rounding. 315 // make sure it doesn't get culled due to transform rounding.
358 gfx::Transform root_transform; 316 gfx::Transform root_transform;
359 root_transform.Translate(99.1f, 99.1f); 317 root_transform.Translate(99.1f, 99.1f);
360 root_transform.Scale(1.018f, 1.018f); 318 root_transform.Scale(1.018f, 1.018f);
361 319
362 root_rect = child_rect = gfx::Rect(0, 0, 100, 100); 320 root_rect = child_rect = gfx::Rect(0, 0, 100, 100);
363 321
364 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL, 322 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL,
365 root_transform, 323 root_transform,
366 root_rect, 324 root_rect,
367 1.f, 325 1.f,
368 true, 326 true,
369 gfx::Rect(), 327 gfx::Rect(),
370 render_surface_layer_list); 328 render_surface_layer_list);
371 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(), 329 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
372 child_transform, 330 child_transform,
373 child_rect, 331 child_rect,
374 1.f, 332 1.f,
375 true, 333 true,
376 gfx::Rect(), 334 gfx::Rect(),
377 render_surface_layer_list); 335 render_surface_layer_list);
378 bool record_metrics = true;
379 TestOcclusionTracker<LayerImpl> occlusion_tracker( 336 TestOcclusionTracker<LayerImpl> occlusion_tracker(
380 gfx::Rect(-100, -100, 1000, 1000), record_metrics); 337 gfx::Rect(-100, -100, 1000, 1000));
381 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list); 338 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
382 339
383 AppendQuads(&quad_list, 340 AppendQuads(&quad_list,
384 &shared_state_list, 341 &shared_state_list,
385 child_layer.get(), 342 child_layer.get(),
386 &it, 343 &it,
387 &occlusion_tracker); 344 &occlusion_tracker);
388 AppendQuads(&quad_list, 345 AppendQuads(&quad_list,
389 &shared_state_list, 346 &shared_state_list,
390 root_layer.get(), 347 root_layer.get(),
391 &it, 348 &it,
392 &occlusion_tracker); 349 &occlusion_tracker);
393 EXPECT_EQ(2u, quad_list.size()); 350 EXPECT_EQ(2u, quad_list.size());
394
395 EXPECT_NEAR(
396 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 20363, 1);
397 EXPECT_NEAR(
398 occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(), 0, 1);
399 EXPECT_NEAR(
400 occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(), 0, 1);
401 } 351 }
402 352
403 TEST_F(QuadCullerTest, CullCenterTileNonIntegralSize2) { 353 TEST_F(QuadCullerTest, CullCenterTileNonIntegralSize2) {
404 DECLARE_AND_INITIALIZE_TEST_QUADS(); 354 DECLARE_AND_INITIALIZE_TEST_QUADS();
405 355
406 // Make the child's quad slightly smaller than, and centred over, the root 356 // Make the child's quad slightly smaller than, and centred over, the root
407 // layer tile. Verify the child does not cause the quad below to be culled 357 // layer tile. Verify the child does not cause the quad below to be culled
408 // due to rounding. 358 // due to rounding.
409 child_transform.Translate(100.1f, 100.1f); 359 child_transform.Translate(100.1f, 100.1f);
410 child_transform.Scale(0.982f, 0.982f); 360 child_transform.Scale(0.982f, 0.982f);
(...skipping 10 matching lines...) Expand all
421 true, 371 true,
422 gfx::Rect(), 372 gfx::Rect(),
423 render_surface_layer_list); 373 render_surface_layer_list);
424 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(), 374 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
425 child_transform, 375 child_transform,
426 child_rect, 376 child_rect,
427 1.f, 377 1.f,
428 true, 378 true,
429 gfx::Rect(), 379 gfx::Rect(),
430 render_surface_layer_list); 380 render_surface_layer_list);
431 bool record_metrics = true;
432 TestOcclusionTracker<LayerImpl> occlusion_tracker( 381 TestOcclusionTracker<LayerImpl> occlusion_tracker(
433 gfx::Rect(-100, -100, 1000, 1000), record_metrics); 382 gfx::Rect(-100, -100, 1000, 1000));
434 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list); 383 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
435 384
436 AppendQuads(&quad_list, 385 AppendQuads(&quad_list,
437 &shared_state_list, 386 &shared_state_list,
438 child_layer.get(), 387 child_layer.get(),
439 &it, 388 &it,
440 &occlusion_tracker); 389 &occlusion_tracker);
441 AppendQuads(&quad_list, 390 AppendQuads(&quad_list,
442 &shared_state_list, 391 &shared_state_list,
443 root_layer.get(), 392 root_layer.get(),
444 &it, 393 &it,
445 &occlusion_tracker); 394 &occlusion_tracker);
446 EXPECT_EQ(2u, quad_list.size()); 395 EXPECT_EQ(2u, quad_list.size());
447
448 EXPECT_NEAR(
449 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 19643, 1);
450 EXPECT_NEAR(
451 occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(), 0, 1);
452 EXPECT_NEAR(
453 occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(), 0, 1);
454 } 396 }
455 397
456 TEST_F(QuadCullerTest, CullChildLinesUpBottomRight) { 398 TEST_F(QuadCullerTest, CullChildLinesUpBottomRight) {
457 DECLARE_AND_INITIALIZE_TEST_QUADS(); 399 DECLARE_AND_INITIALIZE_TEST_QUADS();
458 400
459 child_transform.Translate(100, 100); 401 child_transform.Translate(100, 100);
460 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL, 402 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL,
461 gfx::Transform(), 403 gfx::Transform(),
462 root_rect, 404 root_rect,
463 1.f, 405 1.f,
464 true, 406 true,
465 gfx::Rect(), 407 gfx::Rect(),
466 render_surface_layer_list); 408 render_surface_layer_list);
467 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(), 409 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
468 child_transform, 410 child_transform,
469 child_rect, 411 child_rect,
470 1.f, 412 1.f,
471 true, 413 true,
472 gfx::Rect(), 414 gfx::Rect(),
473 render_surface_layer_list); 415 render_surface_layer_list);
474 bool record_metrics = true;
475 TestOcclusionTracker<LayerImpl> occlusion_tracker( 416 TestOcclusionTracker<LayerImpl> occlusion_tracker(
476 gfx::Rect(-100, -100, 1000, 1000), record_metrics); 417 gfx::Rect(-100, -100, 1000, 1000));
477 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list); 418 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
478 419
479 AppendQuads(&quad_list, 420 AppendQuads(&quad_list,
480 &shared_state_list, 421 &shared_state_list,
481 child_layer.get(), 422 child_layer.get(),
482 &it, 423 &it,
483 &occlusion_tracker); 424 &occlusion_tracker);
484 AppendQuads(&quad_list, 425 AppendQuads(&quad_list,
485 &shared_state_list, 426 &shared_state_list,
486 root_layer.get(), 427 root_layer.get(),
487 &it, 428 &it,
488 &occlusion_tracker); 429 &occlusion_tracker);
489 EXPECT_EQ(9u, quad_list.size()); 430 EXPECT_EQ(9u, quad_list.size());
490 EXPECT_NEAR(
491 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 90000, 1);
492 EXPECT_NEAR(
493 occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(), 0, 1);
494 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(),
495 40000,
496 1);
497 } 431 }
498 432
499 TEST_F(QuadCullerTest, CullSubRegion) { 433 TEST_F(QuadCullerTest, CullSubRegion) {
500 DECLARE_AND_INITIALIZE_TEST_QUADS(); 434 DECLARE_AND_INITIALIZE_TEST_QUADS();
501 435
502 child_transform.Translate(50, 50); 436 child_transform.Translate(50, 50);
503 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL, 437 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL,
504 gfx::Transform(), 438 gfx::Transform(),
505 root_rect, 439 root_rect,
506 1.f, 440 1.f,
507 true, 441 true,
508 gfx::Rect(), 442 gfx::Rect(),
509 render_surface_layer_list); 443 render_surface_layer_list);
510 gfx::Rect child_opaque_rect(child_rect.x() + child_rect.width() / 4, 444 gfx::Rect child_opaque_rect(child_rect.x() + child_rect.width() / 4,
511 child_rect.y() + child_rect.height() / 4, 445 child_rect.y() + child_rect.height() / 4,
512 child_rect.width() / 2, 446 child_rect.width() / 2,
513 child_rect.height() / 2); 447 child_rect.height() / 2);
514 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(), 448 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
515 child_transform, 449 child_transform,
516 child_rect, 450 child_rect,
517 1.f, 451 1.f,
518 false, 452 false,
519 child_opaque_rect, 453 child_opaque_rect,
520 render_surface_layer_list); 454 render_surface_layer_list);
521 bool record_metrics = true;
522 TestOcclusionTracker<LayerImpl> occlusion_tracker( 455 TestOcclusionTracker<LayerImpl> occlusion_tracker(
523 gfx::Rect(-100, -100, 1000, 1000), record_metrics); 456 gfx::Rect(-100, -100, 1000, 1000));
524 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list); 457 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
525 458
526 AppendQuads(&quad_list, 459 AppendQuads(&quad_list,
527 &shared_state_list, 460 &shared_state_list,
528 child_layer.get(), 461 child_layer.get(),
529 &it, 462 &it,
530 &occlusion_tracker); 463 &occlusion_tracker);
531 AppendQuads(&quad_list, 464 AppendQuads(&quad_list,
532 &shared_state_list, 465 &shared_state_list,
533 root_layer.get(), 466 root_layer.get(),
534 &it, 467 &it,
535 &occlusion_tracker); 468 &occlusion_tracker);
536 EXPECT_EQ(12u, quad_list.size()); 469 EXPECT_EQ(12u, quad_list.size());
537 EXPECT_NEAR(
538 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 90000, 1);
539 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(),
540 30000,
541 1);
542 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(),
543 10000,
544 1);
545 } 470 }
546 471
547 TEST_F(QuadCullerTest, CullSubRegion2) { 472 TEST_F(QuadCullerTest, CullSubRegion2) {
548 DECLARE_AND_INITIALIZE_TEST_QUADS(); 473 DECLARE_AND_INITIALIZE_TEST_QUADS();
549 474
550 child_transform.Translate(50, 10); 475 child_transform.Translate(50, 10);
551 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL, 476 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL,
552 gfx::Transform(), 477 gfx::Transform(),
553 root_rect, 478 root_rect,
554 1.f, 479 1.f,
555 true, 480 true,
556 gfx::Rect(), 481 gfx::Rect(),
557 render_surface_layer_list); 482 render_surface_layer_list);
558 gfx::Rect child_opaque_rect(child_rect.x() + child_rect.width() / 4, 483 gfx::Rect child_opaque_rect(child_rect.x() + child_rect.width() / 4,
559 child_rect.y() + child_rect.height() / 4, 484 child_rect.y() + child_rect.height() / 4,
560 child_rect.width() / 2, 485 child_rect.width() / 2,
561 child_rect.height() * 3 / 4); 486 child_rect.height() * 3 / 4);
562 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(), 487 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
563 child_transform, 488 child_transform,
564 child_rect, 489 child_rect,
565 1.f, 490 1.f,
566 false, 491 false,
567 child_opaque_rect, 492 child_opaque_rect,
568 render_surface_layer_list); 493 render_surface_layer_list);
569 bool record_metrics = true;
570 TestOcclusionTracker<LayerImpl> occlusion_tracker( 494 TestOcclusionTracker<LayerImpl> occlusion_tracker(
571 gfx::Rect(-100, -100, 1000, 1000), record_metrics); 495 gfx::Rect(-100, -100, 1000, 1000));
572 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list); 496 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
573 497
574 AppendQuads(&quad_list, 498 AppendQuads(&quad_list,
575 &shared_state_list, 499 &shared_state_list,
576 child_layer.get(), 500 child_layer.get(),
577 &it, 501 &it,
578 &occlusion_tracker); 502 &occlusion_tracker);
579 AppendQuads(&quad_list, 503 AppendQuads(&quad_list,
580 &shared_state_list, 504 &shared_state_list,
581 root_layer.get(), 505 root_layer.get(),
582 &it, 506 &it,
583 &occlusion_tracker); 507 &occlusion_tracker);
584 EXPECT_EQ(12u, quad_list.size()); 508 EXPECT_EQ(12u, quad_list.size());
585 EXPECT_NEAR(
586 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 90000, 1);
587 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(),
588 25000,
589 1);
590 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(),
591 15000,
592 1);
593 } 509 }
594 510
595 TEST_F(QuadCullerTest, CullSubRegionCheckOvercull) { 511 TEST_F(QuadCullerTest, CullSubRegionCheckOvercull) {
596 DECLARE_AND_INITIALIZE_TEST_QUADS(); 512 DECLARE_AND_INITIALIZE_TEST_QUADS();
597 513
598 child_transform.Translate(50, 49); 514 child_transform.Translate(50, 49);
599 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL, 515 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL,
600 gfx::Transform(), 516 gfx::Transform(),
601 root_rect, 517 root_rect,
602 1.f, 518 1.f,
603 true, 519 true,
604 gfx::Rect(), 520 gfx::Rect(),
605 render_surface_layer_list); 521 render_surface_layer_list);
606 gfx::Rect child_opaque_rect(child_rect.x() + child_rect.width() / 4, 522 gfx::Rect child_opaque_rect(child_rect.x() + child_rect.width() / 4,
607 child_rect.y() + child_rect.height() / 4, 523 child_rect.y() + child_rect.height() / 4,
608 child_rect.width() / 2, 524 child_rect.width() / 2,
609 child_rect.height() / 2); 525 child_rect.height() / 2);
610 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(), 526 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
611 child_transform, 527 child_transform,
612 child_rect, 528 child_rect,
613 1.f, 529 1.f,
614 false, 530 false,
615 child_opaque_rect, 531 child_opaque_rect,
616 render_surface_layer_list); 532 render_surface_layer_list);
617 bool record_metrics = true;
618 TestOcclusionTracker<LayerImpl> occlusion_tracker( 533 TestOcclusionTracker<LayerImpl> occlusion_tracker(
619 gfx::Rect(-100, -100, 1000, 1000), record_metrics); 534 gfx::Rect(-100, -100, 1000, 1000));
620 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list); 535 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
621 536
622 AppendQuads(&quad_list, 537 AppendQuads(&quad_list,
623 &shared_state_list, 538 &shared_state_list,
624 child_layer.get(), 539 child_layer.get(),
625 &it, 540 &it,
626 &occlusion_tracker); 541 &occlusion_tracker);
627 AppendQuads(&quad_list, 542 AppendQuads(&quad_list,
628 &shared_state_list, 543 &shared_state_list,
629 root_layer.get(), 544 root_layer.get(),
630 &it, 545 &it,
631 &occlusion_tracker); 546 &occlusion_tracker);
632 EXPECT_EQ(13u, quad_list.size()); 547 EXPECT_EQ(13u, quad_list.size());
633 EXPECT_NEAR(
634 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 90000, 1);
635 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(),
636 30000,
637 1);
638 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(),
639 10000,
640 1);
641 } 548 }
642 549
643 TEST_F(QuadCullerTest, NonAxisAlignedQuadsDontOcclude) { 550 TEST_F(QuadCullerTest, NonAxisAlignedQuadsDontOcclude) {
644 DECLARE_AND_INITIALIZE_TEST_QUADS(); 551 DECLARE_AND_INITIALIZE_TEST_QUADS();
645 552
646 // Use a small rotation so as to not disturb the geometry significantly. 553 // Use a small rotation so as to not disturb the geometry significantly.
647 child_transform.Rotate(1); 554 child_transform.Rotate(1);
648 555
649 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL, 556 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL,
650 gfx::Transform(), 557 gfx::Transform(),
651 root_rect, 558 root_rect,
652 1.f, 559 1.f,
653 true, 560 true,
654 gfx::Rect(), 561 gfx::Rect(),
655 render_surface_layer_list); 562 render_surface_layer_list);
656 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(), 563 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
657 child_transform, 564 child_transform,
658 child_rect, 565 child_rect,
659 1.f, 566 1.f,
660 true, 567 true,
661 gfx::Rect(), 568 gfx::Rect(),
662 render_surface_layer_list); 569 render_surface_layer_list);
663 bool record_metrics = true;
664 TestOcclusionTracker<LayerImpl> occlusion_tracker( 570 TestOcclusionTracker<LayerImpl> occlusion_tracker(
665 gfx::Rect(-100, -100, 1000, 1000), record_metrics); 571 gfx::Rect(-100, -100, 1000, 1000));
666 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list); 572 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
667 573
668 AppendQuads(&quad_list, 574 AppendQuads(&quad_list,
669 &shared_state_list, 575 &shared_state_list,
670 child_layer.get(), 576 child_layer.get(),
671 &it, 577 &it,
672 &occlusion_tracker); 578 &occlusion_tracker);
673 AppendQuads(&quad_list, 579 AppendQuads(&quad_list,
674 &shared_state_list, 580 &shared_state_list,
675 root_layer.get(), 581 root_layer.get(),
676 &it, 582 &it,
677 &occlusion_tracker); 583 &occlusion_tracker);
678 EXPECT_EQ(13u, quad_list.size()); 584 EXPECT_EQ(13u, quad_list.size());
679 EXPECT_NEAR(
680 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 130000, 1);
681 EXPECT_NEAR(
682 occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(), 0, 1);
683 EXPECT_NEAR(
684 occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(), 0, 1);
685 } 585 }
686 586
687 // This test requires some explanation: here we are rotating the quads to be 587 // This test requires some explanation: here we are rotating the quads to be
688 // culled. The 2x2 tile child layer remains in the top-left corner, unrotated, 588 // culled. The 2x2 tile child layer remains in the top-left corner, unrotated,
689 // but the 3x3 tile parent layer is rotated by 1 degree. Of the four tiles the 589 // but the 3x3 tile parent layer is rotated by 1 degree. Of the four tiles the
690 // child would normally occlude, three will move (slightly) out from under the 590 // child would normally occlude, three will move (slightly) out from under the
691 // child layer, and one moves further under the child. Only this last tile 591 // child layer, and one moves further under the child. Only this last tile
692 // should be culled. 592 // should be culled.
693 TEST_F(QuadCullerTest, NonAxisAlignedQuadsSafelyCulled) { 593 TEST_F(QuadCullerTest, NonAxisAlignedQuadsSafelyCulled) {
694 DECLARE_AND_INITIALIZE_TEST_QUADS(); 594 DECLARE_AND_INITIALIZE_TEST_QUADS();
695 595
696 // Use a small rotation so as to not disturb the geometry significantly. 596 // Use a small rotation so as to not disturb the geometry significantly.
697 gfx::Transform parent_transform; 597 gfx::Transform parent_transform;
698 parent_transform.Rotate(1); 598 parent_transform.Rotate(1);
699 599
700 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL, 600 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL,
701 parent_transform, 601 parent_transform,
702 root_rect, 602 root_rect,
703 1.f, 603 1.f,
704 true, 604 true,
705 gfx::Rect(), 605 gfx::Rect(),
706 render_surface_layer_list); 606 render_surface_layer_list);
707 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(), 607 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
708 gfx::Transform(), 608 gfx::Transform(),
709 child_rect, 609 child_rect,
710 1.f, 610 1.f,
711 true, 611 true,
712 gfx::Rect(), 612 gfx::Rect(),
713 render_surface_layer_list); 613 render_surface_layer_list);
714 bool record_metrics = true;
715 TestOcclusionTracker<LayerImpl> occlusion_tracker( 614 TestOcclusionTracker<LayerImpl> occlusion_tracker(
716 gfx::Rect(-100, -100, 1000, 1000), record_metrics); 615 gfx::Rect(-100, -100, 1000, 1000));
717 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list); 616 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
718 617
719 AppendQuads(&quad_list, 618 AppendQuads(&quad_list,
720 &shared_state_list, 619 &shared_state_list,
721 child_layer.get(), 620 child_layer.get(),
722 &it, 621 &it,
723 &occlusion_tracker); 622 &occlusion_tracker);
724 AppendQuads(&quad_list, 623 AppendQuads(&quad_list,
725 &shared_state_list, 624 &shared_state_list,
726 root_layer.get(), 625 root_layer.get(),
727 &it, 626 &it,
728 &occlusion_tracker); 627 &occlusion_tracker);
729 EXPECT_EQ(12u, quad_list.size()); 628 EXPECT_EQ(12u, quad_list.size());
730 EXPECT_NEAR(
731 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 100600, 1);
732 EXPECT_NEAR(
733 occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(), 0, 1);
734 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(),
735 29400,
736 1);
737 }
738
739 TEST_F(QuadCullerTest, WithoutMetrics) {
740 DECLARE_AND_INITIALIZE_TEST_QUADS();
741 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL,
742 gfx::Transform(),
743 root_rect,
744 1.f,
745 true,
746 gfx::Rect(),
747 render_surface_layer_list);
748 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
749 gfx::Transform(),
750 child_rect,
751 1.f,
752 true,
753 gfx::Rect(),
754 render_surface_layer_list);
755 bool record_metrics = false;
756 TestOcclusionTracker<LayerImpl> occlusion_tracker(
757 gfx::Rect(-100, -100, 1000, 1000), record_metrics);
758 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
759
760 AppendQuads(&quad_list,
761 &shared_state_list,
762 child_layer.get(),
763 &it,
764 &occlusion_tracker);
765 AppendQuads(&quad_list,
766 &shared_state_list,
767 root_layer.get(),
768 &it,
769 &occlusion_tracker);
770 EXPECT_EQ(9u, quad_list.size());
771 EXPECT_EQ(0.f,
772 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque());
773 EXPECT_EQ(0.f,
774 occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent());
775 EXPECT_EQ(0.f,
776 occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing());
777 } 629 }
778 630
779 TEST_F(QuadCullerTest, PartialCullingNotDestroyed) { 631 TEST_F(QuadCullerTest, PartialCullingNotDestroyed) {
780 DECLARE_AND_INITIALIZE_TEST_QUADS(); 632 DECLARE_AND_INITIALIZE_TEST_QUADS();
781 633
782 scoped_ptr<TiledLayerImpl> dummy_layer = MakeLayer(NULL, 634 scoped_ptr<TiledLayerImpl> dummy_layer = MakeLayer(NULL,
783 gfx::Transform(), 635 gfx::Transform(),
784 gfx::Rect(), 636 gfx::Rect(),
785 1.f, 637 1.f,
786 true, 638 true,
787 gfx::Rect(), 639 gfx::Rect(),
788 render_surface_layer_list); 640 render_surface_layer_list);
789 641
790 bool record_metrics = true; 642 TestOcclusionTracker<LayerImpl> occlusion_tracker(gfx::Rect(1000, 1000));
791 TestOcclusionTracker<LayerImpl> occlusion_tracker(gfx::Rect(1000, 1000),
792 record_metrics);
793 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list); 643 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
794 644
795 QuadCuller culler(&quad_list, 645 QuadCuller culler(&quad_list,
796 &shared_state_list, 646 &shared_state_list,
797 dummy_layer.get(), 647 dummy_layer.get(),
798 occlusion_tracker, 648 occlusion_tracker,
799 false, 649 false,
800 false); 650 false);
801 651
802 SharedQuadState* sqs = culler.UseSharedQuadState(SharedQuadState::Create()); 652 SharedQuadState* sqs = culler.UseSharedQuadState(SharedQuadState::Create());
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
859 DECLARE_AND_INITIALIZE_TEST_QUADS(); 709 DECLARE_AND_INITIALIZE_TEST_QUADS();
860 710
861 scoped_ptr<TiledLayerImpl> dummy_layer = MakeLayer(NULL, 711 scoped_ptr<TiledLayerImpl> dummy_layer = MakeLayer(NULL,
862 gfx::Transform(), 712 gfx::Transform(),
863 gfx::Rect(), 713 gfx::Rect(),
864 1.f, 714 1.f,
865 true, 715 true,
866 gfx::Rect(), 716 gfx::Rect(),
867 render_surface_layer_list); 717 render_surface_layer_list);
868 718
869 bool record_metrics = true; 719 TestOcclusionTracker<LayerImpl> occlusion_tracker(gfx::Rect(1000, 1000));
870 TestOcclusionTracker<LayerImpl> occlusion_tracker(gfx::Rect(1000, 1000),
871 record_metrics);
872 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list); 720 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
873 721
874 QuadCuller culler(&quad_list, 722 QuadCuller culler(&quad_list,
875 &shared_state_list, 723 &shared_state_list,
876 dummy_layer.get(), 724 dummy_layer.get(),
877 occlusion_tracker, 725 occlusion_tracker,
878 false, 726 false,
879 false); 727 false);
880 728
881 SharedQuadState* sqs = culler.UseSharedQuadState(SharedQuadState::Create()); 729 SharedQuadState* sqs = culler.UseSharedQuadState(SharedQuadState::Create());
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
931 EXPECT_EQ(gfx::Rect(15, 10, 5, 11).ToString(), 779 EXPECT_EQ(gfx::Rect(15, 10, 5, 11).ToString(),
932 quad_list[0]->visible_rect.ToString()); 780 quad_list[0]->visible_rect.ToString());
933 EXPECT_EQ(gfx::Rect(15, 20, 8, 14).ToString(), 781 EXPECT_EQ(gfx::Rect(15, 20, 8, 14).ToString(),
934 quad_list[1]->visible_rect.ToString()); 782 quad_list[1]->visible_rect.ToString());
935 EXPECT_EQ(gfx::Rect(15, 30, 10, 16).ToString(), 783 EXPECT_EQ(gfx::Rect(15, 30, 10, 16).ToString(),
936 quad_list[2]->visible_rect.ToString()); 784 quad_list[2]->visible_rect.ToString());
937 } 785 }
938 786
939 } // namespace 787 } // namespace
940 } // namespace cc 788 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/quad_culler.cc ('k') | chrome/browser/chromeos/login/chrome_restart_request.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698