Chromium Code Reviews| OLD | NEW | 
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/layers/picture_layer_impl.h" | 5 #include "cc/layers/picture_layer_impl.h" | 
| 6 | 6 | 
| 7 #include <algorithm> | 7 #include <algorithm> | 
| 8 #include <limits> | 8 #include <limits> | 
| 9 #include <set> | 9 #include <set> | 
| 10 #include <utility> | 10 #include <utility> | 
| (...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 413 tilings = active_layer_->tilings(); | 413 tilings = active_layer_->tilings(); | 
| 414 for (size_t i = 0; i < tilings->num_tilings(); i++) { | 414 for (size_t i = 0; i < tilings->num_tilings(); i++) { | 
| 415 PictureLayerTiling* tiling = tilings->tiling_at(i); | 415 PictureLayerTiling* tiling = tilings->tiling_at(i); | 
| 416 EXPECT_EQ( | 416 EXPECT_EQ( | 
| 417 tiling->GetCurrentVisibleRectForTesting(), | 417 tiling->GetCurrentVisibleRectForTesting(), | 
| 418 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space, | 418 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space, | 
| 419 tiling->contents_scale())); | 419 tiling->contents_scale())); | 
| 420 } | 420 } | 
| 421 } | 421 } | 
| 422 | 422 | 
| 423 TEST_F(PictureLayerImplTest, | 423 TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) { | 
| 424 ResourcelessSoftwareDrawHasValidViewportForTilePriority) { | |
| 425 base::TimeTicks time_ticks; | 424 base::TimeTicks time_ticks; | 
| 426 time_ticks += base::TimeDelta::FromMilliseconds(1); | 425 time_ticks += base::TimeDelta::FromMilliseconds(1); | 
| 427 host_impl_.SetCurrentBeginFrameArgs( | 426 host_impl_.SetCurrentBeginFrameArgs( | 
| 428 CreateBeginFrameArgsForTesting(time_ticks)); | 427 CreateBeginFrameArgsForTesting(time_ticks)); | 
| 429 | 428 | 
| 430 gfx::Size tile_size(100, 100); | 429 gfx::Size tile_size(100, 100); | 
| 431 gfx::Size layer_bounds(400, 400); | 430 gfx::Size layer_bounds(400, 400); | 
| 432 | 431 | 
| 433 scoped_refptr<FakePicturePileImpl> pending_pile = | 432 scoped_refptr<FakePicturePileImpl> pending_pile = | 
| 434 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 433 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 
| 435 scoped_refptr<FakePicturePileImpl> active_pile = | 434 scoped_refptr<FakePicturePileImpl> active_pile = | 
| 436 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 435 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 
| 437 | 436 | 
| 438 SetupTrees(pending_pile, active_pile); | 437 SetupTrees(pending_pile, active_pile); | 
| 439 | 438 | 
| 440 Region invalidation; | 439 Region invalidation; | 
| 441 AddDefaultTilingsWithInvalidation(invalidation); | 440 AddDefaultTilingsWithInvalidation(invalidation); | 
| 442 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); | 441 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); | 
| 443 | 442 | 
| 444 // UpdateTiles with valid viewport. Should update tile viewport. | 443 // UpdateTiles with valid viewport. Should update tile viewport. | 
| 444 // Note viewport is considered invalid if and only if in resourceless | |
| 445 // software draw. | |
| 445 bool resourceless_software_draw = false; | 446 bool resourceless_software_draw = false; | 
| 446 gfx::Rect viewport = gfx::Rect(layer_bounds); | 447 gfx::Rect viewport = gfx::Rect(layer_bounds); | 
| 447 gfx::Transform transform; | 448 gfx::Transform transform; | 
| 448 host_impl_.SetExternalDrawConstraints(transform, | 449 host_impl_.SetExternalDrawConstraints(transform, | 
| 449 viewport, | 450 viewport, | 
| 450 viewport, | 451 viewport, | 
| 451 viewport, | 452 viewport, | 
| 452 transform, | 453 transform, | 
| 453 resourceless_software_draw); | 454 resourceless_software_draw); | 
| 454 active_layer_->draw_properties().visible_content_rect = viewport; | 455 active_layer_->draw_properties().visible_content_rect = viewport; | 
| 455 active_layer_->draw_properties().screen_space_transform = transform; | 456 active_layer_->draw_properties().screen_space_transform = transform; | 
| 456 active_layer_->UpdateTiles(Occlusion()); | 457 active_layer_->UpdateTiles(Occlusion()); | 
| 457 | 458 | 
| 458 gfx::Rect visible_rect_for_tile_priority = | 459 gfx::Rect visible_rect_for_tile_priority = | 
| 459 active_layer_->visible_rect_for_tile_priority(); | 460 active_layer_->visible_rect_for_tile_priority(); | 
| 460 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); | 461 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); | 
| 461 gfx::Rect viewport_rect_for_tile_priority = | 462 gfx::Rect viewport_rect_for_tile_priority = | 
| 462 active_layer_->viewport_rect_for_tile_priority(); | 463 active_layer_->viewport_rect_for_tile_priority(); | 
| 463 EXPECT_FALSE(viewport_rect_for_tile_priority.IsEmpty()); | 464 EXPECT_FALSE(viewport_rect_for_tile_priority.IsEmpty()); | 
| 464 gfx::Transform screen_space_transform_for_tile_priority = | 465 gfx::Transform screen_space_transform_for_tile_priority = | 
| 465 active_layer_->screen_space_transform_for_tile_priority(); | 466 active_layer_->screen_space_transform_for_tile_priority(); | 
| 466 | 467 | 
| 467 // PictureLayerImpl does not make a special case for | 468 // Expand viewport and set it as invalid for prioritizing tiles. | 
| 468 // resource_less_software_draw, so the tile viewport and matrix should be | 469 // Should update viewport and transform, but not update visible rect. | 
| 469 // respected. | |
| 470 time_ticks += base::TimeDelta::FromMilliseconds(200); | 470 time_ticks += base::TimeDelta::FromMilliseconds(200); | 
| 471 host_impl_.SetCurrentBeginFrameArgs( | 471 host_impl_.SetCurrentBeginFrameArgs( | 
| 472 CreateBeginFrameArgsForTesting(time_ticks)); | 472 CreateBeginFrameArgsForTesting(time_ticks)); | 
| 473 resourceless_software_draw = true; | 473 resourceless_software_draw = true; | 
| 474 viewport = gfx::ScaleToEnclosingRect(viewport, 2); | 474 viewport = gfx::ScaleToEnclosingRect(viewport, 2); | 
| 475 transform.Translate(1.f, 1.f); | 475 transform.Translate(1.f, 1.f); | 
| 476 active_layer_->draw_properties().visible_content_rect = viewport; | 476 active_layer_->draw_properties().visible_content_rect = viewport; | 
| 477 active_layer_->draw_properties().screen_space_transform = transform; | 477 active_layer_->draw_properties().screen_space_transform = transform; | 
| 478 host_impl_.SetExternalDrawConstraints(transform, | 478 host_impl_.SetExternalDrawConstraints(transform, | 
| 479 viewport, | 479 viewport, | 
| 480 viewport, | 480 viewport, | 
| 481 viewport, | 481 viewport, | 
| 482 transform, | 482 transform, | 
| 483 resourceless_software_draw); | 483 resourceless_software_draw); | 
| 484 active_layer_->UpdateTiles(Occlusion()); | 484 active_layer_->UpdateTiles(Occlusion()); | 
| 485 | 485 | 
| 486 visible_rect_for_tile_priority = | |
| 487 gfx::ScaleToEnclosingRect(visible_rect_for_tile_priority, 2); | |
| 488 viewport_rect_for_tile_priority = | |
| 489 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority, 2); | |
| 490 screen_space_transform_for_tile_priority = transform; | |
| 491 EXPECT_RECT_EQ(visible_rect_for_tile_priority, | 486 EXPECT_RECT_EQ(visible_rect_for_tile_priority, | 
| 492 active_layer_->visible_rect_for_tile_priority()); | 487 active_layer_->visible_rect_for_tile_priority()); | 
| 
 
