#pragma once #include #include #define GLFW_INCLUDE_NONE #define GLFW_INCLUDE_VULKAN #define GLFW_EXPOSE_NATIVE_WIN32 #include #include "imgui.h" class DrawData { public: GLFWwindow* window = nullptr; HWND window_handle = nullptr; ImVec4 clear_color = {}; ImVec2 window_size = {}; }; class ImGuiCallbacks { public: std::function initFunc = nullptr; std::function drawFunc = nullptr; std::function cleanupFunc = nullptr; }; int startImgui(ImGuiCallbacks& callbacks, const char* title, int windowWidth, int windowHeight); ImVec2 getWindowSize(GLFWwindow* window);