From 0f8b65e95a659fcf884f215180084914be2c846e Mon Sep 17 00:00:00 2001 From: Blair Date: Mon, 4 Aug 2025 11:25:30 +1000 Subject: [PATCH] Load imgui.so if available for external tools running imgui on native (#2331) --- imgui/Dalamud.Bindings.ImGui/ImGui.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/imgui/Dalamud.Bindings.ImGui/ImGui.cs b/imgui/Dalamud.Bindings.ImGui/ImGui.cs index 460535cb1..42e1c2174 100644 --- a/imgui/Dalamud.Bindings.ImGui/ImGui.cs +++ b/imgui/Dalamud.Bindings.ImGui/ImGui.cs @@ -20,10 +20,18 @@ namespace Dalamud.Bindings.ImGui { InitApi(new NativeLibraryContext(Process.GetCurrentProcess().MainModule!.BaseAddress)); } + + var linuxPath = Path.Combine(Path.GetDirectoryName(Assembly.GetCallingAssembly().Location)!, GetLibraryName() + ".so"); + var windowsPath = Path.Combine(Path.GetDirectoryName(Assembly.GetCallingAssembly().Location)!, GetLibraryName() + ".dll"); + + // This shouldn't affect wine as it'll be reported as Win32NT + if (System.Environment.OSVersion.Platform == PlatformID.Unix && File.Exists(linuxPath)) + { + InitApi(new NativeLibraryContext(linuxPath)); + } else { - //InitApi(new NativeLibraryContext(LibraryLoader.LoadLibrary(GetLibraryName, null))); - InitApi(new NativeLibraryContext(Path.Combine(Path.GetDirectoryName(Assembly.GetCallingAssembly().Location)!, GetLibraryName() + ".dll"))); + InitApi(new NativeLibraryContext(windowsPath)); } }