| Index: cc/layers/texture_layer_unittest.cc
|
| diff --git a/cc/layers/texture_layer_unittest.cc b/cc/layers/texture_layer_unittest.cc
|
| index 3171cc6eb891069a03cbccc147a113d7d3f43a33..505c1fcddd134234003984fc836194f025c675ef 100644
|
| --- a/cc/layers/texture_layer_unittest.cc
|
| +++ b/cc/layers/texture_layer_unittest.cc
|
| @@ -421,6 +421,70 @@ class TextureLayerImplWithMailboxTest : public TextureLayerTest {
|
| FakeLayerTreeHostClient fake_client_;
|
| };
|
|
|
| +// Test conditions for results of TextureLayerImpl::WillDraw under
|
| +// different configurations of different mailbox, texture_id, and draw_mode.
|
| +TEST_F(TextureLayerImplWithMailboxTest, TestWillDraw) {
|
| + // Hardware mode.
|
| + {
|
| + scoped_ptr<TextureLayerImpl> impl_layer =
|
| + TextureLayerImpl::Create(host_impl_.active_tree(), 1, true);
|
| + impl_layer->SetTextureMailbox(test_data_.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());
|
| + }
|
| +
|
| + {
|
| + scoped_ptr<TextureLayerImpl> impl_layer =
|
| + TextureLayerImpl::Create(host_impl_.active_tree(), 1, true);
|
| + impl_layer->SetTextureMailbox(test_data_.mailbox1_);
|
| + EXPECT_FALSE(impl_layer->WillDraw(
|
| + DRAW_MODE_HARDWARE, host_impl_.active_tree()->resource_provider()));
|
| + }
|
| +
|
| + {
|
| + scoped_ptr<TextureLayerImpl> impl_layer =
|
| + TextureLayerImpl::Create(host_impl_.active_tree(), 1, false);
|
| + unsigned texture =
|
| + host_impl_.output_surface()->context3d()->createTexture();
|
| + impl_layer->set_texture_id(texture);
|
| + EXPECT_TRUE(impl_layer->WillDraw(
|
| + DRAW_MODE_HARDWARE, host_impl_.active_tree()->resource_provider()));
|
| + impl_layer->DidDraw(host_impl_.active_tree()->resource_provider());
|
| + }
|
| +
|
| + {
|
| + scoped_ptr<TextureLayerImpl> impl_layer =
|
| + TextureLayerImpl::Create(host_impl_.active_tree(), 1, false);
|
| + impl_layer->set_texture_id(0);
|
| + EXPECT_FALSE(impl_layer->WillDraw(
|
| + DRAW_MODE_HARDWARE, host_impl_.active_tree()->resource_provider()));
|
| + }
|
| +
|
| + // Resourceless software mode.
|
| + {
|
| + scoped_ptr<TextureLayerImpl> impl_layer =
|
| + TextureLayerImpl::Create(host_impl_.active_tree(), 1, true);
|
| + impl_layer->SetTextureMailbox(test_data_.mailbox1_);
|
| + impl_layer->DidBecomeActive();
|
| + EXPECT_FALSE(
|
| + impl_layer->WillDraw(DRAW_MODE_RESOURCELESS_SOFTWARE,
|
| + host_impl_.active_tree()->resource_provider()));
|
| + }
|
| +
|
| + {
|
| + scoped_ptr<TextureLayerImpl> impl_layer =
|
| + TextureLayerImpl::Create(host_impl_.active_tree(), 1, false);
|
| + unsigned texture =
|
| + host_impl_.output_surface()->context3d()->createTexture();
|
| + impl_layer->set_texture_id(texture);
|
| + EXPECT_FALSE(
|
| + impl_layer->WillDraw(DRAW_MODE_RESOURCELESS_SOFTWARE,
|
| + host_impl_.active_tree()->resource_provider()));
|
| + }
|
| +}
|
| +
|
| TEST_F(TextureLayerImplWithMailboxTest, TestImplLayerCallbacks) {
|
| host_impl_.CreatePendingTree();
|
| scoped_ptr<TextureLayerImpl> pending_layer;
|
| @@ -485,7 +549,9 @@ TEST_F(TextureLayerImplWithMailboxTest,
|
| Release(test_data_.mailbox_name1_, _, false))
|
| .Times(1);
|
| impl_layer->SetTextureMailbox(test_data_.mailbox1_);
|
| - impl_layer->WillDraw(host_impl_.active_tree()->resource_provider());
|
| + 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());
|
| }
|
|
|