diff --git a/CHANGES.md b/CHANGES.md index 6dc971fd21..ca75a843f5 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,7 @@ - LOCALIZATION: Update Italian translation. - LOCALIZATION: Update Simplified Chinese translation. - LOCALIZATION: Update Japanese translation. +- MENU: Only show CRT SwitchRes if video display server is implemented (Windows/Linux for now) - MENU: User Interface -> Appearance -> 'Menu Font Green/Blue Color' settings now work properly. - SCANNER: Fix GDI disc scanning. - SWITCH/LIBNX: Improve touch scaling calculation. diff --git a/gfx/video_display_server.c b/gfx/video_display_server.c index 653cd0d8ad..98fd57eca1 100644 --- a/gfx/video_display_server.c +++ b/gfx/video_display_server.c @@ -21,7 +21,14 @@ #include "../verbosity.h" static const video_display_server_t *current_display_server = NULL; -static void *current_display_server_data = NULL; +static void *current_display_server_data = NULL; + +const char *video_display_server_get_ident(void) +{ + if (!current_display_server) + return "null"; + return current_display_server->ident; +} void* video_display_server_init(void) { diff --git a/gfx/video_display_server.h b/gfx/video_display_server.h index 6f06228915..9a39100807 100644 --- a/gfx/video_display_server.h +++ b/gfx/video_display_server.h @@ -52,6 +52,8 @@ bool video_display_server_switch_resolution( const char *video_display_server_get_output_options(void); +const char *video_display_server_get_ident(void); + extern const video_display_server_t dispserv_win32; extern const video_display_server_t dispserv_x11; extern const video_display_server_t dispserv_null; diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index dd85bc88ab..f7b00d07dc 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -78,6 +78,7 @@ #include "../frontend/frontend_driver.h" #include "../ui/ui_companion_driver.h" #include "../gfx/video_driver.h" +#include "../gfx/video_display_server.h" #include "../config.features.h" #include "../version_git.h" #include "../input/input_driver.h" @@ -6513,9 +6514,10 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist break; case DISPLAYLIST_VIDEO_SETTINGS_LIST: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - menu_displaylist_parse_settings_enum(menu, info, - MENU_ENUM_LABEL_CRT_SWITCHRES_SETTINGS, - PARSE_ACTION, false); + if (!string_is_equal(video_display_server_get_ident(), "null")) + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_CRT_SWITCHRES_SETTINGS, + PARSE_ACTION, false); menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_SUSPEND_SCREENSAVER_ENABLE, PARSE_ONLY_BOOL, false);