31 lines
688 B
C++
31 lines
688 B
C++
#pragma once
|
|
#include <Windows.h>
|
|
|
|
#include <functional>
|
|
|
|
#define GLFW_INCLUDE_NONE
|
|
#define GLFW_INCLUDE_VULKAN
|
|
#define GLFW_EXPOSE_NATIVE_WIN32
|
|
#include <GLFW/glfw3.h>
|
|
|
|
#include "imgui.h"
|
|
|
|
class DrawData {
|
|
public:
|
|
GLFWwindow* window = nullptr;
|
|
HWND window_handle = nullptr;
|
|
ImVec4 clear_color = {};
|
|
ImVec2 window_size = {};
|
|
};
|
|
|
|
class ImGuiCallbacks {
|
|
public:
|
|
std::function<void(DrawData&)> initFunc = nullptr;
|
|
std::function<void(DrawData&)> drawFunc = nullptr;
|
|
std::function<void(DrawData&)> cleanupFunc = nullptr;
|
|
};
|
|
|
|
int startImgui(ImGuiCallbacks& callbacks, const char* title, int windowWidth, int windowHeight);
|
|
|
|
ImVec2 getWindowSize(GLFWwindow* window);
|