Skip to content

Commit

Permalink
imgui_freetype: Fixed a crash in build font atlas when using merged f…
Browse files Browse the repository at this point in the history
…onts and the first font in a merged set has no loaded glyph. (ocornut#8081)
  • Loading branch information
ocornut committed Nov 7, 2024
1 parent 3543dfd commit 3b68392
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 2 deletions.
2 changes: 2 additions & 0 deletions docs/CHANGELOG.txt
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ Other changes:
automatically copy window contents into clipboard using CTRL+C. This is experimental
because (1) it currently breaks on nested Begin/End, (2) text output quality varies,
and (3) text output comes in submission order rather than spatial order.
- imgui_freetype: Fixed a crash in build font atlas when using merged fonts and the
first font in a merged set has no loaded glyph. (#8081)
- Backends: DX12: Unmap() call specify written range. The range is informational and
may be used by debug tools.
- Backends: SDL2: Replace SDL_Vulkan_GetDrawableSize() forward declaration with the
Expand Down
5 changes: 3 additions & 2 deletions misc/freetype/imgui_freetype.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -681,8 +681,6 @@ bool ImFontAtlasBuildWithFreeTypeEx(FT_Library ft_library, ImFontAtlas* atlas, u
for (int src_i = 0; src_i < src_tmp_array.Size; src_i++)
{
ImFontBuildSrcDataFT& src_tmp = src_tmp_array[src_i];
if (src_tmp.GlyphsCount == 0)
continue;

// When merging fonts with MergeMode=true:
// - We can have multiple input fonts writing into a same destination font.
Expand All @@ -693,6 +691,9 @@ bool ImFontAtlasBuildWithFreeTypeEx(FT_Library ft_library, ImFontAtlas* atlas, u
const float ascent = src_tmp.Font.Info.Ascender;
const float descent = src_tmp.Font.Info.Descender;
ImFontAtlasBuildSetupFont(atlas, dst_font, &cfg, ascent, descent);

if (src_tmp.GlyphsCount == 0)
continue;
const float font_off_x = cfg.GlyphOffset.x;
const float font_off_y = cfg.GlyphOffset.y + IM_ROUND(dst_font->Ascent);

Expand Down

0 comments on commit 3b68392

Please sign in to comment.