// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef FLUTTER_SHELL_PLATFORM_FUCHSIA_FLUTTER_RUNNER_PRODUCT_CONFIGURATION_H_
#define FLUTTER_SHELL_PLATFORM_FUCHSIA_FLUTTER_RUNNER_PRODUCT_CONFIGURATION_H_

#include <string>

#include "flutter/fml/time/time_delta.h"

namespace flutter_runner {

class FlutterRunnerProductConfiguration {
 public:
  FlutterRunnerProductConfiguration() {}
  explicit FlutterRunnerProductConfiguration(std::string json_string);

  fml::TimeDelta get_vsync_offset() { return vsync_offset_; }
  uint64_t get_max_frames_in_flight() { return max_frames_in_flight_; }
  bool get_intercept_all_input() { return intercept_all_input_; }
  bool software_rendering() { return software_rendering_; }
  bool enable_shader_warmup() { return enable_shader_warmup_; }
  bool enable_shader_warmup_dart_hooks() {
    return enable_shader_warmup_dart_hooks_;
  }

 private:
  fml::TimeDelta vsync_offset_ = fml::TimeDelta::Zero();
  uint64_t max_frames_in_flight_ = 3;
  bool intercept_all_input_ = false;
  bool software_rendering_ = false;
  bool enable_shader_warmup_ = false;
  bool enable_shader_warmup_dart_hooks_ = true;
};

}  // namespace flutter_runner
#endif  // FLUTTER_SHELL_PLATFORM_FUCHSIA_FLUTTER_RUNNER_PRODUCT_CONFIGURATION_H_
