diff --git a/gfx/video_driver.h b/gfx/video_driver.h index 9b42aae2e8..b5ff67c632 100644 --- a/gfx/video_driver.h +++ b/gfx/video_driver.h @@ -43,11 +43,6 @@ #define RARCH_SCALE_BASE 256 -#if defined(HAVE_CG) || defined(HAVE_HLSL) || defined(HAVE_GLSL) || defined(HAVE_SLANG) -#ifndef HAVE_SHADER_MANAGER -#define HAVE_SHADER_MANAGER -#endif - #include "video_shader_parse.h" #define VIDEO_SHADER_STOCK_BLEND (GFX_MAX_SHADERS - 1) @@ -58,8 +53,6 @@ #define VIDEO_SHADER_MENU_5 (GFX_MAX_SHADERS - 6) #define VIDEO_SHADER_MENU_6 (GFX_MAX_SHADERS - 7) -#endif - #if defined(_XBOX360) #define DEFAULT_SHADER_TYPE RARCH_SHADER_HLSL #elif defined(__PSL1GHT__) || defined(HAVE_OPENGLES2) || defined(HAVE_GLSL) diff --git a/gfx/video_shader_parse.c b/gfx/video_shader_parse.c index 1405125076..18b12ea143 100644 --- a/gfx/video_shader_parse.c +++ b/gfx/video_shader_parse.c @@ -1083,6 +1083,20 @@ bool video_shader_is_supported(enum rarch_shader_type type) return false; } +bool video_shader_any_supported(void) +{ + if ( + video_shader_is_supported(RARCH_SHADER_SLANG) || + video_shader_is_supported(RARCH_SHADER_HLSL) || + video_shader_is_supported(RARCH_SHADER_GLSL) || + video_shader_is_supported(RARCH_SHADER_CG) + ) + return true; + return false; + +} + + enum rarch_shader_type video_shader_get_type_from_ext( const char *ext, bool *is_preset) { diff --git a/gfx/video_shader_parse.h b/gfx/video_shader_parse.h index df052c83cd..a50072dc25 100644 --- a/gfx/video_shader_parse.h +++ b/gfx/video_shader_parse.h @@ -244,6 +244,8 @@ enum rarch_shader_type video_shader_get_type_from_ext( bool video_shader_is_supported(enum rarch_shader_type type); +bool video_shader_any_supported(void); + bool video_shader_check_for_changes(void); RETRO_END_DECLS diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index fbb383d8e6..fc2b344234 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -2689,16 +2689,17 @@ static int menu_displaylist_parse_load_content_settings( MENU_ENUM_LABEL_DISK_OPTIONS, MENU_SETTING_ACTION_CORE_DISK_OPTIONS, 0, 0); -#ifdef HAVE_SHADER_MANAGER - if (settings->bools.quick_menu_show_shaders && !settings->bools.kiosk_mode_enable) + if (video_shader_any_supported()) { - menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SHADER_OPTIONS), - msg_hash_to_str(MENU_ENUM_LABEL_SHADER_OPTIONS), - MENU_ENUM_LABEL_SHADER_OPTIONS, - MENU_SETTING_ACTION, 0, 0); + if (settings->bools.quick_menu_show_shaders && !settings->bools.kiosk_mode_enable) + { + menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SHADER_OPTIONS), + msg_hash_to_str(MENU_ENUM_LABEL_SHADER_OPTIONS), + MENU_ENUM_LABEL_SHADER_OPTIONS, + MENU_SETTING_ACTION, 0, 0); + } } -#endif if (settings->bools.quick_menu_show_save_core_overrides && !settings->bools.kiosk_mode_enable) { @@ -5213,11 +5214,10 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_QUICK_MENU_SHOW_CHEATS, PARSE_ONLY_BOOL, false); -#ifdef HAVE_SHADER_MANAGER - menu_displaylist_parse_settings_enum(menu, info, - MENU_ENUM_LABEL_QUICK_MENU_SHOW_SHADERS, - PARSE_ONLY_BOOL, false); -#endif + if (video_shader_any_supported()) + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_QUICK_MENU_SHOW_SHADERS, + PARSE_ONLY_BOOL, false); menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVE_CORE_OVERRIDES, PARSE_ONLY_BOOL, false); diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 0cf98e589a..81f15af93b 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -5635,20 +5635,21 @@ static bool setting_append_list( general_read_handler, SD_FLAG_NONE); -#ifdef HAVE_SHADERPIPELINE - CONFIG_UINT( - list, list_info, - &settings->uints.menu_xmb_shader_pipeline, - MENU_ENUM_LABEL_XMB_RIBBON_ENABLE, - MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE, - menu_shader_pipeline, - &group_info, - &subgroup_info, - parent_group, - general_write_handler, - general_read_handler); - menu_settings_list_current_add_range(list, list_info, 0, XMB_SHADER_PIPELINE_LAST-1, 1, true, true); -#endif + if (video_shader_any_supported()) + { + CONFIG_UINT( + list, list_info, + &settings->uints.menu_xmb_shader_pipeline, + MENU_ENUM_LABEL_XMB_RIBBON_ENABLE, + MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE, + menu_shader_pipeline, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + menu_settings_list_current_add_range(list, list_info, 0, XMB_SHADER_PIPELINE_LAST-1, 1, true, true); + } CONFIG_UINT( list, list_info, @@ -6345,22 +6346,23 @@ static bool setting_append_list( general_read_handler, SD_FLAG_NONE); -#ifdef HAVE_SHADER_MANAGER - CONFIG_BOOL( - list, list_info, - &settings->bools.quick_menu_show_shaders, - MENU_ENUM_LABEL_QUICK_MENU_SHOW_SHADERS, - MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_SHADERS, - quick_menu_show_shaders, - MENU_ENUM_LABEL_VALUE_OFF, - MENU_ENUM_LABEL_VALUE_ON, - &group_info, - &subgroup_info, - parent_group, - general_write_handler, - general_read_handler, - SD_FLAG_NONE); -#endif + if (video_shader_any_supported()) + { + CONFIG_BOOL( + list, list_info, + &settings->bools.quick_menu_show_shaders, + MENU_ENUM_LABEL_QUICK_MENU_SHOW_SHADERS, + MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_SHADERS, + quick_menu_show_shaders, + MENU_ENUM_LABEL_VALUE_OFF, + MENU_ENUM_LABEL_VALUE_ON, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler, + SD_FLAG_NONE); + } CONFIG_BOOL( list, list_info, diff --git a/menu/menu_shader.c b/menu/menu_shader.c index d9d4645ba8..d473c2c42e 100644 --- a/menu/menu_shader.c +++ b/menu/menu_shader.c @@ -39,11 +39,9 @@ static struct video_shader *menu_driver_shader = NULL; struct video_shader *menu_shader_get(void) { -#ifdef HAVE_SHADER_MANAGER - return menu_driver_shader; -#else + if (video_shader_any_supported()) + return menu_driver_shader; return NULL; -#endif } struct video_shader_parameter *menu_shader_manager_get_parameters(unsigned i)