소스 검색

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

Thanks cyfewlp!
ocornut 4 달 전
부모
커밋
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);