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

Side by Side Diff: content/renderer/gpu/render_widget_compositor.cc

Issue 61823008: Introduce separate client and init path for single-threaded cc (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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 if (!compositor->Initialize(settings))
311 return scoped_ptr<RenderWidgetCompositor>(); 311 return scoped_ptr<RenderWidgetCompositor>();
312 312
313 return compositor.Pass(); 313 return compositor.Pass();
314 } 314 }
315 315
316 RenderWidgetCompositor::RenderWidgetCompositor(RenderWidget* widget, 316 RenderWidgetCompositor::RenderWidgetCompositor(RenderWidget* widget,
317 bool threaded) 317 bool threaded)
318 : threaded_(threaded), 318 : threaded_(threaded),
319 suppress_schedule_composite_(false), 319 suppress_schedule_composite_(false),
320 widget_(widget) { 320 widget_(widget) {
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 return layer_tree_host_->root_layer(); 406 return layer_tree_host_->root_layer();
407 } 407 }
408 408
409 bool RenderWidgetCompositor::ScheduleMicroBenchmark( 409 bool RenderWidgetCompositor::ScheduleMicroBenchmark(
410 const std::string& name, 410 const std::string& name,
411 scoped_ptr<base::Value> value, 411 scoped_ptr<base::Value> value,
412 const base::Callback<void(scoped_ptr<base::Value>)>& callback) { 412 const base::Callback<void(scoped_ptr<base::Value>)>& callback) {
413 return layer_tree_host_->ScheduleMicroBenchmark(name, value.Pass(), callback); 413 return layer_tree_host_->ScheduleMicroBenchmark(name, value.Pass(), callback);
414 } 414 }
415 415
416 bool RenderWidgetCompositor::initialize(cc::LayerTreeSettings settings) { 416 bool RenderWidgetCompositor::Initialize(cc::LayerTreeSettings settings) {
417 scoped_refptr<base::MessageLoopProxy> compositor_message_loop_proxy = 417 scoped_refptr<base::MessageLoopProxy> compositor_message_loop_proxy =
418 RenderThreadImpl::current()->compositor_message_loop_proxy(); 418 RenderThreadImpl::current()->compositor_message_loop_proxy();
419 layer_tree_host_ = cc::LayerTreeHost::Create( 419 if (compositor_message_loop_proxy.get()) {
420 this, NULL, settings, compositor_message_loop_proxy); 420 layer_tree_host_ = cc::LayerTreeHost::CreateThreaded(
421 this, NULL, settings, compositor_message_loop_proxy);
422 } else {
423 layer_tree_host_ = cc::LayerTreeHost::CreateSingleThreaded(
424 this, this, NULL, settings);
425 }
421 return layer_tree_host_; 426 return layer_tree_host_;
422 } 427 }
423 428
424 void RenderWidgetCompositor::setSurfaceReady() { 429 void RenderWidgetCompositor::setSurfaceReady() {
425 layer_tree_host_->SetLayerTreeHostClientReady(); 430 layer_tree_host_->SetLayerTreeHostClientReady();
426 } 431 }
427 432
428 void RenderWidgetCompositor::setRootLayer(const WebKit::WebLayer& layer) { 433 void RenderWidgetCompositor::setRootLayer(const WebKit::WebLayer& layer) {
429 layer_tree_host_->SetRootLayer( 434 layer_tree_host_->SetRootLayer(
430 static_cast<const webkit::WebLayerImpl*>(&layer)->layer()); 435 static_cast<const webkit::WebLayerImpl*>(&layer)->layer());
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 } 636 }
632 637
633 void RenderWidgetCompositor::DidCommitAndDrawFrame() { 638 void RenderWidgetCompositor::DidCommitAndDrawFrame() {
634 widget_->didCommitAndDrawCompositorFrame(); 639 widget_->didCommitAndDrawCompositorFrame();
635 } 640 }
636 641
637 void RenderWidgetCompositor::DidCompleteSwapBuffers() { 642 void RenderWidgetCompositor::DidCompleteSwapBuffers() {
638 widget_->didCompleteSwapBuffers(); 643 widget_->didCompleteSwapBuffers();
639 } 644 }
640 645
646 scoped_refptr<cc::ContextProvider>
647 RenderWidgetCompositor::OffscreenContextProvider() {
648 return RenderThreadImpl::current()->OffscreenCompositorContextProvider();
649 }
650
641 void RenderWidgetCompositor::ScheduleComposite() { 651 void RenderWidgetCompositor::ScheduleComposite() {
642 if (!suppress_schedule_composite_) 652 if (!suppress_schedule_composite_)
643 widget_->scheduleComposite(); 653 widget_->scheduleComposite();
644 } 654 }
645 655
646 scoped_refptr<cc::ContextProvider>
647 RenderWidgetCompositor::OffscreenContextProvider() {
648 return RenderThreadImpl::current()->OffscreenCompositorContextProvider();
649 }
650
651 void RenderWidgetCompositor::RateLimitSharedMainThreadContext() { 656 void RenderWidgetCompositor::RateLimitSharedMainThreadContext() {
652 cc::ContextProvider* provider = 657 cc::ContextProvider* provider =
653 RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); 658 RenderThreadImpl::current()->SharedMainThreadContextProvider().get();
654 provider->Context3d()->rateLimitOffscreenContextCHROMIUM(); 659 provider->Context3d()->rateLimitOffscreenContextCHROMIUM();
655 } 660 }
656 661
657 } // namespace content 662 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/gpu/render_widget_compositor.h ('k') | content/test/web_layer_tree_view_impl_for_testing.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698