| Index: mojo/ui/gl_renderer_unittest.cc
|
| diff --git a/mojo/ui/gl_renderer_unittest.cc b/mojo/ui/gl_renderer_unittest.cc
|
| deleted file mode 100644
|
| index 71b806ca1ebc1af9c7eb3061bdb5857281f1fd13..0000000000000000000000000000000000000000
|
| --- a/mojo/ui/gl_renderer_unittest.cc
|
| +++ /dev/null
|
| @@ -1,218 +0,0 @@
|
| -// Copyright 2015 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/message_loop/message_loop.h"
|
| -#include "mojo/gpu/gl_context.h"
|
| -#include "mojo/gpu/gl_texture.h"
|
| -#include "mojo/public/cpp/application/application_impl.h"
|
| -#include "mojo/public/cpp/application/application_test_base.h"
|
| -#include "mojo/services/geometry/interfaces/geometry.mojom.h"
|
| -#include "mojo/services/gfx/composition/interfaces/resources.mojom.h"
|
| -#include "mojo/ui/gl_renderer.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -using mojo::gfx::composition::MailboxTextureCallbackPtr;
|
| -
|
| -namespace {
|
| -
|
| -static const base::TimeDelta kDefaultMessageDelay =
|
| - base::TimeDelta::FromMilliseconds(20);
|
| -
|
| -class GLRendererTest : public mojo::test::ApplicationTestBase {
|
| - public:
|
| - GLRendererTest() : weak_factory_(this) {}
|
| - ~GLRendererTest() override {}
|
| -
|
| - void SetUp() override {
|
| - mojo::test::ApplicationTestBase::SetUp();
|
| - gl_context_ = mojo::GLContext::CreateOffscreen(
|
| - mojo::ApplicationConnectorPtr::Create(
|
| - application_impl()->CreateApplicationConnector())
|
| - .get());
|
| - quit_message_loop_callback_ = base::Bind(
|
| - &GLRendererTest::QuitMessageLoopCallback, weak_factory_.GetWeakPtr());
|
| - }
|
| -
|
| - void QuitMessageLoopCallback() { base::MessageLoop::current()->Quit(); }
|
| -
|
| - void KickMessageLoop() {
|
| - base::MessageLoop::current()->PostDelayedTask(
|
| - FROM_HERE, quit_message_loop_callback_, kDefaultMessageDelay);
|
| - base::MessageLoop::current()->Run();
|
| - }
|
| -
|
| - protected:
|
| - base::WeakPtr<mojo::GLContext> gl_context_;
|
| - base::Closure quit_message_loop_callback_;
|
| - base::WeakPtrFactory<GLRendererTest> weak_factory_;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(GLRendererTest);
|
| -};
|
| -
|
| -TEST_F(GLRendererTest, GetTextureOnce) {
|
| - mojo::ui::GLRenderer renderer(gl_context_);
|
| - mojo::Size size;
|
| - size.width = 100;
|
| - size.height = 100;
|
| -
|
| - std::unique_ptr<mojo::GLTexture> texture = renderer.GetTexture(size);
|
| - EXPECT_NE(texture.get(), nullptr);
|
| -
|
| - mojo::gfx::composition::ResourcePtr resource =
|
| - renderer.BindTextureResource(std::move(texture));
|
| - EXPECT_NE(resource.get(), nullptr);
|
| - EXPECT_NE(resource->get_mailbox_texture().get(), nullptr);
|
| - EXPECT_FALSE(resource->get_mailbox_texture()->mailbox_name.is_null());
|
| - EXPECT_TRUE(resource->get_mailbox_texture()->size->Equals(size));
|
| - EXPECT_NE(resource->get_mailbox_texture()->sync_point, 0u);
|
| - EXPECT_TRUE(resource->get_mailbox_texture()->callback.is_valid());
|
| -}
|
| -
|
| -TEST_F(GLRendererTest, GetTextureTwiceSameSize) {
|
| - mojo::ui::GLRenderer renderer(gl_context_);
|
| - mojo::Size size;
|
| - size.width = 100;
|
| - size.height = 100;
|
| -
|
| - std::unique_ptr<mojo::GLTexture> texture1 = renderer.GetTexture(size);
|
| - EXPECT_NE(texture1.get(), nullptr);
|
| -
|
| - std::unique_ptr<mojo::GLTexture> texture2 = renderer.GetTexture(size);
|
| - EXPECT_NE(texture2.get(), nullptr);
|
| -
|
| - EXPECT_NE(texture2.get(), texture1.get());
|
| - EXPECT_NE(texture2->texture_id(), texture1->texture_id());
|
| -
|
| - mojo::gfx::composition::ResourcePtr resource1 =
|
| - renderer.BindTextureResource(std::move(texture1));
|
| - EXPECT_NE(resource1.get(), nullptr);
|
| - EXPECT_NE(resource1->get_mailbox_texture().get(), nullptr);
|
| - EXPECT_FALSE(resource1->get_mailbox_texture()->mailbox_name.is_null());
|
| - EXPECT_TRUE(resource1->get_mailbox_texture()->size->Equals(size));
|
| - EXPECT_NE(resource1->get_mailbox_texture()->sync_point, 0u);
|
| - EXPECT_TRUE(resource1->get_mailbox_texture()->callback.is_valid());
|
| -
|
| - mojo::gfx::composition::ResourcePtr resource2 =
|
| - renderer.BindTextureResource(std::move(texture2));
|
| - EXPECT_NE(resource2.get(), nullptr);
|
| - EXPECT_NE(resource2->get_mailbox_texture().get(), nullptr);
|
| - EXPECT_FALSE(resource2->get_mailbox_texture()->mailbox_name.is_null());
|
| - EXPECT_TRUE(resource2->get_mailbox_texture()->size->Equals(size));
|
| - EXPECT_NE(resource2->get_mailbox_texture()->sync_point, 0u);
|
| - EXPECT_TRUE(resource2->get_mailbox_texture()->callback.is_valid());
|
| -
|
| - EXPECT_NE(resource2->get_mailbox_texture()->sync_point,
|
| - resource1->get_mailbox_texture()->sync_point);
|
| -}
|
| -
|
| -TEST_F(GLRendererTest, GetTextureAfterRecycleSameSize) {
|
| - mojo::ui::GLRenderer renderer(gl_context_);
|
| - mojo::Size size;
|
| - size.width = 100;
|
| - size.height = 100;
|
| -
|
| - std::unique_ptr<mojo::GLTexture> texture1 = renderer.GetTexture(size);
|
| - EXPECT_NE(texture1.get(), nullptr);
|
| - mojo::GLTexture* original_texture = texture1.get();
|
| -
|
| - // Return the texture.
|
| - mojo::gfx::composition::ResourcePtr resource1 =
|
| - renderer.BindTextureResource(std::move(texture1));
|
| - EXPECT_NE(resource1.get(), nullptr);
|
| - MailboxTextureCallbackPtr::Create(
|
| - std::move(resource1->get_mailbox_texture()->callback))
|
| - ->OnMailboxTextureReleased();
|
| -
|
| - KickMessageLoop();
|
| -
|
| - // Get a texture of the same size, it should be the same one as before.
|
| - std::unique_ptr<mojo::GLTexture> texture2 = renderer.GetTexture(size);
|
| - EXPECT_EQ(texture2.get(), original_texture);
|
| -}
|
| -
|
| -TEST_F(GLRendererTest, GetTextureAfterRecycleDifferentSize) {
|
| - mojo::ui::GLRenderer renderer(gl_context_);
|
| - mojo::Size size1;
|
| - size1.width = 100;
|
| - size1.height = 100;
|
| - std::unique_ptr<mojo::GLTexture> texture1 = renderer.GetTexture(size1);
|
| - EXPECT_NE(texture1.get(), nullptr);
|
| - EXPECT_TRUE(texture1->size().Equals(size1));
|
| -
|
| - // Return the texture.
|
| - mojo::gfx::composition::ResourcePtr resource1 =
|
| - renderer.BindTextureResource(std::move(texture1));
|
| - EXPECT_NE(resource1.get(), nullptr);
|
| - MailboxTextureCallbackPtr::Create(
|
| - std::move(resource1->get_mailbox_texture()->callback))
|
| - ->OnMailboxTextureReleased();
|
| -
|
| - KickMessageLoop();
|
| -
|
| - // Get a texture of the a different size, it should be a new one
|
| - // with the new size.
|
| - mojo::Size size2;
|
| - size2.width = size1.width - 1;
|
| - size2.height = size1.height - 1;
|
| - std::unique_ptr<mojo::GLTexture> texture2 = renderer.GetTexture(size2);
|
| - EXPECT_NE(texture2.get(), nullptr);
|
| - EXPECT_TRUE(texture2->size().Equals(size2));
|
| -}
|
| -
|
| -TEST_F(GLRendererTest, GetTextureReleasedGlContext) {
|
| - gl_context_->Destroy();
|
| -
|
| - mojo::ui::GLRenderer renderer(gl_context_);
|
| - mojo::Size size;
|
| - size.width = 100;
|
| - size.height = 100;
|
| -
|
| - std::unique_ptr<mojo::GLTexture> texture = renderer.GetTexture(size);
|
| - EXPECT_EQ(texture.get(), nullptr);
|
| -}
|
| -
|
| -TEST_F(GLRendererTest, BindTextureResourceReleasedGlContext) {
|
| - mojo::ui::GLRenderer renderer(gl_context_);
|
| - mojo::Size size;
|
| - size.width = 100;
|
| - size.height = 100;
|
| -
|
| - std::unique_ptr<mojo::GLTexture> texture = renderer.GetTexture(size);
|
| - EXPECT_NE(texture.get(), nullptr);
|
| -
|
| - gl_context_->Destroy();
|
| -
|
| - mojo::gfx::composition::ResourcePtr resource =
|
| - renderer.BindTextureResource(std::move(texture));
|
| - EXPECT_EQ(resource.get(), nullptr);
|
| -}
|
| -
|
| -TEST_F(GLRendererTest, RecycledAfterReleasedGlContext) {
|
| - mojo::ui::GLRenderer renderer(gl_context_);
|
| - mojo::Size size;
|
| - size.width = 100;
|
| - size.height = 100;
|
| -
|
| - std::unique_ptr<mojo::GLTexture> texture1 = renderer.GetTexture(size);
|
| - EXPECT_NE(texture1.get(), nullptr);
|
| -
|
| - mojo::gfx::composition::ResourcePtr resource1 =
|
| - renderer.BindTextureResource(std::move(texture1));
|
| - EXPECT_NE(resource1.get(), nullptr);
|
| -
|
| - gl_context_->Destroy();
|
| - MailboxTextureCallbackPtr::Create(
|
| - std::move(resource1->get_mailbox_texture()->callback))
|
| - ->OnMailboxTextureReleased();
|
| -
|
| - KickMessageLoop();
|
| -
|
| - // Get a texture of the same size, should be null due to the released context.
|
| - std::unique_ptr<mojo::GLTexture> texture2 = renderer.GetTexture(size);
|
| - EXPECT_EQ(texture2.get(), nullptr);
|
| -}
|
| -
|
| -} // namespace
|
|
|