chromium/components/viz/common/quads/frame_interval_inputs.h

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_VIZ_COMMON_QUADS_FRAME_INTERVAL_INPUTS_H_
#define COMPONENTS_VIZ_COMMON_QUADS_FRAME_INTERVAL_INPUTS_H_

#include <cstdint>
#include <string>
#include <vector>

#include "base/time/time.h"
#include "components/viz/common/viz_common_export.h"

namespace viz {

// Information passed from viz clients used to compute the overall ideal frame
// interval. Information should generally be descriptive of information in
// clients, but clients should generally avoid doing aggregation itself to allow
// viz decide using full description of all clients. For example clients should
// not compute a preferred frame interval unless the content it's displaying
// actually has a fixed or specified frame interval.
// This file should generally avoid OS build flags checks (eg IS_ANDROID),
// though exception can be made for if the information is expensive to compute,
// or if feature is really specific to a specific platform.

// The type of content that has a fixed or specified frame interval.
enum class ContentFrameIntervalType {};

VIZ_COMMON_EXPORT std::string ContentFrameIntervalTypeToString(
    ContentFrameIntervalType type);

struct VIZ_COMMON_EXPORT ContentFrameIntervalInfo {};

struct VIZ_COMMON_EXPORT FrameIntervalInputs {};

}  // namespace viz

#endif  // COMPONENTS_VIZ_COMMON_QUADS_FRAME_INTERVAL_INPUTS_H_