From 1b5fbaa82ed43343f73dfcf72a5941ba0ca16d60 Mon Sep 17 00:00:00 2001 From: goaaats Date: Thu, 4 Dec 2025 02:04:45 +0100 Subject: [PATCH] Access custom font atlas fields directly through bindings --- .../Utility/BufferBackedImDrawData.cs | 24 ++----------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/Dalamud/Interface/Utility/BufferBackedImDrawData.cs b/Dalamud/Interface/Utility/BufferBackedImDrawData.cs index 112fda8a8..e6128992a 100644 --- a/Dalamud/Interface/Utility/BufferBackedImDrawData.cs +++ b/Dalamud/Interface/Utility/BufferBackedImDrawData.cs @@ -39,9 +39,8 @@ public unsafe struct BufferBackedImDrawData : IDisposable *ds = default; var atlas = ImGui.GetIO().Fonts; - ref var atlasTail = ref ImFontAtlasTailReal.From(atlas); ds->SharedData = *ImGui.GetDrawListSharedData().Handle; - ds->SharedData.TexIdCommon = atlas.Textures[atlasTail.TextureIndexCommon].TexID; + ds->SharedData.TexIdCommon = atlas.Textures[atlas.TextureIndexCommon].TexID; ds->SharedData.TexUvWhitePixel = atlas.TexUvWhitePixel; ds->SharedData.TexUvLines = (Vector4*)Unsafe.AsPointer(ref atlas.TexUvLines[0]); ds->SharedData.Font = ImGui.GetIO().FontDefault; @@ -60,7 +59,7 @@ public unsafe struct BufferBackedImDrawData : IDisposable res.ListPtr._ResetForNewFrame(); res.ListPtr.PushClipRectFullScreen(); - res.ListPtr.PushTextureID(new(atlasTail.TextureIndexCommon)); + res.ListPtr.PushTextureID(new(atlas.TextureIndexCommon)); return res; } @@ -90,23 +89,4 @@ public unsafe struct BufferBackedImDrawData : IDisposable public ImDrawList List; public ImDrawListSharedData SharedData; } - - [StructLayout(LayoutKind.Sequential)] - private struct ImFontAtlasTailReal - { - /// Index of texture containing the below. - public int TextureIndexCommon; - - /// Custom texture rectangle ID for both of the below. - public int PackIdCommon; - - /// Custom texture rectangle for white pixel and mouse cursors. - public ImFontAtlasCustomRect RectMouseCursors; - - /// Custom texture rectangle for baked anti-aliased lines. - public ImFontAtlasCustomRect RectLines; - - public static ref ImFontAtlasTailReal From(ImFontAtlasPtr fontAtlasPtr) => - ref *(ImFontAtlasTailReal*)(&fontAtlasPtr.Handle->FontBuilderFlags + sizeof(uint)); - } }