| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/renderer/gpu/render_widget_compositor.h" | 5 #include "content/renderer/gpu/render_widget_compositor.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #if defined(OS_ANDROID) | 10 #if defined(OS_ANDROID) |
| (...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 300 #elif !defined(OS_MACOSX) | 300 #elif !defined(OS_MACOSX) |
| 301 if (cmd->HasSwitch(switches::kEnableOverlayScrollbars)) { | 301 if (cmd->HasSwitch(switches::kEnableOverlayScrollbars)) { |
| 302 settings.scrollbar_animator = cc::LayerTreeSettings::Thinning; | 302 settings.scrollbar_animator = cc::LayerTreeSettings::Thinning; |
| 303 } | 303 } |
| 304 if (cmd->HasSwitch(cc::switches::kEnablePinchVirtualViewport) || | 304 if (cmd->HasSwitch(cc::switches::kEnablePinchVirtualViewport) || |
| 305 cmd->HasSwitch(switches::kEnableOverlayScrollbars)) { | 305 cmd->HasSwitch(switches::kEnableOverlayScrollbars)) { |
| 306 settings.solid_color_scrollbar_color = SkColorSetARGB(128, 128, 128, 128); | 306 settings.solid_color_scrollbar_color = SkColorSetARGB(128, 128, 128, 128); |
| 307 } | 307 } |
| 308 #endif | 308 #endif |
| 309 | 309 |
| 310 if (!compositor->Initialize(settings)) | 310 compositor->Initialize(settings); |
| 311 return scoped_ptr<RenderWidgetCompositor>(); | |
| 312 | 311 |
| 313 return compositor.Pass(); | 312 return compositor.Pass(); |
| 314 } | 313 } |
| 315 | 314 |
| 316 RenderWidgetCompositor::RenderWidgetCompositor(RenderWidget* widget, | 315 RenderWidgetCompositor::RenderWidgetCompositor(RenderWidget* widget, |
| 317 bool threaded) | 316 bool threaded) |
| 318 : threaded_(threaded), | 317 : threaded_(threaded), |
| 319 suppress_schedule_composite_(false), | 318 suppress_schedule_composite_(false), |
| 320 widget_(widget) { | 319 widget_(widget) { |
| 321 } | 320 } |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 406 return layer_tree_host_->root_layer(); | 405 return layer_tree_host_->root_layer(); |
| 407 } | 406 } |
| 408 | 407 |
| 409 bool RenderWidgetCompositor::ScheduleMicroBenchmark( | 408 bool RenderWidgetCompositor::ScheduleMicroBenchmark( |
| 410 const std::string& name, | 409 const std::string& name, |
| 411 scoped_ptr<base::Value> value, | 410 scoped_ptr<base::Value> value, |
| 412 const base::Callback<void(scoped_ptr<base::Value>)>& callback) { | 411 const base::Callback<void(scoped_ptr<base::Value>)>& callback) { |
| 413 return layer_tree_host_->ScheduleMicroBenchmark(name, value.Pass(), callback); | 412 return layer_tree_host_->ScheduleMicroBenchmark(name, value.Pass(), callback); |
| 414 } | 413 } |
| 415 | 414 |
| 416 bool RenderWidgetCompositor::Initialize(cc::LayerTreeSettings settings) { | 415 void RenderWidgetCompositor::Initialize(cc::LayerTreeSettings settings) { |
| 417 scoped_refptr<base::MessageLoopProxy> compositor_message_loop_proxy = | 416 scoped_refptr<base::MessageLoopProxy> compositor_message_loop_proxy = |
| 418 RenderThreadImpl::current()->compositor_message_loop_proxy(); | 417 RenderThreadImpl::current()->compositor_message_loop_proxy(); |
| 419 if (compositor_message_loop_proxy.get()) { | 418 if (compositor_message_loop_proxy.get()) { |
| 420 layer_tree_host_ = cc::LayerTreeHost::CreateThreaded( | 419 layer_tree_host_ = cc::LayerTreeHost::CreateThreaded( |
| 421 this, NULL, settings, compositor_message_loop_proxy); | 420 this, NULL, settings, compositor_message_loop_proxy); |
| 422 } else { | 421 } else { |
| 423 layer_tree_host_ = cc::LayerTreeHost::CreateSingleThreaded( | 422 layer_tree_host_ = cc::LayerTreeHost::CreateSingleThreaded( |
| 424 this, this, NULL, settings); | 423 this, this, NULL, settings); |
| 425 } | 424 } |
| 426 return layer_tree_host_; | 425 DCHECK(layer_tree_host_); |
| 427 } | 426 } |
| 428 | 427 |
| 429 void RenderWidgetCompositor::setSurfaceReady() { | 428 void RenderWidgetCompositor::setSurfaceReady() { |
| 430 layer_tree_host_->SetLayerTreeHostClientReady(); | 429 layer_tree_host_->SetLayerTreeHostClientReady(CreateOutputSurface(false)); |
| 431 } | 430 } |
| 432 | 431 |
| 433 void RenderWidgetCompositor::setRootLayer(const blink::WebLayer& layer) { | 432 void RenderWidgetCompositor::setRootLayer(const blink::WebLayer& layer) { |
| 434 layer_tree_host_->SetRootLayer( | 433 layer_tree_host_->SetRootLayer( |
| 435 static_cast<const webkit::WebLayerImpl*>(&layer)->layer()); | 434 static_cast<const webkit::WebLayerImpl*>(&layer)->layer()); |
| 436 } | 435 } |
| 437 | 436 |
| 438 void RenderWidgetCompositor::clearRootLayer() { | 437 void RenderWidgetCompositor::clearRootLayer() { |
| 439 layer_tree_host_->SetRootLayer(scoped_refptr<cc::Layer>()); | 438 layer_tree_host_->SetRootLayer(scoped_refptr<cc::Layer>()); |
| 440 } | 439 } |
| (...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 663 widget_->OnSwapBuffersAborted(); | 662 widget_->OnSwapBuffersAborted(); |
| 664 } | 663 } |
| 665 | 664 |
| 666 void RenderWidgetCompositor::RateLimitSharedMainThreadContext() { | 665 void RenderWidgetCompositor::RateLimitSharedMainThreadContext() { |
| 667 cc::ContextProvider* provider = | 666 cc::ContextProvider* provider = |
| 668 RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); | 667 RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); |
| 669 provider->Context3d()->rateLimitOffscreenContextCHROMIUM(); | 668 provider->Context3d()->rateLimitOffscreenContextCHROMIUM(); |
| 670 } | 669 } |
| 671 | 670 |
| 672 } // namespace content | 671 } // namespace content |
| OLD | NEW |