X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=vg%2Fvg_ui.h;h=03647392a27ebe8cfce24e7f82b891197720066f;hb=4e217c7bc7d079364a999ee39773fa70ca25733a;hp=fe46da0040a8bcd795f9628134d3519d78807b63;hpb=a46972aa1ee718339c2512cae986f2943bed0e04;p=fishladder.git diff --git a/vg/vg_ui.h b/vg/vg_ui.h index fe46da0..0364739 100644 --- a/vg/vg_ui.h +++ b/vg/vg_ui.h @@ -112,6 +112,7 @@ struct ui_ctx u32 capture_mouse_id; int capture_lock; u32 id_base; + int glyph_base; // User input ui_px mouse[2]; @@ -176,7 +177,7 @@ ui_colourset ui_default_colours = { ui_ctx ui_global_ctx = { .padding = 8, .colours_current = &ui_default_colours, - .colours_main = &ui_default_colours + .colours_main = &ui_default_colours }; @@ -559,14 +560,30 @@ static struct ui_vert *ui_fill_rect( ui_ctx *ctx, ui_rect rect, u32 colour ) return ui_fill_rect_uv( ctx, rect, colour, (ui_px[4]){ 4,124,4,124 } ); } -static void ui_text( ui_ctx *ctx, const char *str, ui_px scale, int alignment ) +static void ui_text_use_title( ui_ctx *ctx ) +{ + ctx->glyph_base = 0; +} + +static void ui_text_use_paragraph( ui_ctx *ctx ) +{ + ctx->glyph_base = 6; +} + +enum text_alignment +{ + k_text_alignment_left = 0, + k_text_alignment_center +}; + +static void ui_text( ui_ctx *ctx, const char *str, ui_px scale, enum text_alignment alignment ) { ui_rect text_cursor; text_cursor[0] = ctx->cursor[0]; text_cursor[1] = ctx->cursor[1]; - text_cursor[2] = scale*8; - text_cursor[3] = scale*8; + text_cursor[2] = (scale*8)/2; + text_cursor[3] = (scale*8)/2; u32 current_colour = ctx->override_colour; @@ -576,7 +593,7 @@ static void ui_text( ui_ctx *ctx, const char *str, ui_px scale, int alignment ) { if( c == '\n' ) { - text_cursor[1] += 10*scale; + text_cursor[1] += (7*scale)/2; text_cursor[0] = ctx->cursor[0]; continue; } @@ -584,9 +601,9 @@ static void ui_text( ui_ctx *ctx, const char *str, ui_px scale, int alignment ) { u8 glyph_base[2]; u8 glyph_index = c - 32; - glyph_base[0] = glyph_index&0xf; - glyph_base[1] = (glyph_index-glyph_base[0])>>4; - + glyph_base[0] = (glyph_index&0xf); + glyph_base[1] = ctx->glyph_base + ((glyph_index-glyph_base[0])>>4); + glyph_base[0] *= 8; glyph_base[1] *= 8; @@ -636,7 +653,7 @@ static void ui_text( ui_ctx *ctx, const char *str, ui_px scale, int alignment ) continue; } - text_cursor[0] += (ui_glyph_spacing_x*scale)/2; + text_cursor[0] += (ui_glyph_spacing_x*scale)/4; } }