#pragma once #include #define IMGUI_DEFINE_MATH_OPERATORS #include #include #define IMHEX_PLUGIN_SETUP(name, author, description) IMHEX_PLUGIN_SETUP_IMPL(IMHEX_PLUGIN_NAME, name, author, description) #define IMHEX_PLUGIN_SETUP_IMPL(namespaceName, name, author, description) \ extern "C" [[gnu::visibility("default")]] const char *getPluginName() { return name; } \ extern "C" [[gnu::visibility("default")]] const char *getPluginAuthor() { return author; } \ extern "C" [[gnu::visibility("default")]] const char *getPluginDescription() { return description; } \ extern "C" [[gnu::visibility("default")]] const char *getCompatibleVersion() { return IMHEX_VERSION; } \ extern "C" [[gnu::visibility("default")]] void setImGuiContext(ImGuiContext *ctx) { \ ImGui::SetCurrentContext(ctx); \ GImGui = ctx; \ } \ extern "C" [[gnu::visibility("default")]] void initializePlugin()