| Index: ui/compositor/compositor.cc
|
| diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc
|
| index 1ba34709f3e98aa0cf74b723ae4249ee3a0e6ca5..e1c710443dee0fdaa71dd25d4d6f8f87b293da3b 100644
|
| --- a/ui/compositor/compositor.cc
|
| +++ b/ui/compositor/compositor.cc
|
| @@ -10,11 +10,13 @@
|
| #include "base/bind.h"
|
| #include "base/command_line.h"
|
| #include "base/message_loop.h"
|
| +#include "base/threading/thread.h"
|
| #include "base/threading/thread_restrictions.h"
|
| +#include "cc/input_handler.h"
|
| +#include "cc/layer.h"
|
| +#include "cc/layer_tree_host.h"
|
| +#include "cc/thread_impl.h"
|
| #include "third_party/skia/include/core/SkBitmap.h"
|
| -#include "third_party/WebKit/Source/Platform/chromium/public/Platform.h"
|
| -#include "third_party/WebKit/Source/Platform/chromium/public/WebCompositorSupport.h"
|
| -#include "third_party/WebKit/Source/Platform/chromium/public/WebFloatPoint.h"
|
| #include "third_party/WebKit/Source/Platform/chromium/public/WebCompositorOutputSurface.h"
|
| #include "ui/compositor/compositor_observer.h"
|
| #include "ui/compositor/compositor_switches.h"
|
| @@ -25,7 +27,6 @@
|
| #include "ui/gl/gl_implementation.h"
|
| #include "ui/gl/gl_surface.h"
|
| #include "ui/gl/gl_switches.h"
|
| -#include "webkit/glue/webthread_impl.h"
|
| #include "webkit/gpu/webgraphicscontext3d_in_process_impl.h"
|
|
|
| #if defined(OS_CHROMEOS)
|
| @@ -42,7 +43,7 @@ enum SwapType {
|
| READPIXELS_SWAP,
|
| };
|
|
|
| -webkit_glue::WebThreadImpl* g_compositor_thread = NULL;
|
| +base::Thread* g_compositor_thread = NULL;
|
|
|
| bool test_compositor_enabled = false;
|
|
|
| @@ -294,13 +295,11 @@ Compositor::Compositor(CompositorDelegate* delegate,
|
| last_ended_frame_(0),
|
| disable_schedule_composite_(false),
|
| compositor_lock_(NULL) {
|
| - WebKit::WebCompositorSupport* compositor_support =
|
| - WebKit::Platform::current()->compositorSupport();
|
| - root_web_layer_.reset(compositor_support->createLayer());
|
| - WebKit::WebLayerTreeView::Settings settings;
|
| + root_web_layer_ = cc::Layer::create();
|
| + root_web_layer_->setAnchorPoint(gfx::PointF(0.f, 0.f));
|
| +
|
| CommandLine* command_line = CommandLine::ForCurrentProcess();
|
| - settings.showFPSCounter =
|
| - command_line->HasSwitch(switches::kUIShowFPSCounter);
|
| + cc::LayerTreeSettings settings;
|
| settings.showPlatformLayerTree =
|
| command_line->HasSwitch(switches::kUIShowLayerTree);
|
| settings.refreshRate =
|
| @@ -312,9 +311,16 @@ Compositor::Compositor(CompositorDelegate* delegate,
|
| settings.perTilePaintingEnabled =
|
| command_line->HasSwitch(switches::kUIEnablePerTilePainting);
|
|
|
| - root_web_layer_->setAnchorPoint(WebKit::WebFloatPoint(0.f, 0.f));
|
| - host_.reset(compositor_support->createLayerTreeView(this, *root_web_layer_,
|
| - settings));
|
| + scoped_ptr<cc::Thread> thread;
|
| + if (g_compositor_thread) {
|
| + thread = cc::ThreadImpl::createForDifferentThread(
|
| + g_compositor_thread->message_loop_proxy());
|
| + }
|
| +
|
| + host_ = cc::LayerTreeHost::create(this, settings, thread.Pass());
|
| + host_->setShowFPSCounter(
|
| + command_line->HasSwitch(switches::kUIShowFPSCounter));
|
| + host_->setRootLayer(root_web_layer_);
|
| host_->setSurfaceReady();
|
| }
|
|
|
| @@ -336,16 +342,15 @@ Compositor::~Compositor() {
|
| }
|
|
|
| void Compositor::Initialize(bool use_thread) {
|
| - WebKit::WebCompositorSupport* compositor_support =
|
| - WebKit::Platform::current()->compositorSupport();
|
| - if (use_thread)
|
| - g_compositor_thread = new webkit_glue::WebThreadImpl("Browser Compositor");
|
| - compositor_support->initialize(g_compositor_thread);
|
| + if (use_thread) {
|
| + g_compositor_thread = new base::Thread("Browser Compositor");
|
| + g_compositor_thread->Start();
|
| + }
|
| }
|
|
|
| void Compositor::Terminate() {
|
| - WebKit::Platform::current()->compositorSupport()->shutdown();
|
| if (g_compositor_thread) {
|
| + g_compositor_thread->Stop();
|
| delete g_compositor_thread;
|
| g_compositor_thread = NULL;
|
| }
|
| @@ -368,7 +373,7 @@ void Compositor::SetRootLayer(Layer* root_layer) {
|
| root_layer_->SetCompositor(this);
|
| root_web_layer_->removeAllChildren();
|
| if (root_layer_)
|
| - root_web_layer_->addChild(root_layer_->web_layer());
|
| + root_web_layer_->addChild(root_layer_->cc_layer());
|
| }
|
|
|
| void Compositor::SetHostHasTransparentBackground(
|
| @@ -418,7 +423,7 @@ void Compositor::SetScaleAndSize(float scale, const gfx::Size& size_in_pixel) {
|
| if (size_in_pixel.IsEmpty() || scale <= 0)
|
| return;
|
| size_ = size_in_pixel;
|
| - host_->setViewportSize(size_in_pixel);
|
| + host_->setViewportSize(size_in_pixel, size_in_pixel);
|
| root_web_layer_->setBounds(size_in_pixel);
|
|
|
| if (device_scale_factor_ != scale) {
|
| @@ -470,7 +475,13 @@ void Compositor::OnSwapBuffersAborted() {
|
| OnCompositingAborted(this));
|
| }
|
|
|
| -void Compositor::updateAnimations(double frameBeginTime) {
|
| +void Compositor::willBeginFrame() {
|
| +}
|
| +
|
| +void Compositor::didBeginFrame() {
|
| +}
|
| +
|
| +void Compositor::animate(double frameBeginTime) {
|
| }
|
|
|
| void Compositor::layout() {
|
| @@ -482,24 +493,34 @@ void Compositor::layout() {
|
| disable_schedule_composite_ = false;
|
| }
|
|
|
| -void Compositor::applyScrollAndScale(const WebKit::WebSize& scrollDelta,
|
| - float scaleFactor) {
|
| +void Compositor::applyScrollAndScale(gfx::Vector2d scrollDelta,
|
| + float pageScale) {
|
| }
|
|
|
| -WebKit::WebCompositorOutputSurface* Compositor::createOutputSurface() {
|
| +scoped_ptr<WebKit::WebCompositorOutputSurface>
|
| +Compositor::createOutputSurface() {
|
| if (test_compositor_enabled) {
|
| ui::TestWebGraphicsContext3D* test_context =
|
| new ui::TestWebGraphicsContext3D();
|
| test_context->Initialize();
|
| - return new WebGraphicsContextToOutputSurfaceAdapter(test_context);
|
| + return scoped_ptr<WebKit::WebCompositorOutputSurface>(
|
| + new WebGraphicsContextToOutputSurfaceAdapter(test_context));
|
| } else {
|
| - return ContextFactory::GetInstance()->CreateOutputSurface(this);
|
| + return scoped_ptr<WebKit::WebCompositorOutputSurface>(
|
| + ContextFactory::GetInstance()->CreateOutputSurface(this));
|
| }
|
| }
|
|
|
| void Compositor::didRecreateOutputSurface(bool success) {
|
| }
|
|
|
| +scoped_ptr<cc::InputHandler> Compositor::createInputHandler() {
|
| + return scoped_ptr<cc::InputHandler>();
|
| +}
|
| +
|
| +void Compositor::willCommit() {
|
| +}
|
| +
|
| void Compositor::didCommit() {
|
| DCHECK(!IsLocked());
|
| FOR_EACH_OBSERVER(CompositorObserver,
|
|
|