diff --git a/Dalamud/Interface/Textures/TextureWraps/Internal/DrawListTextureWrap/WindowPrinter.cs b/Dalamud/Interface/Textures/TextureWraps/Internal/DrawListTextureWrap/WindowPrinter.cs index 342bfaa93..532da3e03 100644 --- a/Dalamud/Interface/Textures/TextureWraps/Internal/DrawListTextureWrap/WindowPrinter.cs +++ b/Dalamud/Interface/Textures/TextureWraps/Internal/DrawListTextureWrap/WindowPrinter.cs @@ -105,25 +105,18 @@ internal sealed unsafe partial class DrawListTextureWrap [FieldOffset(0x2C0)] public ImDrawListPtr DrawList; - private static nint pfnImGuiFindWindowByName; + [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] +#pragma warning disable SA1300 + public static extern ImGuiWindow* igCustom_FindWindowByName(byte* inherit); +#pragma warning restore SA1300 public static ref ImGuiWindow FindWindowByName(ReadOnlySpan name) { var nb = Encoding.UTF8.GetByteCount(name); var buf = stackalloc byte[nb + 1]; buf[Encoding.UTF8.GetBytes(name, new(buf, nb))] = 0; - if (pfnImGuiFindWindowByName == 0) - { - pfnImGuiFindWindowByName = - Process - .GetCurrentProcess() - .Modules - .Cast() - .First(x => x.ModuleName == "cimgui.dll") - .BaseAddress + 0x357F0; - } - return ref *((delegate* unmanaged)pfnImGuiFindWindowByName)(buf); + return ref *igCustom_FindWindowByName(buf); } [StructLayout(LayoutKind.Explicit, Size = 0xF0)] diff --git a/lib/cimgui b/lib/cimgui index 122ee1681..27c8565f6 160000 --- a/lib/cimgui +++ b/lib/cimgui @@ -1 +1 @@ -Subproject commit 122ee16819437eea7eefe0c04398b44174106d86 +Subproject commit 27c8565f631b004c3266373890e41ecc627f775b