From 7e8b9135c3679bdfcce723274e45852e65262655 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 26 Feb 2018 19:39:42 +0100 Subject: [PATCH] (Cg) If GL context is GLES2/3/Core context, Cg shaders are unavailable --- gfx/video_shader_parse.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gfx/video_shader_parse.c b/gfx/video_shader_parse.c index b5cf07cebd..a63e840ea9 100644 --- a/gfx/video_shader_parse.c +++ b/gfx/video_shader_parse.c @@ -1119,8 +1119,25 @@ enum rarch_shader_type video_shader_get_type_from_ext( switch (api) { case GFX_CTX_DIRECT3D9_API: + return RARCH_SHADER_CG; case GFX_CTX_OPENGL_API: case GFX_CTX_OPENGL_ES_API: + { + struct retro_hw_render_callback *hwr = + video_driver_get_hw_context(); + if (hwr) + { + switch (hwr->context_type) + { + case RETRO_HW_CONTEXT_OPENGLES2: + case RETRO_HW_CONTEXT_OPENGL_CORE: + case RETRO_HW_CONTEXT_OPENGLES3: + return RARCH_SHADER_NONE; + default: + break; + } + } + } return RARCH_SHADER_CG; default: break; @@ -1132,8 +1149,25 @@ enum rarch_shader_type video_shader_get_type_from_ext( switch (api) { case GFX_CTX_DIRECT3D9_API: + return RARCH_SHADER_CG; case GFX_CTX_OPENGL_API: case GFX_CTX_OPENGL_ES_API: + { + struct retro_hw_render_callback *hwr = + video_driver_get_hw_context(); + if (hwr) + { + switch (hwr->context_type) + { + case RETRO_HW_CONTEXT_OPENGLES2: + case RETRO_HW_CONTEXT_OPENGL_CORE: + case RETRO_HW_CONTEXT_OPENGLES3: + return RARCH_SHADER_NONE; + default: + break; + } + } + } return RARCH_SHADER_CG; default: break;