From d45189b853c684bbbbee2e4780b1f8e3a2ffba23 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 26 Feb 2018 18:15:38 +0100 Subject: [PATCH] Prevent crashes from occurring if we have the GL video driver in use and we try to skip to a slang shader through next/previous hotkeys --- gfx/video_shader_parse.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gfx/video_shader_parse.c b/gfx/video_shader_parse.c index bd55fa64ad..5bbf00aa1b 100644 --- a/gfx/video_shader_parse.c +++ b/gfx/video_shader_parse.c @@ -1110,6 +1110,8 @@ bool video_shader_any_supported(void) enum rarch_shader_type video_shader_get_type_from_ext( const char *ext, bool *is_preset) { + enum gfx_ctx_api api = video_context_driver_get_api(); + *is_preset = false; if (string_is_equal_noncase(ext, "cg")) @@ -1127,10 +1129,38 @@ enum rarch_shader_type video_shader_get_type_from_ext( return RARCH_SHADER_GLSL; } if (string_is_equal_noncase(ext, "slang")) + { + /* TODO/FIXME - once the OpenGL/Direct3D9 drivers + * have slang support, we can get rid of this */ + switch (api) + { + case GFX_CTX_OPENGL_API: + case GFX_CTX_OPENGL_ES_API: + case GFX_CTX_DIRECT3D8_API: + case GFX_CTX_DIRECT3D9_API: + return RARCH_SHADER_NONE; + default: + break; + } return RARCH_SHADER_SLANG; + } if (string_is_equal_noncase(ext, "slangp")) { *is_preset = true; + + /* TODO/FIXME - once the OpenGL/Direct3D9 drivers + * have slang support, we can get rid of these conditionals */ + switch (api) + { + case GFX_CTX_OPENGL_API: + case GFX_CTX_OPENGL_ES_API: + case GFX_CTX_DIRECT3D8_API: + case GFX_CTX_DIRECT3D9_API: + return RARCH_SHADER_NONE; + default: + break; + } + return RARCH_SHADER_SLANG; } return RARCH_SHADER_NONE;