From dec8d3863abdd126fdce044bb0a0f808f2ae3ba6 Mon Sep 17 00:00:00 2001 From: ocornut Date: Wed, 5 Mar 2025 20:08:00 +0100 Subject: [PATCH] Fonts: Added a ImFontFlags_NoLoadError flag to let user code try file paths. (3611) --- imgui.h | 1 + imgui_draw.cpp | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) 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();