#pragma once #define GLFW_INCLUDE_VULKAN #include "GLFW/glfw3.h" #ifndef VK_SUCCESS #include #endif namespace basalt { class Window { public: Window(const Window& src) = delete; Window& operator =(const Window& src) = delete; Window(Window&& other) noexcept; Window& operator =(Window&& other) noexcept; Window(uint16_t width, uint16_t height, const char* title); ~Window(void) noexcept; void swap(Window& other) noexcept; operator GLFWwindow* (void) const noexcept; const bool should_close(void) const noexcept; protected: GLFWwindow* window = nullptr; const char* window_title = "N/A"; uint16_t width = 0; uint16_t height = 0; }; }