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

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: danakj review 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 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 void RenderWidgetCompositor::DidCommitAndDrawFrame() { 669 void RenderWidgetCompositor::DidCommitAndDrawFrame() {
680 widget_->didCommitAndDrawCompositorFrame(); 670 widget_->didCommitAndDrawCompositorFrame();
681 } 671 }
682 672
683 void RenderWidgetCompositor::DidCompleteSwapBuffers() { 673 void RenderWidgetCompositor::DidCompleteSwapBuffers() {
684 widget_->didCompleteSwapBuffers(); 674 widget_->didCompleteSwapBuffers();
685 if (!threaded_) 675 if (!threaded_)
686 widget_->OnSwapBuffersComplete(); 676 widget_->OnSwapBuffersComplete();
687 } 677 }
688 678
689 void RenderWidgetCompositor::ScheduleComposite() {
690 if (!suppress_schedule_composite_)
691 widget_->scheduleComposite();
692 }
693
694 void RenderWidgetCompositor::ScheduleAnimation() {
695 widget_->scheduleAnimation();
696 }
697
698 void RenderWidgetCompositor::DidPostSwapBuffers() { 679 void RenderWidgetCompositor::DidPostSwapBuffers() {
699 widget_->OnSwapBuffersPosted(); 680 widget_->OnSwapBuffersPosted();
700 } 681 }
701 682
702 void RenderWidgetCompositor::DidAbortSwapBuffers() { 683 void RenderWidgetCompositor::DidAbortSwapBuffers() {
703 widget_->OnSwapBuffersAborted(); 684 widget_->OnSwapBuffersAborted();
704 } 685 }
705 686
706 void RenderWidgetCompositor::RateLimitSharedMainThreadContext() { 687 void RenderWidgetCompositor::RateLimitSharedMainThreadContext() {
707 cc::ContextProvider* provider = 688 cc::ContextProvider* provider =
708 RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); 689 RenderThreadImpl::current()->SharedMainThreadContextProvider().get();
709 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM(); 690 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM();
710 } 691 }
711 692
712 bool RenderWidgetCompositor::usesGpuRasterization() { 693 bool RenderWidgetCompositor::usesGpuRasterization() {
713 return layer_tree_host_->UseGpuRasterization(); 694 return layer_tree_host_->UseGpuRasterization();
714 } 695 }
715 696
716 } // namespace content 697 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698