Float fields working

This commit is contained in:
2024-10-20 01:38:27 +02:00
parent 89c95c0656
commit 84bb7b1eaa
7 changed files with 107 additions and 34 deletions

View File

@@ -264,8 +264,8 @@ ui_init :: () {
init(*ui_state.boxes, 1024);
ui_state.sampler = create_sampler(engine.renderer);
ui_state.fonts.regular = create_font(engine.renderer, "../assets/fonts/roboto/Roboto-Regular.ttf", 12);
ui_state.fonts.button = create_font(engine.renderer, "../assets/fonts/roboto/Roboto-Regular.ttf", 12);
ui_state.fonts.regular = create_font(engine.renderer, "../assets/fonts/roboto/Roboto-Regular.ttf", 14);
ui_state.fonts.button = create_font(engine.renderer, "../assets/fonts/roboto/Roboto-Regular.ttf", 14);
// ui_rect
{
@@ -882,30 +882,31 @@ ui_render_text_recursively :: (box: *UI_Box) {
if box.flags & .DRAW_TEXT {
font_handle := ui_state.fonts.regular;
if box.text.count > 0 {
text_size := get_text_size(engine.renderer, box.text, font_handle);
text_size := get_text_size(engine.renderer, box.text, font_handle);
x := box.rect.x + box.padding_left;
x := box.rect.x + box.padding_left;
y := cast(float)engine.renderer.render_target_height - box.rect.y - box.rect.h + box.padding_bottom;
if box.alignment_flags & .CENTER_HORIZONTALLY {
x += box.rect.w * 0.5 - text_size.x * 0.5;
y := cast(float)engine.renderer.render_target_height - box.rect.y - box.rect.h + box.padding_bottom;
if box.alignment_flags & .CENTER_HORIZONTALLY {
x += box.rect.w * 0.5 - text_size.x * 0.5;
}
if box.alignment_flags & .CENTER_VERTICALLY {
y += box.rect.h * 0.5 - text_size.y * 0.5;
}
if box.alignment_flags & .RIGHT_BOTTOM {
x += box.rect.w - text_size.x;
}
render_data := bake_text(engine.renderer, x, y, box.text, font_handle, box.style.text_color);
font := *engine.renderer.fonts[font_handle - 1];
push_cmd_set_texture(engine.renderer, 0, font.texture);
push_cmd_set_vertex_buffer(engine.renderer, render_data.vb);
push_cmd_draw(engine.renderer, render_data.vert_count);
}
if box.alignment_flags & .CENTER_VERTICALLY {
y += box.rect.h * 0.5 - text_size.y * 0.5;
}
if box.alignment_flags & .RIGHT_BOTTOM {
x += box.rect.w - text_size.x;
}
render_data := bake_text(engine.renderer, x, y, box.text, font_handle, box.style.text_color);
font := *engine.renderer.fonts[font_handle - 1];
push_cmd_set_texture(engine.renderer, 0, font.texture);
push_cmd_set_vertex_buffer(engine.renderer, render_data.vb);
push_cmd_draw(engine.renderer, render_data.vert_count);
}
child := box.first_child;