diff --git a/examples/Demo/main.cpp b/examples/Demo/main.cpp index 5114d97..ca8496c 100644 --- a/examples/Demo/main.cpp +++ b/examples/Demo/main.cpp @@ -7,6 +7,8 @@ #include #include +#include +#include #include NAZARA_REQUEST_DEDICATED_GPU() diff --git a/examples/Ecs/main.cpp b/examples/Ecs/main.cpp index 641dc01..7e9b09e 100644 --- a/examples/Ecs/main.cpp +++ b/examples/Ecs/main.cpp @@ -5,6 +5,8 @@ #include #include +#include +#include #include NAZARA_REQUEST_DEDICATED_GPU() diff --git a/include/NazaraImgui/ImguiHandler.hpp b/include/NazaraImgui/ImguiHandler.hpp new file mode 100644 index 0000000..bc354d5 --- /dev/null +++ b/include/NazaraImgui/ImguiHandler.hpp @@ -0,0 +1,15 @@ +#pragma once + +/* + ImguiHandler.hpp + Inherit from this base class for your Imgui code to be called by the Imgui renderer +*/ + +namespace Nz +{ + struct ImguiHandler + { + public: + virtual void OnRenderImgui() = 0; + }; +} \ No newline at end of file diff --git a/include/NazaraImgui/ImguiWidgets.hpp b/include/NazaraImgui/ImguiWidgets.hpp new file mode 100644 index 0000000..1766e46 --- /dev/null +++ b/include/NazaraImgui/ImguiWidgets.hpp @@ -0,0 +1,30 @@ +#pragma once + +#include + +#include + +namespace Nz +{ + class Texture; +} + +namespace ImGui +{ + // custom ImGui widgets for Nazara + + // Image overloads + 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 + 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) + 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); +} \ No newline at end of file diff --git a/include/NazaraImgui/NazaraImgui.hpp b/include/NazaraImgui/NazaraImgui.hpp index 264c591..d14f8f8 100644 --- a/include/NazaraImgui/NazaraImgui.hpp +++ b/include/NazaraImgui/NazaraImgui.hpp @@ -2,7 +2,6 @@ #include #include -#include #include #include @@ -19,11 +18,7 @@ namespace Nz class Window; class WindowEventHandler; - struct ImguiHandler - { - public: - virtual void OnRenderImgui() = 0; - }; + struct ImguiHandler; class NAZARA_IMGUI_API Imgui : public Nz::ModuleBase { @@ -91,23 +86,6 @@ namespace Nz namespace ImGui { - // custom ImGui widgets for Nazara - - // Image overloads - 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 - 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) - 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); - inline void EnsureContextOnThisThread() { auto* context = Nz::Imgui::GetCurrentContext(); diff --git a/src/NazaraImgui/NazaraImgui.cpp b/src/NazaraImgui/NazaraImgui.cpp index ecbe935..6280fa7 100644 --- a/src/NazaraImgui/NazaraImgui.cpp +++ b/src/NazaraImgui/NazaraImgui.cpp @@ -1,6 +1,8 @@ #include #include #include +#include +#include #include #include