#pragma once #ifndef _NB_WINDOW #define _NB_WINDOW #include #include #include #include #include #include namespace NB { class NBWindow { public: NBWindow(const std::array, const char*, GLFWmonitor* initMonitor=NULL, GLFWwindow* initWindow=NULL); NBWindow(const uint16_t, const uint16_t, const char*, GLFWmonitor* initMonitor=NULL, GLFWwindow* initWindow=NULL); ~NBWindow(); int init(); GLFWwindow* getWindow() const; std::array getSize() const; std::string getName() const; void resize(const std::array); void resize(const uint16_t x, const uint16_t y); protected: static std::atomic windowCount; std::array windowSize; std::string windowName; bool ready=false, running=false; GLFWwindow* window; GLFWmonitor* monitor; GLFWwindow* shareWindow; }; }; #endif