|
|
|
@ -1995,10 +1995,10 @@ void ImFont::RenderText(float size, ImVec2 pos, ImU32 col, const ImVec4& clip_re
|
|
|
|
|
{
|
|
|
|
|
char_width = glyph->XAdvance * scale;
|
|
|
|
|
|
|
|
|
|
// Clipping on Y is more likely
|
|
|
|
|
// Arbitrarily assume that both space and tabs are empty glyphs as an optimization
|
|
|
|
|
if (c != ' ' && c != '\t')
|
|
|
|
|
{
|
|
|
|
|
// We don't do a second finer clipping test on the Y axis (TODO: do some measurement see if it is worth it, probably not)
|
|
|
|
|
// We don't do a second finer clipping test on the Y axis as we've already skipped anything before clip_rect.y and exit once we pass clip_rect.w
|
|
|
|
|
float y1 = (float)(y + glyph->Y0 * scale);
|
|
|
|
|
float y2 = (float)(y + glyph->Y1 * scale);
|
|
|
|
|
|
|
|
|
@ -2042,8 +2042,8 @@ void ImFont::RenderText(float size, ImVec2 pos, ImU32 col, const ImVec4& clip_re
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// NB: we are not calling PrimRectUV() here because non-inlined causes too much overhead in a debug build.
|
|
|
|
|
// inlined:
|
|
|
|
|
// We are NOT calling PrimRectUV() here because non-inlined causes too much overhead in a debug build.
|
|
|
|
|
// Inlined here:
|
|
|
|
|
{
|
|
|
|
|
idx_write[0] = (ImDrawIdx)(vtx_current_idx); idx_write[1] = (ImDrawIdx)(vtx_current_idx+1); idx_write[2] = (ImDrawIdx)(vtx_current_idx+2);
|
|
|
|
|
idx_write[3] = (ImDrawIdx)(vtx_current_idx); idx_write[4] = (ImDrawIdx)(vtx_current_idx+2); idx_write[5] = (ImDrawIdx)(vtx_current_idx+3);
|
|
|
|
|