/*
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
 */

#pragma once

#include "UI.hpp"

#include <deque>

namespace OpenVulkano::Scene::UI
{
	struct FloatCollection
	{
		std::deque<float> m_values;
		float m_maxValue;
	};

	class PerformanceInfo : public UiElement
	{
		int m_windowSize = 200;
		FloatCollection m_ramUsed;
		FloatCollection m_frames;

		void UpdateQueues();

	protected:
		void BeginDraw() override;
		void Draw() override;
		void EndDraw() override;
	};
}
