| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/layers/layer_iterator.h" | 5 #include "cc/layers/layer_iterator.h" |
| 6 #include "cc/output/copy_output_request.h" | 6 #include "cc/output/copy_output_request.h" |
| 7 #include "cc/output/copy_output_result.h" | 7 #include "cc/output/copy_output_result.h" |
| 8 #include "cc/test/fake_content_layer_client.h" | 8 #include "cc/test/fake_content_layer_client.h" |
| 9 #include "cc/test/fake_output_surface.h" | 9 #include "cc/test/fake_output_surface.h" |
| 10 #include "cc/test/fake_picture_layer.h" | 10 #include "cc/test/fake_picture_layer.h" |
| (...skipping 592 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 603 | 603 |
| 604 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 604 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
| 605 | 605 |
| 606 void CopyOutputCallback(scoped_ptr<CopyOutputResult> result) { | 606 void CopyOutputCallback(scoped_ptr<CopyOutputResult> result) { |
| 607 EXPECT_TRUE(layer_tree_host()->task_runner_provider()->IsMainThread()); | 607 EXPECT_TRUE(layer_tree_host()->task_runner_provider()->IsMainThread()); |
| 608 EXPECT_EQ(gfx::Size(10, 10).ToString(), result->size().ToString()); | 608 EXPECT_EQ(gfx::Size(10, 10).ToString(), result->size().ToString()); |
| 609 EXPECT_TRUE(result->HasTexture()); | 609 EXPECT_TRUE(result->HasTexture()); |
| 610 | 610 |
| 611 // Save the result for later. | 611 // Save the result for later. |
| 612 EXPECT_FALSE(result_); | 612 EXPECT_FALSE(result_); |
| 613 result_ = result.Pass(); | 613 result_ = std::move(result); |
| 614 | 614 |
| 615 // Post a commit to lose the output surface. | 615 // Post a commit to lose the output surface. |
| 616 layer_tree_host()->SetNeedsCommit(); | 616 layer_tree_host()->SetNeedsCommit(); |
| 617 } | 617 } |
| 618 | 618 |
| 619 void DidCommitAndDrawFrame() override { | 619 void DidCommitAndDrawFrame() override { |
| 620 switch (layer_tree_host()->source_frame_number()) { | 620 switch (layer_tree_host()->source_frame_number()) { |
| 621 case 1: | 621 case 1: |
| 622 // The layers have been pushed to the impl side. The layer textures have | 622 // The layers have been pushed to the impl side. The layer textures have |
| 623 // been allocated. | 623 // been allocated. |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 839 base::Unretained(this))); | 839 base::Unretained(this))); |
| 840 | 840 |
| 841 gpu::gles2::GLES2Interface* gl = external_context_provider_->ContextGL(); | 841 gpu::gles2::GLES2Interface* gl = external_context_provider_->ContextGL(); |
| 842 gpu::Mailbox mailbox; | 842 gpu::Mailbox mailbox; |
| 843 gl->GenMailboxCHROMIUM(mailbox.name); | 843 gl->GenMailboxCHROMIUM(mailbox.name); |
| 844 sync_token_ = gpu::SyncToken(gl->InsertSyncPointCHROMIUM()); | 844 sync_token_ = gpu::SyncToken(gl->InsertSyncPointCHROMIUM()); |
| 845 request->SetTextureMailbox( | 845 request->SetTextureMailbox( |
| 846 TextureMailbox(mailbox, sync_token_, GL_TEXTURE_2D)); | 846 TextureMailbox(mailbox, sync_token_, GL_TEXTURE_2D)); |
| 847 EXPECT_TRUE(request->has_texture_mailbox()); | 847 EXPECT_TRUE(request->has_texture_mailbox()); |
| 848 | 848 |
| 849 copy_layer_->RequestCopyOfOutput(request.Pass()); | 849 copy_layer_->RequestCopyOfOutput(std::move(request)); |
| 850 } | 850 } |
| 851 | 851 |
| 852 void AfterTest() override { | 852 void AfterTest() override { |
| 853 // Expect the compositor to have waited for the sync point in the provided | 853 // Expect the compositor to have waited for the sync point in the provided |
| 854 // TextureMailbox. | 854 // TextureMailbox. |
| 855 EXPECT_EQ(sync_token_, waited_sync_token_after_readback_); | 855 EXPECT_EQ(sync_token_, waited_sync_token_after_readback_); |
| 856 // Except the copy to have *not* made another texture. | 856 // Except the copy to have *not* made another texture. |
| 857 EXPECT_EQ(num_textures_without_readback_, num_textures_with_readback_); | 857 EXPECT_EQ(num_textures_without_readback_, num_textures_with_readback_); |
| 858 } | 858 } |
| 859 | 859 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 900 switch (layer_tree_host()->source_frame_number()) { | 900 switch (layer_tree_host()->source_frame_number()) { |
| 901 case 1: { | 901 case 1: { |
| 902 EXPECT_EQ(0, callback_count_); | 902 EXPECT_EQ(0, callback_count_); |
| 903 // Put a copy request on the layer, but then don't allow any | 903 // Put a copy request on the layer, but then don't allow any |
| 904 // drawing to take place. | 904 // drawing to take place. |
| 905 scoped_ptr<CopyOutputRequest> request = | 905 scoped_ptr<CopyOutputRequest> request = |
| 906 CopyOutputRequest::CreateRequest( | 906 CopyOutputRequest::CreateRequest( |
| 907 base::Bind(&LayerTreeHostCopyRequestTestDestroyBeforeCopy:: | 907 base::Bind(&LayerTreeHostCopyRequestTestDestroyBeforeCopy:: |
| 908 CopyOutputCallback, | 908 CopyOutputCallback, |
| 909 base::Unretained(this))); | 909 base::Unretained(this))); |
| 910 copy_layer_->RequestCopyOfOutput(request.Pass()); | 910 copy_layer_->RequestCopyOfOutput(std::move(request)); |
| 911 | 911 |
| 912 layer_tree_host()->SetViewportSize(gfx::Size()); | 912 layer_tree_host()->SetViewportSize(gfx::Size()); |
| 913 break; | 913 break; |
| 914 } | 914 } |
| 915 case 2: | 915 case 2: |
| 916 EXPECT_EQ(0, callback_count_); | 916 EXPECT_EQ(0, callback_count_); |
| 917 // Remove the copy layer before we were able to draw. | 917 // Remove the copy layer before we were able to draw. |
| 918 copy_layer_->RemoveFromParent(); | 918 copy_layer_->RemoveFromParent(); |
| 919 break; | 919 break; |
| 920 case 3: | 920 case 3: |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 977 switch (layer_tree_host()->source_frame_number()) { | 977 switch (layer_tree_host()->source_frame_number()) { |
| 978 case 1: { | 978 case 1: { |
| 979 EXPECT_EQ(0, callback_count_); | 979 EXPECT_EQ(0, callback_count_); |
| 980 // Put a copy request on the layer, but then don't allow any | 980 // Put a copy request on the layer, but then don't allow any |
| 981 // drawing to take place. | 981 // drawing to take place. |
| 982 scoped_ptr<CopyOutputRequest> request = | 982 scoped_ptr<CopyOutputRequest> request = |
| 983 CopyOutputRequest::CreateRequest( | 983 CopyOutputRequest::CreateRequest( |
| 984 base::Bind(&LayerTreeHostCopyRequestTestShutdownBeforeCopy:: | 984 base::Bind(&LayerTreeHostCopyRequestTestShutdownBeforeCopy:: |
| 985 CopyOutputCallback, | 985 CopyOutputCallback, |
| 986 base::Unretained(this))); | 986 base::Unretained(this))); |
| 987 copy_layer_->RequestCopyOfOutput(request.Pass()); | 987 copy_layer_->RequestCopyOfOutput(std::move(request)); |
| 988 | 988 |
| 989 layer_tree_host()->SetViewportSize(gfx::Size()); | 989 layer_tree_host()->SetViewportSize(gfx::Size()); |
| 990 break; | 990 break; |
| 991 } | 991 } |
| 992 case 2: | 992 case 2: |
| 993 DestroyLayerTreeHost(); | 993 DestroyLayerTreeHost(); |
| 994 // End the test after the copy result has had a chance to get back to | 994 // End the test after the copy result has had a chance to get back to |
| 995 // the main thread. | 995 // the main thread. |
| 996 MainThreadTaskRunner()->PostTask( | 996 MainThreadTaskRunner()->PostTask( |
| 997 FROM_HERE, | 997 FROM_HERE, |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1123 int num_draws_; | 1123 int num_draws_; |
| 1124 bool copy_happened_; | 1124 bool copy_happened_; |
| 1125 bool draw_happened_; | 1125 bool draw_happened_; |
| 1126 }; | 1126 }; |
| 1127 | 1127 |
| 1128 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F( | 1128 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F( |
| 1129 LayerTreeHostCopyRequestTestMultipleDrawsHiddenCopyRequest); | 1129 LayerTreeHostCopyRequestTestMultipleDrawsHiddenCopyRequest); |
| 1130 | 1130 |
| 1131 } // namespace | 1131 } // namespace |
| 1132 } // namespace cc | 1132 } // namespace cc |
| OLD | NEW |