diff --git a/gfx/gfx_display.c b/gfx/gfx_display.c index 0c1969ff97..b81962ea98 100644 --- a/gfx/gfx_display.c +++ b/gfx/gfx_display.c @@ -486,15 +486,21 @@ float gfx_display_get_widget_dpi_scale( #endif gfx_display_t *p_disp = disp_get_ptr(); - /* When using RGUI, _menu_scale_factor - * is ignored - * > If we are not using a widget scale factor override, - * just set menu_scale_factor to 1.0 */ - float menu_scale_factor = - gfx_widget_scale_auto ? - ((p_disp->menu_driver_id == MENU_DRIVER_ID_RGUI) ? - 1.0f : _menu_scale_factor) : - menu_widget_scale_factor; + float menu_scale_factor = menu_widget_scale_factor; + + if (gfx_widget_scale_auto) + { +#ifdef HAVE_RGUI + /* When using RGUI, _menu_scale_factor + * is ignored + * > If we are not using a widget scale factor override, + * just set menu_scale_factor to 1.0 */ + if (p_disp->menu_driver_id == MENU_DRIVER_ID_RGUI) + menu_scale_factor = 1.0f; + else +#endif + menu_scale_factor = _menu_scale_factor; + } /* Scale is based on display metrics - these are a fixed * hardware property. To minimise performance overheads @@ -550,15 +556,21 @@ float gfx_display_get_widget_pixel_scale( menu_widget_scale_factor_fullscreen : menu_widget_scale_factor_windowed; #endif gfx_display_t *p_disp = disp_get_ptr(); + float menu_scale_factor = menu_widget_scale_factor; - /* When using RGUI, _menu_scale_factor is ignored - * > If we are not using a widget scale factor override, - * just set menu_scale_factor to 1.0 */ - float menu_scale_factor = - gfx_widget_scale_auto ? - ((p_disp->menu_driver_id == MENU_DRIVER_ID_RGUI) ? - 1.0f : _menu_scale_factor) : - menu_widget_scale_factor; + if (gfx_widget_scale_auto) + { +#ifdef HAVE_RGUI + /* When using RGUI, _menu_scale_factor + * is ignored + * > If we are not using a widget scale factor override, + * just set menu_scale_factor to 1.0 */ + if (p_disp->menu_driver_id == MENU_DRIVER_ID_RGUI) + menu_scale_factor = 1.0f; + else +#endif + menu_scale_factor = _menu_scale_factor; + } /* We need to perform a square root here, which * can be slow on some platforms (not *slow*, but diff --git a/gfx/gfx_widgets.c b/gfx/gfx_widgets.c index 79d16734d3..37eee51ad7 100644 --- a/gfx/gfx_widgets.c +++ b/gfx/gfx_widgets.c @@ -805,10 +805,14 @@ void gfx_widgets_iterate( dispgfx_widget_t *p_dispwidget = (dispgfx_widget_t*)data; /* Check whether screen dimensions or menu scale * factor have changed */ - float scale_factor = ( - gfx_display_get_driver_id() == MENU_DRIVER_ID_XMB) - ? gfx_display_get_widget_pixel_scale(width, height, fullscreen) - : gfx_display_get_widget_dpi_scale(width, height, fullscreen); + float scale_factor = 0.0f; +#ifdef HAVE_XMB + if (gfx_display_get_driver_id() == MENU_DRIVER_ID_XMB) + scale_factor = gfx_display_get_widget_pixel_scale(width, height, fullscreen); + else +#endif + scale_factor = gfx_display_get_widget_dpi_scale( + width, height, fullscreen); if ((scale_factor != p_dispwidget->last_scale_factor) || (width != p_dispwidget->last_video_width) || @@ -1866,13 +1870,16 @@ static void gfx_widgets_context_reset( } /* Update scaling/dimensions */ - p_dispwidget->last_video_width = width; - p_dispwidget->last_video_height = height; - p_dispwidget->last_scale_factor = ( - gfx_display_get_driver_id() == MENU_DRIVER_ID_XMB) ? - gfx_display_get_widget_pixel_scale(p_dispwidget->last_video_width, - p_dispwidget->last_video_height, fullscreen) : - gfx_display_get_widget_dpi_scale( + p_dispwidget->last_video_width = width; + p_dispwidget->last_video_height = height; +#ifdef HAVE_XMB + if (gfx_display_get_driver_id() == MENU_DRIVER_ID_XMB) + p_dispwidget->last_scale_factor = gfx_display_get_widget_pixel_scale( + p_dispwidget->last_video_width, + p_dispwidget->last_video_height, fullscreen); + else +#endif + p_dispwidget->last_scale_factor = gfx_display_get_widget_dpi_scale( p_dispwidget->last_video_width, p_dispwidget->last_video_height, fullscreen);