diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index c5dc8f483c..5471229552 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -243,16 +243,12 @@ static void mui_draw_tab(mui_handle_t *mui, } static void mui_blit_line(float x, float y, unsigned width, unsigned height, - const char *message, uint32_t color, enum text_alignment text_align) + const char *msg, uint32_t color, enum text_alignment text_align) { - int font_size; struct font_params params; - void *fb_buf = NULL; - menu_display_ctl(MENU_DISPLAY_CTL_FONT_SIZE, &font_size); - - params.x = x / width; - params.y = 1.0f - (y + font_size / 3) / height; + params.x = x; + params.y = y; params.scale = 1.0f; params.drop_mod = 0.0f; params.drop_x = 0.0f; @@ -261,9 +257,7 @@ static void mui_blit_line(float x, float y, unsigned width, unsigned height, params.full_screen = true; params.text_align = text_align; - menu_display_ctl(MENU_DISPLAY_CTL_FONT_BUF, &fb_buf); - - video_driver_set_osd_msg(message, ¶ms, fb_buf); + menu_display_draw_text(msg, width, height, ¶ms); } static void mui_render_quad(mui_handle_t *mui, diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 6abd94e134..1bf8d3ab91 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -499,7 +499,6 @@ static void xmb_draw_text(xmb_handle_t *xmb, settings_t *settings = config_get_ptr(); struct font_params params; uint8_t a8 = 0; - void *disp_buf = NULL; if (alpha > xmb->alpha) alpha = xmb->alpha; @@ -513,8 +512,8 @@ static void xmb_draw_text(xmb_handle_t *xmb, || y < -xmb->icon.size || y > height + xmb->icon.size) return; - params.x = x / width; - params.y = 1.0f - y / height; + params.x = x; + params.y = y; params.scale = scale_factor; params.drop_mod = 0.0f; params.drop_x = 0.0f; @@ -530,9 +529,7 @@ static void xmb_draw_text(xmb_handle_t *xmb, params.drop_alpha = 0.25f; } - menu_display_ctl(MENU_DISPLAY_CTL_FONT_BUF, &disp_buf); - - video_driver_set_osd_msg(str, ¶ms, disp_buf); + menu_display_draw_text(str, width, height, ¶ms); } static void xmb_messagebox(void *data, const char *message) diff --git a/menu/menu_display.c b/menu/menu_display.c index 8ce568100b..5a161bfa13 100644 --- a/menu/menu_display.c +++ b/menu/menu_display.c @@ -780,3 +780,19 @@ void menu_display_snow(int width, int height) j++; } } + +void menu_display_draw_text(const char *msg, + int width, int height, struct font_params *params) +{ + int font_size; + void *fb_buf = NULL; + + menu_display_ctl(MENU_DISPLAY_CTL_FONT_SIZE, &font_size); + + params->x = params->x / width; + params->y = 1.0f - (params->y + font_size / 3) / height; + + menu_display_ctl(MENU_DISPLAY_CTL_FONT_BUF, &fb_buf); + + video_driver_set_osd_msg(msg, params, fb_buf); +} diff --git a/menu/menu_display.h b/menu/menu_display.h index 71f16a5107..0aeda90db7 100644 --- a/menu/menu_display.h +++ b/menu/menu_display.h @@ -191,6 +191,9 @@ void menu_display_draw_cursor( float *color, float cursor_size, uintptr_t texture, float x, float y, unsigned width, unsigned height); +void menu_display_draw_text(const char *msg, int width, int height, + struct font_params *params); + extern uintptr_t menu_display_white_texture; extern menu_display_ctx_driver_t menu_display_ctx_gl;