From 631521a9806f55eb548078c1f02bd04c92e326a8 Mon Sep 17 00:00:00 2001 From: Jade Date: Tue, 29 Apr 2025 22:44:17 +0800 Subject: [PATCH] [thirdparty] Set IMGUI_DEFINE_MATH_OPERATORS (#7899) This avoids the need to define it early in the include order everywhere else. Signed-off-by: Jade Turner --- cscore/.styleguide | 2 ++ cscore/examples/usbviewer/usbviewer.cpp | 1 - datalogtool/src/main/native/cpp/App.cpp | 4 +--- datalogtool/src/main/native/cpp/App.h | 1 - glass/.styleguide | 2 ++ glass/src/lib/native/cpp/hardware/Gyro.cpp | 2 -- glass/src/lib/native/cpp/other/Drive.cpp | 4 +--- glass/src/lib/native/cpp/other/Field2D.cpp | 2 -- .../src/lib/native/cpp/other/Mechanism2D.cpp | 2 -- glass/src/lib/native/cpp/other/Plot.cpp | 1 - .../native/cpp/support/ExtraGuiWidgets.cpp | 6 ++--- .../lib/native/include/glass/MainMenuBar.h | 4 ++-- glass/src/lib/native/include/glass/Window.h | 1 - .../lib/native/include/glass/other/Field2D.h | 2 -- .../native/include/glass/other/Mechanism2D.h | 2 -- .../include/glass/support/ExtraGuiWidgets.h | 1 - .../imgui_suite/imgui/include/imconfig.h | 2 +- ...0001-Set-IMGUI_DEFINE_MATH_OPERATORS.patch | 23 +++++++++++++++++++ 18 files changed, 34 insertions(+), 28 deletions(-) create mode 100644 upstream_utils/imgui_patches/0001-Set-IMGUI_DEFINE_MATH_OPERATORS.patch diff --git a/cscore/.styleguide b/cscore/.styleguide index e82e06430e..2737ace2a7 100644 --- a/cscore/.styleguide +++ b/cscore/.styleguide @@ -38,8 +38,10 @@ includeOtherLibs { ^fmt/ ^gtest/ ^opencv2/ + ^imgui ^support/ ^tcpsockets/ ^wpi/ + ^wpigui ^wpinet/ } diff --git a/cscore/examples/usbviewer/usbviewer.cpp b/cscore/examples/usbviewer/usbviewer.cpp index 4653c516cd..cfb9aea928 100644 --- a/cscore/examples/usbviewer/usbviewer.cpp +++ b/cscore/examples/usbviewer/usbviewer.cpp @@ -6,7 +6,6 @@ #include #include -#define IMGUI_DEFINE_MATH_OPERATORS #include #include #include diff --git a/datalogtool/src/main/native/cpp/App.cpp b/datalogtool/src/main/native/cpp/App.cpp index 31512a0bd1..ee0d893d45 100644 --- a/datalogtool/src/main/native/cpp/App.cpp +++ b/datalogtool/src/main/native/cpp/App.cpp @@ -10,11 +10,9 @@ #include #include #include -#include - -#define IMGUI_DEFINE_MATH_OPERATORS #include #include +#include #include #include diff --git a/datalogtool/src/main/native/cpp/App.h b/datalogtool/src/main/native/cpp/App.h index a9978daf30..9d1520c8a0 100644 --- a/datalogtool/src/main/native/cpp/App.h +++ b/datalogtool/src/main/native/cpp/App.h @@ -4,7 +4,6 @@ #pragma once -#define IMGUI_DEFINE_MATH_OPERATORS #include void SetNextWindowPos(const ImVec2& pos, ImGuiCond cond = 0, diff --git a/glass/.styleguide b/glass/.styleguide index 148c63451e..e1943a80e7 100644 --- a/glass/.styleguide +++ b/glass/.styleguide @@ -26,8 +26,10 @@ includeOtherLibs { ^frc/ ^google/ ^imgui + portable-file-dialogs.h ^networktables/ ^ntcore + ^units ^wpi/ ^wpigui ^wpimath/ diff --git a/glass/src/lib/native/cpp/hardware/Gyro.cpp b/glass/src/lib/native/cpp/hardware/Gyro.cpp index 8ba5d5e1dd..cfc6e79855 100644 --- a/glass/src/lib/native/cpp/hardware/Gyro.cpp +++ b/glass/src/lib/native/cpp/hardware/Gyro.cpp @@ -7,8 +7,6 @@ #include #include -#define IMGUI_DEFINE_MATH_OPERATORS - #include #include #include diff --git a/glass/src/lib/native/cpp/other/Drive.cpp b/glass/src/lib/native/cpp/other/Drive.cpp index d54b2da825..1467408cf8 100644 --- a/glass/src/lib/native/cpp/other/Drive.cpp +++ b/glass/src/lib/native/cpp/other/Drive.cpp @@ -6,12 +6,10 @@ #include #include - -#define IMGUI_DEFINE_MATH_OPERATORS +#include #include #include -#include #include "glass/Context.h" #include "glass/DataSource.h" diff --git a/glass/src/lib/native/cpp/other/Field2D.cpp b/glass/src/lib/native/cpp/other/Field2D.cpp index c4f61b3c40..4c86aa33cb 100644 --- a/glass/src/lib/native/cpp/other/Field2D.cpp +++ b/glass/src/lib/native/cpp/other/Field2D.cpp @@ -17,8 +17,6 @@ #include #include #include - -#define IMGUI_DEFINE_MATH_OPERATORS #include #include #include diff --git a/glass/src/lib/native/cpp/other/Mechanism2D.cpp b/glass/src/lib/native/cpp/other/Mechanism2D.cpp index b09acf81d3..ce4384f79a 100644 --- a/glass/src/lib/native/cpp/other/Mechanism2D.cpp +++ b/glass/src/lib/native/cpp/other/Mechanism2D.cpp @@ -17,8 +17,6 @@ #include #include #include - -#define IMGUI_DEFINE_MATH_OPERATORS #include #include #include diff --git a/glass/src/lib/native/cpp/other/Plot.cpp b/glass/src/lib/native/cpp/other/Plot.cpp index 56fc04d099..e3f658e37b 100644 --- a/glass/src/lib/native/cpp/other/Plot.cpp +++ b/glass/src/lib/native/cpp/other/Plot.cpp @@ -22,7 +22,6 @@ #pragma GCC diagnostic ignored "-Wformat-nonliteral" #endif -#define IMGUI_DEFINE_MATH_OPERATORS #include #include #include diff --git a/glass/src/lib/native/cpp/support/ExtraGuiWidgets.cpp b/glass/src/lib/native/cpp/support/ExtraGuiWidgets.cpp index 0b0aae3eaa..cf66558e0b 100644 --- a/glass/src/lib/native/cpp/support/ExtraGuiWidgets.cpp +++ b/glass/src/lib/native/cpp/support/ExtraGuiWidgets.cpp @@ -4,14 +4,12 @@ #include "glass/support/ExtraGuiWidgets.h" -#define IMGUI_DEFINE_MATH_OPERATORS -#include -#include - #include #include #include +#include +#include #include #include "glass/DataSource.h" diff --git a/glass/src/lib/native/include/glass/MainMenuBar.h b/glass/src/lib/native/include/glass/MainMenuBar.h index 914153636e..048ab9b9ef 100644 --- a/glass/src/lib/native/include/glass/MainMenuBar.h +++ b/glass/src/lib/native/include/glass/MainMenuBar.h @@ -4,12 +4,12 @@ #pragma once -#include - #include #include #include +#include + namespace glass { /** diff --git a/glass/src/lib/native/include/glass/Window.h b/glass/src/lib/native/include/glass/Window.h index 62b369cdd4..0a37f9ae88 100644 --- a/glass/src/lib/native/include/glass/Window.h +++ b/glass/src/lib/native/include/glass/Window.h @@ -9,7 +9,6 @@ #include #include -#define IMGUI_DEFINE_MATH_OPERATORS #include #include "glass/View.h" diff --git a/glass/src/lib/native/include/glass/other/Field2D.h b/glass/src/lib/native/include/glass/other/Field2D.h index 2b0f9a8ef0..9c9f72ae6f 100644 --- a/glass/src/lib/native/include/glass/other/Field2D.h +++ b/glass/src/lib/native/include/glass/other/Field2D.h @@ -10,8 +10,6 @@ #include #include #include - -#define IMGUI_DEFINE_MATH_OPERATORS #include #include diff --git a/glass/src/lib/native/include/glass/other/Mechanism2D.h b/glass/src/lib/native/include/glass/other/Mechanism2D.h index 440fed38b0..ab5ccdce54 100644 --- a/glass/src/lib/native/include/glass/other/Mechanism2D.h +++ b/glass/src/lib/native/include/glass/other/Mechanism2D.h @@ -6,8 +6,6 @@ #include #include - -#define IMGUI_DEFINE_MATH_OPERATORS #include #include diff --git a/glass/src/lib/native/include/glass/support/ExtraGuiWidgets.h b/glass/src/lib/native/include/glass/support/ExtraGuiWidgets.h index ec4f20ab92..5374b20020 100644 --- a/glass/src/lib/native/include/glass/support/ExtraGuiWidgets.h +++ b/glass/src/lib/native/include/glass/support/ExtraGuiWidgets.h @@ -6,7 +6,6 @@ #include -#define IMGUI_DEFINE_MATH_OPERATORS #include namespace glass { diff --git a/thirdparty/imgui_suite/imgui/include/imconfig.h b/thirdparty/imgui_suite/imgui/include/imconfig.h index b56ba49467..291ce19954 100644 --- a/thirdparty/imgui_suite/imgui/include/imconfig.h +++ b/thirdparty/imgui_suite/imgui/include/imconfig.h @@ -98,7 +98,7 @@ operator MyVec4() const { return MyVec4(x,y,z,w); } */ //---- ...Or use Dear ImGui's own very basic math operators. -//#define IMGUI_DEFINE_MATH_OPERATORS +#define IMGUI_DEFINE_MATH_OPERATORS //---- Use 32-bit vertex indices (default is 16-bit) is one way to allow large meshes with more than 64K vertices. // Your renderer backend will need to support it (most example renderer backends support both 16/32-bit indices). diff --git a/upstream_utils/imgui_patches/0001-Set-IMGUI_DEFINE_MATH_OPERATORS.patch b/upstream_utils/imgui_patches/0001-Set-IMGUI_DEFINE_MATH_OPERATORS.patch new file mode 100644 index 0000000000..fc05f16c48 --- /dev/null +++ b/upstream_utils/imgui_patches/0001-Set-IMGUI_DEFINE_MATH_OPERATORS.patch @@ -0,0 +1,23 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jade Turner +Date: Fri, 11 Apr 2025 11:20:41 +0800 +Subject: [PATCH] Set IMGUI_DEFINE_MATH_OPERATORS + +Signed-off-by: Jade Turner +--- + imconfig.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/imconfig.h b/imconfig.h +index b56ba49467ebb388e038f0a23aed46044085bdff..291ce1995412f10e784beaf3f4c51e02d90b9813 100644 +--- a/imconfig.h ++++ b/imconfig.h +@@ -98,7 +98,7 @@ + operator MyVec4() const { return MyVec4(x,y,z,w); } + */ + //---- ...Or use Dear ImGui's own very basic math operators. +-//#define IMGUI_DEFINE_MATH_OPERATORS ++#define IMGUI_DEFINE_MATH_OPERATORS + + //---- Use 32-bit vertex indices (default is 16-bit) is one way to allow large meshes with more than 64K vertices. + // Your renderer backend will need to support it (most example renderer backends support both 16/32-bit indices).