X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fcc%2Flayers%2Ftexture_layer_unittest.cc;h=88ff0409615523770fd3c0d49ae6b1b513de8f4b;hb=ff3e2503a20db9193d323c1d19c38c68004dec4a;hp=feaa585921b25d8b90556c71fa31f4095c719c29;hpb=7338fba38ba696536d1cc9d389afd716a6ab2fe6;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/cc/layers/texture_layer_unittest.cc b/src/cc/layers/texture_layer_unittest.cc index feaa585..88ff040 100644 --- a/src/cc/layers/texture_layer_unittest.cc +++ b/src/cc/layers/texture_layer_unittest.cc @@ -41,6 +41,12 @@ using ::testing::AnyNumber; namespace cc { namespace { +gpu::Mailbox MailboxFromChar(char value) { + gpu::Mailbox mailbox; + memset(mailbox.name, value, sizeof(mailbox.name)); + return mailbox; +} + class MockLayerTreeHost : public LayerTreeHost { public: explicit MockLayerTreeHost(FakeLayerTreeHostClient* client) @@ -315,18 +321,20 @@ TEST_F(TextureLayerTest, RateLimiter) { class MockMailboxCallback { public: - MOCK_METHOD3(Release, void(const std::string& mailbox, - unsigned sync_point, - bool lost_resource)); - MOCK_METHOD3(Release2, void(base::SharedMemory* shared_memory, - unsigned sync_point, - bool lost_resource)); + MOCK_METHOD3(Release, + void(const gpu::Mailbox& mailbox, + uint32 sync_point, + bool lost_resource)); + MOCK_METHOD3(Release2, + void(base::SharedMemory* shared_memory, + uint32 sync_point, + bool lost_resource)); }; struct CommonMailboxObjects { CommonMailboxObjects() - : mailbox_name1_(64, '1'), - mailbox_name2_(64, '2'), + : mailbox_name1_(MailboxFromChar('1')), + mailbox_name2_(MailboxFromChar('2')), sync_point1_(1), sync_point2_(2), shared_memory_(new base::SharedMemory) { @@ -336,13 +344,10 @@ struct CommonMailboxObjects { release_mailbox2_ = base::Bind(&MockMailboxCallback::Release, base::Unretained(&mock_callback_), mailbox_name2_); - gpu::Mailbox m1; - m1.SetName(reinterpret_cast(mailbox_name1_.data())); - mailbox1_ = TextureMailbox(m1, sync_point1_); - gpu::Mailbox m2; - m2.SetName(reinterpret_cast(mailbox_name2_.data())); - mailbox2_ = TextureMailbox(m2, sync_point2_); - + const uint32 arbitrary_target1 = 1; + const uint32 arbitrary_target2 = 2; + mailbox1_ = TextureMailbox(mailbox_name1_, arbitrary_target1, sync_point1_); + mailbox2_ = TextureMailbox(mailbox_name2_, arbitrary_target2, sync_point2_); gfx::Size size(128, 128); EXPECT_TRUE(shared_memory_->CreateAndMapAnonymous(4 * size.GetArea())); release_mailbox3_ = base::Bind(&MockMailboxCallback::Release2, @@ -351,8 +356,8 @@ struct CommonMailboxObjects { mailbox3_ = TextureMailbox(shared_memory_.get(), size); } - std::string mailbox_name1_; - std::string mailbox_name2_; + gpu::Mailbox mailbox_name1_; + gpu::Mailbox mailbox_name2_; MockMailboxCallback mock_callback_; ReleaseCallback release_mailbox1_; ReleaseCallback release_mailbox2_; @@ -360,14 +365,14 @@ struct CommonMailboxObjects { TextureMailbox mailbox1_; TextureMailbox mailbox2_; TextureMailbox mailbox3_; - unsigned sync_point1_; - unsigned sync_point2_; + uint32 sync_point1_; + uint32 sync_point2_; scoped_ptr shared_memory_; }; -class TestMailboxHolder : public TextureLayer::MailboxHolder { +class TestMailboxHolder : public TextureLayer::TextureMailboxHolder { public: - using TextureLayer::MailboxHolder::Create; + using TextureLayer::TextureMailboxHolder::Create; protected: virtual ~TestMailboxHolder() {} @@ -754,7 +759,7 @@ class TextureLayerImplWithMailboxThreadedCallback : public LayerTreeTest { commit_count_(0) {} // Make sure callback is received on main and doesn't block the impl thread. - void ReleaseCallback(unsigned sync_point, bool lost_resource) { + void ReleaseCallback(uint32 sync_point, bool lost_resource) { EXPECT_EQ(true, main_thread_.CalledOnValidThread()); EXPECT_FALSE(lost_resource); ++callback_count_; @@ -762,12 +767,13 @@ class TextureLayerImplWithMailboxThreadedCallback : public LayerTreeTest { void SetMailbox(char mailbox_char) { EXPECT_EQ(true, main_thread_.CalledOnValidThread()); - TextureMailbox mailbox(std::string(64, mailbox_char)); scoped_ptr callback = SingleReleaseCallback::Create( base::Bind( &TextureLayerImplWithMailboxThreadedCallback::ReleaseCallback, base::Unretained(this))); - layer_->SetTextureMailbox(mailbox, callback.Pass()); + layer_->SetTextureMailbox( + TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0), + callback.Pass()); } virtual void BeginTest() OVERRIDE { @@ -906,11 +912,11 @@ class TextureLayerNoMailboxIsActivatedDuringCommit : public LayerTreeTest, PostSetNeedsCommitToMainThread(); } - virtual scoped_ptr CreateOutputSurface(bool fallback) + virtual scoped_ptr CreateFakeOutputSurface(bool fallback) OVERRIDE { scoped_refptr provider = TestContextProvider::Create(); texture_ = provider->UnboundTestContext3d()->createExternalTexture(); - return FakeOutputSurface::Create3d(provider).PassAs(); + return FakeOutputSurface::Create3d(provider); } // TextureLayerClient implementation. @@ -977,14 +983,15 @@ class TextureLayerMailboxIsActivatedDuringCommit : public LayerTreeTest { protected: TextureLayerMailboxIsActivatedDuringCommit() : activate_count_(0) {} - static void ReleaseCallback(unsigned sync_point, bool lost_resource) {} + static void ReleaseCallback(uint32 sync_point, bool lost_resource) {} void SetMailbox(char mailbox_char) { - TextureMailbox mailbox(std::string(64, mailbox_char)); scoped_ptr callback = SingleReleaseCallback::Create( base::Bind( &TextureLayerMailboxIsActivatedDuringCommit::ReleaseCallback)); - layer_->SetTextureMailbox(mailbox, callback.Pass()); + layer_->SetTextureMailbox( + TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0), + callback.Pass()); } virtual void BeginTest() OVERRIDE { @@ -1064,7 +1071,8 @@ class TextureLayerImplWithMailboxTest : public TextureLayerTest { virtual void SetUp() { TextureLayerTest::SetUp(); layer_tree_host_.reset(new MockLayerTreeHost(&fake_client_)); - EXPECT_TRUE(host_impl_.InitializeRenderer(CreateFakeOutputSurface())); + EXPECT_TRUE(host_impl_.InitializeRenderer( + FakeOutputSurface::Create3d().PassAs())); } bool WillDraw(TextureLayerImpl* layer, DrawMode mode) { @@ -1337,11 +1345,11 @@ class TextureLayerClientTest expected_used_textures_on_draw_(0), expected_used_textures_on_commit_(0) {} - virtual scoped_ptr CreateOutputSurface(bool fallback) + virtual scoped_ptr CreateFakeOutputSurface(bool fallback) OVERRIDE { scoped_refptr provider = TestContextProvider::Create(); texture_ = provider->UnboundTestContext3d()->createExternalTexture(); - return FakeOutputSurface::Create3d(provider).PassAs(); + return FakeOutputSurface::Create3d(provider); } virtual unsigned PrepareTexture() OVERRIDE { return texture_; } @@ -1402,11 +1410,12 @@ class TextureLayerClientTest expected_used_textures_on_draw_ = expected_used_textures_on_commit_; } - virtual bool PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, - LayerTreeHostImpl::FrameData* frame_data, - bool result) OVERRIDE { + virtual DrawSwapReadbackResult::DrawResult PrepareToDrawOnThread( + LayerTreeHostImpl* host_impl, + LayerTreeHostImpl::FrameData* frame_data, + DrawSwapReadbackResult::DrawResult draw_result) OVERRIDE { ContextForImplThread(host_impl)->ResetUsedTextures(); - return true; + return DrawSwapReadbackResult::DRAW_SUCCESS; } virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, @@ -1454,11 +1463,11 @@ class TextureLayerChangeInvisibleTest commit_count_(0), expected_texture_on_draw_(0) {} - virtual scoped_ptr CreateOutputSurface(bool fallback) + virtual scoped_ptr CreateFakeOutputSurface(bool fallback) OVERRIDE { scoped_refptr provider = TestContextProvider::Create(); texture_ = provider->UnboundTestContext3d()->createExternalTexture(); - return FakeOutputSurface::Create3d(provider).PassAs(); + return FakeOutputSurface::Create3d(provider); } // TextureLayerClient implementation. @@ -1548,11 +1557,12 @@ class TextureLayerChangeInvisibleTest expected_texture_on_draw_ = texture_; } - virtual bool PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, - LayerTreeHostImpl::FrameData* frame_data, - bool result) OVERRIDE { + virtual DrawSwapReadbackResult::DrawResult PrepareToDrawOnThread( + LayerTreeHostImpl* host_impl, + LayerTreeHostImpl::FrameData* frame_data, + DrawSwapReadbackResult::DrawResult draw_result) OVERRIDE { ContextForImplThread(host_impl)->ResetUsedTextures(); - return true; + return DrawSwapReadbackResult::DRAW_SUCCESS; } virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, @@ -1618,22 +1628,22 @@ class TextureLayerNoExtraCommitForMailboxTest return 0; } virtual bool PrepareTextureMailbox( - TextureMailbox* mailbox, + TextureMailbox* texture_mailbox, scoped_ptr* release_callback, bool use_shared_memory) OVERRIDE { if (layer_tree_host()->source_frame_number() == 1) { - *mailbox = TextureMailbox(); + *texture_mailbox = TextureMailbox(); return true; } - *mailbox = TextureMailbox(std::string(64, '1')); + *texture_mailbox = TextureMailbox(MailboxFromChar('1'), GL_TEXTURE_2D, 0); *release_callback = SingleReleaseCallback::Create( base::Bind(&TextureLayerNoExtraCommitForMailboxTest::MailboxReleased, base::Unretained(this))); return true; } - void MailboxReleased(unsigned sync_point, bool lost_resource) { + void MailboxReleased(uint32 sync_point, bool lost_resource) { EXPECT_EQ(2, layer_tree_host()->source_frame_number()); EndTest(); } @@ -1737,10 +1747,10 @@ class TextureLayerChangeInvisibleMailboxTest } TextureMailbox MakeMailbox(char name) { - return TextureMailbox(std::string(64, name)); + return TextureMailbox(MailboxFromChar(name), GL_TEXTURE_2D, 0); } - void MailboxReleased(unsigned sync_point, bool lost_resource) { + void MailboxReleased(uint32 sync_point, bool lost_resource) { ++mailbox_returned_; } @@ -1870,7 +1880,7 @@ class TextureLayerReleaseResourcesBase TextureMailbox* mailbox, scoped_ptr* release_callback, bool use_shared_memory) OVERRIDE { - *mailbox = TextureMailbox(std::string(64, '1')); + *mailbox = TextureMailbox(MailboxFromChar('1'), GL_TEXTURE_2D, 0); *release_callback = SingleReleaseCallback::Create( base::Bind(&TextureLayerReleaseResourcesBase::MailboxReleased, base::Unretained(this))); @@ -1944,9 +1954,9 @@ class TextureLayerLostContextTest : context_lost_(false), draw_count_(0) {} - virtual scoped_ptr CreateOutputSurface(bool fallback) + virtual scoped_ptr CreateFakeOutputSurface(bool fallback) OVERRIDE { - return CreateFakeOutputSurface(); + return FakeOutputSurface::Create3d(); } virtual unsigned PrepareTexture() OVERRIDE { @@ -1982,9 +1992,10 @@ class TextureLayerLostContextTest PostSetNeedsCommitToMainThread(); } - virtual bool PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, - LayerTreeHostImpl::FrameData* frame_data, - bool result) OVERRIDE { + virtual DrawSwapReadbackResult::DrawResult PrepareToDrawOnThread( + LayerTreeHostImpl* host_impl, + LayerTreeHostImpl::FrameData* frame_data, + DrawSwapReadbackResult::DrawResult draw_result) OVERRIDE { LayerImpl* root = host_impl->RootLayer(); TextureLayerImpl* texture_layer = static_cast(root->children()[0]); @@ -1992,7 +2003,7 @@ class TextureLayerLostContextTest EXPECT_EQ(0u, texture_layer->texture_id()); else EXPECT_EQ(1u, texture_layer->texture_id()); - return true; + return DrawSwapReadbackResult::DRAW_SUCCESS; } virtual void DidCommitAndDrawFrame() OVERRIDE { @@ -2011,7 +2022,7 @@ SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(TextureLayerLostContextTest); class TextureLayerWithMailboxMainThreadDeleted : public LayerTreeTest { public: - void ReleaseCallback(unsigned sync_point, bool lost_resource) { + void ReleaseCallback(uint32 sync_point, bool lost_resource) { EXPECT_EQ(true, main_thread_.CalledOnValidThread()); EXPECT_FALSE(lost_resource); ++callback_count_; @@ -2020,12 +2031,13 @@ class TextureLayerWithMailboxMainThreadDeleted : public LayerTreeTest { void SetMailbox(char mailbox_char) { EXPECT_EQ(true, main_thread_.CalledOnValidThread()); - TextureMailbox mailbox(std::string(64, mailbox_char)); scoped_ptr callback = SingleReleaseCallback::Create( base::Bind( &TextureLayerWithMailboxMainThreadDeleted::ReleaseCallback, base::Unretained(this))); - layer_->SetTextureMailbox(mailbox, callback.Pass()); + layer_->SetTextureMailbox( + TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0), + callback.Pass()); } virtual void SetupTree() OVERRIDE { @@ -2083,7 +2095,7 @@ SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F( class TextureLayerWithMailboxImplThreadDeleted : public LayerTreeTest { public: - void ReleaseCallback(unsigned sync_point, bool lost_resource) { + void ReleaseCallback(uint32 sync_point, bool lost_resource) { EXPECT_EQ(true, main_thread_.CalledOnValidThread()); EXPECT_FALSE(lost_resource); ++callback_count_; @@ -2092,12 +2104,13 @@ class TextureLayerWithMailboxImplThreadDeleted : public LayerTreeTest { void SetMailbox(char mailbox_char) { EXPECT_EQ(true, main_thread_.CalledOnValidThread()); - TextureMailbox mailbox(std::string(64, mailbox_char)); scoped_ptr callback = SingleReleaseCallback::Create( base::Bind( &TextureLayerWithMailboxImplThreadDeleted::ReleaseCallback, base::Unretained(this))); - layer_->SetTextureMailbox(mailbox, callback.Pass()); + layer_->SetTextureMailbox( + TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0), + callback.Pass()); } virtual void SetupTree() OVERRIDE {