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

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: Post task for ScheduledActionBeginOutputSurfaceCreation Created 6 years, 6 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 #if defined(OS_ANDROID) 10 #if defined(OS_ANDROID)
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 #endif 316 #endif
317 317
318 compositor->Initialize(settings); 318 compositor->Initialize(settings);
319 319
320 return compositor.Pass(); 320 return compositor.Pass();
321 } 321 }
322 322
323 RenderWidgetCompositor::RenderWidgetCompositor(RenderWidget* widget, 323 RenderWidgetCompositor::RenderWidgetCompositor(RenderWidget* widget,
324 bool threaded) 324 bool threaded)
325 : threaded_(threaded), 325 : threaded_(threaded),
326 suppress_schedule_composite_(false),
327 widget_(widget) { 326 widget_(widget) {
328 } 327 }
329 328
330 RenderWidgetCompositor::~RenderWidgetCompositor() {} 329 RenderWidgetCompositor::~RenderWidgetCompositor() {}
331 330
332 const base::WeakPtr<cc::InputHandler>& 331 const base::WeakPtr<cc::InputHandler>&
333 RenderWidgetCompositor::GetInputHandler() { 332 RenderWidgetCompositor::GetInputHandler() {
334 return layer_tree_host_->GetInputHandler(); 333 return layer_tree_host_->GetInputHandler();
335 } 334 }
336 335
337 void RenderWidgetCompositor::SetSuppressScheduleComposite(bool suppress) { 336 void RenderWidgetCompositor::SetSuppressScheduleComposite(bool suppress) {
338 if (suppress_schedule_composite_ == suppress) 337 layer_tree_host_->SetDeferCommits(suppress);
339 return;
340
341 if (suppress)
342 TRACE_EVENT_ASYNC_BEGIN0("gpu",
343 "RenderWidgetCompositor::SetSuppressScheduleComposite", this);
344 else
345 TRACE_EVENT_ASYNC_END0("gpu",
346 "RenderWidgetCompositor::SetSuppressScheduleComposite", this);
347 suppress_schedule_composite_ = suppress;
348 } 338 }
349 339
350 bool RenderWidgetCompositor::BeginMainFrameRequested() const { 340 bool RenderWidgetCompositor::BeginMainFrameRequested() const {
351 return layer_tree_host_->BeginMainFrameRequested(); 341 return layer_tree_host_->BeginMainFrameRequested();
352 } 342 }
353 343
354 void RenderWidgetCompositor::UpdateAnimations(base::TimeTicks time) { 344 void RenderWidgetCompositor::UpdateAnimations(base::TimeTicks time) {
355 layer_tree_host_->UpdateClientAnimations(time); 345 layer_tree_host_->UpdateClientAnimations(time);
356 } 346 }
357 347
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
680 void RenderWidgetCompositor::DidCommitAndDrawFrame() { 670 void RenderWidgetCompositor::DidCommitAndDrawFrame() {
681 widget_->didCommitAndDrawCompositorFrame(); 671 widget_->didCommitAndDrawCompositorFrame();
682 } 672 }
683 673
684 void RenderWidgetCompositor::DidCompleteSwapBuffers() { 674 void RenderWidgetCompositor::DidCompleteSwapBuffers() {
685 widget_->didCompleteSwapBuffers(); 675 widget_->didCompleteSwapBuffers();
686 if (!threaded_) 676 if (!threaded_)
687 widget_->OnSwapBuffersComplete(); 677 widget_->OnSwapBuffersComplete();
688 } 678 }
689 679
690 void RenderWidgetCompositor::ScheduleComposite() {
691 if (!suppress_schedule_composite_)
692 widget_->scheduleComposite();
693 }
694
695 void RenderWidgetCompositor::ScheduleAnimation() {
696 widget_->scheduleAnimation();
697 }
698
699 void RenderWidgetCompositor::DidPostSwapBuffers() { 680 void RenderWidgetCompositor::DidPostSwapBuffers() {
700 widget_->OnSwapBuffersPosted(); 681 widget_->OnSwapBuffersPosted();
701 } 682 }
702 683
703 void RenderWidgetCompositor::DidAbortSwapBuffers() { 684 void RenderWidgetCompositor::DidAbortSwapBuffers() {
704 widget_->OnSwapBuffersAborted(); 685 widget_->OnSwapBuffersAborted();
705 } 686 }
706 687
707 void RenderWidgetCompositor::RateLimitSharedMainThreadContext() { 688 void RenderWidgetCompositor::RateLimitSharedMainThreadContext() {
708 cc::ContextProvider* provider = 689 cc::ContextProvider* provider =
709 RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); 690 RenderThreadImpl::current()->SharedMainThreadContextProvider().get();
710 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM(); 691 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM();
711 } 692 }
712 693
713 bool RenderWidgetCompositor::usesGpuRasterization() { 694 bool RenderWidgetCompositor::usesGpuRasterization() {
714 return layer_tree_host_->UseGpuRasterization(); 695 return layer_tree_host_->UseGpuRasterization();
715 } 696 }
716 697
717 } // namespace content 698 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698