115be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen// Copyright 2013 The Chromium Authors. All rights reserved.
215be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen// Use of this source code is governed by a BSD-style license that can be
315be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen// found in the LICENSE file.
415be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen
515be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen#include "cc/scheduler/scheduler_settings.h"
615be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen
715be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen#include "base/debug/trace_event_argument.h"
815be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen#include "cc/trees/layer_tree_settings.h"
915be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen
1015be1d0710fbbd52465e6981a484a6439afe4093Johnny Chennamespace cc {
1115be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen
1215be1d0710fbbd52465e6981a484a6439afe4093Johnny ChenSchedulerSettings::SchedulerSettings()
1315be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen    : begin_frame_scheduling_enabled(true),
1415be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen      main_frame_before_draw_enabled(true),
1515be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen      main_frame_before_activation_enabled(false),
1615be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen      impl_side_painting(false),
1715be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen      timeout_and_draw_when_animation_checkerboards(true),
1815be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen      maximum_number_of_failed_draws_before_draw_is_forced_(3),
1915be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen      using_synchronous_renderer_compositor(false),
2015be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen      throttle_frame_production(true) {
2115be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen}
2215be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen
2315be1d0710fbbd52465e6981a484a6439afe4093Johnny ChenSchedulerSettings::SchedulerSettings(const LayerTreeSettings& settings)
2415be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen    : begin_frame_scheduling_enabled(settings.begin_frame_scheduling_enabled),
2515be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen      main_frame_before_draw_enabled(settings.main_frame_before_draw_enabled),
2615be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen      main_frame_before_activation_enabled(
2715be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen          settings.main_frame_before_activation_enabled),
2815be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen      impl_side_painting(settings.impl_side_painting),
2915be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen      timeout_and_draw_when_animation_checkerboards(
3015be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen          settings.timeout_and_draw_when_animation_checkerboards),
3115be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen      maximum_number_of_failed_draws_before_draw_is_forced_(
3215be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen          settings.maximum_number_of_failed_draws_before_draw_is_forced_),
3315be1d0710fbbd52465e6981a484a6439afe4093Johnny Chen      using_synchronous_renderer_compositor(
34a70c157b98bc6e9c8d1853e54473c3bd5a349a77Johnny Chen          settings.using_synchronous_renderer_compositor),
35a70c157b98bc6e9c8d1853e54473c3bd5a349a77Johnny Chen      throttle_frame_production(settings.throttle_frame_production) {
36}
37
38SchedulerSettings::~SchedulerSettings() {}
39
40scoped_refptr<base::debug::ConvertableToTraceFormat>
41SchedulerSettings::AsValue() const {
42  scoped_refptr<base::debug::TracedValue> state =
43      new base::debug::TracedValue();
44  state->SetBoolean("begin_frame_scheduling_enabled",
45                    begin_frame_scheduling_enabled);
46  state->SetBoolean("main_frame_before_draw_enabled",
47                    main_frame_before_draw_enabled);
48  state->SetBoolean("main_frame_before_activation_enabled",
49                    main_frame_before_activation_enabled);
50  state->SetBoolean("impl_side_painting", impl_side_painting);
51  state->SetBoolean("timeout_and_draw_when_animation_checkerboards",
52                    timeout_and_draw_when_animation_checkerboards);
53  state->SetInteger("maximum_number_of_failed_draws_before_draw_is_forced_",
54                    maximum_number_of_failed_draws_before_draw_is_forced_);
55  state->SetBoolean("using_synchronous_renderer_compositor",
56                    using_synchronous_renderer_compositor);
57  state->SetBoolean("throttle_frame_production", throttle_frame_production);
58  return state;
59}
60
61}  // namespace cc
62