瀏覽代碼

Fonts: fixed ImFontAtlas::RemoveFont() with multiple sources.

Thanks cyfewlp!
ocornut 2 月之前
父節點
當前提交
822903e56d
共有 1 個文件被更改,包括 3 次插入3 次删除
  1. 3 3
      imgui_draw.cpp

+ 3 - 3
imgui_draw.cpp

@@ -3205,10 +3205,10 @@ void ImFontAtlas::RemoveFont(ImFont* font)
 
     ImFontAtlasFontDestroyOutput(this, font);
     for (ImFontConfig* src : font->Sources)
-    {
         ImFontAtlasFontDestroySourceData(this, src);
-        Sources.erase(src);
-    }
+    for (int src_n = 0; src_n < Sources.Size; src_n++)
+        if (Sources[src_n].DstFont == font)
+            Sources.erase(&Sources[src_n--]);
 
     bool removed = Fonts.find_erase(font);
     IM_ASSERT(removed);