diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 030d6923f4..a3032097b1 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -853,7 +853,7 @@ static void mui_frame(void *data) width, height, &lightblue_bg[0]); - menu_display_font_bind_block(&mui->list_block); + menu_display_ctl(MENU_DISPLAY_CTL_FONT_BIND_BLOCK, &mui->list_block); mui_render_menu_list(mui, width, height, normal_color, hover_color, &pure_white[0]); diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index b6f927b380..53777456ae 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1715,7 +1715,7 @@ static void xmb_frame(void *data) video_driver_get_size(&width, &height); - menu_display_font_bind_block(&xmb->raster_block); + menu_display_ctl(MENU_DISPLAY_CTL_FONT_BIND_BLOCK, &xmb->raster_block); xmb->raster_block.carr.coords.vertices = 0; diff --git a/menu/drivers/zarch.c b/menu/drivers/zarch.c index 3e0e7d33df..c6e602497a 100644 --- a/menu/drivers/zarch.c +++ b/menu/drivers/zarch.c @@ -990,7 +990,7 @@ static void zarch_frame(void *data) zui->tmp_block.carr.coords.vertices = 0; - menu_display_font_bind_block(&zui->tmp_block); + menu_display_ctl(MENU_DISPLAY_CTL_FONT_BIND_BLOCK, &zui->tmp_block); zarch_zui_push_quad(zui->width, zui->height, ZUI_BG_SCREEN, &zui->ca, 0, 0, zui->width, zui->height); zarch_zui_snow(zui, &zui->ca, zui->width, zui->height); diff --git a/menu/menu_display.c b/menu/menu_display.c index c4cfa7003a..88332e7298 100644 --- a/menu/menu_display.c +++ b/menu/menu_display.c @@ -89,17 +89,6 @@ static bool menu_display_font_init_first(void **font_handle, font_path, font_size); } -bool menu_display_font_bind_block(void *userdata) -{ - menu_display_t *disp = menu_display_get_ptr(); - if (!disp) - return false; - - font_driver_bind_block(disp->font.buf, userdata); - - return true; -} - void menu_display_free_main_font(void) { menu_display_t *disp = menu_display_get_ptr(); @@ -145,10 +134,9 @@ static bool menu_display_check_compatibility( return false; } -static bool menu_display_driver_init_first(void) +static bool menu_display_driver_init_first(menu_display_t *disp) { unsigned i; - menu_display_t *disp = menu_display_get_ptr(); for (i = 0; menu_display_ctx_drivers[i]; i++) { @@ -218,13 +206,18 @@ bool menu_display_ctl(enum menu_display_ctl_state state, void *data) return false; menu_disp->blend_end(); break; + case MENU_DISPLAY_CTL_FONT_BIND_BLOCK: + if (!disp) + return false; + font_driver_bind_block(disp->font.buf, data); + break; case MENU_DISPLAY_CTL_FONT_FLUSH_BLOCK: if (!disp || !disp->font.buf) return false; font_driver_flush(disp->font.buf); - - return menu_display_font_bind_block(NULL); + font_driver_bind_block(disp->font.buf, NULL); + break; case MENU_DISPLAY_CTL_FRAMEBUF_DEINIT: menu_display_framebuf_width = 0; menu_display_framebuf_height = 0; @@ -469,7 +462,7 @@ bool menu_display_ctl(enum menu_display_ctl_state state, void *data) } break; case MENU_DISPLAY_CTL_INIT_FIRST_DRIVER: - return menu_display_driver_init_first(); + return menu_display_driver_init_first(disp); case MENU_DISPLAY_CTL_NONE: default: break; diff --git a/menu/menu_display.h b/menu/menu_display.h index 73f20c7c14..dc86c905fe 100644 --- a/menu/menu_display.h +++ b/menu/menu_display.h @@ -68,6 +68,7 @@ enum menu_display_ctl_state MENU_DISPLAY_CTL_SET_FONT_BUF, MENU_DISPLAY_CTL_FONT_FB, MENU_DISPLAY_CTL_SET_FONT_FB, + MENU_DISPLAY_CTL_FONT_BIND_BLOCK, MENU_DISPLAY_CTL_BLEND_BEGIN, MENU_DISPLAY_CTL_BLEND_END }; @@ -125,8 +126,6 @@ typedef struct menu_display_ctx_driver const char *ident; } menu_display_ctx_driver_t; -bool menu_display_font_bind_block(void *userdata); - bool menu_display_init_main_font(const char *font_path, float font_size); void menu_display_free_main_font(void);