9#ifndef AVARA3D_PROFILE_FRAMESTATSHISTORY_H
10#define AVARA3D_PROFILE_FRAMESTATSHISTORY_H
16#include "a3d/profile/FrameStats.h"
20 class FrameStatsHistory {
25 using SteadyTimePoint = std::chrono::time_point<std::chrono::steady_clock>;
29 static void GetAverages(
const FrameStatsHistory& history,
30 std::chrono::nanoseconds& frame,
31 std::chrono::nanoseconds& engineCpu,
32 std::chrono::nanoseconds& renderCpu,
33 std::chrono::nanoseconds& renderGpu,
34 std::chrono::nanoseconds& physics,
35 std::chrono::nanoseconds& appCpu,
36 std::chrono::milliseconds averagingDuration);
39 explicit FrameStatsHistory(std::chrono::milliseconds historyTime);
43 void add(FrameStats stats);
45 const std::deque<std::tuple<SteadyTimePoint, FrameStats>>& samples()
const;
50 std::chrono::milliseconds _historyTime;
51 std::deque<std::tuple<SteadyTimePoint, FrameStats>> _samples;