Customized fork of github.com/rxi/lite

Changed rencache to store font tab_width with font command

Fixes bug where text would be drawn/cached wrongly if more than one tab_width
was used in a given frame

rxi 878c94a3 2caa7f18

Changed files
+10
src
+3
src/rencache.c
··· 18 18 RenRect rect; 19 19 RenColor color; 20 20 RenFont *font; 21 + int tab_width; 21 22 char text[0]; 22 23 } Command; 23 24 ··· 143 144 cmd->color = color; 144 145 cmd->font = font; 145 146 cmd->rect = rect; 147 + cmd->tab_width = ren_get_font_tab_width(font); 146 148 } 147 149 } 148 150 ··· 254 256 ren_draw_rect(cmd->rect, cmd->color); 255 257 break; 256 258 case DRAW_TEXT: 259 + ren_set_font_tab_width(cmd->font, cmd->tab_width); 257 260 ren_draw_text(cmd->font, cmd->text, cmd->rect.x, cmd->rect.y, cmd->color); 258 261 break; 259 262 }
+6
src/renderer.c
··· 222 222 } 223 223 224 224 225 + int ren_get_font_tab_width(RenFont *font) { 226 + GlyphSet *set = get_glyphset(font, '\t'); 227 + return set->glyphs['\t'].xadvance; 228 + } 229 + 230 + 225 231 int ren_get_font_width(RenFont *font, const char *text) { 226 232 int x = 0; 227 233 const char *p = text;
+1
src/renderer.h
··· 22 22 RenFont* ren_load_font(const char *filename, float size); 23 23 void ren_free_font(RenFont *font); 24 24 void ren_set_font_tab_width(RenFont *font, int n); 25 + int ren_get_font_tab_width(RenFont *font); 25 26 int ren_get_font_width(RenFont *font, const char *text); 26 27 int ren_get_font_height(RenFont *font); 27 28