From 641db1c86bf624527173b0323bd3c832338c3662 Mon Sep 17 00:00:00 2001 From: hachem Date: Thu, 14 Aug 2025 00:02:01 +0200 Subject: [add]: State manager --- src/States/SimulationState.h | 56 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/States/SimulationState.h (limited to 'src/States/SimulationState.h') diff --git a/src/States/SimulationState.h b/src/States/SimulationState.h new file mode 100644 index 0000000..d2f0106 --- /dev/null +++ b/src/States/SimulationState.h @@ -0,0 +1,56 @@ +#pragma once + +#include "Core/State.h" +#include "Core/Event.h" +#include "Core/Camera.h" +#include "Core/Log.h" + +#include "Rendering/VertexArray.h" +#include "Rendering/VertexBuffer.h" +#include "Rendering/IndexBuffer.h" +#include "Rendering/Shader.h" +#include "Rendering/Texture.h" + +namespace Donut +{ + class SimulationState + : public State + { + public: + ~SimulationState() = default; + + void OnEnter() override; + void OnExit() override; + void OnUpdate(float deltaTime) override; + void OnRender() override; + void OnEvent(Event& event) override; + private: + void HandleKeyInput(float deltaTime); + void UpdateTexture(); + private: + std::unique_ptr m_Camera; + + std::shared_ptr m_VertexArray; + std::shared_ptr m_VertexBuffer; + std::shared_ptr m_IndexBuffer; + std::shared_ptr m_Shader; + std::shared_ptr m_Texture; + + std::shared_ptr m_ComputeShader; + std::shared_ptr m_ProcessedTexture; + + float m_ComputeBrightness = 0.0f; + float m_ComputeContrast = 1.0f; + float m_ComputeSaturation = 1.0f; + bool m_UseComputeShader = true; + + bool m_Keys[1024] = { false }; + bool m_FirstMouse = true; + float m_LastX = 0.0f; + float m_LastY = 0.0f; + float m_DeltaTime = 0.0f; + float m_LastFrame = 0.0f; + bool m_MouseDragging = false; + float m_TextureTime = 0.0f; + }; +}; -- cgit v1.3