| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/texture_layer.h" | 5 #include "cc/layers/texture_layer.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 } | 228 } |
| 229 | 229 |
| 230 scoped_ptr<MockLayerTreeHost> layer_tree_host_; | 230 scoped_ptr<MockLayerTreeHost> layer_tree_host_; |
| 231 FakeImplTaskRunnerProvider task_runner_provider_; | 231 FakeImplTaskRunnerProvider task_runner_provider_; |
| 232 FakeLayerTreeHostClient fake_client_; | 232 FakeLayerTreeHostClient fake_client_; |
| 233 TestSharedBitmapManager shared_bitmap_manager_; | 233 TestSharedBitmapManager shared_bitmap_manager_; |
| 234 TestTaskGraphRunner task_graph_runner_; | 234 TestTaskGraphRunner task_graph_runner_; |
| 235 scoped_ptr<OutputSurface> output_surface_; | 235 scoped_ptr<OutputSurface> output_surface_; |
| 236 FakeLayerTreeHostImpl host_impl_; | 236 FakeLayerTreeHostImpl host_impl_; |
| 237 CommonMailboxObjects test_data_; | 237 CommonMailboxObjects test_data_; |
| 238 LayerSettings layer_settings_; | |
| 239 }; | 238 }; |
| 240 | 239 |
| 241 TEST_F(TextureLayerTest, CheckPropertyChangeCausesCorrectBehavior) { | 240 TEST_F(TextureLayerTest, CheckPropertyChangeCausesCorrectBehavior) { |
| 242 scoped_refptr<TextureLayer> test_layer = | 241 scoped_refptr<TextureLayer> test_layer = |
| 243 TextureLayer::CreateForMailbox(layer_settings_, nullptr); | 242 TextureLayer::CreateForMailbox(nullptr); |
| 244 EXPECT_SET_NEEDS_COMMIT(1, layer_tree_host_->SetRootLayer(test_layer)); | 243 EXPECT_SET_NEEDS_COMMIT(1, layer_tree_host_->SetRootLayer(test_layer)); |
| 245 | 244 |
| 246 // Test properties that should call SetNeedsCommit. All properties need to | 245 // Test properties that should call SetNeedsCommit. All properties need to |
| 247 // be set to new values in order for SetNeedsCommit to be called. | 246 // be set to new values in order for SetNeedsCommit to be called. |
| 248 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetFlipped(false)); | 247 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetFlipped(false)); |
| 249 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetNearestNeighbor(true)); | 248 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetNearestNeighbor(true)); |
| 250 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetUV( | 249 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetUV( |
| 251 gfx::PointF(0.25f, 0.25f), gfx::PointF(0.75f, 0.75f))); | 250 gfx::PointF(0.25f, 0.25f), gfx::PointF(0.75f, 0.75f))); |
| 252 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetVertexOpacity( | 251 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetVertexOpacity( |
| 253 0.5f, 0.5f, 0.5f, 0.5f)); | 252 0.5f, 0.5f, 0.5f, 0.5f)); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 270 EXPECT_CALL( | 269 EXPECT_CALL( |
| 271 test_data_.mock_callback_, | 270 test_data_.mock_callback_, |
| 272 Release(test_data_.mailbox_name1_, test_data_.sync_token1_, false)) | 271 Release(test_data_.mailbox_name1_, test_data_.sync_token1_, false)) |
| 273 .Times(1); | 272 .Times(1); |
| 274 TextureLayerTest::TearDown(); | 273 TextureLayerTest::TearDown(); |
| 275 } | 274 } |
| 276 }; | 275 }; |
| 277 | 276 |
| 278 TEST_F(TextureLayerWithMailboxTest, ReplaceMailboxOnMainThreadBeforeCommit) { | 277 TEST_F(TextureLayerWithMailboxTest, ReplaceMailboxOnMainThreadBeforeCommit) { |
| 279 scoped_refptr<TextureLayer> test_layer = | 278 scoped_refptr<TextureLayer> test_layer = |
| 280 TextureLayer::CreateForMailbox(layer_settings_, nullptr); | 279 TextureLayer::CreateForMailbox(nullptr); |
| 281 ASSERT_TRUE(test_layer.get()); | 280 ASSERT_TRUE(test_layer.get()); |
| 282 | 281 |
| 283 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber()); | 282 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber()); |
| 284 layer_tree_host_->SetRootLayer(test_layer); | 283 layer_tree_host_->SetRootLayer(test_layer); |
| 285 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); | 284 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); |
| 286 | 285 |
| 287 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1)); | 286 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1)); |
| 288 test_layer->SetTextureMailbox( | 287 test_layer->SetTextureMailbox( |
| 289 test_data_.mailbox1_, | 288 test_data_.mailbox1_, |
| 290 SingleReleaseCallback::Create(test_data_.release_mailbox1_)); | 289 SingleReleaseCallback::Create(test_data_.release_mailbox1_)); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 327 | 326 |
| 328 // Test destructor. | 327 // Test destructor. |
| 329 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1)); | 328 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1)); |
| 330 test_layer->SetTextureMailbox( | 329 test_layer->SetTextureMailbox( |
| 331 test_data_.mailbox1_, | 330 test_data_.mailbox1_, |
| 332 SingleReleaseCallback::Create(test_data_.release_mailbox1_)); | 331 SingleReleaseCallback::Create(test_data_.release_mailbox1_)); |
| 333 } | 332 } |
| 334 | 333 |
| 335 TEST_F(TextureLayerTest, SetTextureMailboxWithoutReleaseCallback) { | 334 TEST_F(TextureLayerTest, SetTextureMailboxWithoutReleaseCallback) { |
| 336 scoped_refptr<TextureLayer> test_layer = | 335 scoped_refptr<TextureLayer> test_layer = |
| 337 TextureLayer::CreateForMailbox(layer_settings_, nullptr); | 336 TextureLayer::CreateForMailbox(nullptr); |
| 338 ASSERT_TRUE(test_layer.get()); | 337 ASSERT_TRUE(test_layer.get()); |
| 339 | 338 |
| 340 // These use the same gpu::Mailbox, but different sync points. | 339 // These use the same gpu::Mailbox, but different sync points. |
| 341 TextureMailbox mailbox1(MailboxFromChar('a'), SyncTokenFromUInt(1), | 340 TextureMailbox mailbox1(MailboxFromChar('a'), SyncTokenFromUInt(1), |
| 342 GL_TEXTURE_2D); | 341 GL_TEXTURE_2D); |
| 343 TextureMailbox mailbox2(MailboxFromChar('a'), SyncTokenFromUInt(2), | 342 TextureMailbox mailbox2(MailboxFromChar('a'), SyncTokenFromUInt(2), |
| 344 GL_TEXTURE_2D); | 343 GL_TEXTURE_2D); |
| 345 | 344 |
| 346 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber()); | 345 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber()); |
| 347 layer_tree_host_->SetRootLayer(test_layer); | 346 layer_tree_host_->SetRootLayer(test_layer); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 409 } | 408 } |
| 410 | 409 |
| 411 scoped_ptr<TestMailboxHolder::MainThreadReference> | 410 scoped_ptr<TestMailboxHolder::MainThreadReference> |
| 412 main_ref_; | 411 main_ref_; |
| 413 base::Thread main_thread_; | 412 base::Thread main_thread_; |
| 414 scoped_ptr<BlockingTaskRunner> main_thread_task_runner_; | 413 scoped_ptr<BlockingTaskRunner> main_thread_task_runner_; |
| 415 }; | 414 }; |
| 416 | 415 |
| 417 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_BothReleaseThenMain) { | 416 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_BothReleaseThenMain) { |
| 418 scoped_refptr<TextureLayer> test_layer = | 417 scoped_refptr<TextureLayer> test_layer = |
| 419 TextureLayer::CreateForMailbox(layer_settings_, nullptr); | 418 TextureLayer::CreateForMailbox(nullptr); |
| 420 ASSERT_TRUE(test_layer.get()); | 419 ASSERT_TRUE(test_layer.get()); |
| 421 | 420 |
| 422 main_thread_.message_loop()->task_runner()->PostTask( | 421 main_thread_.message_loop()->task_runner()->PostTask( |
| 423 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef, | 422 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef, |
| 424 base::Unretained(this))); | 423 base::Unretained(this))); |
| 425 | 424 |
| 426 Wait(main_thread_); | 425 Wait(main_thread_); |
| 427 | 426 |
| 428 // The texture layer is attached to compositor1, and passes a reference to its | 427 // The texture layer is attached to compositor1, and passes a reference to its |
| 429 // impl tree. | 428 // impl tree. |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 462 | 461 |
| 463 main_thread_.message_loop()->task_runner()->PostTask( | 462 main_thread_.message_loop()->task_runner()->PostTask( |
| 464 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::ReleaseMainRef, | 463 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::ReleaseMainRef, |
| 465 base::Unretained(this))); | 464 base::Unretained(this))); |
| 466 Wait(main_thread_); | 465 Wait(main_thread_); |
| 467 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); | 466 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); |
| 468 } | 467 } |
| 469 | 468 |
| 470 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleaseBetween) { | 469 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleaseBetween) { |
| 471 scoped_refptr<TextureLayer> test_layer = | 470 scoped_refptr<TextureLayer> test_layer = |
| 472 TextureLayer::CreateForMailbox(layer_settings_, nullptr); | 471 TextureLayer::CreateForMailbox(nullptr); |
| 473 ASSERT_TRUE(test_layer.get()); | 472 ASSERT_TRUE(test_layer.get()); |
| 474 | 473 |
| 475 main_thread_.message_loop()->task_runner()->PostTask( | 474 main_thread_.message_loop()->task_runner()->PostTask( |
| 476 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef, | 475 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef, |
| 477 base::Unretained(this))); | 476 base::Unretained(this))); |
| 478 | 477 |
| 479 Wait(main_thread_); | 478 Wait(main_thread_); |
| 480 | 479 |
| 481 // The texture layer is attached to compositor1, and passes a reference to its | 480 // The texture layer is attached to compositor1, and passes a reference to its |
| 482 // impl tree. | 481 // impl tree. |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 516 .Times(1); | 515 .Times(1); |
| 517 | 516 |
| 518 compositor2->Run(SyncTokenFromUInt(200), true, | 517 compositor2->Run(SyncTokenFromUInt(200), true, |
| 519 main_thread_task_runner_.get()); | 518 main_thread_task_runner_.get()); |
| 520 Wait(main_thread_); | 519 Wait(main_thread_); |
| 521 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); | 520 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); |
| 522 } | 521 } |
| 523 | 522 |
| 524 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleasedFirst) { | 523 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleasedFirst) { |
| 525 scoped_refptr<TextureLayer> test_layer = | 524 scoped_refptr<TextureLayer> test_layer = |
| 526 TextureLayer::CreateForMailbox(layer_settings_, nullptr); | 525 TextureLayer::CreateForMailbox(nullptr); |
| 527 ASSERT_TRUE(test_layer.get()); | 526 ASSERT_TRUE(test_layer.get()); |
| 528 | 527 |
| 529 main_thread_.message_loop()->task_runner()->PostTask( | 528 main_thread_.message_loop()->task_runner()->PostTask( |
| 530 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef, | 529 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef, |
| 531 base::Unretained(this))); | 530 base::Unretained(this))); |
| 532 | 531 |
| 533 Wait(main_thread_); | 532 Wait(main_thread_); |
| 534 | 533 |
| 535 // The texture layer is attached to compositor1, and passes a reference to its | 534 // The texture layer is attached to compositor1, and passes a reference to its |
| 536 // impl tree. | 535 // impl tree. |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 570 .Times(1); | 569 .Times(1); |
| 571 | 570 |
| 572 compositor1->Run(SyncTokenFromUInt(100), true, | 571 compositor1->Run(SyncTokenFromUInt(100), true, |
| 573 main_thread_task_runner_.get()); | 572 main_thread_task_runner_.get()); |
| 574 Wait(main_thread_); | 573 Wait(main_thread_); |
| 575 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); | 574 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); |
| 576 } | 575 } |
| 577 | 576 |
| 578 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_SecondImplRefShortcut) { | 577 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_SecondImplRefShortcut) { |
| 579 scoped_refptr<TextureLayer> test_layer = | 578 scoped_refptr<TextureLayer> test_layer = |
| 580 TextureLayer::CreateForMailbox(layer_settings_, nullptr); | 579 TextureLayer::CreateForMailbox(nullptr); |
| 581 ASSERT_TRUE(test_layer.get()); | 580 ASSERT_TRUE(test_layer.get()); |
| 582 | 581 |
| 583 main_thread_.message_loop()->task_runner()->PostTask( | 582 main_thread_.message_loop()->task_runner()->PostTask( |
| 584 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef, | 583 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef, |
| 585 base::Unretained(this))); | 584 base::Unretained(this))); |
| 586 | 585 |
| 587 Wait(main_thread_); | 586 Wait(main_thread_); |
| 588 | 587 |
| 589 // The texture layer is attached to compositor1, and passes a reference to its | 588 // The texture layer is attached to compositor1, and passes a reference to its |
| 590 // impl tree. | 589 // impl tree. |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 673 TextureMailbox(MailboxFromChar(mailbox_char), | 672 TextureMailbox(MailboxFromChar(mailbox_char), |
| 674 SyncTokenFromUInt(static_cast<uint32_t>(mailbox_char)), | 673 SyncTokenFromUInt(static_cast<uint32_t>(mailbox_char)), |
| 675 GL_TEXTURE_2D), | 674 GL_TEXTURE_2D), |
| 676 std::move(callback)); | 675 std::move(callback)); |
| 677 } | 676 } |
| 678 | 677 |
| 679 void BeginTest() override { | 678 void BeginTest() override { |
| 680 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); | 679 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); |
| 681 | 680 |
| 682 gfx::Size bounds(100, 100); | 681 gfx::Size bounds(100, 100); |
| 683 root_ = Layer::Create(layer_settings()); | 682 root_ = Layer::Create(); |
| 684 root_->SetBounds(bounds); | 683 root_->SetBounds(bounds); |
| 685 | 684 |
| 686 layer_ = TextureLayer::CreateForMailbox(layer_settings(), nullptr); | 685 layer_ = TextureLayer::CreateForMailbox(nullptr); |
| 687 layer_->SetIsDrawable(true); | 686 layer_->SetIsDrawable(true); |
| 688 layer_->SetBounds(bounds); | 687 layer_->SetBounds(bounds); |
| 689 | 688 |
| 690 root_->AddChild(layer_); | 689 root_->AddChild(layer_); |
| 691 layer_tree_host()->SetRootLayer(root_); | 690 layer_tree_host()->SetRootLayer(root_); |
| 692 layer_tree_host()->SetViewportSize(bounds); | 691 layer_tree_host()->SetViewportSize(bounds); |
| 693 SetMailbox('1'); | 692 SetMailbox('1'); |
| 694 EXPECT_EQ(0, callback_count_); | 693 EXPECT_EQ(0, callback_count_); |
| 695 | 694 |
| 696 // Case #1: change mailbox before the commit. The old mailbox should be | 695 // Case #1: change mailbox before the commit. The old mailbox should be |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 790 scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create( | 789 scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create( |
| 791 base::Bind(&TextureLayerMailboxIsActivatedDuringCommit::ReleaseCallback, | 790 base::Bind(&TextureLayerMailboxIsActivatedDuringCommit::ReleaseCallback, |
| 792 sync_token)); | 791 sync_token)); |
| 793 layer_->SetTextureMailbox(TextureMailbox(MailboxFromChar(mailbox_char), | 792 layer_->SetTextureMailbox(TextureMailbox(MailboxFromChar(mailbox_char), |
| 794 sync_token, GL_TEXTURE_2D), | 793 sync_token, GL_TEXTURE_2D), |
| 795 std::move(callback)); | 794 std::move(callback)); |
| 796 } | 795 } |
| 797 | 796 |
| 798 void BeginTest() override { | 797 void BeginTest() override { |
| 799 gfx::Size bounds(100, 100); | 798 gfx::Size bounds(100, 100); |
| 800 root_ = Layer::Create(layer_settings()); | 799 root_ = Layer::Create(); |
| 801 root_->SetBounds(bounds); | 800 root_->SetBounds(bounds); |
| 802 | 801 |
| 803 layer_ = TextureLayer::CreateForMailbox(layer_settings(), nullptr); | 802 layer_ = TextureLayer::CreateForMailbox(nullptr); |
| 804 layer_->SetIsDrawable(true); | 803 layer_->SetIsDrawable(true); |
| 805 layer_->SetBounds(bounds); | 804 layer_->SetBounds(bounds); |
| 806 | 805 |
| 807 root_->AddChild(layer_); | 806 root_->AddChild(layer_); |
| 808 layer_tree_host()->SetRootLayer(root_); | 807 layer_tree_host()->SetRootLayer(root_); |
| 809 layer_tree_host()->SetViewportSize(bounds); | 808 layer_tree_host()->SetViewportSize(bounds); |
| 810 SetMailbox('1'); | 809 SetMailbox('1'); |
| 811 | 810 |
| 812 PostSetNeedsCommitToMainThread(); | 811 PostSetNeedsCommitToMainThread(); |
| 813 } | 812 } |
| (...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1088 | 1087 |
| 1089 void MailboxReleased(const gpu::SyncToken& sync_token, bool lost_resource) { | 1088 void MailboxReleased(const gpu::SyncToken& sync_token, bool lost_resource) { |
| 1090 // Source frame number during callback is the same as the source frame | 1089 // Source frame number during callback is the same as the source frame |
| 1091 // on which it was released. | 1090 // on which it was released. |
| 1092 EXPECT_EQ(1, layer_tree_host()->source_frame_number()); | 1091 EXPECT_EQ(1, layer_tree_host()->source_frame_number()); |
| 1093 EXPECT_TRUE(sync_token.HasData()); | 1092 EXPECT_TRUE(sync_token.HasData()); |
| 1094 EndTest(); | 1093 EndTest(); |
| 1095 } | 1094 } |
| 1096 | 1095 |
| 1097 void SetupTree() override { | 1096 void SetupTree() override { |
| 1098 scoped_refptr<Layer> root = Layer::Create(layer_settings()); | 1097 scoped_refptr<Layer> root = Layer::Create(); |
| 1099 root->SetBounds(gfx::Size(10, 10)); | 1098 root->SetBounds(gfx::Size(10, 10)); |
| 1100 root->SetIsDrawable(true); | 1099 root->SetIsDrawable(true); |
| 1101 | 1100 |
| 1102 texture_layer_ = TextureLayer::CreateForMailbox(layer_settings(), this); | 1101 texture_layer_ = TextureLayer::CreateForMailbox(this); |
| 1103 texture_layer_->SetBounds(gfx::Size(10, 10)); | 1102 texture_layer_->SetBounds(gfx::Size(10, 10)); |
| 1104 texture_layer_->SetIsDrawable(true); | 1103 texture_layer_->SetIsDrawable(true); |
| 1105 root->AddChild(texture_layer_); | 1104 root->AddChild(texture_layer_); |
| 1106 | 1105 |
| 1107 layer_tree_host()->SetRootLayer(root); | 1106 layer_tree_host()->SetRootLayer(root); |
| 1108 LayerTreeTest::SetupTree(); | 1107 LayerTreeTest::SetupTree(); |
| 1109 } | 1108 } |
| 1110 | 1109 |
| 1111 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 1110 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
| 1112 | 1111 |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1186 SyncTokenFromUInt(static_cast<uint32_t>(name)), | 1185 SyncTokenFromUInt(static_cast<uint32_t>(name)), |
| 1187 GL_TEXTURE_2D); | 1186 GL_TEXTURE_2D); |
| 1188 } | 1187 } |
| 1189 | 1188 |
| 1190 void MailboxReleased(const gpu::SyncToken& sync_token, bool lost_resource) { | 1189 void MailboxReleased(const gpu::SyncToken& sync_token, bool lost_resource) { |
| 1191 EXPECT_TRUE(sync_token.HasData()); | 1190 EXPECT_TRUE(sync_token.HasData()); |
| 1192 ++mailbox_returned_; | 1191 ++mailbox_returned_; |
| 1193 } | 1192 } |
| 1194 | 1193 |
| 1195 void SetupTree() override { | 1194 void SetupTree() override { |
| 1196 scoped_refptr<Layer> root = Layer::Create(layer_settings()); | 1195 scoped_refptr<Layer> root = Layer::Create(); |
| 1197 root->SetBounds(gfx::Size(10, 10)); | 1196 root->SetBounds(gfx::Size(10, 10)); |
| 1198 root->SetIsDrawable(true); | 1197 root->SetIsDrawable(true); |
| 1199 | 1198 |
| 1200 solid_layer_ = SolidColorLayer::Create(layer_settings()); | 1199 solid_layer_ = SolidColorLayer::Create(); |
| 1201 solid_layer_->SetBounds(gfx::Size(10, 10)); | 1200 solid_layer_->SetBounds(gfx::Size(10, 10)); |
| 1202 solid_layer_->SetIsDrawable(true); | 1201 solid_layer_->SetIsDrawable(true); |
| 1203 solid_layer_->SetBackgroundColor(SK_ColorWHITE); | 1202 solid_layer_->SetBackgroundColor(SK_ColorWHITE); |
| 1204 root->AddChild(solid_layer_); | 1203 root->AddChild(solid_layer_); |
| 1205 | 1204 |
| 1206 parent_layer_ = Layer::Create(layer_settings()); | 1205 parent_layer_ = Layer::Create(); |
| 1207 parent_layer_->SetBounds(gfx::Size(10, 10)); | 1206 parent_layer_->SetBounds(gfx::Size(10, 10)); |
| 1208 parent_layer_->SetIsDrawable(true); | 1207 parent_layer_->SetIsDrawable(true); |
| 1209 root->AddChild(parent_layer_); | 1208 root->AddChild(parent_layer_); |
| 1210 | 1209 |
| 1211 texture_layer_ = TextureLayer::CreateForMailbox(layer_settings(), this); | 1210 texture_layer_ = TextureLayer::CreateForMailbox(this); |
| 1212 texture_layer_->SetBounds(gfx::Size(10, 10)); | 1211 texture_layer_->SetBounds(gfx::Size(10, 10)); |
| 1213 texture_layer_->SetIsDrawable(true); | 1212 texture_layer_->SetIsDrawable(true); |
| 1214 parent_layer_->AddChild(texture_layer_); | 1213 parent_layer_->AddChild(texture_layer_); |
| 1215 | 1214 |
| 1216 layer_tree_host()->SetRootLayer(root); | 1215 layer_tree_host()->SetRootLayer(root); |
| 1217 LayerTreeTest::SetupTree(); | 1216 LayerTreeTest::SetupTree(); |
| 1218 } | 1217 } |
| 1219 | 1218 |
| 1220 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 1219 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
| 1221 | 1220 |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1317 } | 1316 } |
| 1318 | 1317 |
| 1319 void MailboxReleased(const gpu::SyncToken& sync_token, bool lost_resource) { | 1318 void MailboxReleased(const gpu::SyncToken& sync_token, bool lost_resource) { |
| 1320 mailbox_released_ = true; | 1319 mailbox_released_ = true; |
| 1321 } | 1320 } |
| 1322 | 1321 |
| 1323 void SetupTree() override { | 1322 void SetupTree() override { |
| 1324 LayerTreeTest::SetupTree(); | 1323 LayerTreeTest::SetupTree(); |
| 1325 | 1324 |
| 1326 scoped_refptr<TextureLayer> texture_layer = | 1325 scoped_refptr<TextureLayer> texture_layer = |
| 1327 TextureLayer::CreateForMailbox(layer_settings(), this); | 1326 TextureLayer::CreateForMailbox(this); |
| 1328 texture_layer->SetBounds(gfx::Size(10, 10)); | 1327 texture_layer->SetBounds(gfx::Size(10, 10)); |
| 1329 texture_layer->SetIsDrawable(true); | 1328 texture_layer->SetIsDrawable(true); |
| 1330 | 1329 |
| 1331 layer_tree_host()->root_layer()->AddChild(texture_layer); | 1330 layer_tree_host()->root_layer()->AddChild(texture_layer); |
| 1332 } | 1331 } |
| 1333 | 1332 |
| 1334 void BeginTest() override { | 1333 void BeginTest() override { |
| 1335 mailbox_released_ = false; | 1334 mailbox_released_ = false; |
| 1336 PostSetNeedsCommitToMainThread(); | 1335 PostSetNeedsCommitToMainThread(); |
| 1337 } | 1336 } |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1383 base::Unretained(this))); | 1382 base::Unretained(this))); |
| 1384 layer_->SetTextureMailbox( | 1383 layer_->SetTextureMailbox( |
| 1385 TextureMailbox(MailboxFromChar(mailbox_char), | 1384 TextureMailbox(MailboxFromChar(mailbox_char), |
| 1386 SyncTokenFromUInt(static_cast<uint32_t>(mailbox_char)), | 1385 SyncTokenFromUInt(static_cast<uint32_t>(mailbox_char)), |
| 1387 GL_TEXTURE_2D), | 1386 GL_TEXTURE_2D), |
| 1388 std::move(callback)); | 1387 std::move(callback)); |
| 1389 } | 1388 } |
| 1390 | 1389 |
| 1391 void SetupTree() override { | 1390 void SetupTree() override { |
| 1392 gfx::Size bounds(100, 100); | 1391 gfx::Size bounds(100, 100); |
| 1393 root_ = Layer::Create(layer_settings()); | 1392 root_ = Layer::Create(); |
| 1394 root_->SetBounds(bounds); | 1393 root_->SetBounds(bounds); |
| 1395 | 1394 |
| 1396 layer_ = TextureLayer::CreateForMailbox(layer_settings(), nullptr); | 1395 layer_ = TextureLayer::CreateForMailbox(nullptr); |
| 1397 layer_->SetIsDrawable(true); | 1396 layer_->SetIsDrawable(true); |
| 1398 layer_->SetBounds(bounds); | 1397 layer_->SetBounds(bounds); |
| 1399 | 1398 |
| 1400 root_->AddChild(layer_); | 1399 root_->AddChild(layer_); |
| 1401 layer_tree_host()->SetRootLayer(root_); | 1400 layer_tree_host()->SetRootLayer(root_); |
| 1402 layer_tree_host()->SetViewportSize(bounds); | 1401 layer_tree_host()->SetViewportSize(bounds); |
| 1403 } | 1402 } |
| 1404 | 1403 |
| 1405 void BeginTest() override { | 1404 void BeginTest() override { |
| 1406 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); | 1405 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1454 base::Unretained(this))); | 1453 base::Unretained(this))); |
| 1455 layer_->SetTextureMailbox( | 1454 layer_->SetTextureMailbox( |
| 1456 TextureMailbox(MailboxFromChar(mailbox_char), | 1455 TextureMailbox(MailboxFromChar(mailbox_char), |
| 1457 SyncTokenFromUInt(static_cast<uint32_t>(mailbox_char)), | 1456 SyncTokenFromUInt(static_cast<uint32_t>(mailbox_char)), |
| 1458 GL_TEXTURE_2D), | 1457 GL_TEXTURE_2D), |
| 1459 std::move(callback)); | 1458 std::move(callback)); |
| 1460 } | 1459 } |
| 1461 | 1460 |
| 1462 void SetupTree() override { | 1461 void SetupTree() override { |
| 1463 gfx::Size bounds(100, 100); | 1462 gfx::Size bounds(100, 100); |
| 1464 root_ = Layer::Create(layer_settings()); | 1463 root_ = Layer::Create(); |
| 1465 root_->SetBounds(bounds); | 1464 root_->SetBounds(bounds); |
| 1466 | 1465 |
| 1467 layer_ = TextureLayer::CreateForMailbox(layer_settings(), nullptr); | 1466 layer_ = TextureLayer::CreateForMailbox(nullptr); |
| 1468 layer_->SetIsDrawable(true); | 1467 layer_->SetIsDrawable(true); |
| 1469 layer_->SetBounds(bounds); | 1468 layer_->SetBounds(bounds); |
| 1470 | 1469 |
| 1471 root_->AddChild(layer_); | 1470 root_->AddChild(layer_); |
| 1472 layer_tree_host()->SetRootLayer(root_); | 1471 layer_tree_host()->SetRootLayer(root_); |
| 1473 layer_tree_host()->SetViewportSize(bounds); | 1472 layer_tree_host()->SetViewportSize(bounds); |
| 1474 } | 1473 } |
| 1475 | 1474 |
| 1476 void BeginTest() override { | 1475 void BeginTest() override { |
| 1477 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); | 1476 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 1506 int callback_count_; | 1505 int callback_count_; |
| 1507 scoped_refptr<Layer> root_; | 1506 scoped_refptr<Layer> root_; |
| 1508 scoped_refptr<TextureLayer> layer_; | 1507 scoped_refptr<TextureLayer> layer_; |
| 1509 }; | 1508 }; |
| 1510 | 1509 |
| 1511 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F( | 1510 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F( |
| 1512 TextureLayerWithMailboxImplThreadDeleted); | 1511 TextureLayerWithMailboxImplThreadDeleted); |
| 1513 | 1512 |
| 1514 } // namespace | 1513 } // namespace |
| 1515 } // namespace cc | 1514 } // namespace cc |
| OLD | NEW |