Kaynağa Gözat

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

Thanks cyfewlp!
ocornut 2 ay önce
ebeveyn
işleme
822903e56d
1 değiştirilmiş dosya ile 3 ekleme ve 3 silme
  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);