From 78fef6422b96f25f1919426a0cdbee89ceb37a40 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 5 Dec 2015 12:17:58 +0100 Subject: [PATCH] Create font_driver_get_message_width --- gfx/font_driver.c | 10 ++++++++++ gfx/font_driver.h | 2 ++ menu/drivers/materialui.c | 3 +-- menu/drivers/zarch.c | 3 +-- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/gfx/font_driver.c b/gfx/font_driver.c index 8c5fbfc892..c1abe54fee 100644 --- a/gfx/font_driver.c +++ b/gfx/font_driver.c @@ -242,6 +242,16 @@ void font_driver_flush(void *data) font_ctx->flush(data); } +int font_driver_get_message_width(void *data, const char *msg, unsigned len, float scale) +{ + driver_t *driver = driver_get_ptr(); + const font_renderer_t *font_ctx = driver->font_osd_driver; + + if (!font_ctx || !font_ctx->get_message_width) + return -1; + return font_ctx->get_message_width(data, msg, len, scale); +} + void font_driver_free(void *data) { driver_t *driver = driver_get_ptr(); diff --git a/gfx/font_driver.h b/gfx/font_driver.h index d721612019..90f3e95ead 100644 --- a/gfx/font_driver.h +++ b/gfx/font_driver.h @@ -140,6 +140,8 @@ void font_driver_render_msg(void *data, const char *msg, const struct font_param void font_driver_bind_block(void *font_data, void *block); +int font_driver_get_message_width(void *data, const char *msg, unsigned len, float scale); + void font_driver_flush(void *data); void font_driver_free(void *data); diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 1afe03fb01..4e79574e0a 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -960,8 +960,7 @@ static void mui_layout(menu_handle_t *menu, mui_handle_t *mui) if (fb_buf) /* calculate a more realistic ticker_limit */ { - driver_t *driver = driver_get_ptr(); - unsigned m_width = driver->font_osd_driver->get_message_width(fb_buf, "a", 1, 1); + unsigned m_width = font_driver_get_message_width(fb_buf, "a", 1, 1); if (m_width) mui->glyph_width = m_width; diff --git a/menu/drivers/zarch.c b/menu/drivers/zarch.c index e8e58f84c2..06a300de1a 100644 --- a/menu/drivers/zarch.c +++ b/menu/drivers/zarch.c @@ -221,8 +221,7 @@ static void zarch_zui_font(menu_handle_t *menu) static float zarch_zui_strwidth(void *fb_buf, const char *text, float scale) { - driver_t *driver = (driver_t*)driver_get_ptr(); - return driver->font_osd_driver->get_message_width(fb_buf, text, strlen(text), scale); + return font_driver_get_message_width(fb_buf, text, strlen(text), scale); } enum zarch_zui_input_state