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/resources/picture_layer_tiling.h" | 5 #include "cc/resources/picture_layer_tiling.h" |
6 | 6 |
7 #include "cc/test/fake_picture_layer_tiling_client.h" | 7 #include "cc/test/fake_picture_layer_tiling_client.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
9 #include "ui/gfx/rect_conversions.h" | 9 #include "ui/gfx/rect_conversions.h" |
10 #include "ui/gfx/size_conversions.h" | 10 #include "ui/gfx/size_conversions.h" |
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
414 TEST_F(PictureLayerTilingIteratorTest, TilesExist) { | 414 TEST_F(PictureLayerTilingIteratorTest, TilesExist) { |
415 gfx::Size layer_bounds(1099, 801); | 415 gfx::Size layer_bounds(1099, 801); |
416 Initialize(gfx::Size(100, 100), 1.f, layer_bounds); | 416 Initialize(gfx::Size(100, 100), 1.f, layer_bounds); |
417 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds)); | 417 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds)); |
418 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); | 418 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); |
419 | 419 |
420 tiling_->UpdateTilePriorities( | 420 tiling_->UpdateTilePriorities( |
421 ACTIVE_TREE, | 421 ACTIVE_TREE, |
422 layer_bounds, // device viewport | 422 layer_bounds, // device viewport |
423 gfx::Rect(layer_bounds), // viewport in layer space | 423 gfx::Rect(layer_bounds), // viewport in layer space |
| 424 gfx::Rect(layer_bounds), // visible content rect |
424 layer_bounds, // last layer bounds | 425 layer_bounds, // last layer bounds |
425 layer_bounds, // current layer bounds | 426 layer_bounds, // current layer bounds |
426 1.f, // last contents scale | 427 1.f, // last contents scale |
427 1.f, // current contents scale | 428 1.f, // current contents scale |
428 gfx::Transform(), // last screen transform | 429 gfx::Transform(), // last screen transform |
429 gfx::Transform(), // current screen transform | 430 gfx::Transform(), // current screen transform |
430 1, // current frame number | 431 1, // current frame number |
431 1.0, // current frame time | 432 1.0, // current frame time |
432 false, // store screen space quads on tiles | 433 false, // store screen space quads on tiles |
433 10000); // max tiles in tile manager | 434 10000); // max tiles in tile manager |
434 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, true)); | 435 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, true)); |
435 | 436 |
436 // Make the viewport rect empty. All tiles are killed and become zombies. | 437 // Make the viewport rect empty. All tiles are killed and become zombies. |
437 tiling_->UpdateTilePriorities( | 438 tiling_->UpdateTilePriorities( |
438 ACTIVE_TREE, | 439 ACTIVE_TREE, |
439 layer_bounds, // device viewport | 440 layer_bounds, // device viewport |
440 gfx::Rect(), // viewport in layer space | 441 gfx::Rect(), // viewport in layer space |
| 442 gfx::Rect(), // visible content rect |
441 layer_bounds, // last layer bounds | 443 layer_bounds, // last layer bounds |
442 layer_bounds, // current layer bounds | 444 layer_bounds, // current layer bounds |
443 1.f, // last contents scale | 445 1.f, // last contents scale |
444 1.f, // current contents scale | 446 1.f, // current contents scale |
445 gfx::Transform(), // last screen transform | 447 gfx::Transform(), // last screen transform |
446 gfx::Transform(), // current screen transform | 448 gfx::Transform(), // current screen transform |
447 2, // current frame number | 449 2, // current frame number |
448 2.0, // current frame time | 450 2.0, // current frame time |
449 false, // store screen space quads on tiles | 451 false, // store screen space quads on tiles |
450 10000); // max tiles in tile manager | 452 10000); // max tiles in tile manager |
451 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); | 453 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); |
452 } | 454 } |
453 | 455 |
| 456 TEST_F(PictureLayerTilingIteratorTest, TilesExistGiantViewport) { |
| 457 gfx::Size layer_bounds(1099, 801); |
| 458 Initialize(gfx::Size(100, 100), 1.f, layer_bounds); |
| 459 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds)); |
| 460 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); |
| 461 |
| 462 gfx::Rect giant_rect(-10000000, -10000000, 1000000000, 1000000000); |
| 463 |
| 464 tiling_->UpdateTilePriorities( |
| 465 ACTIVE_TREE, |
| 466 layer_bounds, // device viewport |
| 467 giant_rect, // viewport in layer space |
| 468 gfx::Rect(layer_bounds), // visible content rect |
| 469 layer_bounds, // last layer bounds |
| 470 layer_bounds, // current layer bounds |
| 471 1.f, // last contents scale |
| 472 1.f, // current contents scale |
| 473 gfx::Transform(), // last screen transform |
| 474 gfx::Transform(), // current screen transform |
| 475 1, // current frame number |
| 476 1.0, // current frame time |
| 477 false, // store screen space quads on tiles |
| 478 10000); // max tiles in tile manager |
| 479 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, true)); |
| 480 |
| 481 // If the visible content rect is empty, it should still have live tiles. |
| 482 tiling_->UpdateTilePriorities( |
| 483 ACTIVE_TREE, |
| 484 layer_bounds, // device viewport |
| 485 giant_rect, // viewport in layer space |
| 486 gfx::Rect(), // visible content rect |
| 487 layer_bounds, // last layer bounds |
| 488 layer_bounds, // current layer bounds |
| 489 1.f, // last contents scale |
| 490 1.f, // current contents scale |
| 491 gfx::Transform(), // last screen transform |
| 492 gfx::Transform(), // current screen transform |
| 493 2, // current frame number |
| 494 2.0, // current frame time |
| 495 false, // store screen space quads on tiles |
| 496 10000); // max tiles in tile manager |
| 497 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, true)); |
| 498 } |
| 499 |
| 500 TEST_F(PictureLayerTilingIteratorTest, TilesExistOutsideViewport) { |
| 501 gfx::Size layer_bounds(1099, 801); |
| 502 Initialize(gfx::Size(100, 100), 1.f, layer_bounds); |
| 503 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds)); |
| 504 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); |
| 505 |
| 506 // This rect does not intersect with the layer, as the layer is outside the |
| 507 // viewport. |
| 508 gfx::Rect viewport_rect(1100, 0, 1000, 1000); |
| 509 EXPECT_FALSE(viewport_rect.Intersects(gfx::Rect(layer_bounds))); |
| 510 |
| 511 tiling_->UpdateTilePriorities( |
| 512 ACTIVE_TREE, |
| 513 layer_bounds, // device viewport |
| 514 viewport_rect, // viewport in layer space |
| 515 gfx::Rect(), // visible content rect |
| 516 layer_bounds, // last layer bounds |
| 517 layer_bounds, // current layer bounds |
| 518 1.f, // last contents scale |
| 519 1.f, // current contents scale |
| 520 gfx::Transform(), // last screen transform |
| 521 gfx::Transform(), // current screen transform |
| 522 2, // current frame number |
| 523 2.0, // current frame time |
| 524 false, // store screen space quads on tiles |
| 525 10000); // max tiles in tile manager |
| 526 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, true)); |
| 527 } |
| 528 |
454 } // namespace | 529 } // namespace |
455 } // namespace cc | 530 } // namespace cc |
OLD | NEW |