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

Side by Side Diff: ui/compositor/compositor.cc

Issue 1841083007: Remove SendBeginFramesToChildren plumbing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@scheduler_output_surface_client_set_beginframesource
Patch Set: Remove some comments Created 4 years, 8 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ui/compositor/compositor.h" 5 #include "ui/compositor/compositor.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <deque> 10 #include <deque>
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 void Compositor::RemoveAnimationObserver( 379 void Compositor::RemoveAnimationObserver(
380 CompositorAnimationObserver* observer) { 380 CompositorAnimationObserver* observer) {
381 animation_observer_list_.RemoveObserver(observer); 381 animation_observer_list_.RemoveObserver(observer);
382 } 382 }
383 383
384 bool Compositor::HasAnimationObserver( 384 bool Compositor::HasAnimationObserver(
385 const CompositorAnimationObserver* observer) const { 385 const CompositorAnimationObserver* observer) const {
386 return animation_observer_list_.HasObserver(observer); 386 return animation_observer_list_.HasObserver(observer);
387 } 387 }
388 388
389 void Compositor::AddBeginFrameObserver(CompositorBeginFrameObserver* observer) {
390 if (!begin_frame_observer_list_.might_have_observers())
391 host_->SetChildrenNeedBeginFrames(true);
392
393 begin_frame_observer_list_.AddObserver(observer);
394
395 if (missed_begin_frame_args_.IsValid())
396 observer->OnSendBeginFrame(missed_begin_frame_args_);
397 }
398
399 void Compositor::RemoveBeginFrameObserver(
400 CompositorBeginFrameObserver* observer) {
401 begin_frame_observer_list_.RemoveObserver(observer);
402
403 // As this call may take place while iterating over observers, unsubscription
404 // from |host_| is performed after iteration in |SendBeginFramesToChildren()|.
405 }
406
407 void Compositor::BeginMainFrame(const cc::BeginFrameArgs& args) { 389 void Compositor::BeginMainFrame(const cc::BeginFrameArgs& args) {
408 FOR_EACH_OBSERVER(CompositorAnimationObserver, 390 FOR_EACH_OBSERVER(CompositorAnimationObserver,
409 animation_observer_list_, 391 animation_observer_list_,
410 OnAnimationStep(args.frame_time)); 392 OnAnimationStep(args.frame_time));
411 if (animation_observer_list_.might_have_observers()) 393 if (animation_observer_list_.might_have_observers())
412 host_->SetNeedsAnimate(); 394 host_->SetNeedsAnimate();
413 } 395 }
414 396
415 void Compositor::BeginMainFrameNotExpectedSoon() { 397 void Compositor::BeginMainFrameNotExpectedSoon() {
416 } 398 }
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 FOR_EACH_OBSERVER(CompositorObserver, 450 FOR_EACH_OBSERVER(CompositorObserver,
469 observer_list_, 451 observer_list_,
470 OnCompositingAborted(this)); 452 OnCompositingAborted(this));
471 } 453 }
472 454
473 void Compositor::SetOutputIsSecure(bool output_is_secure) { 455 void Compositor::SetOutputIsSecure(bool output_is_secure) {
474 host_->SetOutputIsSecure(output_is_secure); 456 host_->SetOutputIsSecure(output_is_secure);
475 host_->SetNeedsRedraw(); 457 host_->SetNeedsRedraw();
476 } 458 }
477 459
478 void Compositor::SendBeginFramesToChildren(const cc::BeginFrameArgs& args) {
479 FOR_EACH_OBSERVER(CompositorBeginFrameObserver, begin_frame_observer_list_,
480 OnSendBeginFrame(args));
481
482 // Unsubscription is performed here, after iteration, to handle the case where
483 // the last BeginFrame observer is removed while iterating over the observers.
484 if (!begin_frame_observer_list_.might_have_observers()) {
485 host_->SetChildrenNeedBeginFrames(false);
486 // Unsubscription should reset |missed_begin_frame_args_|, avoiding stale
487 // BeginFrame dispatch when the next BeginFrame observer is added.
488 missed_begin_frame_args_ = cc::BeginFrameArgs();
489 return;
490 }
491
492 missed_begin_frame_args_ = args;
493 missed_begin_frame_args_.type = cc::BeginFrameArgs::MISSED;
494 }
495
496 const cc::LayerTreeDebugState& Compositor::GetLayerTreeDebugState() const { 460 const cc::LayerTreeDebugState& Compositor::GetLayerTreeDebugState() const {
497 return host_->debug_state(); 461 return host_->debug_state();
498 } 462 }
499 463
500 void Compositor::SetLayerTreeDebugState( 464 void Compositor::SetLayerTreeDebugState(
501 const cc::LayerTreeDebugState& debug_state) { 465 const cc::LayerTreeDebugState& debug_state) {
502 host_->SetDebugState(debug_state); 466 host_->SetDebugState(debug_state);
503 } 467 }
504 468
505 const cc::RendererSettings& Compositor::GetRendererSettings() const { 469 const cc::RendererSettings& Compositor::GetRendererSettings() const {
(...skipping 19 matching lines...) Expand all
525 observer_list_, 489 observer_list_,
526 OnCompositingLockStateChanged(this)); 490 OnCompositingLockStateChanged(this));
527 } 491 }
528 492
529 void Compositor::CancelCompositorLock() { 493 void Compositor::CancelCompositorLock() {
530 if (compositor_lock_) 494 if (compositor_lock_)
531 compositor_lock_->CancelLock(); 495 compositor_lock_->CancelLock();
532 } 496 }
533 497
534 } // namespace ui 498 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698