Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1614)

Unified Diff: cc/layers/texture_layer_unittest.cc

Issue 51653008: Remove WGC3D::isContextLost references from cc (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix android build Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/layers/texture_layer_client.h ('k') | cc/output/context_provider.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/texture_layer_unittest.cc
diff --git a/cc/layers/texture_layer_unittest.cc b/cc/layers/texture_layer_unittest.cc
index 9c999fc5405ed3b15717c92cde9cfaf7581c135e..d793473e8559970aacdd7dd810eaa1ee29203356 100644
--- a/cc/layers/texture_layer_unittest.cc
+++ b/cc/layers/texture_layer_unittest.cc
@@ -245,16 +245,12 @@ TEST_F(TextureLayerTest, VisibleContentOpaqueRegion) {
class FakeTextureLayerClient : public TextureLayerClient {
public:
- FakeTextureLayerClient() : context_(TestWebGraphicsContext3D::Create()) {}
+ FakeTextureLayerClient() {}
virtual unsigned PrepareTexture() OVERRIDE {
return 0;
}
- virtual WebKit::WebGraphicsContext3D* Context3d() OVERRIDE {
- return context_.get();
- }
-
virtual bool PrepareTextureMailbox(
TextureMailbox* mailbox,
scoped_ptr<SingleReleaseCallback>* release_callback,
@@ -265,7 +261,6 @@ class FakeTextureLayerClient : public TextureLayerClient {
}
private:
- scoped_ptr<TestWebGraphicsContext3D> context_;
DISALLOW_COPY_AND_ASSIGN(FakeTextureLayerClient);
};
@@ -893,7 +888,7 @@ class TextureLayerNoMailboxIsActivatedDuringCommit : public LayerTreeTest,
TextureLayerNoMailboxIsActivatedDuringCommit()
: wait_thread_("WAIT"),
wait_event_(false, false),
- context_(TestWebGraphicsContext3D::Create()) {
+ texture_(0u) {
wait_thread_.Start();
}
@@ -917,13 +912,16 @@ class TextureLayerNoMailboxIsActivatedDuringCommit : public LayerTreeTest,
PostSetNeedsCommitToMainThread();
}
+ virtual scoped_ptr<OutputSurface> CreateOutputSurface(bool fallback)
+ OVERRIDE {
+ scoped_refptr<TestContextProvider> provider = TestContextProvider::Create();
+ texture_ = provider->UnboundTestContext3d()->createExternalTexture();
+ return FakeOutputSurface::Create3d(provider).PassAs<OutputSurface>();
+ }
+
// TextureLayerClient implementation.
virtual unsigned PrepareTexture() OVERRIDE {
- context_->makeContextCurrent();
- return context_->createTexture();
- }
- virtual WebKit::WebGraphicsContext3D* Context3d() OVERRIDE {
- return context_.get();
+ return texture_;
}
virtual bool PrepareTextureMailbox(
TextureMailbox* mailbox,
@@ -1002,11 +1000,10 @@ class TextureLayerNoMailboxIsActivatedDuringCommit : public LayerTreeTest,
base::Thread wait_thread_;
base::WaitableEvent wait_event_;
base::Lock activate_lock_;
+ unsigned texture_;
int activate_count_;
- int activate_commit_;
scoped_refptr<Layer> root_;
scoped_refptr<TextureLayer> layer_;
- scoped_ptr<TestWebGraphicsContext3D> context_;
};
SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(
@@ -1406,28 +1403,19 @@ class TextureLayerClientTest
public TextureLayerClient {
public:
TextureLayerClientTest()
- : context_(NULL),
- texture_(0),
+ : texture_(0),
commit_count_(0),
expected_used_textures_on_draw_(0),
expected_used_textures_on_commit_(0) {}
virtual scoped_ptr<OutputSurface> CreateOutputSurface(bool fallback)
OVERRIDE {
- scoped_ptr<TestWebGraphicsContext3D> context(
- TestWebGraphicsContext3D::Create());
- context_ = context.get();
- texture_ = context->createTexture();
- return FakeOutputSurface::Create3d(context.Pass()).PassAs<OutputSurface>();
- }
-
- virtual unsigned PrepareTexture() OVERRIDE {
- return texture_;
+ scoped_refptr<TestContextProvider> provider = TestContextProvider::Create();
+ texture_ = provider->UnboundTestContext3d()->createExternalTexture();
+ return FakeOutputSurface::Create3d(provider).PassAs<OutputSurface>();
}
- virtual WebKit::WebGraphicsContext3D* Context3d() OVERRIDE {
- return context_;
- }
+ virtual unsigned PrepareTexture() OVERRIDE { return texture_; }
virtual bool PrepareTextureMailbox(
TextureMailbox* mailbox,
@@ -1470,7 +1458,6 @@ class TextureLayerClientTest
base::AutoLock lock(lock_);
expected_used_textures_on_commit_ = 0;
}
- texture_ = 0;
break;
case 2:
EndTest();
@@ -1489,21 +1476,26 @@ class TextureLayerClientTest
virtual bool PrepareToDrawOnThread(LayerTreeHostImpl* host_impl,
LayerTreeHostImpl::FrameData* frame_data,
bool result) OVERRIDE {
- context_->ResetUsedTextures();
+ ContextForImplThread(host_impl)->ResetUsedTextures();
return true;
}
virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl,
bool result) OVERRIDE {
ASSERT_TRUE(result);
- EXPECT_EQ(expected_used_textures_on_draw_, context_->NumUsedTextures());
+ EXPECT_EQ(expected_used_textures_on_draw_,
+ ContextForImplThread(host_impl)->NumUsedTextures());
}
virtual void AfterTest() OVERRIDE {}
private:
+ TestWebGraphicsContext3D* ContextForImplThread(LayerTreeHostImpl* host_impl) {
+ return static_cast<TestWebGraphicsContext3D*>(
+ host_impl->output_surface()->context_provider()->Context3d());
+ }
+
scoped_refptr<TextureLayer> texture_layer_;
- TestWebGraphicsContext3D* context_;
unsigned texture_;
int commit_count_;
@@ -1528,25 +1520,23 @@ class TextureLayerChangeInvisibleTest
public TextureLayerClient {
public:
TextureLayerChangeInvisibleTest()
- : client_context_(TestWebGraphicsContext3D::Create()),
- texture_(client_context_->createTexture()),
- texture_to_delete_on_next_commit_(0),
+ : texture_(0u),
prepare_called_(0),
commit_count_(0),
expected_texture_on_draw_(0) {}
+ virtual scoped_ptr<OutputSurface> CreateOutputSurface(bool fallback)
+ OVERRIDE {
+ scoped_refptr<TestContextProvider> provider = TestContextProvider::Create();
+ texture_ = provider->UnboundTestContext3d()->createExternalTexture();
+ return FakeOutputSurface::Create3d(provider).PassAs<OutputSurface>();
+ }
+
// TextureLayerClient implementation.
virtual unsigned PrepareTexture() OVERRIDE {
++prepare_called_;
return texture_;
}
-
- // TextureLayerClient implementation.
- virtual WebKit::WebGraphicsContext3D* Context3d() OVERRIDE {
- return client_context_.get();
- }
-
- // TextureLayerClient implementation.
virtual bool PrepareTextureMailbox(
cc::TextureMailbox* mailbox,
scoped_ptr<SingleReleaseCallback>* release_callback,
@@ -1597,9 +1587,6 @@ class TextureLayerChangeInvisibleTest
case 2: {
// Layer shouldn't have been updated.
EXPECT_EQ(1, prepare_called_);
- // Change the texture.
- texture_to_delete_on_next_commit_ = texture_;
- texture_ = client_context_->createTexture();
texture_layer_->SetNeedsDisplay();
// Force a change to make sure we draw a frame.
solid_layer_->SetBackgroundColor(SK_ColorGRAY);
@@ -1607,8 +1594,6 @@ class TextureLayerChangeInvisibleTest
}
case 3:
EXPECT_EQ(1, prepare_called_);
- client_context_->deleteTexture(texture_to_delete_on_next_commit_);
- texture_to_delete_on_next_commit_ = 0;
// Make layer visible again.
parent_layer_->SetOpacity(1.f);
break;
@@ -1616,7 +1601,6 @@ class TextureLayerChangeInvisibleTest
// Layer should have been updated.
EXPECT_EQ(2, prepare_called_);
texture_layer_->ClearClient();
- client_context_->deleteTexture(texture_);
texture_ = 0;
break;
}
@@ -1676,14 +1660,12 @@ class TextureLayerChangeInvisibleTest
scoped_refptr<SolidColorLayer> solid_layer_;
scoped_refptr<Layer> parent_layer_;
scoped_refptr<TextureLayer> texture_layer_;
- scoped_ptr<TestWebGraphicsContext3D> client_context_;
// Used on the main thread, and on the impl thread while the main thread is
// blocked.
unsigned texture_;
// Used on the main thread.
- unsigned texture_to_delete_on_next_commit_;
int prepare_called_;
int commit_count_;
@@ -1710,12 +1692,6 @@ class TextureLayerNoExtraCommitForMailboxTest
return 0;
}
- // TextureLayerClient implementation.
- virtual WebKit::WebGraphicsContext3D* Context3d() OVERRIDE {
- NOTREACHED();
- return NULL;
- }
-
virtual bool PrepareTextureMailbox(
cc::TextureMailbox* mailbox,
scoped_ptr<SingleReleaseCallback>* release_callback,
@@ -1819,13 +1795,6 @@ class TextureLayerChangeInvisibleMailboxTest
return 0;
}
- // TextureLayerClient implementation.
- virtual WebKit::WebGraphicsContext3D* Context3d() OVERRIDE {
- NOTREACHED();
- return NULL;
- }
-
- // TextureLayerClient implementation.
virtual bool PrepareTextureMailbox(
cc::TextureMailbox* mailbox,
scoped_ptr<SingleReleaseCallback>* release_callback,
@@ -1965,26 +1934,20 @@ class TextureLayerLostContextTest
public TextureLayerClient {
public:
TextureLayerLostContextTest()
- : texture_(0),
+ : context_lost_(false),
draw_count_(0) {}
virtual scoped_ptr<OutputSurface> CreateOutputSurface(bool fallback)
OVERRIDE {
- texture_context_ = TestWebGraphicsContext3D::Create();
- texture_ = texture_context_->createTexture();
return CreateFakeOutputSurface();
}
virtual unsigned PrepareTexture() OVERRIDE {
- if (draw_count_ == 0) {
- texture_context_->loseContextCHROMIUM(GL_GUILTY_CONTEXT_RESET_ARB,
- GL_INNOCENT_CONTEXT_RESET_ARB);
- }
- return texture_;
- }
-
- virtual WebKit::WebGraphicsContext3D* Context3d() OVERRIDE {
- return texture_context_.get();
+ if (draw_count_ == 0)
+ context_lost_ = true;
+ if (context_lost_)
+ return 0u;
+ return 1u;
}
virtual bool PrepareTextureMailbox(
@@ -2021,7 +1984,7 @@ class TextureLayerLostContextTest
if (++draw_count_ == 1)
EXPECT_EQ(0u, texture_layer->texture_id());
else
- EXPECT_EQ(texture_, texture_layer->texture_id());
+ EXPECT_EQ(1u, texture_layer->texture_id());
return true;
}
@@ -2033,8 +1996,7 @@ class TextureLayerLostContextTest
private:
scoped_refptr<TextureLayer> texture_layer_;
- scoped_ptr<TestWebGraphicsContext3D> texture_context_;
- unsigned texture_;
+ bool context_lost_;
int draw_count_;
};
« no previous file with comments | « cc/layers/texture_layer_client.h ('k') | cc/output/context_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698