Browse Source

Fonts: Added a ImFontFlags_NoLoadError flag to let user code try file paths. (3611)

ocornut 6 months ago
parent
commit
dec8d3863a
2 changed files with 3 additions and 1 deletions
  1. 1 0
      imgui.h
  2. 2 1
      imgui_draw.cpp

+ 1 - 0
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

+ 2 - 1
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();