|
|
|
@ -1,6 +1,3 @@
|
|
|
|
|
// [ImGui] this is a slightly modified version of stb_truetype.h 1.19. Those changes would need to be pushed into nothings/stb
|
|
|
|
|
// [ImGui] - skip missing glyphs instead of allocating and rendering a default glyph (stb #607, imgui #1703, imgui #1671)
|
|
|
|
|
|
|
|
|
|
// stb_truetype.h - v1.19 - public domain
|
|
|
|
|
// authored from 2009-2016 by Sean Barrett / RAD Game Tools
|
|
|
|
|
//
|
|
|
|
@ -3971,17 +3968,13 @@ STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, const stb
|
|
|
|
|
int x0,y0,x1,y1;
|
|
|
|
|
int codepoint = ranges[i].array_of_unicode_codepoints == NULL ? ranges[i].first_unicode_codepoint_in_range + j : ranges[i].array_of_unicode_codepoints[j];
|
|
|
|
|
int glyph = stbtt_FindGlyphIndex(info, codepoint);
|
|
|
|
|
if (glyph != 0) {
|
|
|
|
|
stbtt_GetGlyphBitmapBoxSubpixel(info,glyph,
|
|
|
|
|
scale * spc->h_oversample,
|
|
|
|
|
scale * spc->v_oversample,
|
|
|
|
|
0,0,
|
|
|
|
|
&x0,&y0,&x1,&y1);
|
|
|
|
|
rects[k].w = (stbrp_coord) (x1-x0 + spc->padding + spc->h_oversample-1);
|
|
|
|
|
rects[k].h = (stbrp_coord) (y1-y0 + spc->padding + spc->v_oversample-1);
|
|
|
|
|
} else {
|
|
|
|
|
rects[k].w = rects[k].h = 0;
|
|
|
|
|
}
|
|
|
|
|
stbtt_GetGlyphBitmapBoxSubpixel(info,glyph,
|
|
|
|
|
scale * spc->h_oversample,
|
|
|
|
|
scale * spc->v_oversample,
|
|
|
|
|
0,0,
|
|
|
|
|
&x0,&y0,&x1,&y1);
|
|
|
|
|
rects[k].w = (stbrp_coord) (x1-x0 + spc->padding + spc->h_oversample-1);
|
|
|
|
|
rects[k].h = (stbrp_coord) (y1-y0 + spc->padding + spc->v_oversample-1);
|
|
|
|
|
++k;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -4034,7 +4027,7 @@ STBTT_DEF int stbtt_PackFontRangesRenderIntoRects(stbtt_pack_context *spc, const
|
|
|
|
|
sub_y = stbtt__oversample_shift(spc->v_oversample);
|
|
|
|
|
for (j=0; j < ranges[i].num_chars; ++j) {
|
|
|
|
|
stbrp_rect *r = &rects[k];
|
|
|
|
|
if (r->was_packed && r->w != 0 && r->h != 0) {
|
|
|
|
|
if (r->was_packed) {
|
|
|
|
|
stbtt_packedchar *bc = &ranges[i].chardata_for_range[j];
|
|
|
|
|
int advance, lsb, x0,y0,x1,y1;
|
|
|
|
|
int codepoint = ranges[i].array_of_unicode_codepoints == NULL ? ranges[i].first_unicode_codepoint_in_range + j : ranges[i].array_of_unicode_codepoints[j];
|
|
|
|
|