diff --git a/menu/drivers/glui.c b/menu/drivers/glui.c index 2d12be9572..7ea3df2853 100644 --- a/menu/drivers/glui.c +++ b/menu/drivers/glui.c @@ -222,9 +222,10 @@ static void glui_render(void) { int bottom; unsigned width, height; - glui_handle_t *glui = NULL; - menu_handle_t *menu = menu_driver_get_ptr(); - settings_t *settings = config_get_ptr(); + glui_handle_t *glui = NULL; + menu_framebuf_t *frame_buf = menu_display_fb_get_ptr(); + menu_handle_t *menu = menu_driver_get_ptr(); + settings_t *settings = config_get_ptr(); if (!menu || !menu->userdata) return; @@ -235,8 +236,11 @@ static void glui_render(void) menu_animation_update(menu->animation, menu->dt / IDEAL_DT); - menu->frame_buf.width = width; - menu->frame_buf.height = height; + /* TODO/FIXME - we don't use framebuffer at all + * for GLUI, we should refactor this dependency + * away. */ + frame_buf->width = width; + frame_buf->height = height; if (settings->menu.pointer.enable) { diff --git a/menu/drivers/rmenu.c b/menu/drivers/rmenu.c index 7ff68044f7..fc012911da 100644 --- a/menu/drivers/rmenu.c +++ b/menu/drivers/rmenu.c @@ -227,7 +227,8 @@ static void rmenu_render(void) static void rmenu_set_texture(void) { - menu_handle_t *menu = menu_driver_get_ptr(); + menu_handle_t *menu = menu_driver_get_ptr(); + menu_framebuf_t *frame_buf = menu_display_fb_get_ptr(); if (!menu) return; @@ -239,7 +240,7 @@ static void rmenu_set_texture(void) return; video_driver_set_texture_frame(menu_texture->pixels, true, - menu->frame_buf.width, menu->frame_buf.height, 1.0f); + frame_buf->width, frame_buf->height, 1.0f); menu_texture_inited = true; } @@ -259,9 +260,10 @@ static void rmenu_wallpaper_set_defaults(char *s, size_t len) static void rmenu_context_reset(void) { - char menu_bg[PATH_MAX_LENGTH]; - menu_handle_t *menu = menu_driver_get_ptr(); - settings_t *settings = config_get_ptr(); + char menu_bg[PATH_MAX_LENGTH] = {0}; + menu_handle_t *menu = menu_driver_get_ptr(); + menu_framebuf_t *frame_buf = menu_display_fb_get_ptr(); + settings_t *settings = config_get_ptr(); if (!menu) return; @@ -273,8 +275,8 @@ static void rmenu_context_reset(void) if (path_file_exists(menu_bg)) texture_image_load(menu_texture, menu_bg); - menu->frame_buf.width = menu_texture->width; - menu->frame_buf.height = menu_texture->height; + frame_buf->width = menu_texture->width; + frame_buf->height = menu_texture->height; menu_texture_inited = false; } diff --git a/menu/drivers/rmenu_xui.cpp b/menu/drivers/rmenu_xui.cpp index 2e9cca55a8..fbb931de4b 100644 --- a/menu/drivers/rmenu_xui.cpp +++ b/menu/drivers/rmenu_xui.cpp @@ -49,8 +49,8 @@ #define FONT_HEIGHT_STRIDE (FONT_HEIGHT + 1) #define RXUI_TERM_START_X 15 #define RXUI_TERM_START_Y 27 -#define RXUI_TERM_WIDTH (((menu->frame_buf.width - RXUI_TERM_START_X - 15) / (FONT_WIDTH_STRIDE))) -#define RXUI_TERM_HEIGHT (((menu->frame_buf.height - RXUI_TERM_START_Y - 15) / (FONT_HEIGHT_STRIDE)) - 1) +#define RXUI_TERM_WIDTH (((frame_buf->width - RXUI_TERM_START_X - 15) / (FONT_WIDTH_STRIDE))) +#define RXUI_TERM_HEIGHT (((frame_buf->height - RXUI_TERM_START_Y - 15) / (FONT_HEIGHT_STRIDE)) - 1) HXUIOBJ m_menulist; HXUIOBJ m_menutitle; @@ -537,6 +537,7 @@ static void rmenu_xui_render(void) const char *label = NULL; unsigned menu_type = 0; menu_handle_t *menu = menu_driver_get_ptr(); + menu_framebuf_t *frame_buf = menu_display_fb_get_ptr(); menu_navigation_t *nav = menu_navigation_get_ptr(); uint64_t frame_count = video_driver_get_frame_count(); diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index a3f42a43a1..68d5133531 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1443,6 +1443,7 @@ static void *xmb_init(void) menu_handle_t *menu = NULL; xmb_handle_t *xmb = NULL; const video_driver_t *video_driver = NULL; + menu_framebuf_t *frame_buf = NULL; float scale_factor = 1; gl_t *gl = (gl_t*) video_driver_get_ptr(&video_driver); @@ -1458,6 +1459,8 @@ static void *xmb_init(void) if (!menu) goto error; + frame_buf = &menu->frame_buf; + video_driver_get_size(&width, &height); menu->userdata = (xmb_handle_t*)calloc(1, sizeof(xmb_handle_t)); @@ -1502,8 +1505,12 @@ static void *xmb_init(void) xmb->item.active.factor = 3.0; xmb->under_offset.item = 5.0; - menu->frame_buf.width = width; - menu->frame_buf.height = height; + /* TODO/FIXME - we don't use framebuffer at all + * for XMB, we should refactor this dependency + * away. */ + + frame_buf->width = width; + frame_buf->height = height; if (width >= 3840) scale_factor = 2.0;