Index: cc/layers/texture_layer_unittest.cc |
diff --git a/cc/layers/texture_layer_unittest.cc b/cc/layers/texture_layer_unittest.cc |
index bce1eefc5457b27546ffca51e52fc1137d88fe0e..9ba671dafc36747a5469692944bd2ab63815f878 100644 |
--- a/cc/layers/texture_layer_unittest.cc |
+++ b/cc/layers/texture_layer_unittest.cc |
@@ -251,8 +251,10 @@ class FakeTextureLayerClient : public TextureLayerClient { |
} |
virtual bool PrepareTextureMailbox(TextureMailbox* mailbox, |
+ ScopedReleaseCallback* release_callback, |
bool use_shared_memory) OVERRIDE { |
*mailbox = TextureMailbox(); |
+ *release_callback = ScopedReleaseCallback(); |
return true; |
} |
@@ -335,25 +337,25 @@ struct CommonMailboxObjects { |
mailbox_name2_); |
gpu::Mailbox m1; |
m1.SetName(reinterpret_cast<const int8*>(mailbox_name1_.data())); |
- mailbox1_ = TextureMailbox(m1, release_mailbox1_, sync_point1_); |
+ mailbox1_ = TextureMailbox(m1, sync_point1_); |
gpu::Mailbox m2; |
m2.SetName(reinterpret_cast<const int8*>(mailbox_name2_.data())); |
- mailbox2_ = TextureMailbox(m2, release_mailbox2_, sync_point2_); |
+ mailbox2_ = TextureMailbox(m2, sync_point2_); |
gfx::Size size(128, 128); |
EXPECT_TRUE(shared_memory_->CreateAndMapAnonymous(4 * size.GetArea())); |
release_mailbox3_ = base::Bind(&MockMailboxCallback::Release2, |
base::Unretained(&mock_callback_), |
shared_memory_.get()); |
- mailbox3_ = TextureMailbox(shared_memory_.get(), size, release_mailbox3_); |
+ mailbox3_ = TextureMailbox(shared_memory_.get(), size); |
} |
std::string mailbox_name1_; |
std::string mailbox_name2_; |
MockMailboxCallback mock_callback_; |
- TextureMailbox::ReleaseCallback release_mailbox1_; |
- TextureMailbox::ReleaseCallback release_mailbox2_; |
- TextureMailbox::ReleaseCallback release_mailbox3_; |
+ ReleaseCallback release_mailbox1_; |
+ ReleaseCallback release_mailbox2_; |
+ ReleaseCallback release_mailbox3_; |
TextureMailbox mailbox1_; |
TextureMailbox mailbox2_; |
TextureMailbox mailbox3_; |
@@ -395,7 +397,9 @@ TEST_F(TextureLayerWithMailboxTest, ReplaceMailboxOnMainThreadBeforeCommit) { |
EXPECT_CALL(*layer_tree_host_, AcquireLayerTextures()).Times(0); |
EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1)); |
- test_layer->SetTextureMailbox(test_data_.mailbox1_); |
+ test_layer->SetTextureMailbox( |
+ test_data_.mailbox1_, |
+ ScopedReleaseCallback(test_data_.release_mailbox1_)); |
Mock::VerifyAndClearExpectations(layer_tree_host_.get()); |
EXPECT_CALL(*layer_tree_host_, AcquireLayerTextures()).Times(0); |
@@ -405,7 +409,9 @@ TEST_F(TextureLayerWithMailboxTest, ReplaceMailboxOnMainThreadBeforeCommit) { |
test_data_.sync_point1_, |
false)) |
.Times(1); |
- test_layer->SetTextureMailbox(test_data_.mailbox2_); |
+ test_layer->SetTextureMailbox( |
+ test_data_.mailbox2_, |
+ ScopedReleaseCallback(test_data_.release_mailbox2_)); |
Mock::VerifyAndClearExpectations(layer_tree_host_.get()); |
Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); |
@@ -416,13 +422,15 @@ TEST_F(TextureLayerWithMailboxTest, ReplaceMailboxOnMainThreadBeforeCommit) { |
test_data_.sync_point2_, |
false)) |
.Times(1); |
- test_layer->SetTextureMailbox(TextureMailbox()); |
+ test_layer->SetTextureMailbox(TextureMailbox(), ScopedReleaseCallback()); |
Mock::VerifyAndClearExpectations(layer_tree_host_.get()); |
Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); |
EXPECT_CALL(*layer_tree_host_, AcquireLayerTextures()).Times(0); |
EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1)); |
- test_layer->SetTextureMailbox(test_data_.mailbox3_); |
+ test_layer->SetTextureMailbox( |
+ test_data_.mailbox3_, |
+ ScopedReleaseCallback(test_data_.release_mailbox3_)); |
Mock::VerifyAndClearExpectations(layer_tree_host_.get()); |
Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); |
@@ -432,13 +440,15 @@ TEST_F(TextureLayerWithMailboxTest, ReplaceMailboxOnMainThreadBeforeCommit) { |
Release2(test_data_.shared_memory_.get(), |
0, false)) |
.Times(1); |
- test_layer->SetTextureMailbox(TextureMailbox()); |
+ test_layer->SetTextureMailbox(TextureMailbox(), ScopedReleaseCallback()); |
Mock::VerifyAndClearExpectations(layer_tree_host_.get()); |
Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); |
// Test destructor. |
EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1)); |
- test_layer->SetTextureMailbox(test_data_.mailbox1_); |
+ test_layer->SetTextureMailbox( |
+ test_data_.mailbox1_, |
+ ScopedReleaseCallback(test_data_.release_mailbox1_)); |
} |
class TextureLayerMailboxHolderTest : public TextureLayerTest { |
@@ -460,14 +470,15 @@ class TextureLayerMailboxHolderTest : public TextureLayerTest { |
void CreateMainRef() { |
main_ref_ = TestMailboxHolder::Create( |
- test_data_.mailbox1_).Pass(); |
+ test_data_.mailbox1_, |
+ ScopedReleaseCallback(test_data_.release_mailbox1_)).Pass(); |
} |
void ReleaseMainRef() { |
main_ref_.reset(); |
} |
- void CreateImplRef(TextureMailbox::ReleaseCallback* impl_ref) { |
+ void CreateImplRef(ScopedReleaseCallback* impl_ref) { |
*impl_ref = main_ref_->holder()->GetCallbackForImplThread(); |
} |
@@ -500,7 +511,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_BothReleaseThenMain) { |
// The texture layer is attached to compositor1, and passes a reference to its |
// impl tree. |
- TextureMailbox::ReleaseCallback compositor1; |
+ ScopedReleaseCallback compositor1; |
main_thread_.message_loop()->PostTask( |
FROM_HERE, |
base::Bind(&TextureLayerMailboxHolderTest::CreateImplRef, |
@@ -509,7 +520,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_BothReleaseThenMain) { |
// Then the texture layer is removed and attached to compositor2, and passes a |
// reference to its impl tree. |
- TextureMailbox::ReleaseCallback compositor2; |
+ ScopedReleaseCallback compositor2; |
main_thread_.message_loop()->PostTask( |
FROM_HERE, |
base::Bind(&TextureLayerMailboxHolderTest::CreateImplRef, |
@@ -521,8 +532,8 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_BothReleaseThenMain) { |
// The compositors both destroy their impl trees before the main thread layer |
// is destroyed. |
- compositor1.Run(100, false); |
- compositor2.Run(200, false); |
+ compositor1.RunAndReset(100, false); |
+ compositor2.RunAndReset(200, false); |
Wait(main_thread_); |
@@ -555,7 +566,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleaseBetween) { |
// The texture layer is attached to compositor1, and passes a reference to its |
// impl tree. |
- TextureMailbox::ReleaseCallback compositor1; |
+ ScopedReleaseCallback compositor1; |
main_thread_.message_loop()->PostTask( |
FROM_HERE, |
base::Bind(&TextureLayerMailboxHolderTest::CreateImplRef, |
@@ -564,7 +575,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleaseBetween) { |
// Then the texture layer is removed and attached to compositor2, and passes a |
// reference to its impl tree. |
- TextureMailbox::ReleaseCallback compositor2; |
+ ScopedReleaseCallback compositor2; |
main_thread_.message_loop()->PostTask( |
FROM_HERE, |
base::Bind(&TextureLayerMailboxHolderTest::CreateImplRef, |
@@ -575,7 +586,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleaseBetween) { |
Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); |
// One compositor destroys their impl tree. |
- compositor1.Run(100, false); |
+ compositor1.RunAndReset(100, false); |
// Then the main thread reference is destroyed. |
main_thread_.message_loop()->PostTask( |
@@ -593,7 +604,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleaseBetween) { |
EXPECT_CALL(test_data_.mock_callback_, |
Release(test_data_.mailbox_name1_, 200, true)).Times(1); |
- compositor2.Run(200, true); |
+ compositor2.RunAndReset(200, true); |
Wait(main_thread_); |
Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); |
} |
@@ -611,7 +622,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleasedFirst) { |
// The texture layer is attached to compositor1, and passes a reference to its |
// impl tree. |
- TextureMailbox::ReleaseCallback compositor1; |
+ ScopedReleaseCallback compositor1; |
main_thread_.message_loop()->PostTask( |
FROM_HERE, |
base::Bind(&TextureLayerMailboxHolderTest::CreateImplRef, |
@@ -620,7 +631,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleasedFirst) { |
// Then the texture layer is removed and attached to compositor2, and passes a |
// reference to its impl tree. |
- TextureMailbox::ReleaseCallback compositor2; |
+ ScopedReleaseCallback compositor2; |
main_thread_.message_loop()->PostTask( |
FROM_HERE, |
base::Bind(&TextureLayerMailboxHolderTest::CreateImplRef, |
@@ -637,7 +648,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleasedFirst) { |
base::Unretained(this))); |
// One compositor destroys their impl tree. |
- compositor2.Run(200, false); |
+ compositor2.RunAndReset(200, false); |
Wait(main_thread_); |
@@ -649,7 +660,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleasedFirst) { |
EXPECT_CALL(test_data_.mock_callback_, |
Release(test_data_.mailbox_name1_, 100, true)).Times(1); |
- compositor1.Run(100, true); |
+ compositor1.RunAndReset(100, true); |
Wait(main_thread_); |
Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); |
} |
@@ -667,7 +678,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_SecondImplRefShortcut) { |
// The texture layer is attached to compositor1, and passes a reference to its |
// impl tree. |
- TextureMailbox::ReleaseCallback compositor1; |
+ ScopedReleaseCallback compositor1; |
main_thread_.message_loop()->PostTask( |
FROM_HERE, |
base::Bind(&TextureLayerMailboxHolderTest::CreateImplRef, |
@@ -676,7 +687,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_SecondImplRefShortcut) { |
// Then the texture layer is removed and attached to compositor2, and passes a |
// reference to its impl tree. |
- TextureMailbox::ReleaseCallback compositor2; |
+ ScopedReleaseCallback compositor2; |
main_thread_.message_loop()->PostTask( |
FROM_HERE, |
base::Bind(&TextureLayerMailboxHolderTest::CreateImplRef, |
@@ -714,7 +725,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_SecondImplRefShortcut) { |
// Before the main thread capturing starts, one compositor destroys their |
// impl reference. Since capturing did not start, this gets post-tasked to |
// the main thread. |
- compositor1.Run(100, false); |
+ compositor1.RunAndReset(100, false); |
// Start capturing on the main thread. |
begin_capture.Signal(); |
@@ -725,7 +736,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_SecondImplRefShortcut) { |
// released before compositor1, whose reference will be released later when |
// the post-task is serviced. But since it was destroyed _on the impl thread_ |
// last, its sync point values should be used. |
- compositor2.Run(200, true); |
+ compositor2.RunAndReset(200, true); |
stop_capture.Signal(); |
Wait(main_thread_); |
@@ -748,12 +759,11 @@ class TextureLayerImplWithMailboxThreadedCallback : public LayerTreeTest { |
void SetMailbox(char mailbox_char) { |
EXPECT_EQ(true, main_thread_.CalledOnValidThread()); |
- TextureMailbox mailbox( |
- std::string(64, mailbox_char), |
- base::Bind( |
- &TextureLayerImplWithMailboxThreadedCallback::ReleaseCallback, |
- base::Unretained(this))); |
- layer_->SetTextureMailbox(mailbox); |
+ TextureMailbox mailbox(std::string(64, mailbox_char)); |
+ ScopedReleaseCallback callback(base::Bind( |
+ &TextureLayerImplWithMailboxThreadedCallback::ReleaseCallback, |
+ base::Unretained(this))); |
+ layer_->SetTextureMailbox(mailbox, callback.Pass()); |
} |
virtual void BeginTest() OVERRIDE { |
@@ -803,7 +813,7 @@ class TextureLayerImplWithMailboxThreadedCallback : public LayerTreeTest { |
EXPECT_EQ(3, callback_count_); |
// Case #4: release mailbox that was committed but never drawn. The |
// old mailbox should be released during the next commit. |
- layer_->SetTextureMailbox(TextureMailbox()); |
+ layer_->SetTextureMailbox(TextureMailbox(), ScopedReleaseCallback()); |
break; |
case 4: |
if (layer_tree_host()->settings().impl_side_painting) { |
@@ -842,7 +852,7 @@ class TextureLayerImplWithMailboxThreadedCallback : public LayerTreeTest { |
case 8: |
EXPECT_EQ(4, callback_count_); |
// Resetting the mailbox will call the callback now. |
- layer_->SetTextureMailbox(TextureMailbox()); |
+ layer_->SetTextureMailbox(TextureMailbox(), ScopedReleaseCallback()); |
EXPECT_EQ(5, callback_count_); |
EndTest(); |
break; |
@@ -904,6 +914,7 @@ class TextureLayerNoMailboxIsActivatedDuringCommit : public LayerTreeTest, |
return OffscreenContextProviderForMainThread()->Context3d(); |
} |
virtual bool PrepareTextureMailbox(TextureMailbox* mailbox, |
+ ScopedReleaseCallback* release_callback, |
bool use_shared_memory) OVERRIDE { |
return false; |
} |
@@ -998,11 +1009,10 @@ class TextureLayerMailboxIsActivatedDuringCommit : public LayerTreeTest { |
static void ReleaseCallback(unsigned sync_point, bool lost_resource) {} |
void SetMailbox(char mailbox_char) { |
- TextureMailbox mailbox( |
- std::string(64, mailbox_char), |
- base::Bind( |
- &TextureLayerMailboxIsActivatedDuringCommit::ReleaseCallback)); |
- layer_->SetTextureMailbox(mailbox); |
+ TextureMailbox mailbox(std::string(64, mailbox_char)); |
+ ScopedReleaseCallback callback(base::Bind( |
+ &TextureLayerMailboxIsActivatedDuringCommit::ReleaseCallback)); |
+ layer_->SetTextureMailbox(mailbox, callback.Pass()); |
} |
virtual void BeginTest() OVERRIDE { |
@@ -1143,14 +1153,16 @@ TEST_F(TextureLayerImplWithMailboxTest, TestWillDraw) { |
{ |
scoped_ptr<TextureLayerImpl> impl_layer = |
TextureLayerImpl::Create(host_impl_.active_tree(), 1, true); |
- impl_layer->SetTextureMailbox(test_data_.mailbox1_); |
+ impl_layer->SetTextureMailbox( |
+ test_data_.mailbox1_, |
+ ScopedReleaseCallback(test_data_.release_mailbox1_)); |
EXPECT_TRUE(WillDraw(impl_layer.get(), DRAW_MODE_HARDWARE)); |
} |
{ |
scoped_ptr<TextureLayerImpl> impl_layer = |
TextureLayerImpl::Create(host_impl_.active_tree(), 1, true); |
- impl_layer->SetTextureMailbox(TextureMailbox()); |
+ impl_layer->SetTextureMailbox(TextureMailbox(), ScopedReleaseCallback()); |
EXPECT_FALSE(WillDraw(impl_layer.get(), DRAW_MODE_HARDWARE)); |
} |
@@ -1158,7 +1170,9 @@ TEST_F(TextureLayerImplWithMailboxTest, TestWillDraw) { |
// Software resource. |
scoped_ptr<TextureLayerImpl> impl_layer = |
TextureLayerImpl::Create(host_impl_.active_tree(), 1, true); |
- impl_layer->SetTextureMailbox(test_data_.mailbox3_); |
+ impl_layer->SetTextureMailbox( |
+ test_data_.mailbox3_, |
+ ScopedReleaseCallback(test_data_.release_mailbox3_)); |
EXPECT_TRUE(WillDraw(impl_layer.get(), DRAW_MODE_HARDWARE)); |
} |
@@ -1184,14 +1198,16 @@ TEST_F(TextureLayerImplWithMailboxTest, TestWillDraw) { |
{ |
scoped_ptr<TextureLayerImpl> impl_layer = |
TextureLayerImpl::Create(host_impl_.active_tree(), 1, true); |
- impl_layer->SetTextureMailbox(test_data_.mailbox1_); |
+ impl_layer->SetTextureMailbox( |
+ test_data_.mailbox1_, |
+ ScopedReleaseCallback(test_data_.release_mailbox1_)); |
EXPECT_FALSE(WillDraw(impl_layer.get(), DRAW_MODE_SOFTWARE)); |
} |
{ |
scoped_ptr<TextureLayerImpl> impl_layer = |
TextureLayerImpl::Create(host_impl_.active_tree(), 1, true); |
- impl_layer->SetTextureMailbox(TextureMailbox()); |
+ impl_layer->SetTextureMailbox(TextureMailbox(), ScopedReleaseCallback()); |
EXPECT_FALSE(WillDraw(impl_layer.get(), DRAW_MODE_SOFTWARE)); |
} |
@@ -1199,7 +1215,9 @@ TEST_F(TextureLayerImplWithMailboxTest, TestWillDraw) { |
// Software resource. |
scoped_ptr<TextureLayerImpl> impl_layer = |
TextureLayerImpl::Create(host_impl_.active_tree(), 1, true); |
- impl_layer->SetTextureMailbox(test_data_.mailbox3_); |
+ impl_layer->SetTextureMailbox( |
+ test_data_.mailbox3_, |
+ ScopedReleaseCallback(test_data_.release_mailbox3_)); |
EXPECT_TRUE(WillDraw(impl_layer.get(), DRAW_MODE_SOFTWARE)); |
} |
@@ -1225,7 +1243,9 @@ TEST_F(TextureLayerImplWithMailboxTest, TestWillDraw) { |
{ |
scoped_ptr<TextureLayerImpl> impl_layer = |
TextureLayerImpl::Create(host_impl_.active_tree(), 1, true); |
- impl_layer->SetTextureMailbox(test_data_.mailbox1_); |
+ impl_layer->SetTextureMailbox( |
+ test_data_.mailbox1_, |
+ ScopedReleaseCallback(test_data_.release_mailbox1_)); |
EXPECT_FALSE(WillDraw(impl_layer.get(), DRAW_MODE_RESOURCELESS_SOFTWARE)); |
} |
@@ -1251,7 +1271,9 @@ TEST_F(TextureLayerImplWithMailboxTest, TestImplLayerCallbacks) { |
pending_layer->CreateLayerImpl(host_impl_.active_tree())); |
ASSERT_TRUE(active_layer); |
- pending_layer->SetTextureMailbox(test_data_.mailbox1_); |
+ pending_layer->SetTextureMailbox( |
+ test_data_.mailbox1_, |
+ ScopedReleaseCallback(test_data_.release_mailbox1_)); |
// Test multiple commits without an activation. |
EXPECT_CALL(test_data_.mock_callback_, |
@@ -1259,7 +1281,9 @@ TEST_F(TextureLayerImplWithMailboxTest, TestImplLayerCallbacks) { |
test_data_.sync_point1_, |
false)) |
.Times(1); |
- pending_layer->SetTextureMailbox(test_data_.mailbox2_); |
+ pending_layer->SetTextureMailbox( |
+ test_data_.mailbox2_, |
+ ScopedReleaseCallback(test_data_.release_mailbox2_)); |
Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); |
// Test callback after activation. |
@@ -1267,7 +1291,9 @@ TEST_F(TextureLayerImplWithMailboxTest, TestImplLayerCallbacks) { |
active_layer->DidBecomeActive(); |
EXPECT_CALL(test_data_.mock_callback_, Release(_, _, _)).Times(0); |
- pending_layer->SetTextureMailbox(test_data_.mailbox1_); |
+ pending_layer->SetTextureMailbox( |
+ test_data_.mailbox1_, |
+ ScopedReleaseCallback(test_data_.release_mailbox1_)); |
Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); |
EXPECT_CALL(test_data_.mock_callback_, |
@@ -1281,7 +1307,7 @@ TEST_F(TextureLayerImplWithMailboxTest, TestImplLayerCallbacks) { |
EXPECT_CALL(test_data_.mock_callback_, |
Release(test_data_.mailbox_name1_, _, false)) |
.Times(1); |
- pending_layer->SetTextureMailbox(TextureMailbox()); |
+ pending_layer->SetTextureMailbox(TextureMailbox(), ScopedReleaseCallback()); |
pending_layer->PushPropertiesTo(active_layer.get()); |
active_layer->DidBecomeActive(); |
Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); |
@@ -1292,7 +1318,9 @@ TEST_F(TextureLayerImplWithMailboxTest, TestImplLayerCallbacks) { |
test_data_.sync_point1_, |
false)) |
.Times(1); |
- pending_layer->SetTextureMailbox(test_data_.mailbox1_); |
+ pending_layer->SetTextureMailbox( |
+ test_data_.mailbox1_, |
+ ScopedReleaseCallback(test_data_.release_mailbox1_)); |
} |
TEST_F(TextureLayerImplWithMailboxTest, |
@@ -1304,18 +1332,22 @@ TEST_F(TextureLayerImplWithMailboxTest, |
EXPECT_CALL(test_data_.mock_callback_, |
Release(test_data_.mailbox_name1_, _, false)) |
.Times(1); |
- impl_layer->SetTextureMailbox(test_data_.mailbox1_); |
+ impl_layer->SetTextureMailbox( |
+ test_data_.mailbox1_, |
+ ScopedReleaseCallback(test_data_.release_mailbox1_)); |
impl_layer->DidBecomeActive(); |
EXPECT_TRUE(impl_layer->WillDraw( |
DRAW_MODE_HARDWARE, host_impl_.active_tree()->resource_provider())); |
impl_layer->DidDraw(host_impl_.active_tree()->resource_provider()); |
- impl_layer->SetTextureMailbox(TextureMailbox()); |
+ impl_layer->SetTextureMailbox(TextureMailbox(), ScopedReleaseCallback()); |
} |
TEST_F(TextureLayerImplWithMailboxTest, TestCallbackOnInUseResource) { |
ResourceProvider* provider = host_impl_.active_tree()->resource_provider(); |
ResourceProvider::ResourceId id = |
- provider->CreateResourceFromTextureMailbox(test_data_.mailbox1_); |
+ provider->CreateResourceFromTextureMailbox( |
+ test_data_.mailbox1_, |
+ ScopedReleaseCallback(test_data_.release_mailbox1_)); |
provider->AllocateForTesting(id); |
// Transfer some resources to the parent. |
@@ -1366,7 +1398,9 @@ class TextureLayerClientTest |
} |
virtual bool PrepareTextureMailbox( |
- cc::TextureMailbox* mailbox, bool use_shared_memory) OVERRIDE { |
+ TextureMailbox* mailbox, |
+ ScopedReleaseCallback* release_callback, |
+ bool use_shared_memory) OVERRIDE { |
return false; |
} |
@@ -1482,7 +1516,9 @@ class TextureLayerLostContextTest |
} |
virtual bool PrepareTextureMailbox( |
- cc::TextureMailbox* mailbox, bool use_shared_memory) OVERRIDE { |
+ TextureMailbox* mailbox, |
+ ScopedReleaseCallback* release_callback, |
+ bool use_shared_memory) OVERRIDE { |
return false; |
} |
@@ -1543,12 +1579,11 @@ class TextureLayerWithMailboxMainThreadDeleted : public LayerTreeTest { |
void SetMailbox(char mailbox_char) { |
EXPECT_EQ(true, main_thread_.CalledOnValidThread()); |
- TextureMailbox mailbox( |
- std::string(64, mailbox_char), |
- base::Bind( |
- &TextureLayerWithMailboxMainThreadDeleted::ReleaseCallback, |
- base::Unretained(this))); |
- layer_->SetTextureMailbox(mailbox); |
+ TextureMailbox mailbox(std::string(64, mailbox_char)); |
+ ScopedReleaseCallback callback(base::Bind( |
+ &TextureLayerWithMailboxMainThreadDeleted::ReleaseCallback, |
+ base::Unretained(this))); |
+ layer_->SetTextureMailbox(mailbox, callback.Pass()); |
} |
virtual void SetupTree() OVERRIDE { |
@@ -1615,12 +1650,11 @@ class TextureLayerWithMailboxImplThreadDeleted : public LayerTreeTest { |
void SetMailbox(char mailbox_char) { |
EXPECT_EQ(true, main_thread_.CalledOnValidThread()); |
- TextureMailbox mailbox( |
- std::string(64, mailbox_char), |
- base::Bind( |
- &TextureLayerWithMailboxImplThreadDeleted::ReleaseCallback, |
- base::Unretained(this))); |
- layer_->SetTextureMailbox(mailbox); |
+ TextureMailbox mailbox(std::string(64, mailbox_char)); |
+ ScopedReleaseCallback callback(base::Bind( |
+ &TextureLayerWithMailboxImplThreadDeleted::ReleaseCallback, |
+ base::Unretained(this))); |
+ layer_->SetTextureMailbox(mailbox, callback.Pass()); |
} |
virtual void SetupTree() OVERRIDE { |