From 818f818f583881156eb279c71b1359bf2c4f3580 Mon Sep 17 00:00:00 2001 From: pryazha Date: Sun, 12 Oct 2025 15:25:23 +0500 Subject: change identation, maybe will change back, add own gl functions loading, and glx example --- gui.h | 94 +++++++++++++++++++++++++++++++++---------------------------------- 1 file changed, 47 insertions(+), 47 deletions(-) (limited to 'gui.h') diff --git a/gui.h b/gui.h index e94267a..6e164f9 100644 --- a/gui.h +++ b/gui.h @@ -1,67 +1,67 @@ ui_t beginui(prge_window_t window, input_t input, shader_t shader, rect_t rect, arena_t *arena, f32 padding) { - assert(arena); - assert(shader.id); - assert(window.width && window.height); + assert(arena); + assert(shader.id); + assert(window.width && window.height); - v2 start = {rect.start.x, rect.end.y}; - ui_t ui = {window, input, shader, rect, ui_list, start, arena, padding}; - glUseProgram(ui.shader.id); - mat4 projection = ortho(0.0f, ui.window.width, 0.0f, ui.window.height, -1.0f, 1.0f); - shader_set_mat4(ui.shader, SHADER_PROJECTION_MATRIX, projection); - glDisable(GL_DEPTH_TEST); + v2 start = {rect.start.x, rect.end.y}; + ui_t ui = {window, input, shader, rect, ui_list, start, arena, padding}; + glUseProgram(ui.shader.id); + mat4 projection = ortho(0.0f, ui.window.width, 0.0f, ui.window.height, -1.0f, 1.0f); + shader_set_mat4(ui.shader, SHADER_PROJECTION_MATRIX, projection); + glDisable(GL_DEPTH_TEST); - f32 width = rect.end.x - rect.start.x; - f32 height = rect.end.y - rect.start.y; - mesh_t background = gen_quad_mesh(ui.arena, DEFAULT_TRANSFORM, width, height); - v2 half_width_height = {width/2.0f, height/2.0f}; - start = v2_add(rect.start, half_width_height); - mat4 world = mat4_make_transl(v3_from_v2(start)); - shader_set_mat4(ui.shader, SHADER_MODEL_MATRIX, world); - v4 color = {0.149f, 0.4f, 0.42f, 1.0f}; - shader_set_v4(ui.shader, "color", color); - draw_mesh(background); - clear_mesh(&background); - - return ui; + f32 width = rect.end.x - rect.start.x; + f32 height = rect.end.y - rect.start.y; + mesh_t background = gen_quad_mesh(ui.arena, DEFAULT_TRANSFORM, width, height); + v2 half_width_height = {width/2.0f, height/2.0f}; + start = v2_add(rect.start, half_width_height); + mat4 world = mat4_make_transl(v3_from_v2(start)); + shader_set_mat4(ui.shader, SHADER_MODEL_MATRIX, world); + v4 color = {0.149f, 0.4f, 0.42f, 1.0f}; + shader_set_v4(ui.shader, "color", color); + draw_mesh(background); + clear_mesh(&background); + + return ui; } i32 button(ui_t *ui, const char *text, f32 width, f32 height) { - if (width <= 0.0f || height <= 0.0f) - return 0; + if (width <= 0.0f || height <= 0.0f) + return 0; - v4 color = {0.075f, 0.525f, 0.549f, 1.0f}; - i32 pressed = 0; + v4 color = {0.075f, 0.525f, 0.549f, 1.0f}; + i32 pressed = 0; - v2 last = {ui->last.x + ui->padding, ui->last.y - height - ui->padding}; - rect_t rect = {last, v2_add(last, (v2){width, height})}; - if (in_rect(ui->input.mouse.pos, rect) && !ui->input.mouse.capture) { - color = (v4){0.3f, 0.61f, 0.63f, 1.0f}; - if (is_key_pressed(ui->input.mouse.left)) { - pressed = 1; - printf("%s\n", text); - } - } + v2 last = {ui->last.x + ui->padding, ui->last.y - height - ui->padding}; + rect_t rect = {last, v2_add(last, (v2){width, height})}; + if (in_rect(ui->input.mouse.pos, rect) && !ui->input.mouse.capture) { + color = (v4){0.3f, 0.61f, 0.63f, 1.0f}; + if (is_key_pressed(ui->input.mouse.left)) { + pressed = 1; + printf("%s\n", text); + } + } - v2 center = {width/2.0f, height/2.0f}; - v2 start = v2_add(last, center); - ui->last.x += width + 2.0f*ui->padding; - mat4 world = mat4_make_transl(v3_from_v2(start)); + v2 center = {width/2.0f, height/2.0f}; + v2 start = v2_add(last, center); + ui->last.x += width + 2.0f*ui->padding; + mat4 world = mat4_make_transl(v3_from_v2(start)); - shader_set_mat4(ui->shader, SHADER_MODEL_MATRIX, world); - shader_set_v4(ui->shader, "color", color); + shader_set_mat4(ui->shader, SHADER_MODEL_MATRIX, world); + shader_set_v4(ui->shader, "color", color); - mesh_t quad = gen_quad_mesh(ui->arena, DEFAULT_TRANSFORM, width, height); + mesh_t quad = gen_quad_mesh(ui->arena, DEFAULT_TRANSFORM, width, height); - draw_mesh(quad); - clear_mesh(&quad); + draw_mesh(quad); + clear_mesh(&quad); - return pressed; + return pressed; } void endui(void) { - glEnable(GL_DEPTH_TEST); - glUseProgram(0); + glEnable(GL_DEPTH_TEST); + glUseProgram(0); } -- cgit v1.2.3-70-g09d2