| 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 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 408 tilings = active_layer_->tilings(); | 408 tilings = active_layer_->tilings(); |
| 409 for (size_t i = 0; i < tilings->num_tilings(); i++) { | 409 for (size_t i = 0; i < tilings->num_tilings(); i++) { |
| 410 PictureLayerTiling* tiling = tilings->tiling_at(i); | 410 PictureLayerTiling* tiling = tilings->tiling_at(i); |
| 411 EXPECT_EQ( | 411 EXPECT_EQ( |
| 412 tiling->GetCurrentVisibleRectForTesting(), | 412 tiling->GetCurrentVisibleRectForTesting(), |
| 413 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space, | 413 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space, |
| 414 tiling->contents_scale())); | 414 tiling->contents_scale())); |
| 415 } | 415 } |
| 416 } | 416 } |
| 417 | 417 |
| 418 TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) { | 418 TEST_F(PictureLayerImplTest, |
| 419 ResourcelessSoftwareDrawHasValidViewportForTilePriority) { |
| 419 base::TimeTicks time_ticks; | 420 base::TimeTicks time_ticks; |
| 420 time_ticks += base::TimeDelta::FromMilliseconds(1); | 421 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 421 host_impl_.SetCurrentBeginFrameArgs( | 422 host_impl_.SetCurrentBeginFrameArgs( |
| 422 CreateBeginFrameArgsForTesting(time_ticks)); | 423 CreateBeginFrameArgsForTesting(time_ticks)); |
| 423 | 424 |
| 424 gfx::Size tile_size(100, 100); | 425 gfx::Size tile_size(100, 100); |
| 425 gfx::Size layer_bounds(400, 400); | 426 gfx::Size layer_bounds(400, 400); |
| 426 | 427 |
| 427 scoped_refptr<FakePicturePileImpl> pending_pile = | 428 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 428 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 429 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 429 scoped_refptr<FakePicturePileImpl> active_pile = | 430 scoped_refptr<FakePicturePileImpl> active_pile = |
| 430 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 431 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 431 | 432 |
| 432 SetupTrees(pending_pile, active_pile); | 433 SetupTrees(pending_pile, active_pile); |
| 433 | 434 |
| 434 Region invalidation; | 435 Region invalidation; |
| 435 AddDefaultTilingsWithInvalidation(invalidation); | 436 AddDefaultTilingsWithInvalidation(invalidation); |
| 436 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); | 437 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); |
| 437 | 438 |
| 438 // UpdateTiles with valid viewport. Should update tile viewport. | 439 // UpdateTiles with valid viewport. Should update tile viewport. |
| 439 // Note viewport is considered invalid if and only if in resourceless | |
| 440 // software draw. | |
| 441 bool resourceless_software_draw = false; | 440 bool resourceless_software_draw = false; |
| 442 gfx::Rect viewport = gfx::Rect(layer_bounds); | 441 gfx::Rect viewport = gfx::Rect(layer_bounds); |
| 443 gfx::Transform transform; | 442 gfx::Transform transform; |
| 444 host_impl_.SetExternalDrawConstraints(transform, | 443 host_impl_.SetExternalDrawConstraints(transform, |
| 445 viewport, | 444 viewport, |
| 446 viewport, | 445 viewport, |
| 447 viewport, | 446 viewport, |
| 448 transform, | 447 transform, |
| 449 resourceless_software_draw); | 448 resourceless_software_draw); |
| 450 active_layer_->draw_properties().visible_content_rect = viewport; | 449 active_layer_->draw_properties().visible_content_rect = viewport; |
| 451 active_layer_->draw_properties().screen_space_transform = transform; | 450 active_layer_->draw_properties().screen_space_transform = transform; |
| 452 active_layer_->UpdateTiles(NULL); | 451 active_layer_->UpdateTiles(NULL); |
| 453 | 452 |
| 454 gfx::Rect visible_rect_for_tile_priority = | 453 gfx::Rect visible_rect_for_tile_priority = |
| 455 active_layer_->visible_rect_for_tile_priority(); | 454 active_layer_->visible_rect_for_tile_priority(); |
| 456 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); | 455 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); |
| 457 gfx::Rect viewport_rect_for_tile_priority = | 456 gfx::Rect viewport_rect_for_tile_priority = |
| 458 active_layer_->viewport_rect_for_tile_priority(); | 457 active_layer_->viewport_rect_for_tile_priority(); |
| 459 EXPECT_FALSE(viewport_rect_for_tile_priority.IsEmpty()); | 458 EXPECT_FALSE(viewport_rect_for_tile_priority.IsEmpty()); |
| 460 gfx::Transform screen_space_transform_for_tile_priority = | 459 gfx::Transform screen_space_transform_for_tile_priority = |
| 461 active_layer_->screen_space_transform_for_tile_priority(); | 460 active_layer_->screen_space_transform_for_tile_priority(); |
| 462 | 461 |
| 463 // Expand viewport and set it as invalid for prioritizing tiles. | 462 // PictureLayerImpl does not make a special case for |
| 464 // Should not update tile viewport. | 463 // resource_less_software_draw, so the tile viewport and matrix should be |
| 464 // respeced. |
| 465 time_ticks += base::TimeDelta::FromMilliseconds(200); | 465 time_ticks += base::TimeDelta::FromMilliseconds(200); |
| 466 host_impl_.SetCurrentBeginFrameArgs( | 466 host_impl_.SetCurrentBeginFrameArgs( |
| 467 CreateBeginFrameArgsForTesting(time_ticks)); | 467 CreateBeginFrameArgsForTesting(time_ticks)); |
| 468 resourceless_software_draw = true; | 468 resourceless_software_draw = true; |
| 469 viewport = gfx::ScaleToEnclosingRect(viewport, 2); | 469 viewport = gfx::ScaleToEnclosingRect(viewport, 2); |
| 470 transform.Translate(1.f, 1.f); | 470 transform.Translate(1.f, 1.f); |
| 471 active_layer_->draw_properties().visible_content_rect = viewport; | 471 active_layer_->draw_properties().visible_content_rect = viewport; |
| 472 active_layer_->draw_properties().screen_space_transform = transform; | 472 active_layer_->draw_properties().screen_space_transform = transform; |
| 473 host_impl_.SetExternalDrawConstraints(transform, | 473 host_impl_.SetExternalDrawConstraints(transform, |
| 474 viewport, | 474 viewport, |
| 475 viewport, | 475 viewport, |
| 476 viewport, | 476 viewport, |
| 477 transform, | 477 transform, |
| 478 resourceless_software_draw); | 478 resourceless_software_draw); |
| 479 active_layer_->UpdateTiles(NULL); | 479 active_layer_->UpdateTiles(NULL); |
| 480 | 480 |
| 481 visible_rect_for_tile_priority = |
| 482 gfx::ScaleToEnclosingRect(visible_rect_for_tile_priority, 2); |
| 483 viewport_rect_for_tile_priority = |
| 484 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority, 2); |
| 485 screen_space_transform_for_tile_priority = transform; |
| 481 EXPECT_RECT_EQ(visible_rect_for_tile_priority, | 486 EXPECT_RECT_EQ(visible_rect_for_tile_priority, |
| 482 active_layer_->visible_rect_for_tile_priority()); | 487 active_layer_->visible_rect_for_tile_priority()); |
| 483 EXPECT_RECT_EQ(viewport_rect_for_tile_priority, | 488 EXPECT_RECT_EQ(viewport_rect_for_tile_priority, |
| 484 active_layer_->viewport_rect_for_tile_priority()); | 489 active_layer_->viewport_rect_for_tile_priority()); |
| 485 EXPECT_TRANSFORMATION_MATRIX_EQ( | 490 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 486 screen_space_transform_for_tile_priority, | 491 screen_space_transform_for_tile_priority, |
| 487 active_layer_->screen_space_transform_for_tile_priority()); | 492 active_layer_->screen_space_transform_for_tile_priority()); |
| 488 | |
| 489 // Keep expanded viewport but mark it valid. Should update tile viewport. | |
| 490 time_ticks += base::TimeDelta::FromMilliseconds(200); | |
| 491 host_impl_.SetCurrentBeginFrameArgs( | |
| 492 CreateBeginFrameArgsForTesting(time_ticks)); | |
| 493 resourceless_software_draw = false; | |
| 494 host_impl_.SetExternalDrawConstraints(transform, | |
| 495 viewport, | |
| 496 viewport, | |
| 497 viewport, | |
| 498 transform, | |
| 499 resourceless_software_draw); | |
| 500 active_layer_->UpdateTiles(NULL); | |
| 501 | |
| 502 EXPECT_FALSE(visible_rect_for_tile_priority == | |
| 503 active_layer_->visible_rect_for_tile_priority()); | |
| 504 EXPECT_FALSE(viewport_rect_for_tile_priority == | |
| 505 active_layer_->viewport_rect_for_tile_priority()); | |
| 506 EXPECT_FALSE(screen_space_transform_for_tile_priority == | |
| 507 active_layer_->screen_space_transform_for_tile_priority()); | |
| 508 } | 493 } |
| 509 | 494 |
| 510 TEST_F(PictureLayerImplTest, InvalidViewportAfterReleaseResources) { | 495 TEST_F(PictureLayerImplTest, InvalidViewportAfterReleaseResources) { |
| 511 gfx::Size tile_size(100, 100); | 496 gfx::Size tile_size(100, 100); |
| 512 gfx::Size layer_bounds(400, 400); | 497 gfx::Size layer_bounds(400, 400); |
| 513 | 498 |
| 514 scoped_refptr<FakePicturePileImpl> pending_pile = | 499 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 515 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 500 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 516 scoped_refptr<FakePicturePileImpl> active_pile = | 501 scoped_refptr<FakePicturePileImpl> active_pile = |
| 517 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 502 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| (...skipping 2518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3036 EXPECT_EQ(active_layer_->HighResTiling()->AllTilesForTesting().size(), 0u); | 3021 EXPECT_EQ(active_layer_->HighResTiling()->AllTilesForTesting().size(), 0u); |
| 3037 | 3022 |
| 3038 // Since the active layer has no tiles at all, the pending layer doesn't | 3023 // Since the active layer has no tiles at all, the pending layer doesn't |
| 3039 // need content in order to activate. | 3024 // need content in order to activate. |
| 3040 pending_layer_->MarkVisibleResourcesAsRequired(); | 3025 pending_layer_->MarkVisibleResourcesAsRequired(); |
| 3041 AssertNoTilesRequired(pending_layer_->HighResTiling()); | 3026 AssertNoTilesRequired(pending_layer_->HighResTiling()); |
| 3042 if (host_impl_.settings().create_low_res_tiling) | 3027 if (host_impl_.settings().create_low_res_tiling) |
| 3043 AssertNoTilesRequired(pending_layer_->LowResTiling()); | 3028 AssertNoTilesRequired(pending_layer_->LowResTiling()); |
| 3044 } | 3029 } |
| 3045 | 3030 |
| 3046 TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) { | 3031 TEST_F(NoLowResPictureLayerImplTest, |
| 3032 ResourcelessSoftwareDrawHasValidViewportForTilePriority) { |
| 3047 base::TimeTicks time_ticks; | 3033 base::TimeTicks time_ticks; |
| 3048 time_ticks += base::TimeDelta::FromMilliseconds(1); | 3034 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 3049 host_impl_.SetCurrentBeginFrameArgs( | 3035 host_impl_.SetCurrentBeginFrameArgs( |
| 3050 CreateBeginFrameArgsForTesting(time_ticks)); | 3036 CreateBeginFrameArgsForTesting(time_ticks)); |
| 3051 | 3037 |
| 3052 gfx::Size tile_size(100, 100); | 3038 gfx::Size tile_size(100, 100); |
| 3053 gfx::Size layer_bounds(400, 400); | 3039 gfx::Size layer_bounds(400, 400); |
| 3054 | 3040 |
| 3055 scoped_refptr<FakePicturePileImpl> pending_pile = | 3041 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 3056 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 3042 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 3057 scoped_refptr<FakePicturePileImpl> active_pile = | 3043 scoped_refptr<FakePicturePileImpl> active_pile = |
| 3058 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 3044 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 3059 | 3045 |
| 3060 SetupTrees(pending_pile, active_pile); | 3046 SetupTrees(pending_pile, active_pile); |
| 3061 | 3047 |
| 3062 Region invalidation; | 3048 Region invalidation; |
| 3063 AddDefaultTilingsWithInvalidation(invalidation); | 3049 AddDefaultTilingsWithInvalidation(invalidation); |
| 3064 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); | 3050 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); |
| 3065 | 3051 |
| 3066 // UpdateTiles with valid viewport. Should update tile viewport. | 3052 // UpdateTiles with valid viewport. Should update tile viewport. |
| 3067 // Note viewport is considered invalid if and only if in resourceless | |
| 3068 // software draw. | |
| 3069 bool resourceless_software_draw = false; | 3053 bool resourceless_software_draw = false; |
| 3070 gfx::Rect viewport = gfx::Rect(layer_bounds); | 3054 gfx::Rect viewport = gfx::Rect(layer_bounds); |
| 3071 gfx::Transform transform; | 3055 gfx::Transform transform; |
| 3072 host_impl_.SetExternalDrawConstraints(transform, | 3056 host_impl_.SetExternalDrawConstraints(transform, |
| 3073 viewport, | 3057 viewport, |
| 3074 viewport, | 3058 viewport, |
| 3075 viewport, | 3059 viewport, |
| 3076 transform, | 3060 transform, |
| 3077 resourceless_software_draw); | 3061 resourceless_software_draw); |
| 3078 active_layer_->draw_properties().visible_content_rect = viewport; | 3062 active_layer_->draw_properties().visible_content_rect = viewport; |
| 3079 active_layer_->draw_properties().screen_space_transform = transform; | 3063 active_layer_->draw_properties().screen_space_transform = transform; |
| 3080 active_layer_->UpdateTiles(NULL); | 3064 active_layer_->UpdateTiles(NULL); |
| 3081 | 3065 |
| 3082 gfx::Rect visible_rect_for_tile_priority = | 3066 gfx::Rect visible_rect_for_tile_priority = |
| 3083 active_layer_->visible_rect_for_tile_priority(); | 3067 active_layer_->visible_rect_for_tile_priority(); |
| 3084 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); | 3068 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); |
| 3085 gfx::Rect viewport_rect_for_tile_priority = | 3069 gfx::Rect viewport_rect_for_tile_priority = |
| 3086 active_layer_->viewport_rect_for_tile_priority(); | 3070 active_layer_->viewport_rect_for_tile_priority(); |
| 3087 EXPECT_FALSE(viewport_rect_for_tile_priority.IsEmpty()); | 3071 EXPECT_FALSE(viewport_rect_for_tile_priority.IsEmpty()); |
| 3088 gfx::Transform screen_space_transform_for_tile_priority = | 3072 gfx::Transform screen_space_transform_for_tile_priority = |
| 3089 active_layer_->screen_space_transform_for_tile_priority(); | 3073 active_layer_->screen_space_transform_for_tile_priority(); |
| 3090 | 3074 |
| 3091 // Expand viewport and set it as invalid for prioritizing tiles. | 3075 // PictureLayerImpl does not make a special case for |
| 3092 // Should not update tile viewport. | 3076 // resource_less_software_draw, so the tile viewport and matrix should be |
| 3077 // respeced. |
| 3093 time_ticks += base::TimeDelta::FromMilliseconds(200); | 3078 time_ticks += base::TimeDelta::FromMilliseconds(200); |
| 3094 host_impl_.SetCurrentBeginFrameArgs( | 3079 host_impl_.SetCurrentBeginFrameArgs( |
| 3095 CreateBeginFrameArgsForTesting(time_ticks)); | 3080 CreateBeginFrameArgsForTesting(time_ticks)); |
| 3096 resourceless_software_draw = true; | 3081 resourceless_software_draw = true; |
| 3097 viewport = gfx::ScaleToEnclosingRect(viewport, 2); | 3082 viewport = gfx::ScaleToEnclosingRect(viewport, 2); |
| 3098 transform.Translate(1.f, 1.f); | 3083 transform.Translate(1.f, 1.f); |
| 3099 active_layer_->draw_properties().visible_content_rect = viewport; | 3084 active_layer_->draw_properties().visible_content_rect = viewport; |
| 3100 active_layer_->draw_properties().screen_space_transform = transform; | 3085 active_layer_->draw_properties().screen_space_transform = transform; |
| 3101 host_impl_.SetExternalDrawConstraints(transform, | 3086 host_impl_.SetExternalDrawConstraints(transform, |
| 3102 viewport, | 3087 viewport, |
| 3103 viewport, | 3088 viewport, |
| 3104 viewport, | 3089 viewport, |
| 3105 transform, | 3090 transform, |
| 3106 resourceless_software_draw); | 3091 resourceless_software_draw); |
| 3107 active_layer_->UpdateTiles(NULL); | 3092 active_layer_->UpdateTiles(NULL); |
| 3108 | 3093 |
| 3094 visible_rect_for_tile_priority = |
| 3095 gfx::ScaleToEnclosingRect(visible_rect_for_tile_priority, 2); |
| 3096 viewport_rect_for_tile_priority = |
| 3097 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority, 2); |
| 3098 screen_space_transform_for_tile_priority = transform; |
| 3099 |
| 3109 EXPECT_RECT_EQ(visible_rect_for_tile_priority, | 3100 EXPECT_RECT_EQ(visible_rect_for_tile_priority, |
| 3110 active_layer_->visible_rect_for_tile_priority()); | 3101 active_layer_->visible_rect_for_tile_priority()); |
| 3111 EXPECT_RECT_EQ(viewport_rect_for_tile_priority, | 3102 EXPECT_RECT_EQ(viewport_rect_for_tile_priority, |
| 3112 active_layer_->viewport_rect_for_tile_priority()); | 3103 active_layer_->viewport_rect_for_tile_priority()); |
| 3113 EXPECT_TRANSFORMATION_MATRIX_EQ( | 3104 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 3114 screen_space_transform_for_tile_priority, | 3105 screen_space_transform_for_tile_priority, |
| 3115 active_layer_->screen_space_transform_for_tile_priority()); | 3106 active_layer_->screen_space_transform_for_tile_priority()); |
| 3116 | |
| 3117 // Keep expanded viewport but mark it valid. Should update tile viewport. | |
| 3118 time_ticks += base::TimeDelta::FromMilliseconds(200); | |
| 3119 host_impl_.SetCurrentBeginFrameArgs( | |
| 3120 CreateBeginFrameArgsForTesting(time_ticks)); | |
| 3121 resourceless_software_draw = false; | |
| 3122 host_impl_.SetExternalDrawConstraints(transform, | |
| 3123 viewport, | |
| 3124 viewport, | |
| 3125 viewport, | |
| 3126 transform, | |
| 3127 resourceless_software_draw); | |
| 3128 active_layer_->UpdateTiles(NULL); | |
| 3129 | |
| 3130 EXPECT_FALSE(visible_rect_for_tile_priority == | |
| 3131 active_layer_->visible_rect_for_tile_priority()); | |
| 3132 EXPECT_FALSE(viewport_rect_for_tile_priority == | |
| 3133 active_layer_->viewport_rect_for_tile_priority()); | |
| 3134 EXPECT_FALSE(screen_space_transform_for_tile_priority == | |
| 3135 active_layer_->screen_space_transform_for_tile_priority()); | |
| 3136 } | 3107 } |
| 3137 | 3108 |
| 3138 TEST_F(NoLowResPictureLayerImplTest, InvalidViewportAfterReleaseResources) { | 3109 TEST_F(NoLowResPictureLayerImplTest, InvalidViewportAfterReleaseResources) { |
| 3139 gfx::Size tile_size(100, 100); | 3110 gfx::Size tile_size(100, 100); |
| 3140 gfx::Size layer_bounds(400, 400); | 3111 gfx::Size layer_bounds(400, 400); |
| 3141 | 3112 |
| 3142 scoped_refptr<FakePicturePileImpl> pending_pile = | 3113 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 3143 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 3114 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 3144 scoped_refptr<FakePicturePileImpl> active_pile = | 3115 scoped_refptr<FakePicturePileImpl> active_pile = |
| 3145 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 3116 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| (...skipping 1026 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4172 ActivateTree(); | 4143 ActivateTree(); |
| 4173 EXPECT_TRUE(active_layer_->GetRecycledTwinLayer()); | 4144 EXPECT_TRUE(active_layer_->GetRecycledTwinLayer()); |
| 4174 EXPECT_EQ(old_pending_layer_, active_layer_->GetRecycledTwinLayer()); | 4145 EXPECT_EQ(old_pending_layer_, active_layer_->GetRecycledTwinLayer()); |
| 4175 | 4146 |
| 4176 host_impl_.ResetRecycleTreeForTesting(); | 4147 host_impl_.ResetRecycleTreeForTesting(); |
| 4177 EXPECT_FALSE(active_layer_->GetRecycledTwinLayer()); | 4148 EXPECT_FALSE(active_layer_->GetRecycledTwinLayer()); |
| 4178 } | 4149 } |
| 4179 | 4150 |
| 4180 } // namespace | 4151 } // namespace |
| 4181 } // namespace cc | 4152 } // namespace cc |
| OLD | NEW |