#pragma once #include "Core/Timestep.h" #include "Rendering/Framebuffer.h" #include "Scene/Scene.h" #include "Core/Core.h" struct GLFWwindow; class Window { private: static Ref s_Instance; int m_Width = 1280; int m_Height = 720; GLFWwindow* m_Window; Ref m_Framebuffer; Ref m_Scene; Vector2 m_FramebufferOffset; public: Window(); ~Window(); static Ref Get(); // Get the window instance GLFWwindow* GetHandle(); bool ShouldClose(); int Init(); void Update(Timestep ts); void FixedUpdate(Timestep ts); void Draw(); void EndDraw(); Ref GetFrameBuffer() const; Ref GetSceneRenderTexture(); void DrawQuad(); Ref GetScene(); bool SetScene(Ref scene); };