diff --git a/imgui.h b/imgui.h index 1d7cfbc92..6703c128b 100644 --- a/imgui.h +++ b/imgui.h @@ -3676,6 +3676,7 @@ enum ImFontFlags_ ImFontFlags_None = 0, ImFontFlags_LockBakedSizes = 1 << 0, // Disable loading new baked sizes, disable garbage collecting current ones. e.g. if you want to lock a font to a single size. ImFontFlags_NoLoadGlyphs = 1 << 1, // Disable loading new glyphs. + ImFontFlags_NoLoadError = 1 << 2, // Disable throwing an error/assert when calling AddFontXXX() with missing file/data. Calling code is expected to check AddFontXXX() return value. }; // Font runtime data and rendering diff --git a/imgui_draw.cpp b/imgui_draw.cpp index 4c5a47143..ec379ffa1 100644 --- a/imgui_draw.cpp +++ b/imgui_draw.cpp @@ -3096,7 +3096,8 @@ ImFont* ImFontAtlas::AddFontFromFileTTF(const char* filename, float size_pixels, void* data = ImFileLoadToMemory(filename, "rb", &data_size, 0); if (!data) { - IM_ASSERT_USER_ERROR(0, "Could not load font file!"); + if (font_cfg_template == NULL || (font_cfg_template->Flags & ImFontFlags_NoLoadError) == 0) + IM_ASSERT_USER_ERROR(0, "Could not load font file!"); return NULL; } ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig();