diff --git a/extensions/ImGuiEXT/CCImGuiEXT.cpp b/extensions/ImGuiEXT/CCImGuiEXT.cpp index 6e52d69534..f4adadd2c3 100644 --- a/extensions/ImGuiEXT/CCImGuiEXT.cpp +++ b/extensions/ImGuiEXT/CCImGuiEXT.cpp @@ -234,9 +234,8 @@ void ImGuiEXT::addFont(const std::string& fontFile, float fontSize, CHS_GLYPH_RA { if (FileUtils::getInstance()->isFileExistInternal(fontFile)) { _fontsInfoMap.emplace(fontFile, FontInfo{ fontSize, glyphRange }); + ImGui_ImplCocos2dx_SetDeviceObjectsDirty(); } - - ImGui_ImplCocos2dx_SetDeviceObjectsDirty(); } void ImGuiEXT::removeFont(const std::string& fontFile) @@ -249,8 +248,10 @@ void ImGuiEXT::removeFont(const std::string& fontFile) void ImGuiEXT::clearFonts() { + bool haveCustomFonts = !_fontsInfoMap.empty(); _fontsInfoMap.clear(); - ImGui_ImplCocos2dx_SetDeviceObjectsDirty(); + if(haveCustomFonts) + ImGui_ImplCocos2dx_SetDeviceObjectsDirty(); // auto drawData = ImGui::GetDrawData(); // if(drawData) drawData->Clear();