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

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

Issue 134623005: Make SingleThreadProxy a SchedulerClient (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Suppress SetLayerTreeHostClientReady in tests Created 6 years, 5 months 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 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 #endif 313 #endif
314 314
315 compositor->Initialize(settings); 315 compositor->Initialize(settings);
316 316
317 return compositor.Pass(); 317 return compositor.Pass();
318 } 318 }
319 319
320 RenderWidgetCompositor::RenderWidgetCompositor(RenderWidget* widget, 320 RenderWidgetCompositor::RenderWidgetCompositor(RenderWidget* widget,
321 bool threaded) 321 bool threaded)
322 : threaded_(threaded), 322 : threaded_(threaded),
323 suppress_schedule_composite_(false),
324 widget_(widget) { 323 widget_(widget) {
325 } 324 }
326 325
327 RenderWidgetCompositor::~RenderWidgetCompositor() {} 326 RenderWidgetCompositor::~RenderWidgetCompositor() {}
328 327
329 const base::WeakPtr<cc::InputHandler>& 328 const base::WeakPtr<cc::InputHandler>&
330 RenderWidgetCompositor::GetInputHandler() { 329 RenderWidgetCompositor::GetInputHandler() {
331 return layer_tree_host_->GetInputHandler(); 330 return layer_tree_host_->GetInputHandler();
332 } 331 }
333 332
334 void RenderWidgetCompositor::SetSuppressScheduleComposite(bool suppress) { 333 void RenderWidgetCompositor::SetSuppressScheduleComposite(bool suppress) {
335 if (suppress_schedule_composite_ == suppress) 334 layer_tree_host_->SetDeferCommits(suppress);
336 return;
337
338 if (suppress)
339 TRACE_EVENT_ASYNC_BEGIN0("gpu",
340 "RenderWidgetCompositor::SetSuppressScheduleComposite", this);
341 else
342 TRACE_EVENT_ASYNC_END0("gpu",
343 "RenderWidgetCompositor::SetSuppressScheduleComposite", this);
344 suppress_schedule_composite_ = suppress;
345 } 335 }
346 336
347 bool RenderWidgetCompositor::BeginMainFrameRequested() const { 337 bool RenderWidgetCompositor::BeginMainFrameRequested() const {
348 return layer_tree_host_->BeginMainFrameRequested(); 338 return layer_tree_host_->BeginMainFrameRequested();
349 } 339 }
350 340
351 void RenderWidgetCompositor::UpdateAnimations(base::TimeTicks time) { 341 void RenderWidgetCompositor::UpdateAnimations(base::TimeTicks time) {
352 layer_tree_host_->UpdateClientAnimations(time); 342 layer_tree_host_->UpdateClientAnimations(time);
353 } 343 }
354 344
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 layer_tree_host_ = cc::LayerTreeHost::CreateThreaded( 427 layer_tree_host_ = cc::LayerTreeHost::CreateThreaded(
438 this, shared_bitmap_manager, settings, compositor_message_loop_proxy); 428 this, shared_bitmap_manager, settings, compositor_message_loop_proxy);
439 } else { 429 } else {
440 layer_tree_host_ = cc::LayerTreeHost::CreateSingleThreaded( 430 layer_tree_host_ = cc::LayerTreeHost::CreateSingleThreaded(
441 this, this, shared_bitmap_manager, settings); 431 this, this, shared_bitmap_manager, settings);
442 } 432 }
443 DCHECK(layer_tree_host_); 433 DCHECK(layer_tree_host_);
444 } 434 }
445 435
446 void RenderWidgetCompositor::setSurfaceReady() { 436 void RenderWidgetCompositor::setSurfaceReady() {
447 layer_tree_host_->SetLayerTreeHostClientReady(); 437 // In tests without a RenderThreadImpl, don't set ready as this kicks
438 // off creating output surfaces that the test can't create.
439 if (RenderThreadImpl::current())
enne (OOO) 2014/06/27 19:16:51 This is the fix for browser tests. By not setting
440 layer_tree_host_->SetLayerTreeHostClientReady();
448 } 441 }
449 442
450 void RenderWidgetCompositor::setRootLayer(const blink::WebLayer& layer) { 443 void RenderWidgetCompositor::setRootLayer(const blink::WebLayer& layer) {
451 layer_tree_host_->SetRootLayer( 444 layer_tree_host_->SetRootLayer(
452 static_cast<const WebLayerImpl*>(&layer)->layer()); 445 static_cast<const WebLayerImpl*>(&layer)->layer());
453 } 446 }
454 447
455 void RenderWidgetCompositor::clearRootLayer() { 448 void RenderWidgetCompositor::clearRootLayer() {
456 layer_tree_host_->SetRootLayer(scoped_refptr<cc::Layer>()); 449 layer_tree_host_->SetRootLayer(scoped_refptr<cc::Layer>());
457 } 450 }
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 void RenderWidgetCompositor::DidCommitAndDrawFrame() { 669 void RenderWidgetCompositor::DidCommitAndDrawFrame() {
677 widget_->didCommitAndDrawCompositorFrame(); 670 widget_->didCommitAndDrawCompositorFrame();
678 } 671 }
679 672
680 void RenderWidgetCompositor::DidCompleteSwapBuffers() { 673 void RenderWidgetCompositor::DidCompleteSwapBuffers() {
681 widget_->didCompleteSwapBuffers(); 674 widget_->didCompleteSwapBuffers();
682 if (!threaded_) 675 if (!threaded_)
683 widget_->OnSwapBuffersComplete(); 676 widget_->OnSwapBuffersComplete();
684 } 677 }
685 678
686 void RenderWidgetCompositor::ScheduleComposite() {
687 if (!suppress_schedule_composite_)
688 widget_->scheduleComposite();
689 }
690
691 void RenderWidgetCompositor::ScheduleAnimation() {
692 widget_->scheduleAnimation();
693 }
694
695 void RenderWidgetCompositor::DidPostSwapBuffers() { 679 void RenderWidgetCompositor::DidPostSwapBuffers() {
696 widget_->OnSwapBuffersPosted(); 680 widget_->OnSwapBuffersPosted();
697 } 681 }
698 682
699 void RenderWidgetCompositor::DidAbortSwapBuffers() { 683 void RenderWidgetCompositor::DidAbortSwapBuffers() {
700 widget_->OnSwapBuffersAborted(); 684 widget_->OnSwapBuffersAborted();
701 } 685 }
702 686
703 void RenderWidgetCompositor::RateLimitSharedMainThreadContext() { 687 void RenderWidgetCompositor::RateLimitSharedMainThreadContext() {
704 cc::ContextProvider* provider = 688 cc::ContextProvider* provider =
705 RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); 689 RenderThreadImpl::current()->SharedMainThreadContextProvider().get();
706 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM(); 690 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM();
707 } 691 }
708 692
709 } // namespace content 693 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698