danakj
2014/09/30 21:05:53
comment to explain this expectation
 
boliu
2014/09/30 23:52:02
Done.
 
 | |
| 493 EXPECT_RECT_EQ(viewport_rect_for_tile_priority, | 488 EXPECT_RECT_EQ(viewport, active_layer_->viewport_rect_for_tile_priority()); | 
| 494 active_layer_->viewport_rect_for_tile_priority()); | |
| 495 EXPECT_TRANSFORMATION_MATRIX_EQ( | 489 EXPECT_TRANSFORMATION_MATRIX_EQ( | 
| 496 screen_space_transform_for_tile_priority, | 490 transform, active_layer_->screen_space_transform_for_tile_priority()); | 
| 497 active_layer_->screen_space_transform_for_tile_priority()); | 491 | 
| 492 // Keep expanded viewport but mark it valid. Should update tile viewport. | |
| 493 time_ticks += base::TimeDelta::FromMilliseconds(200); | |
| 494 host_impl_.SetCurrentBeginFrameArgs( | |
| 495 CreateBeginFrameArgsForTesting(time_ticks)); | |
| 496 resourceless_software_draw = false; | |
| 497 host_impl_.SetExternalDrawConstraints(transform, | |
| 498 viewport, | |
| 499 viewport, | |
| 500 viewport, | |
| 501 transform, | |
| 502 resourceless_software_draw); | |
| 503 active_layer_->UpdateTiles(Occlusion()); | |
| 504 | |
| 505 EXPECT_FALSE(visible_rect_for_tile_priority == | |
| 
 
danakj
2014/09/30 21:05:53
EXPECT_NE
can you find something to EXPECT_EQ ins
 
boliu
2014/09/30 23:52:02
Yes, found things to EXPECT_EQ to. Although need t
 
 | |
| 506 active_layer_->visible_rect_for_tile_priority()); | |
| 507 EXPECT_FALSE(viewport_rect_for_tile_priority == | |
| 508 active_layer_->viewport_rect_for_tile_priority()); | |
| 509 EXPECT_FALSE(screen_space_transform_for_tile_priority == | |
| 510 active_layer_->screen_space_transform_for_tile_priority()); | |
| 498 } | 511 } | 
| 499 | 512 | 
| 500 TEST_F(PictureLayerImplTest, ClonePartialInvalidation) { | 513 TEST_F(PictureLayerImplTest, ClonePartialInvalidation) { | 
| 501 gfx::Size tile_size(100, 100); | 514 gfx::Size tile_size(100, 100); | 
| 502 gfx::Size layer_bounds(400, 400); | 515 gfx::Size layer_bounds(400, 400); | 
| 503 gfx::Rect layer_invalidation(150, 200, 30, 180); | 516 gfx::Rect layer_invalidation(150, 200, 30, 180); | 
| 504 | 517 | 
| 505 scoped_refptr<FakePicturePileImpl> pending_pile = | 518 scoped_refptr<FakePicturePileImpl> pending_pile = | 
| 506 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 519 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 
| 507 scoped_refptr<FakePicturePileImpl> active_pile = | 520 scoped_refptr<FakePicturePileImpl> active_pile = | 
| (...skipping 910 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1418 scoped_refptr<FakePicturePileImpl> pending_pile = | 1431 scoped_refptr<FakePicturePileImpl> pending_pile = | 
| 1419 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 1432 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 
| 1420 SetupPendingTree(pending_pile); | 1433 SetupPendingTree(pending_pile); | 
| 1421 | 1434 | 
| 1422 pending_layer_->set_fixed_tile_size(tile_size); | 1435 pending_layer_->set_fixed_tile_size(tile_size); | 
| 1423 ASSERT_TRUE(pending_layer_->CanHaveTilings()); | 1436 ASSERT_TRUE(pending_layer_->CanHaveTilings()); | 
| 1424 PictureLayerTiling* tiling = pending_layer_->AddTiling(1.f); | 1437 PictureLayerTiling* tiling = pending_layer_->AddTiling(1.f); | 
| 1425 host_impl_.pending_tree()->UpdateDrawProperties(); | 1438 host_impl_.pending_tree()->UpdateDrawProperties(); | 
| 1426 EXPECT_EQ(tiling->resolution(), HIGH_RESOLUTION); | 1439 EXPECT_EQ(tiling->resolution(), HIGH_RESOLUTION); | 
| 1427 | 1440 | 
| 1428 pending_layer_->draw_properties().visible_content_rect = | 1441 pending_layer_->set_visible_rect_for_tile_priority(gfx::Rect(0, 0, 100, 200)); | 
| 
 
danakj
2014/09/30 21:05:53
can you set the viewport on the host_impl_ instead
 
boliu
2014/09/30 23:52:02
Done.
 
 | |
| 1429 gfx::Rect(0, 0, 100, 200); | |
| 1430 | 1442 | 
| 1431 // Fake set priorities. | 1443 // Fake set priorities. | 
| 1432 for (PictureLayerTiling::CoverageIterator iter( | 1444 for (PictureLayerTiling::CoverageIterator iter( | 
| 1433 tiling, pending_layer_->contents_scale_x(), gfx::Rect(layer_bounds)); | 1445 tiling, pending_layer_->contents_scale_x(), gfx::Rect(layer_bounds)); | 
| 1434 iter; | 1446 iter; | 
| 1435 ++iter) { | 1447 ++iter) { | 
| 1436 if (!*iter) | 1448 if (!*iter) | 
| 1437 continue; | 1449 continue; | 
| 1438 Tile* tile = *iter; | 1450 Tile* tile = *iter; | 
| 1439 TilePriority priority; | 1451 TilePriority priority; | 
| 1440 priority.resolution = HIGH_RESOLUTION; | 1452 priority.resolution = HIGH_RESOLUTION; | 
| 1441 gfx::Rect tile_bounds = iter.geometry_rect(); | 1453 gfx::Rect tile_bounds = iter.geometry_rect(); | 
| 1442 if (pending_layer_->visible_content_rect().Intersects(tile_bounds)) { | 1454 if (pending_layer_->visible_rect_for_tile_priority().Intersects( | 
| 1455 tile_bounds)) { | |
| 1443 priority.priority_bin = TilePriority::NOW; | 1456 priority.priority_bin = TilePriority::NOW; | 
| 1444 priority.distance_to_visible = 0.f; | 1457 priority.distance_to_visible = 0.f; | 
| 1445 } else { | 1458 } else { | 
| 1446 priority.priority_bin = TilePriority::SOON; | 1459 priority.priority_bin = TilePriority::SOON; | 
| 1447 priority.distance_to_visible = 1.f; | 1460 priority.distance_to_visible = 1.f; | 
| 1448 } | 1461 } | 
| 1449 tile->SetPriority(PENDING_TREE, priority); | 1462 tile->SetPriority(PENDING_TREE, priority); | 
| 1450 } | 1463 } | 
| 1451 | 1464 | 
| 1452 pending_layer_->MarkVisibleResourcesAsRequired(); | 1465 pending_layer_->MarkVisibleResourcesAsRequired(); | 
| (...skipping 1670 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3123 EXPECT_EQ(active_layer_->HighResTiling()->AllTilesForTesting().size(), 0u); | 3136 EXPECT_EQ(active_layer_->HighResTiling()->AllTilesForTesting().size(), 0u); | 
| 3124 | 3137 | 
| 3125 // Since the active layer has no tiles at all, the pending layer doesn't | 3138 // Since the active layer has no tiles at all, the pending layer doesn't | 
| 3126 // need content in order to activate. | 3139 // need content in order to activate. | 
| 3127 pending_layer_->MarkVisibleResourcesAsRequired(); | 3140 pending_layer_->MarkVisibleResourcesAsRequired(); | 
| 3128 AssertNoTilesRequired(pending_layer_->HighResTiling()); | 3141 AssertNoTilesRequired(pending_layer_->HighResTiling()); | 
| 3129 if (host_impl_.settings().create_low_res_tiling) | 3142 if (host_impl_.settings().create_low_res_tiling) | 
| 3130 AssertNoTilesRequired(pending_layer_->LowResTiling()); | 3143 AssertNoTilesRequired(pending_layer_->LowResTiling()); | 
| 3131 } | 3144 } | 
| 3132 | 3145 | 
| 3133 TEST_F(NoLowResPictureLayerImplTest, | 3146 TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) { | 
| 3134 ResourcelessSoftwareDrawHasValidViewportForTilePriority) { | |
| 3135 base::TimeTicks time_ticks; | 3147 base::TimeTicks time_ticks; | 
| 3136 time_ticks += base::TimeDelta::FromMilliseconds(1); | 3148 time_ticks += base::TimeDelta::FromMilliseconds(1); | 
| 3137 host_impl_.SetCurrentBeginFrameArgs( | 3149 host_impl_.SetCurrentBeginFrameArgs( | 
| 3138 CreateBeginFrameArgsForTesting(time_ticks)); | 3150 CreateBeginFrameArgsForTesting(time_ticks)); | 
| 3139 | 3151 | 
| 3140 gfx::Size tile_size(100, 100); | 3152 gfx::Size tile_size(100, 100); | 
| 3141 gfx::Size layer_bounds(400, 400); | 3153 gfx::Size layer_bounds(400, 400); | 
| 3142 | 3154 | 
| 3143 scoped_refptr<FakePicturePileImpl> pending_pile = | 3155 scoped_refptr<FakePicturePileImpl> pending_pile = | 
| 3144 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 3156 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 
| 3145 scoped_refptr<FakePicturePileImpl> active_pile = | 3157 scoped_refptr<FakePicturePileImpl> active_pile = | 
| 3146 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 3158 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 
| 3147 | 3159 | 
| 3148 SetupTrees(pending_pile, active_pile); | 3160 SetupTrees(pending_pile, active_pile); | 
| 3149 | 3161 | 
| 3150 Region invalidation; | 3162 Region invalidation; | 
| 3151 AddDefaultTilingsWithInvalidation(invalidation); | 3163 AddDefaultTilingsWithInvalidation(invalidation); | 
| 3152 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); | 3164 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); | 
| 3153 | 3165 | 
| 3154 // UpdateTiles with valid viewport. Should update tile viewport. | 3166 // UpdateTiles with valid viewport. Should update tile viewport. | 
| 3167 // Note viewport is considered invalid if and only if in resourceless | |
| 3168 // software draw. | |
| 3155 bool resourceless_software_draw = false; | 3169 bool resourceless_software_draw = false; | 
| 3156 gfx::Rect viewport = gfx::Rect(layer_bounds); | 3170 gfx::Rect viewport = gfx::Rect(layer_bounds); | 
| 3157 gfx::Transform transform; | 3171 gfx::Transform transform; | 
| 3158 host_impl_.SetExternalDrawConstraints(transform, | 3172 host_impl_.SetExternalDrawConstraints(transform, | 
| 3159 viewport, | 3173 viewport, | 
| 3160 viewport, | 3174 viewport, | 
| 3161 viewport, | 3175 viewport, | 
| 3162 transform, | 3176 transform, | 
| 3163 resourceless_software_draw); | 3177 resourceless_software_draw); | 
| 3164 active_layer_->draw_properties().visible_content_rect = viewport; | 3178 active_layer_->draw_properties().visible_content_rect = viewport; | 
| 3165 active_layer_->draw_properties().screen_space_transform = transform; | 3179 active_layer_->draw_properties().screen_space_transform = transform; | 
| 3166 active_layer_->UpdateTiles(Occlusion()); | 3180 active_layer_->UpdateTiles(Occlusion()); | 
| 3167 | 3181 | 
| 3168 gfx::Rect visible_rect_for_tile_priority = | 3182 gfx::Rect visible_rect_for_tile_priority = | 
| 3169 active_layer_->visible_rect_for_tile_priority(); | 3183 active_layer_->visible_rect_for_tile_priority(); | 
| 3170 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); | 3184 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); | 
| 3171 gfx::Rect viewport_rect_for_tile_priority = | 3185 gfx::Rect viewport_rect_for_tile_priority = | 
| 3172 active_layer_->viewport_rect_for_tile_priority(); | 3186 active_layer_->viewport_rect_for_tile_priority(); | 
| 3173 EXPECT_FALSE(viewport_rect_for_tile_priority.IsEmpty()); | 3187 EXPECT_FALSE(viewport_rect_for_tile_priority.IsEmpty()); | 
| 3174 gfx::Transform screen_space_transform_for_tile_priority = | 3188 gfx::Transform screen_space_transform_for_tile_priority = | 
| 3175 active_layer_->screen_space_transform_for_tile_priority(); | 3189 active_layer_->screen_space_transform_for_tile_priority(); | 
| 3176 | 3190 | 
| 3177 // PictureLayerImpl does not make a special case for | 3191 // Expand viewport and set it as invalid for prioritizing tiles. | 
| 3178 // resource_less_software_draw, so the tile viewport and matrix should be | 3192 // Should update viewport and transform, but not update visible rect. | 
| 3179 // respected. | |
| 3180 time_ticks += base::TimeDelta::FromMilliseconds(200); | 3193 time_ticks += base::TimeDelta::FromMilliseconds(200); | 
| 3181 host_impl_.SetCurrentBeginFrameArgs( | 3194 host_impl_.SetCurrentBeginFrameArgs( | 
| 3182 CreateBeginFrameArgsForTesting(time_ticks)); | 3195 CreateBeginFrameArgsForTesting(time_ticks)); | 
| 3183 resourceless_software_draw = true; | 3196 resourceless_software_draw = true; | 
| 3184 viewport = gfx::ScaleToEnclosingRect(viewport, 2); | 3197 viewport = gfx::ScaleToEnclosingRect(viewport, 2); | 
| 3185 transform.Translate(1.f, 1.f); | 3198 transform.Translate(1.f, 1.f); | 
| 3186 active_layer_->draw_properties().visible_content_rect = viewport; | 3199 active_layer_->draw_properties().visible_content_rect = viewport; | 
| 3187 active_layer_->draw_properties().screen_space_transform = transform; | 3200 active_layer_->draw_properties().screen_space_transform = transform; | 
| 3188 host_impl_.SetExternalDrawConstraints(transform, | 3201 host_impl_.SetExternalDrawConstraints(transform, | 
| 3189 viewport, | 3202 viewport, | 
| 3190 viewport, | 3203 viewport, | 
| 3191 viewport, | 3204 viewport, | 
| 3192 transform, | 3205 transform, | 
| 3193 resourceless_software_draw); | 3206 resourceless_software_draw); | 
| 3194 active_layer_->UpdateTiles(Occlusion()); | 3207 active_layer_->UpdateTiles(Occlusion()); | 
| 3195 | 3208 | 
| 3196 visible_rect_for_tile_priority = | |
| 3197 gfx::ScaleToEnclosingRect(visible_rect_for_tile_priority, 2); | |
| 3198 viewport_rect_for_tile_priority = | |
| 3199 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority, 2); | |
| 3200 screen_space_transform_for_tile_priority = transform; | |
| 3201 | |
| 3202 EXPECT_RECT_EQ(visible_rect_for_tile_priority, | 3209 EXPECT_RECT_EQ(visible_rect_for_tile_priority, | 
| 3203 active_layer_->visible_rect_for_tile_priority()); | 3210 active_layer_->visible_rect_for_tile_priority()); | 
| 3204 EXPECT_RECT_EQ(viewport_rect_for_tile_priority, | 3211 EXPECT_RECT_EQ(viewport, active_layer_->viewport_rect_for_tile_priority()); | 
| 3205 active_layer_->viewport_rect_for_tile_priority()); | |
| 3206 EXPECT_TRANSFORMATION_MATRIX_EQ( | 3212 EXPECT_TRANSFORMATION_MATRIX_EQ( | 
| 3207 screen_space_transform_for_tile_priority, | 3213 transform, active_layer_->screen_space_transform_for_tile_priority()); | 
| 3208 active_layer_->screen_space_transform_for_tile_priority()); | 3214 | 
| 3215 // Keep expanded viewport but mark it valid. Should update tile viewport. | |
| 3216 time_ticks += base::TimeDelta::FromMilliseconds(200); | |
| 3217 host_impl_.SetCurrentBeginFrameArgs( | |
| 3218 CreateBeginFrameArgsForTesting(time_ticks)); | |
| 3219 resourceless_software_draw = false; | |
| 3220 host_impl_.SetExternalDrawConstraints(transform, | |
| 3221 viewport, | |
| 3222 viewport, | |
| 3223 viewport, | |
| 3224 transform, | |
| 3225 resourceless_software_draw); | |
| 3226 active_layer_->UpdateTiles(Occlusion()); | |
| 3227 | |
| 3228 EXPECT_FALSE(visible_rect_for_tile_priority == | |
| 
 
danakj
2014/09/30 21:05:53
same comments
 
boliu
2014/09/30 23:52:02
Done same as above.
 
 | |
| 3229 active_layer_->visible_rect_for_tile_priority()); | |
| 3230 EXPECT_FALSE(viewport_rect_for_tile_priority == | |
| 3231 active_layer_->viewport_rect_for_tile_priority()); | |
| 3232 EXPECT_FALSE(screen_space_transform_for_tile_priority == | |
| 3233 active_layer_->screen_space_transform_for_tile_priority()); | |
| 3209 } | 3234 } | 
| 3210 | 3235 | 
| 3211 TEST_F(NoLowResPictureLayerImplTest, CleanUpTilings) { | 3236 TEST_F(NoLowResPictureLayerImplTest, CleanUpTilings) { | 
| 3212 gfx::Size tile_size(400, 400); | 3237 gfx::Size tile_size(400, 400); | 
| 3213 gfx::Size layer_bounds(1300, 1900); | 3238 gfx::Size layer_bounds(1300, 1900); | 
| 3214 | 3239 | 
| 3215 scoped_refptr<FakePicturePileImpl> pending_pile = | 3240 scoped_refptr<FakePicturePileImpl> pending_pile = | 
| 3216 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 3241 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 
| 3217 scoped_refptr<FakePicturePileImpl> active_pile = | 3242 scoped_refptr<FakePicturePileImpl> active_pile = | 
| 3218 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 3243 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 
| (...skipping 1139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4358 SetupPendingTree(pending_pile2); | 4383 SetupPendingTree(pending_pile2); | 
| 4359 ActivateTree(); | 4384 ActivateTree(); | 
| 4360 | 4385 | 
| 4361 // We've switched to a solid color, so we should end up with no tilings. | 4386 // We've switched to a solid color, so we should end up with no tilings. | 
| 4362 ASSERT_TRUE(active_layer_->tilings()); | 4387 ASSERT_TRUE(active_layer_->tilings()); | 
| 4363 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); | 4388 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); | 
| 4364 } | 4389 } | 
| 4365 | 4390 | 
| 4366 } // namespace | 4391 } // namespace | 
| 4367 } // namespace cc | 4392 } // namespace cc | 
| OLD | NEW |