Chromium Code Reviews| Index: ui/compositor/compositor.cc |
| diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc |
| index c804e8d060c8842d00bcd26564895c053a16e7b2..5727649e032377c37f37454636438abebcc007ca 100644 |
| --- a/ui/compositor/compositor.cc |
| +++ b/ui/compositor/compositor.cc |
| @@ -16,6 +16,7 @@ |
| #include "base/threading/thread.h" |
| #include "base/threading/thread_restrictions.h" |
| #include "cc/base/switches.h" |
| +#include "cc/debug/fake_context_provider.h" |
| #include "cc/input/input_handler.h" |
| #include "cc/layers/layer.h" |
| #include "cc/output/context_provider.h" |
| @@ -24,7 +25,6 @@ |
| #include "third_party/skia/include/core/SkBitmap.h" |
| #include "ui/compositor/compositor_observer.h" |
| #include "ui/compositor/compositor_switches.h" |
| -#include "ui/compositor/context_provider_from_context_factory.h" |
| #include "ui/compositor/dip_util.h" |
| #include "ui/compositor/layer.h" |
| #include "ui/compositor/reflector.h" |
| @@ -139,11 +139,6 @@ scoped_ptr<cc::OutputSurface> DefaultContextFactory::CreateOutputSurface( |
| CreateContextCommon(compositor, false))); |
| } |
| -scoped_ptr<WebKit::WebGraphicsContext3D> |
| -DefaultContextFactory::CreateOffscreenContext() { |
| - return CreateContextCommon(NULL, true); |
| -} |
| - |
| scoped_refptr<Reflector> DefaultContextFactory::CreateReflector( |
| Compositor* mirroed_compositor, |
| Layer* mirroring_layer) { |
| @@ -158,8 +153,12 @@ scoped_refptr<cc::ContextProvider> |
| DefaultContextFactory::OffscreenContextProviderForMainThread() { |
| if (!offscreen_contexts_main_thread_.get() || |
| !offscreen_contexts_main_thread_->DestroyedOnMainThread()) { |
| - offscreen_contexts_main_thread_ = |
| - ContextProviderFromContextFactory::CreateForOffscreen(this); |
| + Compositor* compositor = NULL; |
| + bool offscreen = true; |
| + offscreen_contexts_main_thread_ = cc::FakeContextProvider::Create( |
| + base::Bind(&DefaultContextFactory::CreateContextCommon, |
| + compositor, |
| + offscreen)); |
|
piman
2013/07/30 20:15:10
If we don't make it create the GrContext any more,
danakj
2013/07/30 20:32:08
Oh, this should be the in process ContextProvider
piman
2013/07/30 20:42:02
Yeah, I think that'd work fine. Quite possibly we
|
| if (offscreen_contexts_main_thread_.get() && |
| !offscreen_contexts_main_thread_->BindToCurrentThread()) |
| offscreen_contexts_main_thread_ = NULL; |
| @@ -171,8 +170,12 @@ scoped_refptr<cc::ContextProvider> |
| DefaultContextFactory::OffscreenContextProviderForCompositorThread() { |
| if (!offscreen_contexts_compositor_thread_.get() || |
| !offscreen_contexts_compositor_thread_->DestroyedOnMainThread()) { |
| - offscreen_contexts_compositor_thread_ = |
| - ContextProviderFromContextFactory::CreateForOffscreen(this); |
| + Compositor* compositor = NULL; |
| + bool offscreen = true; |
| + offscreen_contexts_compositor_thread_ = cc::FakeContextProvider::Create( |
| + base::Bind(&DefaultContextFactory::CreateContextCommon, |
| + compositor, |
| + offscreen)); |
| } |
| return offscreen_contexts_compositor_thread_; |
| } |
| @@ -180,6 +183,7 @@ DefaultContextFactory::OffscreenContextProviderForCompositorThread() { |
| void DefaultContextFactory::RemoveCompositor(Compositor* compositor) { |
| } |
| +// static |
| scoped_ptr<WebKit::WebGraphicsContext3D> |
| DefaultContextFactory::CreateContextCommon(Compositor* compositor, |
| bool offscreen) { |
| @@ -207,14 +211,6 @@ scoped_ptr<cc::OutputSurface> TestContextFactory::CreateOutputSurface( |
| return make_scoped_ptr(new cc::OutputSurface(CreateOffscreenContext())); |
| } |
| -scoped_ptr<WebKit::WebGraphicsContext3D> |
| -TestContextFactory::CreateOffscreenContext() { |
| - scoped_ptr<ui::TestWebGraphicsContext3D> context( |
| - new ui::TestWebGraphicsContext3D); |
| - context->Initialize(); |
| - return context.PassAs<WebKit::WebGraphicsContext3D>(); |
| -} |
| - |
| scoped_refptr<Reflector> TestContextFactory::CreateReflector( |
| Compositor* mirrored_compositor, |
| Layer* mirroring_layer) { |
| @@ -228,8 +224,8 @@ scoped_refptr<cc::ContextProvider> |
| TestContextFactory::OffscreenContextProviderForMainThread() { |
| if (!offscreen_contexts_main_thread_.get() || |
| offscreen_contexts_main_thread_->DestroyedOnMainThread()) { |
| - offscreen_contexts_main_thread_ = |
| - ContextProviderFromContextFactory::CreateForOffscreen(this); |
| + offscreen_contexts_main_thread_ = cc::FakeContextProvider::Create( |
| + base::Bind(&TestContextFactory::CreateOffscreenContext)); |
| CHECK(offscreen_contexts_main_thread_->BindToCurrentThread()); |
| } |
| return offscreen_contexts_main_thread_; |
| @@ -239,8 +235,8 @@ scoped_refptr<cc::ContextProvider> |
| TestContextFactory::OffscreenContextProviderForCompositorThread() { |
| if (!offscreen_contexts_compositor_thread_.get() || |
| offscreen_contexts_compositor_thread_->DestroyedOnMainThread()) { |
| - offscreen_contexts_compositor_thread_ = |
| - ContextProviderFromContextFactory::CreateForOffscreen(this); |
| + offscreen_contexts_compositor_thread_ = cc::FakeContextProvider::Create( |
| + base::Bind(&TestContextFactory::CreateOffscreenContext)); |
| } |
| return offscreen_contexts_compositor_thread_; |
| } |
| @@ -248,6 +244,15 @@ TestContextFactory::OffscreenContextProviderForCompositorThread() { |
| void TestContextFactory::RemoveCompositor(Compositor* compositor) { |
| } |
| +// static |
| +scoped_ptr<WebKit::WebGraphicsContext3D> |
| +TestContextFactory::CreateOffscreenContext() { |
| + scoped_ptr<ui::TestWebGraphicsContext3D> context( |
| + new ui::TestWebGraphicsContext3D); |
| + context->Initialize(); |
| + return context.PassAs<WebKit::WebGraphicsContext3D>(); |
| +} |
| + |
| Texture::Texture(bool flipped, const gfx::Size& size, float device_scale_factor) |
| : size_(size), |
| flipped_(flipped), |