/*! * \file include/UI.h * \brief UI/Event Manager * * \author xythobuz */ #ifndef _UI_H_ #define _UI_H_ #include #include #include #include #include #include "system/Shader.h" struct ImDrawData; class UI { public: static int initialize(); static void eventsFinished(); static void display(); static void shutdown(); static void setSize(glm::i32vec2 s); static void setVisible(bool v) { visible = v; } static bool isVisible() { return visible; } static void handleKeyboard(KeyboardButton key, bool pressed); static void handleText(char* text, bool notFinished); static void handleMouseClick(unsigned int x, unsigned int y, KeyboardButton button, bool released); static void handleMouseMotion(int xrel, int yrel, int xabs, int yabs); static void handleMouseScroll(int xrel, int yrel); static void handleControllerAxis(float value, KeyboardButton axis); static void handleControllerButton(KeyboardButton button, bool released); static void renderImGui(ImDrawData* draw_data); private: static bool visible; static unsigned int fontTex; static std::string iniFilename; static std::string logFilename; static bool metaKeyIsActive; static std::list> keyboardEvents; static std::list> clickEvents; static std::list> motionEvents; static std::list> scrollEvents; static Shader imguiShader; static const char* imguiShaderVertex; static const char* imguiShaderFragment; static unsigned int vboHandle, elementHandle; }; #endif