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 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
390 transform_for_tile_priority, | 390 transform_for_tile_priority, |
391 resourceless_software_draw); | 391 resourceless_software_draw); |
392 active_layer_->draw_properties().visible_content_rect = viewport; | 392 active_layer_->draw_properties().visible_content_rect = viewport; |
393 active_layer_->draw_properties().screen_space_transform = transform; | 393 active_layer_->draw_properties().screen_space_transform = transform; |
394 active_layer_->UpdateTiles(Occlusion()); | 394 active_layer_->UpdateTiles(Occlusion()); |
395 | 395 |
396 gfx::Transform screen_to_view(gfx::Transform::kSkipInitialization); | 396 gfx::Transform screen_to_view(gfx::Transform::kSkipInitialization); |
397 bool success = transform_for_tile_priority.GetInverse(&screen_to_view); | 397 bool success = transform_for_tile_priority.GetInverse(&screen_to_view); |
398 EXPECT_TRUE(success); | 398 EXPECT_TRUE(success); |
399 | 399 |
| 400 // Note that we don't clip this to the layer bounds, since it is expected that |
| 401 // the rect will sometimes be outside of the layer bounds. If we clip to |
| 402 // bounds, then tile priorities will end up being incorrect in cases of fully |
| 403 // offscreen layer. |
400 viewport_rect_for_tile_priority_in_view_space = | 404 viewport_rect_for_tile_priority_in_view_space = |
401 gfx::ToEnclosingRect(MathUtil::ProjectClippedRect( | 405 gfx::ToEnclosingRect(MathUtil::ProjectClippedRect( |
402 screen_to_view, viewport_rect_for_tile_priority)); | 406 screen_to_view, viewport_rect_for_tile_priority)); |
403 | 407 |
404 // Verify the viewport rect for tile priority is used in PictureLayerImpl. | 408 // Verify the viewport rect for tile priority is used in PictureLayerImpl. |
405 EXPECT_EQ(active_layer_->viewport_rect_for_tile_priority(), | 409 EXPECT_EQ(active_layer_->viewport_rect_for_tile_priority(), |
406 viewport_rect_for_tile_priority_in_view_space); | 410 viewport_rect_for_tile_priority_in_view_space); |
407 | 411 |
408 // Interset viewport_rect_for_tile_priority_in_view_space with the layer | |
409 // bounds and the result should be used in PictureLayerTiling. | |
410 viewport_rect_for_tile_priority_in_view_space.Intersect( | |
411 gfx::Rect(layer_bounds)); | |
412 tilings = active_layer_->tilings(); | 412 tilings = active_layer_->tilings(); |
413 for (size_t i = 0; i < tilings->num_tilings(); i++) { | 413 for (size_t i = 0; i < tilings->num_tilings(); i++) { |
414 PictureLayerTiling* tiling = tilings->tiling_at(i); | 414 PictureLayerTiling* tiling = tilings->tiling_at(i); |
415 EXPECT_EQ( | 415 EXPECT_EQ( |
416 tiling->GetCurrentVisibleRectForTesting(), | 416 tiling->GetCurrentVisibleRectForTesting(), |
417 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space, | 417 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space, |
418 tiling->contents_scale())); | 418 tiling->contents_scale())); |
419 } | 419 } |
420 } | 420 } |
421 | 421 |
(...skipping 3795 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4217 ActivateTree(); | 4217 ActivateTree(); |
4218 EXPECT_TRUE(active_layer_->GetRecycledTwinLayer()); | 4218 EXPECT_TRUE(active_layer_->GetRecycledTwinLayer()); |
4219 EXPECT_EQ(old_pending_layer_, active_layer_->GetRecycledTwinLayer()); | 4219 EXPECT_EQ(old_pending_layer_, active_layer_->GetRecycledTwinLayer()); |
4220 | 4220 |
4221 host_impl_.ResetRecycleTreeForTesting(); | 4221 host_impl_.ResetRecycleTreeForTesting(); |
4222 EXPECT_FALSE(active_layer_->GetRecycledTwinLayer()); | 4222 EXPECT_FALSE(active_layer_->GetRecycledTwinLayer()); |
4223 } | 4223 } |
4224 | 4224 |
4225 } // namespace | 4225 } // namespace |
4226 } // namespace cc | 4226 } // namespace cc |
OLD | NEW |