1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CC_SCHEDULER_SCHEDULER_SETTINGS_H_
6#define CC_SCHEDULER_SCHEDULER_SETTINGS_H_
7
8#include "base/memory/ref_counted.h"
9#include "base/values.h"
10#include "cc/base/cc_export.h"
11
12namespace base {
13namespace debug {
14class ConvertableToTraceFormat;
15}
16}
17
18namespace cc {
19class LayerTreeSettings;
20
21class CC_EXPORT SchedulerSettings {
22 public:
23  SchedulerSettings();
24  explicit SchedulerSettings(const LayerTreeSettings& settings);
25  ~SchedulerSettings();
26
27  bool begin_frame_scheduling_enabled;
28  bool main_frame_before_draw_enabled;
29  bool main_frame_before_activation_enabled;
30  bool impl_side_painting;
31  bool timeout_and_draw_when_animation_checkerboards;
32  int maximum_number_of_failed_draws_before_draw_is_forced_;
33  bool using_synchronous_renderer_compositor;
34  bool throttle_frame_production;
35
36  scoped_refptr<base::debug::ConvertableToTraceFormat> AsValue() const;
37};
38
39}  // namespace cc
40
41#endif  // CC_SCHEDULER_SCHEDULER_SETTINGS_H_
42