mirror of
https://github.com/ocornut/imgui.git
synced 2024-11-24 07:40:22 +01:00
Fonts: Functions with a 'float size_pixels' parameter can accept zero if it is set in ImFontSize::SizePixels.
This commit is contained in:
parent
20d415e939
commit
e534c56485
@ -48,6 +48,7 @@ Other Changes:
|
|||||||
- Tables: Fix invalid data in TableGetSortSpecs() when SpecsDirty flag is unset. (#4233)
|
- Tables: Fix invalid data in TableGetSortSpecs() when SpecsDirty flag is unset. (#4233)
|
||||||
- TabBar: Fixed using more than 32 KB-worth of tab names. (#4176)
|
- TabBar: Fixed using more than 32 KB-worth of tab names. (#4176)
|
||||||
- Fixed printf-style format checks on non-MinGW flavors. (#4183, #3592)
|
- Fixed printf-style format checks on non-MinGW flavors. (#4183, #3592)
|
||||||
|
- Fonts: Functions with a 'float size_pixels' parameter can accept zero if it is set in ImFontSize::SizePixels.
|
||||||
- Demo: Fixed requirement in 1.83 to link with imgui_demo.cpp if IMGUI_DISABLE_METRICS_WINDOW is not set. (#4171)
|
- Demo: Fixed requirement in 1.83 to link with imgui_demo.cpp if IMGUI_DISABLE_METRICS_WINDOW is not set. (#4171)
|
||||||
Normally the right way to disable compiling the demo is to set IMGUI_DISABLE_DEMO_WINDOWS, but we want to avoid
|
Normally the right way to disable compiling the demo is to set IMGUI_DISABLE_DEMO_WINDOWS, but we want to avoid
|
||||||
implying that the file is required.
|
implying that the file is required.
|
||||||
|
@ -2167,7 +2167,7 @@ ImFont* ImFontAtlas::AddFontFromMemoryTTF(void* ttf_data, int ttf_size, float si
|
|||||||
IM_ASSERT(font_cfg.FontData == NULL);
|
IM_ASSERT(font_cfg.FontData == NULL);
|
||||||
font_cfg.FontData = ttf_data;
|
font_cfg.FontData = ttf_data;
|
||||||
font_cfg.FontDataSize = ttf_size;
|
font_cfg.FontDataSize = ttf_size;
|
||||||
font_cfg.SizePixels = size_pixels;
|
font_cfg.SizePixels = size_pixels > 0.0f ? size_pixels : font_cfg.SizePixels;
|
||||||
if (glyph_ranges)
|
if (glyph_ranges)
|
||||||
font_cfg.GlyphRanges = glyph_ranges;
|
font_cfg.GlyphRanges = glyph_ranges;
|
||||||
return AddFont(&font_cfg);
|
return AddFont(&font_cfg);
|
||||||
|
@ -648,6 +648,22 @@ bool ImFontAtlasBuildWithFreeTypeEx(FT_Library ft_library, ImFontAtlas* atlas, u
|
|||||||
const int tx = pack_rect.x + padding;
|
const int tx = pack_rect.x + padding;
|
||||||
const int ty = pack_rect.y + padding;
|
const int ty = pack_rect.y + padding;
|
||||||
|
|
||||||
|
// Register glyph
|
||||||
|
float x0 = info.OffsetX + font_off_x;
|
||||||
|
float y0 = info.OffsetY + font_off_y;
|
||||||
|
float x1 = x0 + info.Width;
|
||||||
|
float y1 = y0 + info.Height;
|
||||||
|
float u0 = (tx) / (float)atlas->TexWidth;
|
||||||
|
float v0 = (ty) / (float)atlas->TexHeight;
|
||||||
|
float u1 = (tx + info.Width) / (float)atlas->TexWidth;
|
||||||
|
float v1 = (ty + info.Height) / (float)atlas->TexHeight;
|
||||||
|
dst_font->AddGlyph(&cfg, (ImWchar)src_glyph.Codepoint, x0, y0, x1, y1, u0, v0, u1, v1, info.AdvanceX);
|
||||||
|
|
||||||
|
ImFontGlyph* dst_glyph = &dst_font->Glyphs.back();
|
||||||
|
IM_ASSERT(dst_glyph->Codepoint == src_glyph.Codepoint);
|
||||||
|
if (src_glyph.Info.IsColored)
|
||||||
|
dst_glyph->Colored = tex_use_colors = true;
|
||||||
|
|
||||||
// Blit from temporary buffer to final texture
|
// Blit from temporary buffer to final texture
|
||||||
size_t blit_src_stride = (size_t)src_glyph.Info.Width;
|
size_t blit_src_stride = (size_t)src_glyph.Info.Width;
|
||||||
size_t blit_dst_stride = (size_t)atlas->TexWidth;
|
size_t blit_dst_stride = (size_t)atlas->TexWidth;
|
||||||
@ -666,22 +682,6 @@ bool ImFontAtlasBuildWithFreeTypeEx(FT_Library ft_library, ImFontAtlas* atlas, u
|
|||||||
for (int x = 0; x < info.Width; x++)
|
for (int x = 0; x < info.Width; x++)
|
||||||
blit_dst[x] = blit_src[x];
|
blit_dst[x] = blit_src[x];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register glyph
|
|
||||||
float x0 = info.OffsetX + font_off_x;
|
|
||||||
float y0 = info.OffsetY + font_off_y;
|
|
||||||
float x1 = x0 + info.Width;
|
|
||||||
float y1 = y0 + info.Height;
|
|
||||||
float u0 = (tx) / (float)atlas->TexWidth;
|
|
||||||
float v0 = (ty) / (float)atlas->TexHeight;
|
|
||||||
float u1 = (tx + info.Width) / (float)atlas->TexWidth;
|
|
||||||
float v1 = (ty + info.Height) / (float)atlas->TexHeight;
|
|
||||||
dst_font->AddGlyph(&cfg, (ImWchar)src_glyph.Codepoint, x0, y0, x1, y1, u0, v0, u1, v1, info.AdvanceX);
|
|
||||||
|
|
||||||
ImFontGlyph* dst_glyph = &dst_font->Glyphs.back();
|
|
||||||
IM_ASSERT(dst_glyph->Codepoint == src_glyph.Codepoint);
|
|
||||||
if (src_glyph.Info.IsColored)
|
|
||||||
dst_glyph->Colored = tex_use_colors = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
src_tmp.Rects = NULL;
|
src_tmp.Rects = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user