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

Side by Side Diff: cc/scheduler/scheduler.cc

Issue 1265023005: cc: Add SchedulerStateMachine::DidDraw and use for forced draws (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@WillDidAction0
Patch Set: Created 5 years, 4 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 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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 "cc/scheduler/scheduler.h" 5 #include "cc/scheduler/scheduler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after
589 FROM_HERE_WITH_EXPLICIT_FUNCTION( 589 FROM_HERE_WITH_EXPLICIT_FUNCTION(
590 "461509 Scheduler::OnBeginImplFrameDeadline1")); 590 "461509 Scheduler::OnBeginImplFrameDeadline1"));
591 state_machine_.OnBeginImplFrameDeadline(); 591 state_machine_.OnBeginImplFrameDeadline();
592 ProcessScheduledActions(); 592 ProcessScheduledActions();
593 FinishImplFrame(); 593 FinishImplFrame();
594 } 594 }
595 595
596 void Scheduler::DrawAndSwapIfPossible() { 596 void Scheduler::DrawAndSwapIfPossible() {
597 compositor_timing_history_->WillDraw(); 597 compositor_timing_history_->WillDraw();
598 DrawResult result = client_->ScheduledActionDrawAndSwapIfPossible(); 598 DrawResult result = client_->ScheduledActionDrawAndSwapIfPossible();
599 state_machine_.DidDrawIfPossibleCompleted(result); 599 state_machine_.SetDrawResult(result);
600 compositor_timing_history_->DidDraw(); 600 compositor_timing_history_->DidDraw();
601 } 601 }
602 602
603 void Scheduler::DrawAndSwapForced() { 603 void Scheduler::DrawAndSwapForced() {
604 compositor_timing_history_->WillDraw(); 604 compositor_timing_history_->WillDraw();
605 client_->ScheduledActionDrawAndSwapForced(); 605 DrawResult result = client_->ScheduledActionDrawAndSwapForced();
606 state_machine_.SetDrawResult(result);
606 compositor_timing_history_->DidDraw(); 607 compositor_timing_history_->DidDraw();
607 } 608 }
608 609
609 void Scheduler::SetDeferCommits(bool defer_commits) { 610 void Scheduler::SetDeferCommits(bool defer_commits) {
610 TRACE_EVENT1("cc", "Scheduler::SetDeferCommits", 611 TRACE_EVENT1("cc", "Scheduler::SetDeferCommits",
611 "defer_commits", 612 "defer_commits",
612 defer_commits); 613 defer_commits);
613 state_machine_.SetDeferCommits(defer_commits); 614 state_machine_.SetDeferCommits(defer_commits);
614 ProcessScheduledActions(); 615 ProcessScheduledActions();
615 } 616 }
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 client_->ScheduledActionBeginOutputSurfaceCreation(); 677 client_->ScheduledActionBeginOutputSurfaceCreation();
677 break; 678 break;
678 case SchedulerStateMachine::ACTION_PREPARE_TILES: 679 case SchedulerStateMachine::ACTION_PREPARE_TILES:
679 client_->ScheduledActionPrepareTiles(); 680 client_->ScheduledActionPrepareTiles();
680 break; 681 break;
681 case SchedulerStateMachine::ACTION_INVALIDATE_OUTPUT_SURFACE: { 682 case SchedulerStateMachine::ACTION_INVALIDATE_OUTPUT_SURFACE: {
682 client_->ScheduledActionInvalidateOutputSurface(); 683 client_->ScheduledActionInvalidateOutputSurface();
683 break; 684 break;
684 } 685 }
685 } 686 }
687 state_machine_.DidAction(action);
686 } while (action != SchedulerStateMachine::ACTION_NONE); 688 } while (action != SchedulerStateMachine::ACTION_NONE);
687 689
688 ScheduleBeginImplFrameDeadlineIfNeeded(); 690 ScheduleBeginImplFrameDeadlineIfNeeded();
689 SetupNextBeginFrameIfNeeded(); 691 SetupNextBeginFrameIfNeeded();
690 } 692 }
691 693
692 scoped_refptr<base::trace_event::ConvertableToTraceFormat> Scheduler::AsValue() 694 scoped_refptr<base::trace_event::ConvertableToTraceFormat> Scheduler::AsValue()
693 const { 695 const {
694 scoped_refptr<base::trace_event::TracedValue> state = 696 scoped_refptr<base::trace_event::TracedValue> state =
695 new base::trace_event::TracedValue(); 697 new base::trace_event::TracedValue();
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
810 } 812 }
811 813
812 bool Scheduler::IsBeginMainFrameSentOrStarted() const { 814 bool Scheduler::IsBeginMainFrameSentOrStarted() const {
813 return (state_machine_.begin_main_frame_state() == 815 return (state_machine_.begin_main_frame_state() ==
814 SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_SENT || 816 SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_SENT ||
815 state_machine_.begin_main_frame_state() == 817 state_machine_.begin_main_frame_state() ==
816 SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_STARTED); 818 SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_STARTED);
817 } 819 }
818 820
819 } // namespace cc 821 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/scheduler/scheduler_state_machine.h » ('j') | cc/scheduler/scheduler_state_machine.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698