diff options
Diffstat (limited to 'src/ui/text.c')
-rw-r--r-- | src/ui/text.c | 21 |
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 | ||
174 | static void fillTriangle_(SDL_Surface *surface, const SDL_Rect *rect, int dir) { | 173 | static 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 | ||
205 | static void cache_Font_(iFont *d, iGlyph *glyph) { | 205 | static 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 | ||
455 | iInt2 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 | |||
455 | static void draw_Text_(int fontId, iInt2 pos, int color, const char *text) { | 464 | static 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); |