| Index: ui/compositor/compositor.cc
|
| diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc
|
| index 9c57dc7c65044c6148bbd9b89c21f6506df46d50..0605f62ccd97c3257ecb2d48b53f26f6fba85dec 100644
|
| --- a/ui/compositor/compositor.cc
|
| +++ b/ui/compositor/compositor.cc
|
| @@ -18,27 +18,18 @@
|
| #include "base/threading/thread.h"
|
| #include "base/threading/thread_restrictions.h"
|
| #include "cc/base/switches.h"
|
| -#include "cc/debug/test_context_provider.h"
|
| -#include "cc/debug/test_web_graphics_context_3d.h"
|
| #include "cc/input/input_handler.h"
|
| #include "cc/layers/layer.h"
|
| #include "cc/output/context_provider.h"
|
| -#include "cc/output/output_surface.h"
|
| #include "cc/trees/layer_tree_host.h"
|
| #include "third_party/skia/include/core/SkBitmap.h"
|
| #include "ui/compositor/compositor_observer.h"
|
| #include "ui/compositor/compositor_switches.h"
|
| #include "ui/compositor/dip_util.h"
|
| #include "ui/compositor/layer.h"
|
| -#include "ui/compositor/reflector.h"
|
| #include "ui/gfx/frame_time.h"
|
| #include "ui/gl/gl_context.h"
|
| -#include "ui/gl/gl_implementation.h"
|
| -#include "ui/gl/gl_surface.h"
|
| #include "ui/gl/gl_switches.h"
|
| -#include "webkit/common/gpu/context_provider_in_process.h"
|
| -#include "webkit/common/gpu/grcontext_for_webgraphicscontext3d.h"
|
| -#include "webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.h"
|
|
|
| namespace {
|
|
|
| @@ -53,7 +44,6 @@ enum SwapType {
|
| bool g_compositor_initialized = false;
|
| base::Thread* g_compositor_thread = NULL;
|
|
|
| -ui::ContextFactory* g_implicit_factory = NULL;
|
| ui::ContextFactory* g_context_factory = NULL;
|
|
|
| const int kCompositorLockTimeoutMs = 67;
|
| @@ -91,141 +81,6 @@ void ContextFactory::SetInstance(ContextFactory* instance) {
|
| g_context_factory = instance;
|
| }
|
|
|
| -DefaultContextFactory::DefaultContextFactory() {
|
| -}
|
| -
|
| -DefaultContextFactory::~DefaultContextFactory() {
|
| -}
|
| -
|
| -bool DefaultContextFactory::Initialize() {
|
| - if (!gfx::GLSurface::InitializeOneOff() ||
|
| - gfx::GetGLImplementation() == gfx::kGLImplementationNone) {
|
| - LOG(ERROR) << "Could not load the GL bindings";
|
| - return false;
|
| - }
|
| - return true;
|
| -}
|
| -
|
| -scoped_ptr<cc::OutputSurface> DefaultContextFactory::CreateOutputSurface(
|
| - Compositor* compositor) {
|
| - WebKit::WebGraphicsContext3D::Attributes attrs;
|
| - attrs.depth = false;
|
| - attrs.stencil = false;
|
| - attrs.antialias = false;
|
| - attrs.shareResources = true;
|
| -
|
| - using webkit::gpu::WebGraphicsContext3DInProcessCommandBufferImpl;
|
| - scoped_ptr<WebGraphicsContext3DInProcessCommandBufferImpl> context3d(
|
| - WebGraphicsContext3DInProcessCommandBufferImpl::CreateViewContext(
|
| - attrs, compositor->widget()));
|
| - CHECK(context3d);
|
| -
|
| - using webkit::gpu::ContextProviderInProcess;
|
| - scoped_refptr<ContextProviderInProcess> context_provider =
|
| - ContextProviderInProcess::Create(context3d.Pass(),
|
| - "UICompositor");
|
| -
|
| - return make_scoped_ptr(new cc::OutputSurface(context_provider));
|
| -}
|
| -
|
| -scoped_refptr<Reflector> DefaultContextFactory::CreateReflector(
|
| - Compositor* mirroed_compositor,
|
| - Layer* mirroring_layer) {
|
| - return NULL;
|
| -}
|
| -
|
| -void DefaultContextFactory::RemoveReflector(
|
| - scoped_refptr<Reflector> reflector) {
|
| -}
|
| -
|
| -scoped_refptr<cc::ContextProvider>
|
| -DefaultContextFactory::OffscreenCompositorContextProvider() {
|
| - if (!offscreen_compositor_contexts_.get() ||
|
| - !offscreen_compositor_contexts_->DestroyedOnMainThread()) {
|
| - offscreen_compositor_contexts_ =
|
| - webkit::gpu::ContextProviderInProcess::CreateOffscreen();
|
| - }
|
| - return offscreen_compositor_contexts_;
|
| -}
|
| -
|
| -scoped_refptr<cc::ContextProvider>
|
| -DefaultContextFactory::SharedMainThreadContextProvider() {
|
| - if (shared_main_thread_contexts_ &&
|
| - !shared_main_thread_contexts_->DestroyedOnMainThread())
|
| - return shared_main_thread_contexts_;
|
| -
|
| - if (ui::Compositor::WasInitializedWithThread()) {
|
| - shared_main_thread_contexts_ =
|
| - webkit::gpu::ContextProviderInProcess::CreateOffscreen();
|
| - } else {
|
| - shared_main_thread_contexts_ =
|
| - static_cast<webkit::gpu::ContextProviderInProcess*>(
|
| - OffscreenCompositorContextProvider().get());
|
| - }
|
| - if (shared_main_thread_contexts_ &&
|
| - !shared_main_thread_contexts_->BindToCurrentThread())
|
| - shared_main_thread_contexts_ = NULL;
|
| -
|
| - return shared_main_thread_contexts_;
|
| -}
|
| -
|
| -void DefaultContextFactory::RemoveCompositor(Compositor* compositor) {
|
| -}
|
| -
|
| -bool DefaultContextFactory::DoesCreateTestContexts() { return false; }
|
| -
|
| -TestContextFactory::TestContextFactory() {}
|
| -
|
| -TestContextFactory::~TestContextFactory() {}
|
| -
|
| -scoped_ptr<cc::OutputSurface> TestContextFactory::CreateOutputSurface(
|
| - Compositor* compositor) {
|
| - return make_scoped_ptr(
|
| - new cc::OutputSurface(cc::TestContextProvider::Create()));
|
| -}
|
| -
|
| -scoped_refptr<Reflector> TestContextFactory::CreateReflector(
|
| - Compositor* mirrored_compositor,
|
| - Layer* mirroring_layer) {
|
| - return new Reflector();
|
| -}
|
| -
|
| -void TestContextFactory::RemoveReflector(scoped_refptr<Reflector> reflector) {
|
| -}
|
| -
|
| -scoped_refptr<cc::ContextProvider>
|
| -TestContextFactory::OffscreenCompositorContextProvider() {
|
| - if (!offscreen_compositor_contexts_.get() ||
|
| - offscreen_compositor_contexts_->DestroyedOnMainThread())
|
| - offscreen_compositor_contexts_ = cc::TestContextProvider::Create();
|
| - return offscreen_compositor_contexts_;
|
| -}
|
| -
|
| -scoped_refptr<cc::ContextProvider>
|
| -TestContextFactory::SharedMainThreadContextProvider() {
|
| - if (shared_main_thread_contexts_ &&
|
| - !shared_main_thread_contexts_->DestroyedOnMainThread())
|
| - return shared_main_thread_contexts_;
|
| -
|
| - if (ui::Compositor::WasInitializedWithThread()) {
|
| - shared_main_thread_contexts_ = cc::TestContextProvider::Create();
|
| - } else {
|
| - shared_main_thread_contexts_ =
|
| - static_cast<cc::TestContextProvider*>(
|
| - OffscreenCompositorContextProvider().get());
|
| - }
|
| - if (shared_main_thread_contexts_ &&
|
| - !shared_main_thread_contexts_->BindToCurrentThread())
|
| - shared_main_thread_contexts_ = NULL;
|
| -
|
| - return shared_main_thread_contexts_;
|
| -}
|
| -
|
| -void TestContextFactory::RemoveCompositor(Compositor* compositor) {
|
| -}
|
| -
|
| -bool TestContextFactory::DoesCreateTestContexts() { return true; }
|
| -
|
| Texture::Texture(bool flipped, const gfx::Size& size, float device_scale_factor)
|
| : size_(size),
|
| flipped_(flipped),
|
| @@ -460,44 +315,6 @@ Compositor::~Compositor() {
|
| }
|
|
|
| // static
|
| -void Compositor::InitializeContextFactoryForTests(bool allow_test_contexts) {
|
| - // The factory may already have been initialized by the content layer, in
|
| - // which case, use that one.
|
| - if (g_context_factory)
|
| - return;
|
| - DCHECK(!g_implicit_factory) <<
|
| - "ContextFactory for tests already initialized.";
|
| -
|
| - bool use_test_contexts = true;
|
| -
|
| - // Always use test contexts unless the disable command line flag is used.
|
| - CommandLine* command_line = CommandLine::ForCurrentProcess();
|
| - if (command_line->HasSwitch(switches::kDisableTestCompositor))
|
| - use_test_contexts = false;
|
| -
|
| -#if defined(OS_CHROMEOS)
|
| - // If the test is running on the chromeos envrionment (such as
|
| - // device or vm bots), always use real contexts.
|
| - if (base::SysInfo::IsRunningOnChromeOS())
|
| - use_test_contexts = false;
|
| -#endif
|
| -
|
| - if (!allow_test_contexts)
|
| - use_test_contexts = false;
|
| -
|
| - if (use_test_contexts) {
|
| - g_implicit_factory = new ui::TestContextFactory;
|
| - } else {
|
| - DVLOG(1) << "Using DefaultContextFactory";
|
| - scoped_ptr<ui::DefaultContextFactory> instance(
|
| - new ui::DefaultContextFactory());
|
| - if (instance->Initialize())
|
| - g_implicit_factory = instance.release();
|
| - }
|
| - g_context_factory = g_implicit_factory;
|
| -}
|
| -
|
| -// static
|
| void Compositor::Initialize() {
|
| #if defined(OS_CHROMEOS)
|
| bool use_thread = !CommandLine::ForCurrentProcess()->HasSwitch(
|
| @@ -534,17 +351,7 @@ scoped_refptr<base::MessageLoopProxy> Compositor::GetCompositorMessageLoop() {
|
|
|
| // static
|
| void Compositor::Terminate() {
|
| - if (g_context_factory) {
|
| - if (g_implicit_factory) {
|
| - delete g_implicit_factory;
|
| - g_implicit_factory = NULL;
|
| - }
|
| - g_context_factory = NULL;
|
| - }
|
| -
|
| if (g_compositor_thread) {
|
| - DCHECK(!g_context_factory)
|
| - << "The ContextFactory should not outlive the compositor thread.";
|
| g_compositor_thread->Stop();
|
| delete g_compositor_thread;
|
| g_compositor_thread = NULL;
|
|
|