From a9a75f182ad82cf54ca62a5c1e2d1cebc310c850 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Tue, 29 Apr 2025 12:41:36 -0400 Subject: fix flickering image --- main.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/main.c b/main.c index 2750a06..60781a9 100644 --- a/main.c +++ b/main.c @@ -73,7 +73,7 @@ static void volume_flow_rate_row(mu_Context *ctx, UI *ui); static void mass_flow_rate_row(mu_Context *ctx, UI *ui); static void mass_flow_rate_corrected_row(mu_Context *ctx, UI *ui); static void comp_select(mu_Context *ctx, UI *ui); -static void comp_img(mu_Context *ctx); +static void comp_img(mu_Context *ctx, UI *ui); static void output_row(mu_Context *ctx, UI *ui, const char *label, w_Select *unit, w_Number outputs[]); static void hpad(mu_Context *ctx, int w); static void vpad(mu_Context *ctx, int h); @@ -173,7 +173,7 @@ main_window(mu_Context *ctx, UI *ui) { comp_select(ctx, ui); - comp_img(ctx); + comp_img(ctx, ui); mu_end_window(ctx); } @@ -395,16 +395,24 @@ comp_select(mu_Context *ctx, UI *ui) { } static void -comp_img(mu_Context *ctx) { +comp_img(mu_Context *ctx, UI *ui) { mu_Rect r; - int w, h; + const char *data; + int id, w, h; - mu_layout_row(ctx, 1, (int[]) {-1}, -1); - r = mu_layout_next(ctx); r_get_window_size(&w, &h); - r.w = w - r.x; - r.h = h - r.y; + mu_layout_row(ctx, 1, &w, h); + + data = ui->comps[ui->comp_select.idx].imgfile; + id = mu_get_id(ctx, &data, sizeof(data)); + + r = mu_layout_next(ctx); + r.w = w - r.x - ctx->style->spacing; + r.h = h - r.y - ctx->style->spacing; mu_layout_set_next(ctx, r, 0); + + mu_update_control(ctx, id, r, 0); + mu_draw_icon(ctx, 0, r, (mu_Color) {0, 0, 0, 0}); } -- cgit v1.2.3