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

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

Issue 342413005: Revert of Make SingleThreadProxy a SchedulerClient (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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
« no previous file with comments | « content/renderer/gpu/render_widget_compositor.h ('k') | content/renderer/render_widget.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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),
323 widget_(widget) { 324 widget_(widget) {
324 } 325 }
325 326
326 RenderWidgetCompositor::~RenderWidgetCompositor() {} 327 RenderWidgetCompositor::~RenderWidgetCompositor() {}
327 328
328 const base::WeakPtr<cc::InputHandler>& 329 const base::WeakPtr<cc::InputHandler>&
329 RenderWidgetCompositor::GetInputHandler() { 330 RenderWidgetCompositor::GetInputHandler() {
330 return layer_tree_host_->GetInputHandler(); 331 return layer_tree_host_->GetInputHandler();
331 } 332 }
332 333
333 void RenderWidgetCompositor::SetSuppressScheduleComposite(bool suppress) { 334 void RenderWidgetCompositor::SetSuppressScheduleComposite(bool suppress) {
334 layer_tree_host_->SetDeferCommits(suppress); 335 if (suppress_schedule_composite_ == 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;
335 } 345 }
336 346
337 bool RenderWidgetCompositor::BeginMainFrameRequested() const { 347 bool RenderWidgetCompositor::BeginMainFrameRequested() const {
338 return layer_tree_host_->BeginMainFrameRequested(); 348 return layer_tree_host_->BeginMainFrameRequested();
339 } 349 }
340 350
351 void RenderWidgetCompositor::UpdateAnimations(base::TimeTicks time) {
352 layer_tree_host_->UpdateClientAnimations(time);
353 }
354
341 void RenderWidgetCompositor::SetNeedsDisplayOnAllLayers() { 355 void RenderWidgetCompositor::SetNeedsDisplayOnAllLayers() {
342 layer_tree_host_->SetNeedsDisplayOnAllLayers(); 356 layer_tree_host_->SetNeedsDisplayOnAllLayers();
343 } 357 }
344 358
345 void RenderWidgetCompositor::SetRasterizeOnlyVisibleContent() { 359 void RenderWidgetCompositor::SetRasterizeOnlyVisibleContent() {
346 cc::LayerTreeDebugState current = layer_tree_host_->debug_state(); 360 cc::LayerTreeDebugState current = layer_tree_host_->debug_state();
347 current.rasterize_only_visible_content = true; 361 current.rasterize_only_visible_content = true;
348 layer_tree_host_->SetDebugState(current); 362 layer_tree_host_->SetDebugState(current);
349 } 363 }
350 364
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 layer_tree_host_ = cc::LayerTreeHost::CreateThreaded( 437 layer_tree_host_ = cc::LayerTreeHost::CreateThreaded(
424 this, shared_bitmap_manager, settings, compositor_message_loop_proxy); 438 this, shared_bitmap_manager, settings, compositor_message_loop_proxy);
425 } else { 439 } else {
426 layer_tree_host_ = cc::LayerTreeHost::CreateSingleThreaded( 440 layer_tree_host_ = cc::LayerTreeHost::CreateSingleThreaded(
427 this, this, shared_bitmap_manager, settings); 441 this, this, shared_bitmap_manager, settings);
428 } 442 }
429 DCHECK(layer_tree_host_); 443 DCHECK(layer_tree_host_);
430 } 444 }
431 445
432 void RenderWidgetCompositor::setSurfaceReady() { 446 void RenderWidgetCompositor::setSurfaceReady() {
433 // In tests without a RenderThreadImpl, don't set ready as this kicks 447 layer_tree_host_->SetLayerTreeHostClientReady();
434 // off creating output surfaces that the test can't create.
435 if (RenderThreadImpl::current())
436 layer_tree_host_->SetLayerTreeHostClientReady();
437 } 448 }
438 449
439 void RenderWidgetCompositor::setRootLayer(const blink::WebLayer& layer) { 450 void RenderWidgetCompositor::setRootLayer(const blink::WebLayer& layer) {
440 layer_tree_host_->SetRootLayer( 451 layer_tree_host_->SetRootLayer(
441 static_cast<const WebLayerImpl*>(&layer)->layer()); 452 static_cast<const WebLayerImpl*>(&layer)->layer());
442 } 453 }
443 454
444 void RenderWidgetCompositor::clearRootLayer() { 455 void RenderWidgetCompositor::clearRootLayer() {
445 layer_tree_host_->SetRootLayer(scoped_refptr<cc::Layer>()); 456 layer_tree_host_->SetRootLayer(scoped_refptr<cc::Layer>());
446 } 457 }
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 void RenderWidgetCompositor::DidCommitAndDrawFrame() { 676 void RenderWidgetCompositor::DidCommitAndDrawFrame() {
666 widget_->didCommitAndDrawCompositorFrame(); 677 widget_->didCommitAndDrawCompositorFrame();
667 } 678 }
668 679
669 void RenderWidgetCompositor::DidCompleteSwapBuffers() { 680 void RenderWidgetCompositor::DidCompleteSwapBuffers() {
670 widget_->didCompleteSwapBuffers(); 681 widget_->didCompleteSwapBuffers();
671 if (!threaded_) 682 if (!threaded_)
672 widget_->OnSwapBuffersComplete(); 683 widget_->OnSwapBuffersComplete();
673 } 684 }
674 685
686 void RenderWidgetCompositor::ScheduleComposite() {
687 if (!suppress_schedule_composite_)
688 widget_->scheduleComposite();
689 }
690
691 void RenderWidgetCompositor::ScheduleAnimation() {
692 widget_->scheduleAnimation();
693 }
694
675 void RenderWidgetCompositor::DidPostSwapBuffers() { 695 void RenderWidgetCompositor::DidPostSwapBuffers() {
676 widget_->OnSwapBuffersPosted(); 696 widget_->OnSwapBuffersPosted();
677 } 697 }
678 698
679 void RenderWidgetCompositor::DidAbortSwapBuffers() { 699 void RenderWidgetCompositor::DidAbortSwapBuffers() {
680 widget_->OnSwapBuffersAborted(); 700 widget_->OnSwapBuffersAborted();
681 } 701 }
682 702
683 void RenderWidgetCompositor::RateLimitSharedMainThreadContext() { 703 void RenderWidgetCompositor::RateLimitSharedMainThreadContext() {
684 cc::ContextProvider* provider = 704 cc::ContextProvider* provider =
685 RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); 705 RenderThreadImpl::current()->SharedMainThreadContextProvider().get();
686 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM(); 706 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM();
687 } 707 }
688 708
689 } // namespace content 709 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/gpu/render_widget_compositor.h ('k') | content/renderer/render_widget.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698