| 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/trees/layer_tree_host.h" | 5 #include "cc/trees/layer_tree_host.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 345 case 2: | 345 case 2: |
| 346 EXPECT_TRUE(delegated_impl->ChildId()); | 346 EXPECT_TRUE(delegated_impl->ChildId()); |
| 347 EXPECT_FALSE(did_reset_child_id_); | 347 EXPECT_FALSE(did_reset_child_id_); |
| 348 | 348 |
| 349 context_provider->ContextGL()->LoseContextCHROMIUM( | 349 context_provider->ContextGL()->LoseContextCHROMIUM( |
| 350 GL_GUILTY_CONTEXT_RESET_ARB, | 350 GL_GUILTY_CONTEXT_RESET_ARB, |
| 351 GL_INNOCENT_CONTEXT_RESET_ARB); | 351 GL_INNOCENT_CONTEXT_RESET_ARB); |
| 352 context_provider->ContextGL()->Flush(); | 352 context_provider->ContextGL()->Flush(); |
| 353 break; | 353 break; |
| 354 case 3: | 354 case 3: |
| 355 EXPECT_TRUE(delegated_impl->ChildId()); | 355 if (HasImplThread()) |
| 356 EXPECT_TRUE(did_reset_child_id_); | 356 CheckForChildResetAndEnd(delegated_impl); |
| 357 EndTest(); | 357 break; |
| 358 case 4: |
| 359 if (!HasImplThread()) |
| 360 CheckForChildResetAndEnd(delegated_impl); |
| 358 break; | 361 break; |
| 359 } | 362 } |
| 360 } | 363 } |
| 361 | 364 |
| 365 void CheckForChildResetAndEnd( |
| 366 FakeDelegatedRendererLayerImpl* delegated_impl) { |
| 367 EXPECT_TRUE(delegated_impl->ChildId()); |
| 368 EXPECT_TRUE(did_reset_child_id_); |
| 369 EndTest(); |
| 370 } |
| 371 |
| 362 virtual void InitializedRendererOnThread(LayerTreeHostImpl* host_impl, | 372 virtual void InitializedRendererOnThread(LayerTreeHostImpl* host_impl, |
| 363 bool success) OVERRIDE { | 373 bool success) OVERRIDE { |
| 364 EXPECT_TRUE(success); | 374 EXPECT_TRUE(success); |
| 365 | 375 |
| 366 if (num_activates_ < 2) | 376 if (num_activates_ < 2) |
| 367 return; | 377 return; |
| 368 | 378 |
| 369 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); | 379 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); |
| 370 FakeDelegatedRendererLayerImpl* delegated_impl = | 380 FakeDelegatedRendererLayerImpl* delegated_impl = |
| 371 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); | 381 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); |
| 372 | 382 |
| 373 EXPECT_EQ(2, num_activates_); | 383 // The single thread proxy notifies the layer tree host of surface loss |
| 384 // after the commit is complete. So the commit number is 1 more than in the |
| 385 // multithreaded case. |
| 386 if (HasImplThread()) |
| 387 EXPECT_EQ(2, num_activates_); |
| 388 else |
| 389 EXPECT_EQ(3, num_activates_); |
| 374 EXPECT_FALSE(delegated_impl->ChildId()); | 390 EXPECT_FALSE(delegated_impl->ChildId()); |
| 375 did_reset_child_id_ = true; | 391 did_reset_child_id_ = true; |
| 376 } | 392 } |
| 377 | 393 |
| 378 protected: | 394 protected: |
| 379 int num_activates_; | 395 int num_activates_; |
| 380 bool did_reset_child_id_; | 396 bool did_reset_child_id_; |
| 381 }; | 397 }; |
| 382 | 398 |
| 383 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestCreateChildId); | 399 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestCreateChildId); |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 438 bool success) OVERRIDE { | 454 bool success) OVERRIDE { |
| 439 EXPECT_TRUE(success); | 455 EXPECT_TRUE(success); |
| 440 | 456 |
| 441 if (num_activates_ < 2) | 457 if (num_activates_ < 2) |
| 442 return; | 458 return; |
| 443 | 459 |
| 444 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); | 460 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); |
| 445 FakeDelegatedRendererLayerImpl* delegated_impl = | 461 FakeDelegatedRendererLayerImpl* delegated_impl = |
| 446 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); | 462 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); |
| 447 | 463 |
| 448 EXPECT_EQ(2, num_activates_); | 464 // The single thread proxy notifies the layer tree host of surface loss |
| 465 // after the commit is complete. So the commit number is 1 more than in the |
| 466 // multithreaded case. |
| 467 if (HasImplThread()) |
| 468 EXPECT_EQ(2, num_activates_); |
| 469 else |
| 470 EXPECT_EQ(3, num_activates_); |
| 449 // Resources should have gotten cleared after the context was lost. | 471 // Resources should have gotten cleared after the context was lost. |
| 450 EXPECT_EQ(0U, delegated_impl->Resources().size()); | 472 EXPECT_EQ(0U, delegated_impl->Resources().size()); |
| 451 } | 473 } |
| 452 | 474 |
| 453 virtual void AfterTest() OVERRIDE { | 475 virtual void AfterTest() OVERRIDE { |
| 454 LayerTreeHostDelegatedTestCaseSingleDelegatedLayer::AfterTest(); | 476 LayerTreeHostDelegatedTestCaseSingleDelegatedLayer::AfterTest(); |
| 455 EXPECT_EQ(2, num_output_surfaces_initialized_); | 477 EXPECT_EQ(2, num_output_surfaces_initialized_); |
| 456 } | 478 } |
| 457 | 479 |
| 458 protected: | 480 protected: |
| (...skipping 1733 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2192 } | 2214 } |
| 2193 | 2215 |
| 2194 scoped_refptr<DelegatedRendererLayer> delegated_thief_; | 2216 scoped_refptr<DelegatedRendererLayer> delegated_thief_; |
| 2195 }; | 2217 }; |
| 2196 | 2218 |
| 2197 SINGLE_AND_MULTI_THREAD_TEST_F( | 2219 SINGLE_AND_MULTI_THREAD_TEST_F( |
| 2198 LayerTreeHostDelegatedTestRemoveAndChangeResources); | 2220 LayerTreeHostDelegatedTestRemoveAndChangeResources); |
| 2199 | 2221 |
| 2200 } // namespace | 2222 } // namespace |
| 2201 } // namespace cc | 2223 } // namespace cc |
| OLD | NEW |