diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 31f0e2477e..3f2f0564d4 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -793,11 +793,6 @@ static void mui_frame(void *data) if (!mui) return; - msg[0] = '\0'; - title[0] = '\0'; - title_buf[0] = '\0'; - title_msg[0] = '\0'; - video_driver_get_size(&width, &height); menu_display_ctl(MENU_DISPLAY_CTL_SET_VIEWPORT, NULL); @@ -814,7 +809,14 @@ static void mui_frame(void *data) } else { - menu_display_clear_color(1.0f, 1.0f, 1.0f, 0.75f); + menu_display_ctx_clearcolor_t clearcolor; + + clearcolor.r = 1.0f; + clearcolor.g = 1.0f; + clearcolor.b = 1.0f; + clearcolor.a = 0.75f; + + menu_display_ctl(MENU_DISPLAY_CTL_CLEAR_COLOR, &clearcolor); if (mui->textures.bg.id) { diff --git a/menu/menu_display.c b/menu/menu_display.c index 4e96bccb12..785801bf61 100644 --- a/menu/menu_display.c +++ b/menu/menu_display.c @@ -448,6 +448,16 @@ bool menu_display_ctl(enum menu_display_ctl_state state, void *data) return false; menu_disp->restore_clear_color(); break; + case MENU_DISPLAY_CTL_CLEAR_COLOR: + { + menu_display_ctx_clearcolor_t *clearcolor = + (menu_display_ctx_clearcolor_t*)data; + if (!menu_disp || !menu_disp->clear_color || !clearcolor) + return false; + menu_disp->clear_color(clearcolor->r, + clearcolor->g, clearcolor->b, clearcolor->a); + } + break; case MENU_DISPLAY_CTL_NONE: default: break; @@ -551,15 +561,6 @@ void menu_display_draw_bg( } -void menu_display_clear_color(float r, float g, float b, float a) -{ - menu_display_ctx_driver_t *menu_disp = menu_display_context_get_ptr(); - if (!menu_disp || !menu_disp->clear_color) - return; - - menu_disp->clear_color(r, g, b, a); -} - const float *menu_display_get_tex_coords(void) { menu_display_ctx_driver_t *menu_disp = menu_display_context_get_ptr(); diff --git a/menu/menu_display.h b/menu/menu_display.h index 4cfc2586d8..c22df77809 100644 --- a/menu/menu_display.h +++ b/menu/menu_display.h @@ -73,7 +73,8 @@ enum menu_display_ctl_state MENU_DISPLAY_CTL_FONT_BIND_BLOCK, MENU_DISPLAY_CTL_BLEND_BEGIN, MENU_DISPLAY_CTL_BLEND_END, - MENU_DISPLAY_CTL_RESTORE_CLEAR_COLOR + MENU_DISPLAY_CTL_RESTORE_CLEAR_COLOR, + MENU_DISPLAY_CTL_CLEAR_COLOR }; enum menu_display_prim_type @@ -135,6 +136,14 @@ typedef struct menu_display_ctx_font float size; } menu_display_ctx_font_t; +typedef struct menu_display_ctx_clearcolor +{ + float r; + float g; + float b; + float a; +} menu_display_ctx_clearcolor_t; + bool menu_display_ctl(enum menu_display_ctl_state state, void *data); void menu_display_timedate(char *s, size_t len, unsigned time_mode); @@ -170,7 +179,6 @@ void menu_display_matrix_4x4_rotate_z( float scale_x, float scale_y, float scale_z, bool scale_enable); -void menu_display_clear_color(float r, float g, float b, float a); void menu_display_handle_wallpaper_upload(void *task_data, void *user_data, const char *err);