summaryrefslogtreecommitdiff
path: root/src/ui/text.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/text.c')
-rw-r--r--src/ui/text.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/ui/text.c b/src/ui/text.c
index 59ea00dd..a01de2ce 100644
--- a/src/ui/text.c
+++ b/src/ui/text.c
@@ -115,15 +115,13 @@ void init_Text(SDL_Renderer *render) {
115 /* Load the fonts. */ { 115 /* Load the fonts. */ {
116 const struct { const iBlock *ttf; int size; } fontData[max_FontId] = { 116 const struct { const iBlock *ttf; int size; } fontData[max_FontId] = {
117 { &fontFiraSansRegular_Embedded, fontSize_UI }, 117 { &fontFiraSansRegular_Embedded, fontSize_UI },
118 { &fontFiraSansRegular_Embedded, fontSize_UI },
119 { &fontFiraMonoRegular_Embedded, fontSize_UI }, 118 { &fontFiraMonoRegular_Embedded, fontSize_UI },
120 { &fontFiraSansRegular_Embedded, fontSize_UI },
121 { &fontFiraSansRegular_Embedded, fontSize_UI * 1.5f }, 119 { &fontFiraSansRegular_Embedded, fontSize_UI * 1.5f },
122 { &fontFiraMonoRegular_Embedded, fontSize_UI },
123 { &fontFiraSansLightItalic_Embedded, fontSize_UI }, 120 { &fontFiraSansLightItalic_Embedded, fontSize_UI },
124 { &fontFiraSansRegular_Embedded, fontSize_UI * 2.0f }, 121 { &fontFiraSansBold_Embedded, fontSize_UI },
125 { &fontFiraSansRegular_Embedded, fontSize_UI * 1.75f }, 122 { &fontFiraSansBold_Embedded, fontSize_UI * 1.5f },
126 { &fontFiraSansRegular_Embedded, fontSize_UI * 1.5f }, 123 { &fontFiraSansBold_Embedded, fontSize_UI * 1.75f },
124 { &fontFiraSansBold_Embedded, fontSize_UI * 2.0f },
127 }; 125 };
128 iForIndices(i, fontData) { 126 iForIndices(i, fontData) {
129 init_Font(&d->fonts[i], fontData[i].ttf, fontData[i].size); 127 init_Font(&d->fonts[i], fontData[i].ttf, fontData[i].size);
@@ -171,6 +169,7 @@ iLocalDef SDL_Rect sdlRect_(const iRect rect) {
171 return (SDL_Rect){ rect.pos.x, rect.pos.y, rect.size.x, rect.size.y }; 169 return (SDL_Rect){ rect.pos.x, rect.pos.y, rect.size.x, rect.size.y };
172} 170}
173 171
172#if 0
174static void fillTriangle_(SDL_Surface *surface, const SDL_Rect *rect, int dir) { 173static void fillTriangle_(SDL_Surface *surface, const SDL_Rect *rect, int dir) {
175 const uint32_t color = 0xffffffff; 174 const uint32_t color = 0xffffffff;
176 SDL_LockSurface(surface); 175 SDL_LockSurface(surface);
@@ -201,6 +200,7 @@ static void fillTriangle_(SDL_Surface *surface, const SDL_Rect *rect, int dir) {
201 } 200 }
202 SDL_UnlockSurface(surface); 201 SDL_UnlockSurface(surface);
203} 202}
203#endif
204 204
205static void cache_Font_(iFont *d, iGlyph *glyph) { 205static void cache_Font_(iFont *d, iGlyph *glyph) {
206 iText *txt = &text_; 206 iText *txt = &text_;
@@ -452,6 +452,15 @@ iInt2 advanceN_Text(int fontId, const char *text, size_t n) {
452 return init_I2(advance, lineHeight_Text(fontId)); 452 return init_I2(advance, lineHeight_Text(fontId));
453} 453}
454 454
455iInt2 advanceRange_Text(int fontId, iRangecc text) {
456 /* TODO: Rangecc should be the default for runs; no need to copy here */
457 iString str;
458 initRange_String(&str, text);
459 const iInt2 metrics = advance_Text(fontId, cstr_String(&str));
460 deinit_String(&str);
461 return metrics;
462}
463
455static void draw_Text_(int fontId, iInt2 pos, int color, const char *text) { 464static void draw_Text_(int fontId, iInt2 pos, int color, const char *text) {
456 iText *d = &text_; 465 iText *d = &text_;
457 const iColor clr = get_Color(color & mask_ColorId); 466 const iColor clr = get_Color(color & mask_ColorId);