From 341f9848bb4e0d7182d3121e9f56003f5e950bbb Mon Sep 17 00:00:00 2001 From: Francisco Zurita Date: Sun, 5 Feb 2017 01:38:48 -0500 Subject: [PATCH] Fix monochrome shaders for GLES2 --- .../GLSL/glsl_SpecialShadersFactory.cpp | 38 +++++++++++++------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/src/Graphics/OpenGLContext/GLSL/glsl_SpecialShadersFactory.cpp b/src/Graphics/OpenGLContext/GLSL/glsl_SpecialShadersFactory.cpp index 0362ebc8..a7983061 100644 --- a/src/Graphics/OpenGLContext/GLSL/glsl_SpecialShadersFactory.cpp +++ b/src/Graphics/OpenGLContext/GLSL/glsl_SpecialShadersFactory.cpp @@ -89,18 +89,32 @@ namespace glsl { public: MonochromeFragmentShader(const opengl::GLInfo & _glinfo) { - m_part = - "uniform sampler2D uColorImage; \n" - "OUT lowp vec4 fragColor; \n" - "void main() \n" - "{ \n" - " mediump ivec2 coord = ivec2(gl_FragCoord.xy); \n" - " lowp vec4 tex = texelFetch(uColorImage, coord, 0); \n" - //" lowp float c = (tex.r + tex.g + tex.b) / 3.0f; \n" - " lowp float c = dot(vec4(0.2126, 0.7152, 0.0722, 0.0), tex);\n" - " fragColor = vec4(c, c, c, 1.0); \n" - "} \n" - ; + if (_glinfo.isGLES2) { + m_part = + "uniform sampler2D uColorImage; \n" + "uniform mediump vec2 uScreenSize; \n" + "void main() \n" + "{ \n" + " mediump vec2 coord = gl_FragCoord.xy/uScreenSize; \n" + " lowp vec4 tex = texture2D(uColorImage, coord); \n" + " lowp float c = dot(vec4(0.2126, 0.7152, 0.0722, 0.0), tex); \n" + " gl_FragColor = vec4(c, c, c, 1.0); \n" + "} \n" + ; + } else { + m_part = + "uniform sampler2D uColorImage; \n" + "OUT lowp vec4 fragColor; \n" + "void main() \n" + "{ \n" + " mediump ivec2 coord = ivec2(gl_FragCoord.xy); \n" + " lowp vec4 tex = texelFetch(uColorImage, coord, 0); \n" + //" lowp float c = (tex.r + tex.g + tex.b) / 3.0f; \n" + " lowp float c = dot(vec4(0.2126, 0.7152, 0.0722, 0.0), tex);\n" + " fragColor = vec4(c, c, c, 1.0); \n" + "} \n" + ; + } } };