| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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/auto_reset.h" | 9 #include "base/auto_reset.h" |
| 10 #include "base/synchronization/lock.h" | 10 #include "base/synchronization/lock.h" |
| (...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 278 root_layer_(ContentLayer::Create(&client_)) {} | 278 root_layer_(ContentLayer::Create(&client_)) {} |
| 279 | 279 |
| 280 virtual void BeginTest() OVERRIDE { | 280 virtual void BeginTest() OVERRIDE { |
| 281 root_layer_->SetIsDrawable(true); | 281 root_layer_->SetIsDrawable(true); |
| 282 root_layer_->SetBounds(bounds_); | 282 root_layer_->SetBounds(bounds_); |
| 283 layer_tree_host()->SetRootLayer(root_layer_); | 283 layer_tree_host()->SetRootLayer(root_layer_); |
| 284 layer_tree_host()->SetViewportSize(bounds_); | 284 layer_tree_host()->SetViewportSize(bounds_); |
| 285 PostSetNeedsCommitToMainThread(); | 285 PostSetNeedsCommitToMainThread(); |
| 286 } | 286 } |
| 287 | 287 |
| 288 virtual bool PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, | 288 virtual DrawSwapReadbackResult::DrawResult PrepareToDrawOnThread( |
| 289 LayerTreeHostImpl::FrameData* frame_data, | 289 LayerTreeHostImpl* host_impl, |
| 290 bool result) OVERRIDE { | 290 LayerTreeHostImpl::FrameData* frame_data, |
| 291 EXPECT_TRUE(result); | 291 DrawSwapReadbackResult::DrawResult draw_result) OVERRIDE { |
| 292 EXPECT_EQ(DrawSwapReadbackResult::DID_DRAW, draw_result); |
| 292 | 293 |
| 293 gfx::RectF root_damage_rect; | 294 gfx::RectF root_damage_rect; |
| 294 if (!frame_data->render_passes.empty()) | 295 if (!frame_data->render_passes.empty()) |
| 295 root_damage_rect = frame_data->render_passes.back()->damage_rect; | 296 root_damage_rect = frame_data->render_passes.back()->damage_rect; |
| 296 | 297 |
| 297 if (!num_draws_) { | 298 if (!num_draws_) { |
| 298 // If this is the first frame, expect full frame damage. | 299 // If this is the first frame, expect full frame damage. |
| 299 EXPECT_RECT_EQ(root_damage_rect, gfx::Rect(bounds_)); | 300 EXPECT_RECT_EQ(root_damage_rect, gfx::Rect(bounds_)); |
| 300 } else { | 301 } else { |
| 301 // Check that invalid_rect_ is indeed repainted. | 302 // Check that invalid_rect_ is indeed repainted. |
| 302 EXPECT_TRUE(root_damage_rect.Contains(invalid_rect_)); | 303 EXPECT_TRUE(root_damage_rect.Contains(invalid_rect_)); |
| 303 } | 304 } |
| 304 | 305 |
| 305 return result; | 306 return draw_result; |
| 306 } | 307 } |
| 307 | 308 |
| 308 virtual void DrawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE { | 309 virtual void DrawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE { |
| 309 if (!num_draws_) { | 310 if (!num_draws_) { |
| 310 PostSetNeedsRedrawRectToMainThread(invalid_rect_); | 311 PostSetNeedsRedrawRectToMainThread(invalid_rect_); |
| 311 } else { | 312 } else { |
| 312 EndTest(); | 313 EndTest(); |
| 313 } | 314 } |
| 314 num_draws_++; | 315 num_draws_++; |
| 315 } | 316 } |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 509 : did_post_readback_(false) {} | 510 : did_post_readback_(false) {} |
| 510 | 511 |
| 511 virtual void InitializeSettings(LayerTreeSettings* settings) OVERRIDE { | 512 virtual void InitializeSettings(LayerTreeSettings* settings) OVERRIDE { |
| 512 // This enables forced draws after a single prepare to draw failure. | 513 // This enables forced draws after a single prepare to draw failure. |
| 513 settings->timeout_and_draw_when_animation_checkerboards = true; | 514 settings->timeout_and_draw_when_animation_checkerboards = true; |
| 514 settings->maximum_number_of_failed_draws_before_draw_is_forced_ = 1; | 515 settings->maximum_number_of_failed_draws_before_draw_is_forced_ = 1; |
| 515 } | 516 } |
| 516 | 517 |
| 517 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } | 518 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } |
| 518 | 519 |
| 519 virtual bool PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, | 520 virtual DrawSwapReadbackResult::DrawResult PrepareToDrawOnThread( |
| 520 LayerTreeHostImpl::FrameData* frame_data, | 521 LayerTreeHostImpl* host_impl, |
| 521 bool result) OVERRIDE { | 522 LayerTreeHostImpl::FrameData* frame_data, |
| 523 DrawSwapReadbackResult::DrawResult draw_result) OVERRIDE { |
| 522 int sfn = host_impl->active_tree()->source_frame_number(); | 524 int sfn = host_impl->active_tree()->source_frame_number(); |
| 523 EXPECT_TRUE(sfn == kFirstCommitSourceFrameNumber || | 525 EXPECT_TRUE(sfn == kFirstCommitSourceFrameNumber || |
| 524 sfn == kReadbackSourceFrameNumber || | 526 sfn == kReadbackSourceFrameNumber || |
| 525 sfn == kReadbackReplacementAndForcedDrawSourceFrameNumber) | 527 sfn == kReadbackReplacementAndForcedDrawSourceFrameNumber) |
| 526 << sfn; | 528 << sfn; |
| 527 | 529 |
| 528 // Before we react to the failed draw by initiating the forced draw | 530 // Before we react to the failed draw by initiating the forced draw |
| 529 // sequence, start a readback on the main thread. | 531 // sequence, start a readback on the main thread. |
| 530 if (sfn == kFirstCommitSourceFrameNumber && !did_post_readback_) { | 532 if (sfn == kFirstCommitSourceFrameNumber && !did_post_readback_) { |
| 531 did_post_readback_ = true; | 533 did_post_readback_ = true; |
| 532 PostReadbackToMainThread(); | 534 PostReadbackToMainThread(); |
| 533 } | 535 } |
| 534 | 536 |
| 535 // Returning false will result in a forced draw. | 537 // Returning false will result in a forced draw. |
| 536 return false; | 538 return DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS; |
| 537 } | 539 } |
| 538 | 540 |
| 539 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { | 541 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { |
| 540 // We should only draw for the readback and the forced draw. | 542 // We should only draw for the readback and the forced draw. |
| 541 int sfn = host_impl->active_tree()->source_frame_number(); | 543 int sfn = host_impl->active_tree()->source_frame_number(); |
| 542 EXPECT_TRUE(sfn == kReadbackSourceFrameNumber || | 544 EXPECT_TRUE(sfn == kReadbackSourceFrameNumber || |
| 543 sfn == kReadbackReplacementAndForcedDrawSourceFrameNumber) | 545 sfn == kReadbackReplacementAndForcedDrawSourceFrameNumber) |
| 544 << sfn; | 546 << sfn; |
| 545 } | 547 } |
| 546 | 548 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 569 static const int kReadbackReplacementSourceFrameNumber = 3; | 571 static const int kReadbackReplacementSourceFrameNumber = 3; |
| 570 | 572 |
| 571 virtual void InitializeSettings(LayerTreeSettings* settings) OVERRIDE { | 573 virtual void InitializeSettings(LayerTreeSettings* settings) OVERRIDE { |
| 572 // This enables forced draws after a single prepare to draw failure. | 574 // This enables forced draws after a single prepare to draw failure. |
| 573 settings->timeout_and_draw_when_animation_checkerboards = true; | 575 settings->timeout_and_draw_when_animation_checkerboards = true; |
| 574 settings->maximum_number_of_failed_draws_before_draw_is_forced_ = 1; | 576 settings->maximum_number_of_failed_draws_before_draw_is_forced_ = 1; |
| 575 } | 577 } |
| 576 | 578 |
| 577 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } | 579 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } |
| 578 | 580 |
| 579 virtual bool PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, | 581 virtual DrawSwapReadbackResult::DrawResult PrepareToDrawOnThread( |
| 580 LayerTreeHostImpl::FrameData* frame_data, | 582 LayerTreeHostImpl* host_impl, |
| 581 bool result) OVERRIDE { | 583 LayerTreeHostImpl::FrameData* frame_data, |
| 584 DrawSwapReadbackResult::DrawResult draw_result) OVERRIDE { |
| 582 int sfn = host_impl->active_tree()->source_frame_number(); | 585 int sfn = host_impl->active_tree()->source_frame_number(); |
| 583 EXPECT_TRUE(sfn == kFirstCommitSourceFrameNumber || | 586 EXPECT_TRUE(sfn == kFirstCommitSourceFrameNumber || |
| 584 sfn == kForcedDrawSourceFrameNumber || | 587 sfn == kForcedDrawSourceFrameNumber || |
| 585 sfn == kReadbackSourceFrameNumber || | 588 sfn == kReadbackSourceFrameNumber || |
| 586 sfn == kReadbackReplacementSourceFrameNumber) | 589 sfn == kReadbackReplacementSourceFrameNumber) |
| 587 << sfn; | 590 << sfn; |
| 588 | 591 |
| 589 // Returning false will result in a forced draw. | 592 // Returning false will result in a forced draw. |
| 590 return false; | 593 return DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS; |
| 591 } | 594 } |
| 592 | 595 |
| 593 virtual void DidCommit() OVERRIDE { | 596 virtual void DidCommit() OVERRIDE { |
| 594 if (layer_tree_host()->source_frame_number() == | 597 if (layer_tree_host()->source_frame_number() == |
| 595 kForcedDrawSourceFrameNumber) { | 598 kForcedDrawSourceFrameNumber) { |
| 596 // Avoid aborting the forced draw commit so source_frame_number | 599 // Avoid aborting the forced draw commit so source_frame_number |
| 597 // increments. | 600 // increments. |
| 598 layer_tree_host()->SetNeedsCommit(); | 601 layer_tree_host()->SetNeedsCommit(); |
| 599 } else if (layer_tree_host()->source_frame_number() == | 602 } else if (layer_tree_host()->source_frame_number() == |
| 600 kReadbackSourceFrameNumber) { | 603 kReadbackSourceFrameNumber) { |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 645 layer_tree_host()->SetRootLayer(root_layer_); | 648 layer_tree_host()->SetRootLayer(root_layer_); |
| 646 layer_tree_host()->SetViewportSize(bounds_); | 649 layer_tree_host()->SetViewportSize(bounds_); |
| 647 PostSetNeedsCommitToMainThread(); | 650 PostSetNeedsCommitToMainThread(); |
| 648 } | 651 } |
| 649 | 652 |
| 650 virtual void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { | 653 virtual void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { |
| 651 if (num_draws_ == 3 && host_impl->settings().impl_side_painting) | 654 if (num_draws_ == 3 && host_impl->settings().impl_side_painting) |
| 652 host_impl->SetNeedsRedrawRect(invalid_rect_); | 655 host_impl->SetNeedsRedrawRect(invalid_rect_); |
| 653 } | 656 } |
| 654 | 657 |
| 655 virtual bool PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, | 658 virtual DrawSwapReadbackResult::DrawResult PrepareToDrawOnThread( |
| 656 LayerTreeHostImpl::FrameData* frame_data, | 659 LayerTreeHostImpl* host_impl, |
| 657 bool result) OVERRIDE { | 660 LayerTreeHostImpl::FrameData* frame_data, |
| 658 EXPECT_TRUE(result); | 661 DrawSwapReadbackResult::DrawResult draw_result) OVERRIDE { |
| 662 EXPECT_EQ(DrawSwapReadbackResult::DID_DRAW, draw_result); |
| 659 | 663 |
| 660 gfx::RectF root_damage_rect; | 664 gfx::RectF root_damage_rect; |
| 661 if (!frame_data->render_passes.empty()) | 665 if (!frame_data->render_passes.empty()) |
| 662 root_damage_rect = frame_data->render_passes.back()->damage_rect; | 666 root_damage_rect = frame_data->render_passes.back()->damage_rect; |
| 663 | 667 |
| 664 switch (num_draws_) { | 668 switch (num_draws_) { |
| 665 case 0: | 669 case 0: |
| 666 EXPECT_RECT_EQ(gfx::Rect(bounds_), root_damage_rect); | 670 EXPECT_RECT_EQ(gfx::Rect(bounds_), root_damage_rect); |
| 667 break; | 671 break; |
| 668 case 1: | 672 case 1: |
| 669 case 2: | 673 case 2: |
| 670 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), root_damage_rect); | 674 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), root_damage_rect); |
| 671 break; | 675 break; |
| 672 case 3: | 676 case 3: |
| 673 EXPECT_RECT_EQ(invalid_rect_, root_damage_rect); | 677 EXPECT_RECT_EQ(invalid_rect_, root_damage_rect); |
| 674 break; | 678 break; |
| 675 case 4: | 679 case 4: |
| 676 EXPECT_RECT_EQ(gfx::Rect(bounds_), root_damage_rect); | 680 EXPECT_RECT_EQ(gfx::Rect(bounds_), root_damage_rect); |
| 677 break; | 681 break; |
| 678 default: | 682 default: |
| 679 NOTREACHED(); | 683 NOTREACHED(); |
| 680 } | 684 } |
| 681 | 685 |
| 682 return result; | 686 return draw_result; |
| 683 } | 687 } |
| 684 | 688 |
| 685 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { | 689 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { |
| 686 switch (num_draws_) { | 690 switch (num_draws_) { |
| 687 case 0: | 691 case 0: |
| 688 case 1: | 692 case 1: |
| 689 // Cycle through a couple of empty commits to ensure we're observing the | 693 // Cycle through a couple of empty commits to ensure we're observing the |
| 690 // right behavior | 694 // right behavior |
| 691 PostSetNeedsCommitToMainThread(); | 695 PostSetNeedsCommitToMainThread(); |
| 692 break; | 696 break; |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 742 | 746 |
| 743 child_layer_ = FakeContentLayer::Create(&client_); | 747 child_layer_ = FakeContentLayer::Create(&client_); |
| 744 child_layer_->SetBounds(gfx::Size(25, 25)); | 748 child_layer_->SetBounds(gfx::Size(25, 25)); |
| 745 parent_layer_->AddChild(child_layer_); | 749 parent_layer_->AddChild(child_layer_); |
| 746 | 750 |
| 747 LayerTreeHostTest::SetupTree(); | 751 LayerTreeHostTest::SetupTree(); |
| 748 } | 752 } |
| 749 | 753 |
| 750 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } | 754 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } |
| 751 | 755 |
| 752 virtual bool PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, | 756 virtual DrawSwapReadbackResult::DrawResult PrepareToDrawOnThread( |
| 753 LayerTreeHostImpl::FrameData* frame_data, | 757 LayerTreeHostImpl* host_impl, |
| 754 bool result) OVERRIDE { | 758 LayerTreeHostImpl::FrameData* frame_data, |
| 755 EXPECT_TRUE(result); | 759 DrawSwapReadbackResult::DrawResult draw_result) OVERRIDE { |
| 760 EXPECT_EQ(DrawSwapReadbackResult::DID_DRAW, draw_result); |
| 756 | 761 |
| 757 gfx::RectF root_damage_rect; | 762 gfx::RectF root_damage_rect; |
| 758 if (!frame_data->render_passes.empty()) | 763 if (!frame_data->render_passes.empty()) |
| 759 root_damage_rect = frame_data->render_passes.back()->damage_rect; | 764 root_damage_rect = frame_data->render_passes.back()->damage_rect; |
| 760 | 765 |
| 761 // The first time, the whole view needs be drawn. | 766 // The first time, the whole view needs be drawn. |
| 762 // Afterwards, just the opacity of surface_layer1 is changed a few times, | 767 // Afterwards, just the opacity of surface_layer1 is changed a few times, |
| 763 // and each damage should be the bounding box of it and its child. If this | 768 // and each damage should be the bounding box of it and its child. If this |
| 764 // was working improperly, the damage might not include its childs bounding | 769 // was working improperly, the damage might not include its childs bounding |
| 765 // box. | 770 // box. |
| 766 switch (layer_tree_host()->source_frame_number()) { | 771 switch (layer_tree_host()->source_frame_number()) { |
| 767 case 1: | 772 case 1: |
| 768 EXPECT_RECT_EQ(gfx::Rect(root_layer_->bounds()), root_damage_rect); | 773 EXPECT_RECT_EQ(gfx::Rect(root_layer_->bounds()), root_damage_rect); |
| 769 break; | 774 break; |
| 770 case 2: | 775 case 2: |
| 771 case 3: | 776 case 3: |
| 772 case 4: | 777 case 4: |
| 773 EXPECT_RECT_EQ(gfx::Rect(child_layer_->bounds()), root_damage_rect); | 778 EXPECT_RECT_EQ(gfx::Rect(child_layer_->bounds()), root_damage_rect); |
| 774 break; | 779 break; |
| 775 default: | 780 default: |
| 776 NOTREACHED(); | 781 NOTREACHED(); |
| 777 } | 782 } |
| 778 | 783 |
| 779 return result; | 784 return draw_result; |
| 780 } | 785 } |
| 781 | 786 |
| 782 virtual void DidCommitAndDrawFrame() OVERRIDE { | 787 virtual void DidCommitAndDrawFrame() OVERRIDE { |
| 783 switch (layer_tree_host()->source_frame_number()) { | 788 switch (layer_tree_host()->source_frame_number()) { |
| 784 case 1: | 789 case 1: |
| 785 // Test not owning the surface. | 790 // Test not owning the surface. |
| 786 parent_layer_->SetOpacity(1.0f); | 791 parent_layer_->SetOpacity(1.0f); |
| 787 break; | 792 break; |
| 788 case 2: | 793 case 2: |
| 789 parent_layer_->SetOpacity(0.0f); | 794 parent_layer_->SetOpacity(0.0f); |
| (...skipping 1787 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2577 virtual void InitializeSettings(LayerTreeSettings* settings) OVERRIDE { | 2582 virtual void InitializeSettings(LayerTreeSettings* settings) OVERRIDE { |
| 2578 settings->begin_impl_frame_scheduling_enabled = true; | 2583 settings->begin_impl_frame_scheduling_enabled = true; |
| 2579 } | 2584 } |
| 2580 | 2585 |
| 2581 virtual void BeginTest() OVERRIDE { | 2586 virtual void BeginTest() OVERRIDE { |
| 2582 // This will trigger a SetNeedsBeginImplFrame which will trigger a | 2587 // This will trigger a SetNeedsBeginImplFrame which will trigger a |
| 2583 // BeginImplFrame. | 2588 // BeginImplFrame. |
| 2584 PostSetNeedsCommitToMainThread(); | 2589 PostSetNeedsCommitToMainThread(); |
| 2585 } | 2590 } |
| 2586 | 2591 |
| 2587 virtual bool PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, | 2592 virtual DrawSwapReadbackResult::DrawResult PrepareToDrawOnThread( |
| 2588 LayerTreeHostImpl::FrameData* frame, | 2593 LayerTreeHostImpl* host_impl, |
| 2589 bool result) OVERRIDE { | 2594 LayerTreeHostImpl::FrameData* frame, |
| 2595 DrawSwapReadbackResult::DrawResult draw_result) OVERRIDE { |
| 2590 EndTest(); | 2596 EndTest(); |
| 2591 return true; | 2597 return DrawSwapReadbackResult::DID_DRAW; |
| 2592 } | 2598 } |
| 2593 | 2599 |
| 2594 virtual void AfterTest() OVERRIDE {} | 2600 virtual void AfterTest() OVERRIDE {} |
| 2595 | 2601 |
| 2596 private: | 2602 private: |
| 2597 base::TimeTicks frame_time_; | 2603 base::TimeTicks frame_time_; |
| 2598 }; | 2604 }; |
| 2599 | 2605 |
| 2600 MULTI_THREAD_TEST_F(LayerTreeHostTestBeginImplFrameNotification); | 2606 MULTI_THREAD_TEST_F(LayerTreeHostTestBeginImplFrameNotification); |
| 2601 | 2607 |
| (...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2864 EXPECT_CALL(*mock_context_, | 2870 EXPECT_CALL(*mock_context_, |
| 2865 texImageIOSurface2DCHROMIUM(GL_TEXTURE_RECTANGLE_ARB, | 2871 texImageIOSurface2DCHROMIUM(GL_TEXTURE_RECTANGLE_ARB, |
| 2866 io_surface_size_.width(), | 2872 io_surface_size_.width(), |
| 2867 io_surface_size_.height(), | 2873 io_surface_size_.height(), |
| 2868 io_surface_id_, | 2874 io_surface_id_, |
| 2869 0)).Times(1); | 2875 0)).Times(1); |
| 2870 | 2876 |
| 2871 EXPECT_CALL(*mock_context_, bindTexture(_, 0)).Times(AnyNumber()); | 2877 EXPECT_CALL(*mock_context_, bindTexture(_, 0)).Times(AnyNumber()); |
| 2872 } | 2878 } |
| 2873 | 2879 |
| 2874 virtual bool PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, | 2880 virtual DrawSwapReadbackResult::DrawResult PrepareToDrawOnThread( |
| 2875 LayerTreeHostImpl::FrameData* frame, | 2881 LayerTreeHostImpl* host_impl, |
| 2876 bool result) OVERRIDE { | 2882 LayerTreeHostImpl::FrameData* frame, |
| 2883 DrawSwapReadbackResult::DrawResult draw_result) OVERRIDE { |
| 2877 Mock::VerifyAndClearExpectations(&mock_context_); | 2884 Mock::VerifyAndClearExpectations(&mock_context_); |
| 2878 | 2885 |
| 2879 // The io surface layer's texture is drawn. | 2886 // The io surface layer's texture is drawn. |
| 2880 EXPECT_CALL(*mock_context_, activeTexture(GL_TEXTURE0)).Times(AtLeast(1)); | 2887 EXPECT_CALL(*mock_context_, activeTexture(GL_TEXTURE0)).Times(AtLeast(1)); |
| 2881 EXPECT_CALL(*mock_context_, bindTexture(GL_TEXTURE_RECTANGLE_ARB, 1)) | 2888 EXPECT_CALL(*mock_context_, bindTexture(GL_TEXTURE_RECTANGLE_ARB, 1)) |
| 2882 .Times(1); | 2889 .Times(1); |
| 2883 EXPECT_CALL(*mock_context_, drawElements(GL_TRIANGLES, 6, _, _)) | 2890 EXPECT_CALL(*mock_context_, drawElements(GL_TRIANGLES, 6, _, _)) |
| 2884 .Times(AtLeast(1)); | 2891 .Times(AtLeast(1)); |
| 2885 | 2892 |
| 2886 return result; | 2893 return draw_result; |
| 2887 } | 2894 } |
| 2888 | 2895 |
| 2889 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { | 2896 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { |
| 2890 Mock::VerifyAndClearExpectations(&mock_context_); | 2897 Mock::VerifyAndClearExpectations(&mock_context_); |
| 2891 | 2898 |
| 2892 EXPECT_CALL(*mock_context_, deleteTexture(1)).Times(1); | 2899 EXPECT_CALL(*mock_context_, deleteTexture(1)).Times(1); |
| 2893 EndTest(); | 2900 EndTest(); |
| 2894 } | 2901 } |
| 2895 | 2902 |
| 2896 virtual void AfterTest() OVERRIDE {} | 2903 virtual void AfterTest() OVERRIDE {} |
| (...skipping 1223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4120 class LayerTreeHostTestTreeActivationCallback : public LayerTreeHostTest { | 4127 class LayerTreeHostTestTreeActivationCallback : public LayerTreeHostTest { |
| 4121 public: | 4128 public: |
| 4122 LayerTreeHostTestTreeActivationCallback() | 4129 LayerTreeHostTestTreeActivationCallback() |
| 4123 : num_commits_(0), callback_count_(0) {} | 4130 : num_commits_(0), callback_count_(0) {} |
| 4124 | 4131 |
| 4125 virtual void BeginTest() OVERRIDE { | 4132 virtual void BeginTest() OVERRIDE { |
| 4126 EXPECT_TRUE(HasImplThread()); | 4133 EXPECT_TRUE(HasImplThread()); |
| 4127 PostSetNeedsCommitToMainThread(); | 4134 PostSetNeedsCommitToMainThread(); |
| 4128 } | 4135 } |
| 4129 | 4136 |
| 4130 virtual bool PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, | 4137 virtual DrawSwapReadbackResult::DrawResult PrepareToDrawOnThread( |
| 4131 LayerTreeHostImpl::FrameData* frame_data, | 4138 LayerTreeHostImpl* host_impl, |
| 4132 bool result) OVERRIDE { | 4139 LayerTreeHostImpl::FrameData* frame_data, |
| 4140 DrawSwapReadbackResult::DrawResult draw_result) OVERRIDE { |
| 4133 ++num_commits_; | 4141 ++num_commits_; |
| 4134 switch (num_commits_) { | 4142 switch (num_commits_) { |
| 4135 case 1: | 4143 case 1: |
| 4136 EXPECT_EQ(0, callback_count_); | 4144 EXPECT_EQ(0, callback_count_); |
| 4137 callback_count_ = 0; | 4145 callback_count_ = 0; |
| 4138 SetCallback(true); | 4146 SetCallback(true); |
| 4139 PostSetNeedsCommitToMainThread(); | 4147 PostSetNeedsCommitToMainThread(); |
| 4140 break; | 4148 break; |
| 4141 case 2: | 4149 case 2: |
| 4142 EXPECT_EQ(1, callback_count_); | 4150 EXPECT_EQ(1, callback_count_); |
| 4143 callback_count_ = 0; | 4151 callback_count_ = 0; |
| 4144 SetCallback(false); | 4152 SetCallback(false); |
| 4145 PostSetNeedsCommitToMainThread(); | 4153 PostSetNeedsCommitToMainThread(); |
| 4146 break; | 4154 break; |
| 4147 case 3: | 4155 case 3: |
| 4148 EXPECT_EQ(0, callback_count_); | 4156 EXPECT_EQ(0, callback_count_); |
| 4149 callback_count_ = 0; | 4157 callback_count_ = 0; |
| 4150 EndTest(); | 4158 EndTest(); |
| 4151 break; | 4159 break; |
| 4152 default: | 4160 default: |
| 4153 ADD_FAILURE() << num_commits_; | 4161 ADD_FAILURE() << num_commits_; |
| 4154 EndTest(); | 4162 EndTest(); |
| 4155 break; | 4163 break; |
| 4156 } | 4164 } |
| 4157 return LayerTreeHostTest::PrepareToDrawOnThread( | 4165 return LayerTreeHostTest::PrepareToDrawOnThread( |
| 4158 host_impl, frame_data, result); | 4166 host_impl, frame_data, draw_result); |
| 4159 } | 4167 } |
| 4160 | 4168 |
| 4161 virtual void AfterTest() OVERRIDE { EXPECT_EQ(3, num_commits_); } | 4169 virtual void AfterTest() OVERRIDE { EXPECT_EQ(3, num_commits_); } |
| 4162 | 4170 |
| 4163 void SetCallback(bool enable) { | 4171 void SetCallback(bool enable) { |
| 4164 output_surface()->SetTreeActivationCallback( | 4172 output_surface()->SetTreeActivationCallback( |
| 4165 enable | 4173 enable |
| 4166 ? base::Bind( | 4174 ? base::Bind( |
| 4167 &LayerTreeHostTestTreeActivationCallback::ActivationCallback, | 4175 &LayerTreeHostTestTreeActivationCallback::ActivationCallback, |
| 4168 base::Unretained(this)) | 4176 base::Unretained(this)) |
| (...skipping 780 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4949 | 4957 |
| 4950 EndTest(); | 4958 EndTest(); |
| 4951 } | 4959 } |
| 4952 | 4960 |
| 4953 virtual void AfterTest() OVERRIDE {} | 4961 virtual void AfterTest() OVERRIDE {} |
| 4954 }; | 4962 }; |
| 4955 | 4963 |
| 4956 MULTI_THREAD_TEST_F(LayerTreeHostTestSimpleSwapPromiseMonitor); | 4964 MULTI_THREAD_TEST_F(LayerTreeHostTestSimpleSwapPromiseMonitor); |
| 4957 | 4965 |
| 4958 } // namespace cc | 4966 } // namespace cc |
| OLD | NEW |