From 12cd9e5c884661303443db412e805a812ce752c4 Mon Sep 17 00:00:00 2001 From: jdgleaver Date: Mon, 17 Feb 2020 11:49:12 +0000 Subject: [PATCH] Ensure menu ID is set before initialising menu driver (fixes first-frame scaling bug) --- menu/menu_driver.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/menu/menu_driver.c b/menu/menu_driver.c index 3f7be7079f..14fc655e48 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -1936,7 +1936,11 @@ static void menu_driver_set_id(void) static bool menu_driver_init_internal(bool video_is_threaded) { - gfx_display_set_driver_id(MENU_DRIVER_ID_UNKNOWN); + /* ID must be set first, since it is required for + * the proper determination of pixel/dpi scaling + * parameters (and some menu drivers fetch the + * current pixel/dpi scale during 'menu_driver_ctx->init()') */ + menu_driver_set_id(); if (menu_driver_ctx->init) { @@ -1959,8 +1963,6 @@ static bool menu_driver_init_internal(bool video_is_threaded) if (!menu_driver_ctx->lists_init(menu_driver_data)) return false; - menu_driver_set_id(); - return true; } @@ -1979,6 +1981,10 @@ bool menu_driver_init(bool video_is_threaded) } } + /* If driver initialisation failed, must reset + * driver id to 'unknown' */ + gfx_display_set_driver_id(MENU_DRIVER_ID_UNKNOWN); + return false; }