#pragma once #include #include #include #include struct SDL_Window; namespace orange { class Window { public: ~Window(); static bool GetInstanceExtensions(Window& window, uint32_t *count, const char **extensions); Result CreateSurface(VkInstance instance); static const char* GetError(); static Result Create(); bool Update(Input::InputHandler& handler); void EnableRelativeMouse(bool relative); void SetTitle(const char* title); protected: friend Result; Window(SDL_Window* window); private: SDL_Window* m_window = nullptr; bool m_relativeMouse = false; bool m_hasFocus = false; }; }