OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |