Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(155)

Side by Side Diff: cc/trees/layer_tree_host_unittest_delegated.cc

Issue 645853008: Standardize usage of virtual/override/final in cc/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Formatted Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 class LayerTreeHostDelegatedTestCaseSingleDelegatedLayer 245 class LayerTreeHostDelegatedTestCaseSingleDelegatedLayer
246 : public LayerTreeHostDelegatedTest, 246 : public LayerTreeHostDelegatedTest,
247 public DelegatedFrameResourceCollectionClient { 247 public DelegatedFrameResourceCollectionClient {
248 public: 248 public:
249 LayerTreeHostDelegatedTestCaseSingleDelegatedLayer() 249 LayerTreeHostDelegatedTestCaseSingleDelegatedLayer()
250 : resource_collection_(new DelegatedFrameResourceCollection), 250 : resource_collection_(new DelegatedFrameResourceCollection),
251 available_(false) { 251 available_(false) {
252 resource_collection_->SetClient(this); 252 resource_collection_->SetClient(this);
253 } 253 }
254 254
255 virtual void SetupTree() override { 255 void SetupTree() override {
256 root_ = Layer::Create(); 256 root_ = Layer::Create();
257 root_->SetBounds(gfx::Size(15, 15)); 257 root_->SetBounds(gfx::Size(15, 15));
258 258
259 layer_tree_host()->SetRootLayer(root_); 259 layer_tree_host()->SetRootLayer(root_);
260 LayerTreeHostDelegatedTest::SetupTree(); 260 LayerTreeHostDelegatedTest::SetupTree();
261 } 261 }
262 262
263 virtual void BeginTest() override { 263 void BeginTest() override {
264 resource_collection_->SetClient(this); 264 resource_collection_->SetClient(this);
265 PostSetNeedsCommitToMainThread(); 265 PostSetNeedsCommitToMainThread();
266 } 266 }
267 267
268 void SetFrameData(scoped_ptr<DelegatedFrameData> frame_data) { 268 void SetFrameData(scoped_ptr<DelegatedFrameData> frame_data) {
269 RenderPass* root_pass = frame_data->render_pass_list.back(); 269 RenderPass* root_pass = frame_data->render_pass_list.back();
270 gfx::Size frame_size = root_pass->output_rect.size(); 270 gfx::Size frame_size = root_pass->output_rect.size();
271 271
272 if (frame_provider_.get() && frame_size == frame_provider_->frame_size()) { 272 if (frame_provider_.get() && frame_size == frame_provider_->frame_size()) {
273 frame_provider_->SetFrameData(frame_data.Pass()); 273 frame_provider_->SetFrameData(frame_data.Pass());
(...skipping 16 matching lines...) Expand all
290 DelegatedFrameProvider* frame_provider) { 290 DelegatedFrameProvider* frame_provider) {
291 scoped_refptr<DelegatedRendererLayer> delegated = 291 scoped_refptr<DelegatedRendererLayer> delegated =
292 FakeDelegatedRendererLayer::Create(frame_provider); 292 FakeDelegatedRendererLayer::Create(frame_provider);
293 delegated->SetBounds(gfx::Size(10, 10)); 293 delegated->SetBounds(gfx::Size(10, 10));
294 delegated->SetIsDrawable(true); 294 delegated->SetIsDrawable(true);
295 295
296 root_->AddChild(delegated); 296 root_->AddChild(delegated);
297 return delegated; 297 return delegated;
298 } 298 }
299 299
300 virtual void AfterTest() override { resource_collection_->SetClient(NULL); } 300 void AfterTest() override { resource_collection_->SetClient(NULL); }
301 301
302 // DelegatedFrameProviderClient implementation. 302 // DelegatedFrameProviderClient implementation.
303 virtual void UnusedResourcesAreAvailable() override { available_ = true; } 303 void UnusedResourcesAreAvailable() override { available_ = true; }
304 304
305 bool TestAndResetAvailable() { 305 bool TestAndResetAvailable() {
306 bool available = available_; 306 bool available = available_;
307 available_ = false; 307 available_ = false;
308 return available; 308 return available;
309 } 309 }
310 310
311 protected: 311 protected:
312 scoped_refptr<DelegatedFrameResourceCollection> resource_collection_; 312 scoped_refptr<DelegatedFrameResourceCollection> resource_collection_;
313 scoped_refptr<DelegatedFrameProvider> frame_provider_; 313 scoped_refptr<DelegatedFrameProvider> frame_provider_;
314 scoped_refptr<Layer> root_; 314 scoped_refptr<Layer> root_;
315 scoped_refptr<DelegatedRendererLayer> delegated_; 315 scoped_refptr<DelegatedRendererLayer> delegated_;
316 bool available_; 316 bool available_;
317 }; 317 };
318 318
319 class LayerTreeHostDelegatedTestCreateChildId 319 class LayerTreeHostDelegatedTestCreateChildId
320 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 320 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
321 public: 321 public:
322 LayerTreeHostDelegatedTestCreateChildId() 322 LayerTreeHostDelegatedTestCreateChildId()
323 : LayerTreeHostDelegatedTestCaseSingleDelegatedLayer(), 323 : LayerTreeHostDelegatedTestCaseSingleDelegatedLayer(),
324 num_activates_(0), 324 num_activates_(0),
325 did_reset_child_id_(false) {} 325 did_reset_child_id_(false) {}
326 326
327 virtual void DidCommit() override { 327 void DidCommit() override {
328 if (TestEnded()) 328 if (TestEnded())
329 return; 329 return;
330 SetFrameData(CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1))); 330 SetFrameData(CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)));
331 } 331 }
332 332
333 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { 333 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override {
334 if (host_impl->active_tree()->source_frame_number() < 1) 334 if (host_impl->active_tree()->source_frame_number() < 1)
335 return; 335 return;
336 336
337 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); 337 LayerImpl* root_impl = host_impl->active_tree()->root_layer();
338 FakeDelegatedRendererLayerImpl* delegated_impl = 338 FakeDelegatedRendererLayerImpl* delegated_impl =
339 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); 339 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]);
340 340
341 TestContextProvider* context_provider = static_cast<TestContextProvider*>( 341 TestContextProvider* context_provider = static_cast<TestContextProvider*>(
342 host_impl->output_surface()->context_provider()); 342 host_impl->output_surface()->context_provider());
343 343
344 ++num_activates_; 344 ++num_activates_;
345 switch (num_activates_) { 345 switch (num_activates_) {
346 case 2: 346 case 2:
347 EXPECT_TRUE(delegated_impl->ChildId()); 347 EXPECT_TRUE(delegated_impl->ChildId());
348 EXPECT_FALSE(did_reset_child_id_); 348 EXPECT_FALSE(did_reset_child_id_);
349 349
350 context_provider->ContextGL()->LoseContextCHROMIUM( 350 context_provider->ContextGL()->LoseContextCHROMIUM(
351 GL_GUILTY_CONTEXT_RESET_ARB, 351 GL_GUILTY_CONTEXT_RESET_ARB,
352 GL_INNOCENT_CONTEXT_RESET_ARB); 352 GL_INNOCENT_CONTEXT_RESET_ARB);
353 context_provider->ContextGL()->Flush(); 353 context_provider->ContextGL()->Flush();
354 break; 354 break;
355 case 3: 355 case 3:
356 EXPECT_TRUE(delegated_impl->ChildId()); 356 EXPECT_TRUE(delegated_impl->ChildId());
357 EXPECT_TRUE(did_reset_child_id_); 357 EXPECT_TRUE(did_reset_child_id_);
358 EndTest(); 358 EndTest();
359 break; 359 break;
360 } 360 }
361 } 361 }
362 362
363 virtual void InitializedRendererOnThread(LayerTreeHostImpl* host_impl, 363 void InitializedRendererOnThread(LayerTreeHostImpl* host_impl,
364 bool success) override { 364 bool success) override {
365 EXPECT_TRUE(success); 365 EXPECT_TRUE(success);
366 366
367 if (num_activates_ < 2) 367 if (num_activates_ < 2)
368 return; 368 return;
369 369
370 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); 370 LayerImpl* root_impl = host_impl->active_tree()->root_layer();
371 FakeDelegatedRendererLayerImpl* delegated_impl = 371 FakeDelegatedRendererLayerImpl* delegated_impl =
372 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); 372 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]);
373 373
374 EXPECT_EQ(2, num_activates_); 374 EXPECT_EQ(2, num_activates_);
(...skipping 10 matching lines...) Expand all
385 385
386 // Test that we can gracefully handle invalid frames after the context was lost. 386 // Test that we can gracefully handle invalid frames after the context was lost.
387 // For example, we might be trying to use the previous frame in that case and 387 // For example, we might be trying to use the previous frame in that case and
388 // have to make sure we don't crash because our resource accounting goes wrong. 388 // have to make sure we don't crash because our resource accounting goes wrong.
389 class LayerTreeHostDelegatedTestInvalidFrameAfterContextLost 389 class LayerTreeHostDelegatedTestInvalidFrameAfterContextLost
390 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 390 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
391 public: 391 public:
392 LayerTreeHostDelegatedTestInvalidFrameAfterContextLost() 392 LayerTreeHostDelegatedTestInvalidFrameAfterContextLost()
393 : num_activates_(0), num_output_surfaces_initialized_(0) {} 393 : num_activates_(0), num_output_surfaces_initialized_(0) {}
394 394
395 virtual void DidCommit() override { 395 void DidCommit() override {
396 if (TestEnded()) 396 if (TestEnded())
397 return; 397 return;
398 scoped_ptr<DelegatedFrameData> frame1 = 398 scoped_ptr<DelegatedFrameData> frame1 =
399 CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 399 CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
400 AddTextureQuad(frame1.get(), 999); 400 AddTextureQuad(frame1.get(), 999);
401 AddTransferableResource(frame1.get(), 999); 401 AddTransferableResource(frame1.get(), 999);
402 SetFrameData(frame1.Pass()); 402 SetFrameData(frame1.Pass());
403 } 403 }
404 404
405 virtual void DidInitializeOutputSurface() override { 405 void DidInitializeOutputSurface() override {
406 if (!num_output_surfaces_initialized_++) 406 if (!num_output_surfaces_initialized_++)
407 return; 407 return;
408 408
409 scoped_refptr<DelegatedRendererLayer> old_delegated = delegated_; 409 scoped_refptr<DelegatedRendererLayer> old_delegated = delegated_;
410 SetFrameData( 410 SetFrameData(
411 CreateInvalidFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1))); 411 CreateInvalidFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)));
412 // Make sure we end up using the same layer, or we won't test the right 412 // Make sure we end up using the same layer, or we won't test the right
413 // thing, which is to make sure we can handle an invalid frame when using 413 // thing, which is to make sure we can handle an invalid frame when using
414 // a stale layer from before the context was lost. 414 // a stale layer from before the context was lost.
415 DCHECK(delegated_.get() == old_delegated.get()); 415 DCHECK(delegated_.get() == old_delegated.get());
416 } 416 }
417 417
418 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { 418 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override {
419 if (host_impl->active_tree()->source_frame_number() < 1) 419 if (host_impl->active_tree()->source_frame_number() < 1)
420 return; 420 return;
421 421
422 TestContextProvider* context_provider = static_cast<TestContextProvider*>( 422 TestContextProvider* context_provider = static_cast<TestContextProvider*>(
423 host_impl->output_surface()->context_provider()); 423 host_impl->output_surface()->context_provider());
424 424
425 ++num_activates_; 425 ++num_activates_;
426 switch (num_activates_) { 426 switch (num_activates_) {
427 case 2: 427 case 2:
428 context_provider->ContextGL()->LoseContextCHROMIUM( 428 context_provider->ContextGL()->LoseContextCHROMIUM(
429 GL_GUILTY_CONTEXT_RESET_ARB, 429 GL_GUILTY_CONTEXT_RESET_ARB,
430 GL_INNOCENT_CONTEXT_RESET_ARB); 430 GL_INNOCENT_CONTEXT_RESET_ARB);
431 break; 431 break;
432 case 3: 432 case 3:
433 EndTest(); 433 EndTest();
434 break; 434 break;
435 } 435 }
436 } 436 }
437 437
438 virtual void InitializedRendererOnThread(LayerTreeHostImpl* host_impl, 438 void InitializedRendererOnThread(LayerTreeHostImpl* host_impl,
439 bool success) override { 439 bool success) override {
440 EXPECT_TRUE(success); 440 EXPECT_TRUE(success);
441 441
442 if (num_activates_ < 2) 442 if (num_activates_ < 2)
443 return; 443 return;
444 444
445 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); 445 LayerImpl* root_impl = host_impl->active_tree()->root_layer();
446 FakeDelegatedRendererLayerImpl* delegated_impl = 446 FakeDelegatedRendererLayerImpl* delegated_impl =
447 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); 447 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]);
448 448
449 EXPECT_EQ(2, num_activates_); 449 EXPECT_EQ(2, num_activates_);
450 // Resources should have gotten cleared after the context was lost. 450 // Resources should have gotten cleared after the context was lost.
451 EXPECT_EQ(0U, delegated_impl->Resources().size()); 451 EXPECT_EQ(0U, delegated_impl->Resources().size());
452 } 452 }
453 453
454 virtual void AfterTest() override { 454 void AfterTest() override {
455 LayerTreeHostDelegatedTestCaseSingleDelegatedLayer::AfterTest(); 455 LayerTreeHostDelegatedTestCaseSingleDelegatedLayer::AfterTest();
456 EXPECT_EQ(2, num_output_surfaces_initialized_); 456 EXPECT_EQ(2, num_output_surfaces_initialized_);
457 } 457 }
458 458
459 protected: 459 protected:
460 int num_activates_; 460 int num_activates_;
461 int num_output_surfaces_initialized_; 461 int num_output_surfaces_initialized_;
462 }; 462 };
463 463
464 SINGLE_AND_MULTI_THREAD_TEST_F( 464 SINGLE_AND_MULTI_THREAD_TEST_F(
465 LayerTreeHostDelegatedTestInvalidFrameAfterContextLost); 465 LayerTreeHostDelegatedTestInvalidFrameAfterContextLost);
466 466
467 class LayerTreeHostDelegatedTestLayerUsesFrameDamage 467 class LayerTreeHostDelegatedTestLayerUsesFrameDamage
468 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 468 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
469 public: 469 public:
470 LayerTreeHostDelegatedTestLayerUsesFrameDamage() 470 LayerTreeHostDelegatedTestLayerUsesFrameDamage()
471 : LayerTreeHostDelegatedTestCaseSingleDelegatedLayer(), 471 : LayerTreeHostDelegatedTestCaseSingleDelegatedLayer(),
472 first_draw_for_source_frame_(true) {} 472 first_draw_for_source_frame_(true) {}
473 473
474 virtual void DidCommit() override { 474 void DidCommit() override {
475 int next_source_frame_number = layer_tree_host()->source_frame_number(); 475 int next_source_frame_number = layer_tree_host()->source_frame_number();
476 switch (next_source_frame_number) { 476 switch (next_source_frame_number) {
477 case 1: 477 case 1:
478 // The first time the layer gets a frame the whole layer should be 478 // The first time the layer gets a frame the whole layer should be
479 // damaged. 479 // damaged.
480 SetFrameData( 480 SetFrameData(
481 CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1))); 481 CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)));
482 break; 482 break;
483 case 2: 483 case 2:
484 // A different frame size will damage the whole layer. 484 // A different frame size will damage the whole layer.
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
574 case 18: 574 case 18:
575 // Set another new frame, both layers should be damaged in the same 575 // Set another new frame, both layers should be damaged in the same
576 // ways. 576 // ways.
577 SetFrameData( 577 SetFrameData(
578 CreateFrameData(gfx::Rect(0, 0, 10, 10), gfx::Rect(3, 3, 1, 1))); 578 CreateFrameData(gfx::Rect(0, 0, 10, 10), gfx::Rect(3, 3, 1, 1)));
579 break; 579 break;
580 } 580 }
581 first_draw_for_source_frame_ = true; 581 first_draw_for_source_frame_ = true;
582 } 582 }
583 583
584 virtual DrawResult PrepareToDrawOnThread( 584 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl,
585 LayerTreeHostImpl* host_impl, 585 LayerTreeHostImpl::FrameData* frame,
586 LayerTreeHostImpl::FrameData* frame, 586 DrawResult draw_result) override {
587 DrawResult draw_result) override {
588 EXPECT_EQ(DRAW_SUCCESS, draw_result); 587 EXPECT_EQ(DRAW_SUCCESS, draw_result);
589 588
590 if (!first_draw_for_source_frame_) 589 if (!first_draw_for_source_frame_)
591 return draw_result; 590 return draw_result;
592 591
593 gfx::Rect damage_rect; 592 gfx::Rect damage_rect;
594 if (!frame->has_no_damage) { 593 if (!frame->has_no_damage) {
595 damage_rect = frame->render_passes.back()->damage_rect; 594 damage_rect = frame->render_passes.back()->damage_rect;
596 } else { 595 } else {
597 // If there is no damage, then we have no render passes to send. 596 // If there is no damage, then we have no render passes to send.
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
668 protected: 667 protected:
669 scoped_refptr<DelegatedRendererLayer> delegated_copy_; 668 scoped_refptr<DelegatedRendererLayer> delegated_copy_;
670 bool first_draw_for_source_frame_; 669 bool first_draw_for_source_frame_;
671 }; 670 };
672 671
673 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestLayerUsesFrameDamage); 672 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestLayerUsesFrameDamage);
674 673
675 class LayerTreeHostDelegatedTestMergeResources 674 class LayerTreeHostDelegatedTestMergeResources
676 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 675 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
677 public: 676 public:
678 virtual void BeginTest() override { 677 void BeginTest() override {
679 // Push two frames to the delegated renderer layer with no commit between. 678 // Push two frames to the delegated renderer layer with no commit between.
680 679
681 // The first frame has resource 999. 680 // The first frame has resource 999.
682 scoped_ptr<DelegatedFrameData> frame1 = 681 scoped_ptr<DelegatedFrameData> frame1 =
683 CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 682 CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
684 AddTextureQuad(frame1.get(), 999); 683 AddTextureQuad(frame1.get(), 999);
685 AddTransferableResource(frame1.get(), 999); 684 AddTransferableResource(frame1.get(), 999);
686 SetFrameData(frame1.Pass()); 685 SetFrameData(frame1.Pass());
687 686
688 // The second frame uses resource 999 still, but also adds 555. 687 // The second frame uses resource 999 still, but also adds 555.
(...skipping 12 matching lines...) Expand all
701 &returned_resources); 700 &returned_resources);
702 { 701 {
703 unsigned expected[] = {999}; 702 unsigned expected[] = {999};
704 EXPECT_RESOURCES(expected, returned_resources); 703 EXPECT_RESOURCES(expected, returned_resources);
705 EXPECT_TRUE(TestAndResetAvailable()); 704 EXPECT_TRUE(TestAndResetAvailable());
706 } 705 }
707 706
708 PostSetNeedsCommitToMainThread(); 707 PostSetNeedsCommitToMainThread();
709 } 708 }
710 709
711 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { 710 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override {
712 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); 711 LayerImpl* root_impl = host_impl->active_tree()->root_layer();
713 FakeDelegatedRendererLayerImpl* delegated_impl = 712 FakeDelegatedRendererLayerImpl* delegated_impl =
714 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); 713 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]);
715 714
716 const ResourceProvider::ResourceIdMap& map = 715 const ResourceProvider::ResourceIdMap& map =
717 host_impl->resource_provider()->GetChildToParentMap( 716 host_impl->resource_provider()->GetChildToParentMap(
718 delegated_impl->ChildId()); 717 delegated_impl->ChildId());
719 718
720 // Both frames' resources should be in the parent's resource provider. 719 // Both frames' resources should be in the parent's resource provider.
721 EXPECT_EQ(2u, map.size()); 720 EXPECT_EQ(2u, map.size());
722 EXPECT_EQ(1u, map.count(999)); 721 EXPECT_EQ(1u, map.count(999));
723 EXPECT_EQ(1u, map.count(555)); 722 EXPECT_EQ(1u, map.count(555));
724 723
725 EXPECT_EQ(2u, delegated_impl->Resources().size()); 724 EXPECT_EQ(2u, delegated_impl->Resources().size());
726 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); 725 EXPECT_EQ(1u, delegated_impl->Resources().count(999));
727 EXPECT_EQ(1u, delegated_impl->Resources().count(555)); 726 EXPECT_EQ(1u, delegated_impl->Resources().count(555));
728 727
729 EndTest(); 728 EndTest();
730 } 729 }
731 }; 730 };
732 731
733 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestMergeResources); 732 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestMergeResources);
734 733
735 class LayerTreeHostDelegatedTestRemapResourcesInQuads 734 class LayerTreeHostDelegatedTestRemapResourcesInQuads
736 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 735 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
737 public: 736 public:
738 virtual void BeginTest() override { 737 void BeginTest() override {
739 // Generate a frame with two resources in it. 738 // Generate a frame with two resources in it.
740 scoped_ptr<DelegatedFrameData> frame = 739 scoped_ptr<DelegatedFrameData> frame =
741 CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 740 CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
742 AddTextureQuad(frame.get(), 999); 741 AddTextureQuad(frame.get(), 999);
743 AddTransferableResource(frame.get(), 999); 742 AddTransferableResource(frame.get(), 999);
744 AddTextureQuad(frame.get(), 555); 743 AddTextureQuad(frame.get(), 555);
745 AddTransferableResource(frame.get(), 555); 744 AddTransferableResource(frame.get(), 555);
746 SetFrameData(frame.Pass()); 745 SetFrameData(frame.Pass());
747 746
748 PostSetNeedsCommitToMainThread(); 747 PostSetNeedsCommitToMainThread();
749 } 748 }
750 749
751 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { 750 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override {
752 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); 751 LayerImpl* root_impl = host_impl->active_tree()->root_layer();
753 FakeDelegatedRendererLayerImpl* delegated_impl = 752 FakeDelegatedRendererLayerImpl* delegated_impl =
754 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); 753 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]);
755 754
756 const ResourceProvider::ResourceIdMap& map = 755 const ResourceProvider::ResourceIdMap& map =
757 host_impl->resource_provider()->GetChildToParentMap( 756 host_impl->resource_provider()->GetChildToParentMap(
758 delegated_impl->ChildId()); 757 delegated_impl->ChildId());
759 758
760 // The frame's resource should be in the parent's resource provider. 759 // The frame's resource should be in the parent's resource provider.
761 EXPECT_EQ(2u, map.size()); 760 EXPECT_EQ(2u, map.size());
(...skipping 15 matching lines...) Expand all
777 776
778 EndTest(); 777 EndTest();
779 } 778 }
780 }; 779 };
781 780
782 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestRemapResourcesInQuads); 781 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestRemapResourcesInQuads);
783 782
784 class LayerTreeHostDelegatedTestReturnUnusedResources 783 class LayerTreeHostDelegatedTestReturnUnusedResources
785 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 784 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
786 public: 785 public:
787 virtual void BeginTest() override { 786 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
788 PostSetNeedsCommitToMainThread();
789 }
790 787
791 virtual void DidCommitAndDrawFrame() override { 788 void DidCommitAndDrawFrame() override {
792 scoped_ptr<DelegatedFrameData> frame; 789 scoped_ptr<DelegatedFrameData> frame;
793 ReturnedResourceArray resources; 790 ReturnedResourceArray resources;
794 791
795 int next_source_frame_number = layer_tree_host()->source_frame_number(); 792 int next_source_frame_number = layer_tree_host()->source_frame_number();
796 switch (next_source_frame_number) { 793 switch (next_source_frame_number) {
797 case 1: 794 case 1:
798 // Generate a frame with two resources in it. 795 // Generate a frame with two resources in it.
799 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 796 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
800 AddTextureQuad(frame.get(), 999); 797 AddTextureQuad(frame.get(), 999);
801 AddTransferableResource(frame.get(), 999); 798 AddTransferableResource(frame.get(), 999);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
849 } 846 }
850 847
851 // Resources are never immediately released. 848 // Resources are never immediately released.
852 ReturnedResourceArray empty_resources; 849 ReturnedResourceArray empty_resources;
853 resource_collection_->TakeUnusedResourcesForChildCompositor( 850 resource_collection_->TakeUnusedResourcesForChildCompositor(
854 &empty_resources); 851 &empty_resources);
855 EXPECT_EQ(0u, empty_resources.size()); 852 EXPECT_EQ(0u, empty_resources.size());
856 EXPECT_FALSE(TestAndResetAvailable()); 853 EXPECT_FALSE(TestAndResetAvailable());
857 } 854 }
858 855
859 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, 856 void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override {
860 bool result) override {
861 ReturnUnusedResourcesFromParent(host_impl); 857 ReturnUnusedResourcesFromParent(host_impl);
862 } 858 }
863 }; 859 };
864 860
865 SINGLE_AND_MULTI_THREAD_TEST_F( 861 SINGLE_AND_MULTI_THREAD_TEST_F(
866 LayerTreeHostDelegatedTestReturnUnusedResources); 862 LayerTreeHostDelegatedTestReturnUnusedResources);
867 863
868 class LayerTreeHostDelegatedTestReusedResources 864 class LayerTreeHostDelegatedTestReusedResources
869 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 865 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
870 public: 866 public:
871 virtual void BeginTest() override { 867 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
872 PostSetNeedsCommitToMainThread();
873 }
874 868
875 virtual void DidCommitAndDrawFrame() override { 869 void DidCommitAndDrawFrame() override {
876 scoped_ptr<DelegatedFrameData> frame; 870 scoped_ptr<DelegatedFrameData> frame;
877 ReturnedResourceArray resources; 871 ReturnedResourceArray resources;
878 872
879 int next_source_frame_number = layer_tree_host()->source_frame_number(); 873 int next_source_frame_number = layer_tree_host()->source_frame_number();
880 switch (next_source_frame_number) { 874 switch (next_source_frame_number) {
881 case 1: 875 case 1:
882 // Generate a frame with some resources in it. 876 // Generate a frame with some resources in it.
883 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 877 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
884 AddTextureQuad(frame.get(), 999); 878 AddTextureQuad(frame.get(), 999);
885 AddTransferableResource(frame.get(), 999); 879 AddTransferableResource(frame.get(), 999);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
921 { 915 {
922 unsigned expected[] = {999, 999}; 916 unsigned expected[] = {999, 999};
923 EXPECT_RESOURCES(expected, resources); 917 EXPECT_RESOURCES(expected, resources);
924 EXPECT_TRUE(TestAndResetAvailable()); 918 EXPECT_TRUE(TestAndResetAvailable());
925 } 919 }
926 EndTest(); 920 EndTest();
927 break; 921 break;
928 } 922 }
929 } 923 }
930 924
931 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, 925 void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override {
932 bool result) override {
933 ReturnUnusedResourcesFromParent(host_impl); 926 ReturnUnusedResourcesFromParent(host_impl);
934 } 927 }
935 }; 928 };
936 929
937 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestReusedResources); 930 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestReusedResources);
938 931
939 class LayerTreeHostDelegatedTestFrameBeforeAck 932 class LayerTreeHostDelegatedTestFrameBeforeAck
940 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 933 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
941 public: 934 public:
942 virtual void BeginTest() override { 935 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
943 PostSetNeedsCommitToMainThread();
944 }
945 936
946 virtual void DidCommitAndDrawFrame() override { 937 void DidCommitAndDrawFrame() override {
947 scoped_ptr<DelegatedFrameData> frame; 938 scoped_ptr<DelegatedFrameData> frame;
948 ReturnedResourceArray resources; 939 ReturnedResourceArray resources;
949 940
950 int next_source_frame_number = layer_tree_host()->source_frame_number(); 941 int next_source_frame_number = layer_tree_host()->source_frame_number();
951 switch (next_source_frame_number) { 942 switch (next_source_frame_number) {
952 case 1: 943 case 1:
953 // Generate a frame with some resources in it. 944 // Generate a frame with some resources in it.
954 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 945 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
955 AddTextureQuad(frame.get(), 999); 946 AddTextureQuad(frame.get(), 999);
956 AddTransferableResource(frame.get(), 999); 947 AddTransferableResource(frame.get(), 999);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
991 // frame. 982 // frame.
992 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 983 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
993 AddTextureQuad(frame.get(), 999); 984 AddTextureQuad(frame.get(), 999);
994 AddTextureQuad(frame.get(), 555); 985 AddTextureQuad(frame.get(), 555);
995 AddTextureQuad(frame.get(), 444); 986 AddTextureQuad(frame.get(), 444);
996 SetFrameData(frame.Pass()); 987 SetFrameData(frame.Pass());
997 break; 988 break;
998 } 989 }
999 } 990 }
1000 991
1001 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { 992 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override {
1002 if (host_impl->active_tree()->source_frame_number() != 3) 993 if (host_impl->active_tree()->source_frame_number() != 3)
1003 return; 994 return;
1004 995
1005 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); 996 LayerImpl* root_impl = host_impl->active_tree()->root_layer();
1006 FakeDelegatedRendererLayerImpl* delegated_impl = 997 FakeDelegatedRendererLayerImpl* delegated_impl =
1007 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); 998 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]);
1008 999
1009 const ResourceProvider::ResourceIdMap& map = 1000 const ResourceProvider::ResourceIdMap& map =
1010 host_impl->resource_provider()->GetChildToParentMap( 1001 host_impl->resource_provider()->GetChildToParentMap(
1011 delegated_impl->ChildId()); 1002 delegated_impl->ChildId());
1012 1003
1013 // The bad frame should be dropped. So we should only have one quad (the 1004 // The bad frame should be dropped. So we should only have one quad (the
1014 // one with resource 999) on the impl tree. And only 999 will be present 1005 // one with resource 999) on the impl tree. And only 999 will be present
1015 // in the parent's resource provider. 1006 // in the parent's resource provider.
1016 EXPECT_EQ(1u, map.size()); 1007 EXPECT_EQ(1u, map.size());
1017 EXPECT_EQ(1u, map.count(999)); 1008 EXPECT_EQ(1u, map.count(999));
1018 1009
1019 EXPECT_EQ(1u, delegated_impl->Resources().size()); 1010 EXPECT_EQ(1u, delegated_impl->Resources().size());
1020 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); 1011 EXPECT_EQ(1u, delegated_impl->Resources().count(999));
1021 1012
1022 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; 1013 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0];
1023 EXPECT_EQ(1u, pass->quad_list.size()); 1014 EXPECT_EQ(1u, pass->quad_list.size());
1024 const TextureDrawQuad* quad = 1015 const TextureDrawQuad* quad =
1025 TextureDrawQuad::MaterialCast(pass->quad_list.front()); 1016 TextureDrawQuad::MaterialCast(pass->quad_list.front());
1026 EXPECT_EQ(map.find(999)->second, quad->resource_id); 1017 EXPECT_EQ(map.find(999)->second, quad->resource_id);
1027 1018
1028 EndTest(); 1019 EndTest();
1029 } 1020 }
1030 1021
1031 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, 1022 void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override {
1032 bool result) override {
1033 ReturnUnusedResourcesFromParent(host_impl); 1023 ReturnUnusedResourcesFromParent(host_impl);
1034 } 1024 }
1035 }; 1025 };
1036 1026
1037 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestFrameBeforeAck); 1027 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestFrameBeforeAck);
1038 1028
1039 class LayerTreeHostDelegatedTestFrameBeforeTakeResources 1029 class LayerTreeHostDelegatedTestFrameBeforeTakeResources
1040 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 1030 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
1041 public: 1031 public:
1042 virtual void BeginTest() override { 1032 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
1043 PostSetNeedsCommitToMainThread();
1044 }
1045 1033
1046 virtual void DidCommitAndDrawFrame() override { 1034 void DidCommitAndDrawFrame() override {
1047 scoped_ptr<DelegatedFrameData> frame; 1035 scoped_ptr<DelegatedFrameData> frame;
1048 ReturnedResourceArray resources; 1036 ReturnedResourceArray resources;
1049 1037
1050 int next_source_frame_number = layer_tree_host()->source_frame_number(); 1038 int next_source_frame_number = layer_tree_host()->source_frame_number();
1051 switch (next_source_frame_number) { 1039 switch (next_source_frame_number) {
1052 case 1: 1040 case 1:
1053 // Generate a frame with some resources in it. 1041 // Generate a frame with some resources in it.
1054 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 1042 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
1055 AddTextureQuad(frame.get(), 999); 1043 AddTextureQuad(frame.get(), 999);
1056 AddTransferableResource(frame.get(), 999); 1044 AddTransferableResource(frame.get(), 999);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1103 break; 1091 break;
1104 case 4: 1092 case 4:
1105 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources); 1093 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources);
1106 EXPECT_EQ(0u, resources.size()); 1094 EXPECT_EQ(0u, resources.size());
1107 EXPECT_FALSE(TestAndResetAvailable()); 1095 EXPECT_FALSE(TestAndResetAvailable());
1108 EndTest(); 1096 EndTest();
1109 break; 1097 break;
1110 } 1098 }
1111 } 1099 }
1112 1100
1113 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { 1101 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override {
1114 if (host_impl->active_tree()->source_frame_number() != 3) 1102 if (host_impl->active_tree()->source_frame_number() != 3)
1115 return; 1103 return;
1116 1104
1117 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); 1105 LayerImpl* root_impl = host_impl->active_tree()->root_layer();
1118 FakeDelegatedRendererLayerImpl* delegated_impl = 1106 FakeDelegatedRendererLayerImpl* delegated_impl =
1119 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); 1107 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]);
1120 1108
1121 const ResourceProvider::ResourceIdMap& map = 1109 const ResourceProvider::ResourceIdMap& map =
1122 host_impl->resource_provider()->GetChildToParentMap( 1110 host_impl->resource_provider()->GetChildToParentMap(
1123 delegated_impl->ChildId()); 1111 delegated_impl->ChildId());
(...skipping 16 matching lines...) Expand all
1140 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(0)); 1128 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(0));
1141 EXPECT_EQ(map.find(999)->second, quad1->resource_id); 1129 EXPECT_EQ(map.find(999)->second, quad1->resource_id);
1142 const TextureDrawQuad* quad2 = 1130 const TextureDrawQuad* quad2 =
1143 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(1)); 1131 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(1));
1144 EXPECT_EQ(map.find(555)->second, quad2->resource_id); 1132 EXPECT_EQ(map.find(555)->second, quad2->resource_id);
1145 const TextureDrawQuad* quad3 = 1133 const TextureDrawQuad* quad3 =
1146 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(2)); 1134 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(2));
1147 EXPECT_EQ(map.find(444)->second, quad3->resource_id); 1135 EXPECT_EQ(map.find(444)->second, quad3->resource_id);
1148 } 1136 }
1149 1137
1150 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, 1138 void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override {
1151 bool result) override {
1152 ReturnUnusedResourcesFromParent(host_impl); 1139 ReturnUnusedResourcesFromParent(host_impl);
1153 } 1140 }
1154 }; 1141 };
1155 1142
1156 SINGLE_AND_MULTI_THREAD_TEST_F( 1143 SINGLE_AND_MULTI_THREAD_TEST_F(
1157 LayerTreeHostDelegatedTestFrameBeforeTakeResources); 1144 LayerTreeHostDelegatedTestFrameBeforeTakeResources);
1158 1145
1159 class LayerTreeHostDelegatedTestBadFrame 1146 class LayerTreeHostDelegatedTestBadFrame
1160 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 1147 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
1161 public: 1148 public:
1162 virtual void BeginTest() override { 1149 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
1163 PostSetNeedsCommitToMainThread();
1164 }
1165 1150
1166 virtual void DidCommitAndDrawFrame() override { 1151 void DidCommitAndDrawFrame() override {
1167 scoped_ptr<DelegatedFrameData> frame; 1152 scoped_ptr<DelegatedFrameData> frame;
1168 ReturnedResourceArray resources; 1153 ReturnedResourceArray resources;
1169 1154
1170 int next_source_frame_number = layer_tree_host()->source_frame_number(); 1155 int next_source_frame_number = layer_tree_host()->source_frame_number();
1171 switch (next_source_frame_number) { 1156 switch (next_source_frame_number) {
1172 case 1: 1157 case 1:
1173 // Generate a frame with some resources in it. 1158 // Generate a frame with some resources in it.
1174 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 1159 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
1175 AddTextureQuad(frame.get(), 999); 1160 AddTextureQuad(frame.get(), 999);
1176 AddTransferableResource(frame.get(), 999); 1161 AddTransferableResource(frame.get(), 999);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1223 unsigned expected[] = {555}; 1208 unsigned expected[] = {555};
1224 EXPECT_RESOURCES(expected, resources); 1209 EXPECT_RESOURCES(expected, resources);
1225 EXPECT_TRUE(TestAndResetAvailable()); 1210 EXPECT_TRUE(TestAndResetAvailable());
1226 } 1211 }
1227 1212
1228 EndTest(); 1213 EndTest();
1229 break; 1214 break;
1230 } 1215 }
1231 } 1216 }
1232 1217
1233 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, 1218 void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override {
1234 bool result) override {
1235 if (host_impl->active_tree()->source_frame_number() < 1) 1219 if (host_impl->active_tree()->source_frame_number() < 1)
1236 return; 1220 return;
1237 1221
1238 ReturnUnusedResourcesFromParent(host_impl); 1222 ReturnUnusedResourcesFromParent(host_impl);
1239 1223
1240 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); 1224 LayerImpl* root_impl = host_impl->active_tree()->root_layer();
1241 FakeDelegatedRendererLayerImpl* delegated_impl = 1225 FakeDelegatedRendererLayerImpl* delegated_impl =
1242 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); 1226 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]);
1243 1227
1244 const ResourceProvider::ResourceIdMap& map = 1228 const ResourceProvider::ResourceIdMap& map =
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
1306 } 1290 }
1307 } 1291 }
1308 } 1292 }
1309 }; 1293 };
1310 1294
1311 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestBadFrame); 1295 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestBadFrame);
1312 1296
1313 class LayerTreeHostDelegatedTestUnnamedResource 1297 class LayerTreeHostDelegatedTestUnnamedResource
1314 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 1298 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
1315 public: 1299 public:
1316 virtual void BeginTest() override { 1300 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
1317 PostSetNeedsCommitToMainThread();
1318 }
1319 1301
1320 virtual void DidCommit() override { 1302 void DidCommit() override {
1321 scoped_ptr<DelegatedFrameData> frame; 1303 scoped_ptr<DelegatedFrameData> frame;
1322 ReturnedResourceArray resources; 1304 ReturnedResourceArray resources;
1323 1305
1324 int next_source_frame_number = layer_tree_host()->source_frame_number(); 1306 int next_source_frame_number = layer_tree_host()->source_frame_number();
1325 switch (next_source_frame_number) { 1307 switch (next_source_frame_number) {
1326 case 1: 1308 case 1:
1327 // This frame includes two resources in it, but only uses one. 1309 // This frame includes two resources in it, but only uses one.
1328 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 1310 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
1329 AddTransferableResource(frame.get(), 999); 1311 AddTransferableResource(frame.get(), 999);
1330 AddTextureQuad(frame.get(), 555); 1312 AddTextureQuad(frame.get(), 555);
(...skipping 15 matching lines...) Expand all
1346 unsigned expected[] = {999}; 1328 unsigned expected[] = {999};
1347 EXPECT_RESOURCES(expected, resources); 1329 EXPECT_RESOURCES(expected, resources);
1348 EXPECT_TRUE(TestAndResetAvailable()); 1330 EXPECT_TRUE(TestAndResetAvailable());
1349 } 1331 }
1350 1332
1351 EndTest(); 1333 EndTest();
1352 break; 1334 break;
1353 } 1335 }
1354 } 1336 }
1355 1337
1356 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { 1338 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override {
1357 if (host_impl->active_tree()->source_frame_number() != 1) 1339 if (host_impl->active_tree()->source_frame_number() != 1)
1358 return; 1340 return;
1359 1341
1360 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); 1342 LayerImpl* root_impl = host_impl->active_tree()->root_layer();
1361 FakeDelegatedRendererLayerImpl* delegated_impl = 1343 FakeDelegatedRendererLayerImpl* delegated_impl =
1362 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); 1344 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]);
1363 1345
1364 const ResourceProvider::ResourceIdMap& map = 1346 const ResourceProvider::ResourceIdMap& map =
1365 host_impl->resource_provider()->GetChildToParentMap( 1347 host_impl->resource_provider()->GetChildToParentMap(
1366 delegated_impl->ChildId()); 1348 delegated_impl->ChildId());
1367 1349
1368 // The layer only held on to the resource that was used. 1350 // The layer only held on to the resource that was used.
1369 EXPECT_EQ(1u, map.size()); 1351 EXPECT_EQ(1u, map.size());
1370 EXPECT_EQ(1u, map.count(555)); 1352 EXPECT_EQ(1u, map.count(555));
1371 1353
1372 EXPECT_EQ(1u, delegated_impl->Resources().size()); 1354 EXPECT_EQ(1u, delegated_impl->Resources().size());
1373 EXPECT_EQ(1u, delegated_impl->Resources().count(555)); 1355 EXPECT_EQ(1u, delegated_impl->Resources().count(555));
1374 } 1356 }
1375 }; 1357 };
1376 1358
1377 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestUnnamedResource); 1359 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestUnnamedResource);
1378 1360
1379 class LayerTreeHostDelegatedTestDontLeakResource 1361 class LayerTreeHostDelegatedTestDontLeakResource
1380 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 1362 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
1381 public: 1363 public:
1382 virtual void BeginTest() override { 1364 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
1383 PostSetNeedsCommitToMainThread();
1384 }
1385 1365
1386 virtual void DidCommitAndDrawFrame() override { 1366 void DidCommitAndDrawFrame() override {
1387 scoped_ptr<DelegatedFrameData> frame; 1367 scoped_ptr<DelegatedFrameData> frame;
1388 ReturnedResourceArray resources; 1368 ReturnedResourceArray resources;
1389 1369
1390 int next_source_frame_number = layer_tree_host()->source_frame_number(); 1370 int next_source_frame_number = layer_tree_host()->source_frame_number();
1391 switch (next_source_frame_number) { 1371 switch (next_source_frame_number) {
1392 case 1: 1372 case 1:
1393 // This frame includes two resources in it. 1373 // This frame includes two resources in it.
1394 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 1374 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
1395 AddTextureQuad(frame.get(), 999); 1375 AddTextureQuad(frame.get(), 999);
1396 AddTransferableResource(frame.get(), 999); 1376 AddTransferableResource(frame.get(), 999);
(...skipping 27 matching lines...) Expand all
1424 { 1404 {
1425 unsigned expected[] = {555}; 1405 unsigned expected[] = {555};
1426 EXPECT_RESOURCES(expected, resources); 1406 EXPECT_RESOURCES(expected, resources);
1427 EXPECT_TRUE(TestAndResetAvailable()); 1407 EXPECT_TRUE(TestAndResetAvailable());
1428 } 1408 }
1429 EndTest(); 1409 EndTest();
1430 break; 1410 break;
1431 } 1411 }
1432 } 1412 }
1433 1413
1434 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { 1414 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override {
1435 if (host_impl->active_tree()->source_frame_number() != 1) 1415 if (host_impl->active_tree()->source_frame_number() != 1)
1436 return; 1416 return;
1437 1417
1438 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); 1418 LayerImpl* root_impl = host_impl->active_tree()->root_layer();
1439 FakeDelegatedRendererLayerImpl* delegated_impl = 1419 FakeDelegatedRendererLayerImpl* delegated_impl =
1440 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); 1420 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]);
1441 1421
1442 const ResourceProvider::ResourceIdMap& map = 1422 const ResourceProvider::ResourceIdMap& map =
1443 host_impl->resource_provider()->GetChildToParentMap( 1423 host_impl->resource_provider()->GetChildToParentMap(
1444 delegated_impl->ChildId()); 1424 delegated_impl->ChildId());
1445 1425
1446 // The layer only held on to the resource that was used. 1426 // The layer only held on to the resource that was used.
1447 EXPECT_EQ(1u, map.size()); 1427 EXPECT_EQ(1u, map.size());
1448 EXPECT_EQ(1u, map.count(555)); 1428 EXPECT_EQ(1u, map.count(555));
1449 1429
1450 EXPECT_EQ(1u, delegated_impl->Resources().size()); 1430 EXPECT_EQ(1u, delegated_impl->Resources().size());
1451 EXPECT_EQ(1u, delegated_impl->Resources().count(555)); 1431 EXPECT_EQ(1u, delegated_impl->Resources().count(555));
1452 } 1432 }
1453 1433
1454 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, 1434 void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override {
1455 bool result) override {
1456 ReturnUnusedResourcesFromParent(host_impl); 1435 ReturnUnusedResourcesFromParent(host_impl);
1457 } 1436 }
1458 }; 1437 };
1459 1438
1460 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestDontLeakResource); 1439 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestDontLeakResource);
1461 1440
1462 class LayerTreeHostDelegatedTestResourceSentToParent 1441 class LayerTreeHostDelegatedTestResourceSentToParent
1463 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 1442 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
1464 public: 1443 public:
1465 virtual void DidCommitAndDrawFrame() override { 1444 void DidCommitAndDrawFrame() override {
1466 scoped_ptr<DelegatedFrameData> frame; 1445 scoped_ptr<DelegatedFrameData> frame;
1467 ReturnedResourceArray resources; 1446 ReturnedResourceArray resources;
1468 1447
1469 int next_source_frame_number = layer_tree_host()->source_frame_number(); 1448 int next_source_frame_number = layer_tree_host()->source_frame_number();
1470 switch (next_source_frame_number) { 1449 switch (next_source_frame_number) {
1471 case 1: 1450 case 1:
1472 // This frame includes two resources in it. 1451 // This frame includes two resources in it.
1473 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 1452 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
1474 AddTextureQuad(frame.get(), 999); 1453 AddTextureQuad(frame.get(), 999);
1475 AddTransferableResource(frame.get(), 999); 1454 AddTransferableResource(frame.get(), 999);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1510 const ResourceProvider::ResourceIdMap& map = 1489 const ResourceProvider::ResourceIdMap& map =
1511 host_impl->resource_provider()->GetChildToParentMap( 1490 host_impl->resource_provider()->GetChildToParentMap(
1512 delegated_impl->ChildId()); 1491 delegated_impl->ChildId());
1513 1492
1514 // Receive 999 back from the grandparent. 1493 // Receive 999 back from the grandparent.
1515 CompositorFrameAck ack; 1494 CompositorFrameAck ack;
1516 output_surface()->ReturnResource(map.find(999)->second, &ack); 1495 output_surface()->ReturnResource(map.find(999)->second, &ack);
1517 host_impl->ReclaimResources(&ack); 1496 host_impl->ReclaimResources(&ack);
1518 } 1497 }
1519 1498
1520 virtual void UnusedResourcesAreAvailable() override { 1499 void UnusedResourcesAreAvailable() override {
1521 EXPECT_EQ(3, layer_tree_host()->source_frame_number()); 1500 EXPECT_EQ(3, layer_tree_host()->source_frame_number());
1522 1501
1523 ReturnedResourceArray resources; 1502 ReturnedResourceArray resources;
1524 1503
1525 // 999 was returned from the grandparent and could be released. 1504 // 999 was returned from the grandparent and could be released.
1526 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources); 1505 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources);
1527 { 1506 {
1528 unsigned expected[] = {999}; 1507 unsigned expected[] = {999};
1529 EXPECT_RESOURCES(expected, resources); 1508 EXPECT_RESOURCES(expected, resources);
1530 } 1509 }
1531 1510
1532 EndTest(); 1511 EndTest();
1533 } 1512 }
1534 1513
1535 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { 1514 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override {
1536 if (host_impl->active_tree()->source_frame_number() < 1) 1515 if (host_impl->active_tree()->source_frame_number() < 1)
1537 return; 1516 return;
1538 1517
1539 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); 1518 LayerImpl* root_impl = host_impl->active_tree()->root_layer();
1540 FakeDelegatedRendererLayerImpl* delegated_impl = 1519 FakeDelegatedRendererLayerImpl* delegated_impl =
1541 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); 1520 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]);
1542 1521
1543 const ResourceProvider::ResourceIdMap& map = 1522 const ResourceProvider::ResourceIdMap& map =
1544 host_impl->resource_provider()->GetChildToParentMap( 1523 host_impl->resource_provider()->GetChildToParentMap(
1545 delegated_impl->ChildId()); 1524 delegated_impl->ChildId());
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1586 1565
1587 base::Closure receive_resource_on_thread_; 1566 base::Closure receive_resource_on_thread_;
1588 }; 1567 };
1589 1568
1590 SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_TEST_F( 1569 SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_TEST_F(
1591 LayerTreeHostDelegatedTestResourceSentToParent); 1570 LayerTreeHostDelegatedTestResourceSentToParent);
1592 1571
1593 class LayerTreeHostDelegatedTestCommitWithoutTake 1572 class LayerTreeHostDelegatedTestCommitWithoutTake
1594 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 1573 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
1595 public: 1574 public:
1596 virtual void BeginTest() override { 1575 void BeginTest() override {
1597 // Prevent drawing with resources that are sent to the grandparent. 1576 // Prevent drawing with resources that are sent to the grandparent.
1598 layer_tree_host()->SetViewportSize(gfx::Size()); 1577 layer_tree_host()->SetViewportSize(gfx::Size());
1599 PostSetNeedsCommitToMainThread(); 1578 PostSetNeedsCommitToMainThread();
1600 } 1579 }
1601 1580
1602 virtual void DidCommit() override { 1581 void DidCommit() override {
1603 scoped_ptr<DelegatedFrameData> frame; 1582 scoped_ptr<DelegatedFrameData> frame;
1604 ReturnedResourceArray resources; 1583 ReturnedResourceArray resources;
1605 1584
1606 int next_source_frame_number = layer_tree_host()->source_frame_number(); 1585 int next_source_frame_number = layer_tree_host()->source_frame_number();
1607 switch (next_source_frame_number) { 1586 switch (next_source_frame_number) {
1608 case 1: 1587 case 1:
1609 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 1588 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
1610 AddTextureQuad(frame.get(), 999); 1589 AddTextureQuad(frame.get(), 999);
1611 AddTransferableResource(frame.get(), 999); 1590 AddTransferableResource(frame.get(), 999);
1612 AddTextureQuad(frame.get(), 555); 1591 AddTextureQuad(frame.get(), 555);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1658 unsigned expected[] = {555, 555, 555, 999}; 1637 unsigned expected[] = {555, 555, 555, 999};
1659 EXPECT_RESOURCES(expected, resources); 1638 EXPECT_RESOURCES(expected, resources);
1660 EXPECT_TRUE(TestAndResetAvailable()); 1639 EXPECT_TRUE(TestAndResetAvailable());
1661 } 1640 }
1662 1641
1663 EndTest(); 1642 EndTest();
1664 break; 1643 break;
1665 } 1644 }
1666 } 1645 }
1667 1646
1668 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { 1647 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override {
1669 if (host_impl->active_tree()->source_frame_number() < 1) 1648 if (host_impl->active_tree()->source_frame_number() < 1)
1670 return; 1649 return;
1671 1650
1672 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); 1651 LayerImpl* root_impl = host_impl->active_tree()->root_layer();
1673 FakeDelegatedRendererLayerImpl* delegated_impl = 1652 FakeDelegatedRendererLayerImpl* delegated_impl =
1674 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); 1653 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]);
1675 1654
1676 const ResourceProvider::ResourceIdMap& map = 1655 const ResourceProvider::ResourceIdMap& map =
1677 host_impl->resource_provider()->GetChildToParentMap( 1656 host_impl->resource_provider()->GetChildToParentMap(
1678 delegated_impl->ChildId()); 1657 delegated_impl->ChildId());
(...skipping 29 matching lines...) Expand all
1708 } 1687 }
1709 }; 1688 };
1710 1689
1711 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestCommitWithoutTake); 1690 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestCommitWithoutTake);
1712 1691
1713 class DelegatedFrameIsActivatedDuringCommit 1692 class DelegatedFrameIsActivatedDuringCommit
1714 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 1693 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
1715 protected: 1694 protected:
1716 DelegatedFrameIsActivatedDuringCommit() : returned_resource_count_(0) {} 1695 DelegatedFrameIsActivatedDuringCommit() : returned_resource_count_(0) {}
1717 1696
1718 virtual void BeginTest() override { 1697 void BeginTest() override {
1719 activate_count_ = 0; 1698 activate_count_ = 0;
1720 1699
1721 scoped_ptr<DelegatedFrameData> frame = 1700 scoped_ptr<DelegatedFrameData> frame =
1722 CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 1701 CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
1723 AddTextureQuad(frame.get(), 999); 1702 AddTextureQuad(frame.get(), 999);
1724 AddTransferableResource(frame.get(), 999); 1703 AddTransferableResource(frame.get(), 999);
1725 SetFrameData(frame.Pass()); 1704 SetFrameData(frame.Pass());
1726 1705
1727 PostSetNeedsCommitToMainThread(); 1706 PostSetNeedsCommitToMainThread();
1728 } 1707 }
1729 1708
1730 virtual void WillActivateTreeOnThread(LayerTreeHostImpl* impl) override { 1709 void WillActivateTreeOnThread(LayerTreeHostImpl* impl) override {
1731 ++activate_count_; 1710 ++activate_count_;
1732 } 1711 }
1733 1712
1734 virtual void DidCommit() override { 1713 void DidCommit() override {
1735 switch (layer_tree_host()->source_frame_number()) { 1714 switch (layer_tree_host()->source_frame_number()) {
1736 case 1: { 1715 case 1: {
1737 // The first frame has been activated. Set a new frame, and 1716 // The first frame has been activated. Set a new frame, and
1738 // expect the next commit to finish *after* it is activated. 1717 // expect the next commit to finish *after* it is activated.
1739 scoped_ptr<DelegatedFrameData> frame = 1718 scoped_ptr<DelegatedFrameData> frame =
1740 CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 1719 CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
1741 AddTextureQuad(frame.get(), 555); 1720 AddTextureQuad(frame.get(), 555);
1742 AddTransferableResource(frame.get(), 555); 1721 AddTransferableResource(frame.get(), 555);
1743 SetFrameData(frame.Pass()); 1722 SetFrameData(frame.Pass());
1744 break; 1723 break;
1745 } 1724 }
1746 case 2: 1725 case 2:
1747 // The second frame has been activated. Remove the layer from 1726 // The second frame has been activated. Remove the layer from
1748 // the tree to cause another commit/activation. The commit should 1727 // the tree to cause another commit/activation. The commit should
1749 // finish *after* the layer is removed from the active tree. 1728 // finish *after* the layer is removed from the active tree.
1750 delegated_->RemoveFromParent(); 1729 delegated_->RemoveFromParent();
1751 break; 1730 break;
1752 case 3: 1731 case 3:
1753 // Finish the test by releasing resources on the next frame. 1732 // Finish the test by releasing resources on the next frame.
1754 scoped_ptr<DelegatedFrameData> frame = 1733 scoped_ptr<DelegatedFrameData> frame =
1755 CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 1734 CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
1756 SetFrameData(frame.Pass()); 1735 SetFrameData(frame.Pass());
1757 break; 1736 break;
1758 } 1737 }
1759 } 1738 }
1760 1739
1761 virtual void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) override { 1740 void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) override {
1762 switch (host_impl->active_tree()->source_frame_number()) { 1741 switch (host_impl->active_tree()->source_frame_number()) {
1763 case 0: { 1742 case 0: {
1764 // The activate for the 1st frame should have happened before now. 1743 // The activate for the 1st frame should have happened before now.
1765 EXPECT_EQ(1, activate_count_); 1744 EXPECT_EQ(1, activate_count_);
1766 break; 1745 break;
1767 } 1746 }
1768 case 1: { 1747 case 1: {
1769 // The activate for the 2nd frame should have happened before now. 1748 // The activate for the 2nd frame should have happened before now.
1770 EXPECT_EQ(2, activate_count_); 1749 EXPECT_EQ(2, activate_count_);
1771 break; 1750 break;
1772 } 1751 }
1773 case 2: { 1752 case 2: {
1774 // The activate to remove the layer should have happened before now. 1753 // The activate to remove the layer should have happened before now.
1775 EXPECT_EQ(3, activate_count_); 1754 EXPECT_EQ(3, activate_count_);
1776 break; 1755 break;
1777 } 1756 }
1778 case 3: { 1757 case 3: {
1779 NOTREACHED(); 1758 NOTREACHED();
1780 break; 1759 break;
1781 } 1760 }
1782 } 1761 }
1783 } 1762 }
1784 1763
1785 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, 1764 void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override {
1786 bool result) override {
1787 ReturnUnusedResourcesFromParent(host_impl); 1765 ReturnUnusedResourcesFromParent(host_impl);
1788 } 1766 }
1789 1767
1790 virtual void UnusedResourcesAreAvailable() override { 1768 void UnusedResourcesAreAvailable() override {
1791 LayerTreeHostDelegatedTestCaseSingleDelegatedLayer:: 1769 LayerTreeHostDelegatedTestCaseSingleDelegatedLayer::
1792 UnusedResourcesAreAvailable(); 1770 UnusedResourcesAreAvailable();
1793 ReturnedResourceArray resources; 1771 ReturnedResourceArray resources;
1794 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources); 1772 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources);
1795 EXPECT_TRUE(TestAndResetAvailable()); 1773 EXPECT_TRUE(TestAndResetAvailable());
1796 returned_resource_count_ += resources.size(); 1774 returned_resource_count_ += resources.size();
1797 if (returned_resource_count_ == 2) 1775 if (returned_resource_count_ == 2)
1798 EndTest(); 1776 EndTest();
1799 } 1777 }
1800 1778
1801 int activate_count_; 1779 int activate_count_;
1802 size_t returned_resource_count_; 1780 size_t returned_resource_count_;
1803 }; 1781 };
1804 1782
1805 SINGLE_AND_MULTI_THREAD_TEST_F( 1783 SINGLE_AND_MULTI_THREAD_TEST_F(
1806 DelegatedFrameIsActivatedDuringCommit); 1784 DelegatedFrameIsActivatedDuringCommit);
1807 1785
1808 class LayerTreeHostDelegatedTestTwoImplLayers 1786 class LayerTreeHostDelegatedTestTwoImplLayers
1809 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 1787 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
1810 public: 1788 public:
1811 virtual void BeginTest() override { PostSetNeedsCommitToMainThread(); } 1789 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
1812 1790
1813 virtual void DidCommitAndDrawFrame() override { 1791 void DidCommitAndDrawFrame() override {
1814 scoped_ptr<DelegatedFrameData> frame; 1792 scoped_ptr<DelegatedFrameData> frame;
1815 ReturnedResourceArray resources; 1793 ReturnedResourceArray resources;
1816 1794
1817 int next_source_frame_number = layer_tree_host()->source_frame_number(); 1795 int next_source_frame_number = layer_tree_host()->source_frame_number();
1818 switch (next_source_frame_number) { 1796 switch (next_source_frame_number) {
1819 case 1: 1797 case 1:
1820 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 1798 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
1821 AddTextureQuad(frame.get(), 999); 1799 AddTextureQuad(frame.get(), 999);
1822 AddTransferableResource(frame.get(), 999); 1800 AddTransferableResource(frame.get(), 999);
1823 AddTextureQuad(frame.get(), 555); 1801 AddTextureQuad(frame.get(), 555);
(...skipping 26 matching lines...) Expand all
1850 { 1828 {
1851 unsigned expected[] = {555, 999}; 1829 unsigned expected[] = {555, 999};
1852 EXPECT_RESOURCES(expected, resources); 1830 EXPECT_RESOURCES(expected, resources);
1853 EXPECT_TRUE(TestAndResetAvailable()); 1831 EXPECT_TRUE(TestAndResetAvailable());
1854 } 1832 }
1855 EndTest(); 1833 EndTest();
1856 break; 1834 break;
1857 } 1835 }
1858 } 1836 }
1859 1837
1860 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, 1838 void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override {
1861 bool result) override {
1862 ReturnUnusedResourcesFromParent(host_impl); 1839 ReturnUnusedResourcesFromParent(host_impl);
1863 } 1840 }
1864 }; 1841 };
1865 1842
1866 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestTwoImplLayers); 1843 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestTwoImplLayers);
1867 1844
1868 class LayerTreeHostDelegatedTestTwoImplLayersTwoFrames 1845 class LayerTreeHostDelegatedTestTwoImplLayersTwoFrames
1869 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 1846 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
1870 public: 1847 public:
1871 virtual void BeginTest() override { PostSetNeedsCommitToMainThread(); } 1848 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
1872 1849
1873 virtual void DidCommitAndDrawFrame() override { 1850 void DidCommitAndDrawFrame() override {
1874 scoped_ptr<DelegatedFrameData> frame; 1851 scoped_ptr<DelegatedFrameData> frame;
1875 ReturnedResourceArray resources; 1852 ReturnedResourceArray resources;
1876 1853
1877 int next_source_frame_number = layer_tree_host()->source_frame_number(); 1854 int next_source_frame_number = layer_tree_host()->source_frame_number();
1878 switch (next_source_frame_number) { 1855 switch (next_source_frame_number) {
1879 case 1: 1856 case 1:
1880 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 1857 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
1881 AddTextureQuad(frame.get(), 999); 1858 AddTextureQuad(frame.get(), 999);
1882 AddTransferableResource(frame.get(), 999); 1859 AddTransferableResource(frame.get(), 999);
1883 AddTextureQuad(frame.get(), 555); 1860 AddTextureQuad(frame.get(), 555);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1919 { 1896 {
1920 unsigned expected[] = {555, 555, 999, 999}; 1897 unsigned expected[] = {555, 555, 999, 999};
1921 EXPECT_RESOURCES(expected, resources); 1898 EXPECT_RESOURCES(expected, resources);
1922 EXPECT_TRUE(TestAndResetAvailable()); 1899 EXPECT_TRUE(TestAndResetAvailable());
1923 } 1900 }
1924 EndTest(); 1901 EndTest();
1925 break; 1902 break;
1926 } 1903 }
1927 } 1904 }
1928 1905
1929 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, 1906 void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override {
1930 bool result) override {
1931 ReturnUnusedResourcesFromParent(host_impl); 1907 ReturnUnusedResourcesFromParent(host_impl);
1932 } 1908 }
1933 }; 1909 };
1934 1910
1935 SINGLE_AND_MULTI_THREAD_TEST_F( 1911 SINGLE_AND_MULTI_THREAD_TEST_F(
1936 LayerTreeHostDelegatedTestTwoImplLayersTwoFrames); 1912 LayerTreeHostDelegatedTestTwoImplLayersTwoFrames);
1937 1913
1938 class LayerTreeHostDelegatedTestTwoLayers 1914 class LayerTreeHostDelegatedTestTwoLayers
1939 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 1915 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
1940 public: 1916 public:
1941 virtual void BeginTest() override { PostSetNeedsCommitToMainThread(); } 1917 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
1942 1918
1943 virtual void DidCommitAndDrawFrame() override { 1919 void DidCommitAndDrawFrame() override {
1944 scoped_ptr<DelegatedFrameData> frame; 1920 scoped_ptr<DelegatedFrameData> frame;
1945 ReturnedResourceArray resources; 1921 ReturnedResourceArray resources;
1946 1922
1947 int next_source_frame_number = layer_tree_host()->source_frame_number(); 1923 int next_source_frame_number = layer_tree_host()->source_frame_number();
1948 switch (next_source_frame_number) { 1924 switch (next_source_frame_number) {
1949 case 1: 1925 case 1:
1950 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 1926 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
1951 AddTextureQuad(frame.get(), 999); 1927 AddTextureQuad(frame.get(), 999);
1952 AddTransferableResource(frame.get(), 999); 1928 AddTransferableResource(frame.get(), 999);
1953 AddTextureQuad(frame.get(), 555); 1929 AddTextureQuad(frame.get(), 555);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
2006 { 1982 {
2007 unsigned expected[] = {555, 999}; 1983 unsigned expected[] = {555, 999};
2008 EXPECT_RESOURCES(expected, resources); 1984 EXPECT_RESOURCES(expected, resources);
2009 EXPECT_TRUE(TestAndResetAvailable()); 1985 EXPECT_TRUE(TestAndResetAvailable());
2010 } 1986 }
2011 EndTest(); 1987 EndTest();
2012 break; 1988 break;
2013 } 1989 }
2014 } 1990 }
2015 1991
2016 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, 1992 void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override {
2017 bool result) override {
2018 ReturnUnusedResourcesFromParent(host_impl); 1993 ReturnUnusedResourcesFromParent(host_impl);
2019 } 1994 }
2020 1995
2021 scoped_refptr<DelegatedRendererLayer> delegated_thief_; 1996 scoped_refptr<DelegatedRendererLayer> delegated_thief_;
2022 }; 1997 };
2023 1998
2024 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestTwoLayers); 1999 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestTwoLayers);
2025 2000
2026 class LayerTreeHostDelegatedTestRemoveAndAddToTree 2001 class LayerTreeHostDelegatedTestRemoveAndAddToTree
2027 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 2002 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
2028 public: 2003 public:
2029 virtual void BeginTest() override { PostSetNeedsCommitToMainThread(); } 2004 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
2030 2005
2031 virtual void DidCommitAndDrawFrame() override { 2006 void DidCommitAndDrawFrame() override {
2032 scoped_ptr<DelegatedFrameData> frame; 2007 scoped_ptr<DelegatedFrameData> frame;
2033 ReturnedResourceArray resources; 2008 ReturnedResourceArray resources;
2034 2009
2035 int next_source_frame_number = layer_tree_host()->source_frame_number(); 2010 int next_source_frame_number = layer_tree_host()->source_frame_number();
2036 switch (next_source_frame_number) { 2011 switch (next_source_frame_number) {
2037 case 1: 2012 case 1:
2038 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 2013 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
2039 AddTextureQuad(frame.get(), 999); 2014 AddTextureQuad(frame.get(), 999);
2040 AddTransferableResource(frame.get(), 999); 2015 AddTransferableResource(frame.get(), 999);
2041 AddTextureQuad(frame.get(), 555); 2016 AddTextureQuad(frame.get(), 555);
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
2098 { 2073 {
2099 unsigned expected[] = {777, 888}; 2074 unsigned expected[] = {777, 888};
2100 EXPECT_RESOURCES(expected, resources); 2075 EXPECT_RESOURCES(expected, resources);
2101 EXPECT_TRUE(TestAndResetAvailable()); 2076 EXPECT_TRUE(TestAndResetAvailable());
2102 } 2077 }
2103 EndTest(); 2078 EndTest();
2104 break; 2079 break;
2105 } 2080 }
2106 } 2081 }
2107 2082
2108 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, 2083 void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override {
2109 bool result) override {
2110 ReturnUnusedResourcesFromParent(host_impl); 2084 ReturnUnusedResourcesFromParent(host_impl);
2111 } 2085 }
2112 2086
2113 scoped_refptr<DelegatedRendererLayer> delegated_thief_; 2087 scoped_refptr<DelegatedRendererLayer> delegated_thief_;
2114 }; 2088 };
2115 2089
2116 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestRemoveAndAddToTree); 2090 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestRemoveAndAddToTree);
2117 2091
2118 class LayerTreeHostDelegatedTestRemoveAndChangeResources 2092 class LayerTreeHostDelegatedTestRemoveAndChangeResources
2119 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 2093 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
2120 public: 2094 public:
2121 virtual void BeginTest() override { PostSetNeedsCommitToMainThread(); } 2095 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
2122 2096
2123 virtual void DidCommitAndDrawFrame() override { 2097 void DidCommitAndDrawFrame() override {
2124 scoped_ptr<DelegatedFrameData> frame; 2098 scoped_ptr<DelegatedFrameData> frame;
2125 ReturnedResourceArray resources; 2099 ReturnedResourceArray resources;
2126 2100
2127 int next_source_frame_number = layer_tree_host()->source_frame_number(); 2101 int next_source_frame_number = layer_tree_host()->source_frame_number();
2128 switch (next_source_frame_number) { 2102 switch (next_source_frame_number) {
2129 case 1: 2103 case 1:
2130 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 2104 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
2131 AddTextureQuad(frame.get(), 999); 2105 AddTextureQuad(frame.get(), 999);
2132 AddTransferableResource(frame.get(), 999); 2106 AddTransferableResource(frame.get(), 999);
2133 AddTextureQuad(frame.get(), 555); 2107 AddTextureQuad(frame.get(), 555);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
2180 { 2154 {
2181 unsigned expected[] = {777, 888}; 2155 unsigned expected[] = {777, 888};
2182 EXPECT_RESOURCES(expected, resources); 2156 EXPECT_RESOURCES(expected, resources);
2183 EXPECT_TRUE(TestAndResetAvailable()); 2157 EXPECT_TRUE(TestAndResetAvailable());
2184 } 2158 }
2185 EndTest(); 2159 EndTest();
2186 break; 2160 break;
2187 } 2161 }
2188 } 2162 }
2189 2163
2190 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, 2164 void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override {
2191 bool result) override {
2192 ReturnUnusedResourcesFromParent(host_impl); 2165 ReturnUnusedResourcesFromParent(host_impl);
2193 } 2166 }
2194 2167
2195 scoped_refptr<DelegatedRendererLayer> delegated_thief_; 2168 scoped_refptr<DelegatedRendererLayer> delegated_thief_;
2196 }; 2169 };
2197 2170
2198 SINGLE_AND_MULTI_THREAD_TEST_F( 2171 SINGLE_AND_MULTI_THREAD_TEST_F(
2199 LayerTreeHostDelegatedTestRemoveAndChangeResources); 2172 LayerTreeHostDelegatedTestRemoveAndChangeResources);
2200 2173
2201 } // namespace 2174 } // namespace
2202 } // namespace cc 2175 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_unittest_damage.cc ('k') | cc/trees/layer_tree_host_unittest_no_message_loop.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698