Chromium Code Reviews| Index: cc/scheduler/scheduler.cc |
| diff --git a/cc/scheduler/scheduler.cc b/cc/scheduler/scheduler.cc |
| index 37e7c5352b0db92479aa8e49e6c04431cca1a8a7..2f1a42ae61bb5ec8987d461f2ee6b4d48bf61ceb 100644 |
| --- a/cc/scheduler/scheduler.cc |
| +++ b/cc/scheduler/scheduler.cc |
| @@ -49,21 +49,6 @@ BeginFrameSource* SchedulerFrameSourcesConstructor::ConstructPrimaryFrameSource( |
| } |
| BeginFrameSource* |
| -SchedulerFrameSourcesConstructor::ConstructBackgroundFrameSource( |
| - Scheduler* scheduler) { |
| - TRACE_EVENT1("cc", |
| - "Scheduler::Scheduler()", |
| - "BackgroundFrameSource", |
| - "SyntheticBeginFrameSource"); |
| - DCHECK(!(scheduler->background_frame_source_internal_)); |
| - scheduler->background_frame_source_internal_ = |
| - SyntheticBeginFrameSource::Create( |
| - scheduler->task_runner_.get(), scheduler->Now(), |
| - scheduler->settings_.background_frame_interval); |
| - return scheduler->background_frame_source_internal_.get(); |
| -} |
| - |
| -BeginFrameSource* |
| SchedulerFrameSourcesConstructor::ConstructUnthrottledFrameSource( |
| Scheduler* scheduler) { |
| TRACE_EVENT1("cc", "Scheduler::Scheduler()", "UnthrottledFrameSource", |
| @@ -83,13 +68,11 @@ Scheduler::Scheduler( |
| SchedulerFrameSourcesConstructor* frame_sources_constructor) |
| : frame_source_(), |
| primary_frame_source_(NULL), |
| - background_frame_source_(NULL), |
| primary_frame_source_internal_(external_begin_frame_source.Pass()), |
| - background_frame_source_internal_(), |
| vsync_observer_(NULL), |
| authoritative_vsync_interval_(base::TimeDelta()), |
| last_vsync_timebase_(base::TimeTicks()), |
| - throttle_frame_production_(scheduler_settings.throttle_frame_production), |
| + throttle_frame_production_(false), |
| settings_(scheduler_settings), |
| client_(client), |
| layer_tree_host_id_(layer_tree_host_id), |
| @@ -123,15 +106,12 @@ Scheduler::Scheduler( |
| frame_source_->AddSource(primary_frame_source_); |
| primary_frame_source_->SetClientReady(); |
| - // Background ticking frame source |
| - background_frame_source_ = |
| - frame_sources_constructor->ConstructBackgroundFrameSource(this); |
| - frame_source_->AddSource(background_frame_source_); |
| - |
| // Unthrottled frame source |
| unthrottled_frame_source_ = |
| frame_sources_constructor->ConstructUnthrottledFrameSource(this); |
| frame_source_->AddSource(unthrottled_frame_source_); |
| + |
| + SetThrottleFrameProduction(scheduler_settings.throttle_frame_production); |
| } |
| Scheduler::~Scheduler() { |
| @@ -174,21 +154,11 @@ void Scheduler::SetCanStart() { |
| } |
| void Scheduler::UpdateActiveFrameSource() { |
|
brianderson
2015/04/01 21:58:08
Delete?
mithro-old
2015/04/02 01:03:59
Done.
|
| - if (state_machine_.visible()) { |
| - if (throttle_frame_production_) { |
| - frame_source_->SetActiveSource(primary_frame_source_); |
| - } else { |
| - frame_source_->SetActiveSource(unthrottled_frame_source_); |
| - } |
| - } else { |
| - frame_source_->SetActiveSource(background_frame_source_); |
|
jdduke (slow)
2015/04/01 19:21:21
Why not set the active source to null if we're inv
mithro-old
2015/04/02 01:03:59
The approach I took was to make scheduler understa
|
| - } |
| - ProcessScheduledActions(); |
| } |
| void Scheduler::SetVisible(bool visible) { |
| state_machine_.SetVisible(visible); |
| - UpdateActiveFrameSource(); |
| + ProcessScheduledActions(); |
| } |
| void Scheduler::SetCanDraw(bool can_draw) { |
| @@ -208,7 +178,12 @@ void Scheduler::NotifyReadyToDraw() { |
| void Scheduler::SetThrottleFrameProduction(bool throttle) { |
| throttle_frame_production_ = throttle; |
| - UpdateActiveFrameSource(); |
| + if (throttle) { |
| + frame_source_->SetActiveSource(primary_frame_source_); |
| + } else { |
| + frame_source_->SetActiveSource(unthrottled_frame_source_); |
| + } |
| + ProcessScheduledActions(); |
| } |
| void Scheduler::SetNeedsCommit() { |