// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. namespace osu.Framework.Timing { /// /// A clock which will only update its current time when a frame process is triggered. /// Useful for keeping a consistent time state across an individual update. /// public interface IFrameBasedClock : IClock { /// /// Elapsed time since last frame in milliseconds. /// double ElapsedFrameTime { get; } /// /// A moving average representation of the frames per second of this clock. /// Do not use this for any timing purposes (use instead). /// double FramesPerSecond { get; } FrameTimeInfo TimeInfo { get; } /// /// Processes one frame. Generally should be run once per update loop. /// void ProcessFrame(); } }