summaryrefslogtreecommitdiff
path: root/gui.h
diff options
context:
space:
mode:
Diffstat (limited to 'gui.h')
-rw-r--r--gui.h94
1 files changed, 47 insertions, 47 deletions
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);
}