From eddcd4b9062c825129e7e6aa15d0f6f60e2e7ac9 Mon Sep 17 00:00:00 2001 From: SweetId <2630750+SweetId@users.noreply.github.com> Date: Tue, 19 Sep 2023 20:02:34 -0400 Subject: [PATCH] add proper dllimport/export declarations --- include/NazaraImgui/Config.hpp | 7 +++---- include/NazaraImgui/NazaraImgui.hpp | 22 +++++++++++----------- xmake.lua | 13 +++++++++++++ 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/include/NazaraImgui/Config.hpp b/include/NazaraImgui/Config.hpp index e44103a..9bc20d9 100644 --- a/include/NazaraImgui/Config.hpp +++ b/include/NazaraImgui/Config.hpp @@ -23,13 +23,12 @@ return Nz::Color(x, y , z, w); \ } -#if defined(NAZARA_STATIC) +#if defined(NAZARA_IMGUI_STATIC) #define NAZARA_IMGUI_API #else - #define NAZARA_IMGUI_API #ifdef NAZARA_IMGUI_BUILD - //#define NAZARA_IMGUI_API NAZARA_EXPORT + #define NAZARA_IMGUI_API NAZARA_EXPORT #else - //#define NAZARA_IMGUI_API NAZARA_IMPORT + #define NAZARA_IMGUI_API NAZARA_IMPORT #endif #endif \ No newline at end of file diff --git a/include/NazaraImgui/NazaraImgui.hpp b/include/NazaraImgui/NazaraImgui.hpp index f3a3009..6e97b1b 100644 --- a/include/NazaraImgui/NazaraImgui.hpp +++ b/include/NazaraImgui/NazaraImgui.hpp @@ -24,7 +24,7 @@ namespace Nz virtual void OnRenderImgui() = 0; }; - class Imgui : public Nz::ModuleBase + class NAZARA_IMGUI_API Imgui : public Nz::ModuleBase { friend ModuleBase; @@ -96,20 +96,20 @@ namespace Nz namespace ImGui { - // custom ImGui widgets for SFML stuff + // custom ImGui widgets for Nazara // Image overloads - void Image(const Nz::Texture* texture, const Nz::Color& tintColor = Nz::Color::White(), const Nz::Color& borderColor = Nz::Color(0, 0, 0, 0)); - void Image(const Nz::Texture* texture, const Nz::Vector2f& size, const Nz::Color& tintColor = Nz::Color::White(), const Nz::Color& borderColor = Nz::Color(0, 0, 0, 0)); - void Image(const Nz::Texture* texture, const Nz::Rectf& textureRect, const Nz::Color& tintColor = Nz::Color::White(), const Nz::Color& borderColor = Nz::Color(0, 0, 0, 0)); - void Image(const Nz::Texture* texture, const Nz::Vector2f& size, const Nz::Rectf& textureRect, const Nz::Color& tintColor = Nz::Color::White(), const Nz::Color& borderColor = Nz::Color(0, 0, 0, 0)); + NAZARA_IMGUI_API void Image(const Nz::Texture* texture, const Nz::Color& tintColor = Nz::Color::White(), const Nz::Color& borderColor = Nz::Color(0, 0, 0, 0)); + NAZARA_IMGUI_API void Image(const Nz::Texture* texture, const Nz::Vector2f& size, const Nz::Color& tintColor = Nz::Color::White(), const Nz::Color& borderColor = Nz::Color(0, 0, 0, 0)); + NAZARA_IMGUI_API void Image(const Nz::Texture* texture, const Nz::Rectf& textureRect, const Nz::Color& tintColor = Nz::Color::White(), const Nz::Color& borderColor = Nz::Color(0, 0, 0, 0)); + NAZARA_IMGUI_API void Image(const Nz::Texture* texture, const Nz::Vector2f& size, const Nz::Rectf& textureRect, const Nz::Color& tintColor = Nz::Color::White(), const Nz::Color& borderColor = Nz::Color(0, 0, 0, 0)); // ImageButton overloads - bool ImageButton(const Nz::Texture* texture, const int framePadding = -1, const Nz::Color& bgColor = Nz::Color(0,0,0,0), const Nz::Color& tintColor = Nz::Color::White()); - bool ImageButton(const Nz::Texture* texture, const Nz::Vector2f& size, const int framePadding = -1, const Nz::Color& bgColor = Nz::Color(0,0,0,0), const Nz::Color& tintColor = Nz::Color::White()); + NAZARA_IMGUI_API bool ImageButton(const Nz::Texture* texture, const int framePadding = -1, const Nz::Color& bgColor = Nz::Color(0,0,0,0), const Nz::Color& tintColor = Nz::Color::White()); + NAZARA_IMGUI_API bool ImageButton(const Nz::Texture* texture, const Nz::Vector2f& size, const int framePadding = -1, const Nz::Color& bgColor = Nz::Color(0,0,0,0), const Nz::Color& tintColor = Nz::Color::White()); // Draw_list overloads. All positions are in relative coordinates (relative to top-left of the current window) - void DrawLine(const Nz::Vector2f& a, const Nz::Vector2f& b, const Nz::Color& col, float thickness = 1.0f); - void DrawRect(const Nz::Rectf& rect, const Nz::Color& color, float rounding = 0.0f, int rounding_corners = 0x0F, float thickness = 1.0f); - void DrawRectFilled(const Nz::Rectf& rect, const Nz::Color& color, float rounding = 0.0f, int rounding_corners = 0x0F); + NAZARA_IMGUI_API void DrawLine(const Nz::Vector2f& a, const Nz::Vector2f& b, const Nz::Color& col, float thickness = 1.0f); + NAZARA_IMGUI_API void DrawRect(const Nz::Rectf& rect, const Nz::Color& color, float rounding = 0.0f, int rounding_corners = 0x0F, float thickness = 1.0f); + NAZARA_IMGUI_API void DrawRectFilled(const Nz::Rectf& rect, const Nz::Color& color, float rounding = 0.0f, int rounding_corners = 0x0F); } diff --git a/xmake.lua b/xmake.lua index 7045fb0..3d4c280 100644 --- a/xmake.lua +++ b/xmake.lua @@ -61,4 +61,17 @@ target("NazaraImgui") add_headerfiles("src/NazaraImgui/**.inl", { prefixdir = "private", install = false }) add_files("src/NazaraImgui/**.cpp") + -- for now only shared compilation is supported (except on platforms like wasm) + if not is_plat("wasm") then + set_kind("shared") + else + set_kind("static") + add_defines("NAZARA_IMGUI_STATIC", { public = true }) + end + + add_defines("NAZARA_IMGUI_BUILD") + if is_mode("debug") then + add_defines("NAZARA_IMGUI_DEBUG") + end + includes("examples/xmake.lua")