From 36370ae91e1af36cc0eab42ecfc4e106a73106a2 Mon Sep 17 00:00:00 2001 From: Brett Nash Date: Tue, 19 Apr 2011 05:47:51 +0000 Subject: [PATCH] Evas: Filter: Add the shaders - nice and safe change here. SVN revision: 58725 --- .../engines/gl_common/shader/filter_greyscale.h | 11 +++++++++++ .../gl_common/shader/filter_greyscale.shd | 11 +++++++++++ .../gl_common/shader/filter_greyscale_bgra.h | 11 +++++++++++ .../gl_common/shader/filter_greyscale_bgra.shd | 11 +++++++++++ .../shader/filter_greyscale_bgra_nomul.h | 10 ++++++++++ .../shader/filter_greyscale_bgra_nomul.shd | 10 ++++++++++ .../gl_common/shader/filter_greyscale_nomul.h | 10 ++++++++++ .../gl_common/shader/filter_greyscale_nomul.shd | 10 ++++++++++ .../engines/gl_common/shader/filter_invert.h | 10 ++++++++++ .../engines/gl_common/shader/filter_invert.shd | 10 ++++++++++ .../gl_common/shader/filter_invert_bgra.h | 10 ++++++++++ .../gl_common/shader/filter_invert_bgra.shd | 10 ++++++++++ .../gl_common/shader/filter_invert_bgra_nomul.h | 11 +++++++++++ .../shader/filter_invert_bgra_nomul.shd | 11 +++++++++++ .../gl_common/shader/filter_invert_nomul.h | 10 ++++++++++ .../gl_common/shader/filter_invert_nomul.shd | 10 ++++++++++ .../engines/gl_common/shader/filter_sepia.h | 16 ++++++++++++++++ .../engines/gl_common/shader/filter_sepia.shd | 16 ++++++++++++++++ .../engines/gl_common/shader/filter_sepia_bgra.h | 16 ++++++++++++++++ .../gl_common/shader/filter_sepia_bgra.shd | 16 ++++++++++++++++ .../gl_common/shader/filter_sepia_bgra_nomul.h | 14 ++++++++++++++ .../gl_common/shader/filter_sepia_bgra_nomul.shd | 14 ++++++++++++++ .../gl_common/shader/filter_sepia_nomul.h | 14 ++++++++++++++ .../gl_common/shader/filter_sepia_nomul.shd | 14 ++++++++++++++ 24 files changed, 286 insertions(+) create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale.h create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale.shd create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra.h create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra.shd create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.h create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.shd create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_nomul.h create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_nomul.shd create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_invert.h create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_invert.shd create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_invert_bgra.h create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_invert_bgra.shd create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.h create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.shd create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_invert_nomul.h create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_invert_nomul.shd create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_sepia.h create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_sepia.shd create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra.h create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra.shd create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.h create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.shd create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_nomul.h create mode 100644 legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_nomul.shd diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale.h b/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale.h new file mode 100644 index 0000000000..7bb1b7b7ab --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale.h @@ -0,0 +1,11 @@ +"#ifdef GL_ES\n" +"precision mediump float;\n" +"#endif\n" +"uniform sampler2D tex;\n" +"varying vec4 col;\n" +"varying vec2 tex_c;\n" +"void main()\n" +"{\n" +" float inten = dot(texture2D(tex,tex_c.xy).agb,vec3(.3, .59, .11));\n" +" gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).r) * col;\n" +"}\n" diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale.shd b/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale.shd new file mode 100644 index 0000000000..014e510970 --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale.shd @@ -0,0 +1,11 @@ +#ifdef GL_ES +precision mediump float; +#endif +uniform sampler2D tex; +varying vec4 col; +varying vec2 tex_c; +void main() +{ + float inten = dot(texture2D(tex,tex_c.xy).agb,vec3(.3, .59, .11)); + gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).r) * col; +} diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra.h b/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra.h new file mode 100644 index 0000000000..e29c26abc1 --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra.h @@ -0,0 +1,11 @@ +"#ifdef GL_ES\n" +"precision mediump float;\n" +"#endif\n" +"uniform sampler2D tex;\n" +"varying vec4 col;\n" +"varying vec2 tex_c;\n" +"void main()\n" +"{\n" +" float inten = dot(texture2D(tex,tex_c.xy).rgb,vec3(.3, .59, .11));\n" +" gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).a) * col;\n" +"}\n" diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra.shd b/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra.shd new file mode 100644 index 0000000000..ec9ac11a41 --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra.shd @@ -0,0 +1,11 @@ +#ifdef GL_ES +precision mediump float; +#endif +uniform sampler2D tex; +varying vec4 col; +varying vec2 tex_c; +void main() +{ + float inten = dot(texture2D(tex,tex_c.xy).rgb,vec3(.3, .59, .11)); + gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).a) * col; +} diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.h b/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.h new file mode 100644 index 0000000000..687670aa42 --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.h @@ -0,0 +1,10 @@ +"#ifdef GL_ES\n" +"precision mediump float;\n" +"#endif\n" +"uniform sampler2D tex;\n" +"varying vec2 tex_c;\n" +"void main()\n" +"{\n" +" float inten = dot(texture2D(tex,tex_c.xy).rgb,vec3(.3, .59, .11));\n" +" gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).a);\n" +"}\n" diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.shd b/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.shd new file mode 100644 index 0000000000..b4dcc30dca --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.shd @@ -0,0 +1,10 @@ +#ifdef GL_ES +precision mediump float; +#endif +uniform sampler2D tex; +varying vec2 tex_c; +void main() +{ + float inten = dot(texture2D(tex,tex_c.xy).rgb,vec3(.3, .59, .11)); + gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).a); +} diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_nomul.h b/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_nomul.h new file mode 100644 index 0000000000..1de16b967a --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_nomul.h @@ -0,0 +1,10 @@ +"#ifdef GL_ES\n" +"precision mediump float;\n" +"#endif\n" +"uniform sampler2D tex;\n" +"varying vec2 tex_c;\n" +"void main()\n" +"{\n" +" float inten = dot(texture2D(tex,tex_c.xy).abg,vec3(.3, .59, .11));\n" +" gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).r);\n" +"}\n" diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_nomul.shd b/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_nomul.shd new file mode 100644 index 0000000000..327e31187f --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_greyscale_nomul.shd @@ -0,0 +1,10 @@ +#ifdef GL_ES +precision mediump float; +#endif +uniform sampler2D tex; +varying vec2 tex_c; +void main() +{ + float inten = dot(texture2D(tex,tex_c.xy).abg,vec3(.3, .59, .11)); + gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).r); +} diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_invert.h b/legacy/evas/src/modules/engines/gl_common/shader/filter_invert.h new file mode 100644 index 0000000000..2b5268ab00 --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_invert.h @@ -0,0 +1,10 @@ +"#ifdef GL_ES\n" +"precision mediump float;\n" +"#endif\n" +"uniform sampler2D tex;\n" +"varying vec4 col;\n" +"varying vec2 tex_c;\n" +"void main()\n" +"{\n" +" gl_FragColor = (vec4(0, 1.0, 1.0, 1.0) - texture2D(tex, tex_c.xy).bgra)*col;\n" +"}\n" diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_invert.shd b/legacy/evas/src/modules/engines/gl_common/shader/filter_invert.shd new file mode 100644 index 0000000000..a40509911e --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_invert.shd @@ -0,0 +1,10 @@ +#ifdef GL_ES +precision mediump float; +#endif +uniform sampler2D tex; +varying vec4 col; +varying vec2 tex_c; +void main() +{ + gl_FragColor = (vec4(0, 1.0, 1.0, 1.0) - texture2D(tex, tex_c.xy).bgra)*col; +} diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_invert_bgra.h b/legacy/evas/src/modules/engines/gl_common/shader/filter_invert_bgra.h new file mode 100644 index 0000000000..6ab298da3b --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_invert_bgra.h @@ -0,0 +1,10 @@ +"#ifdef GL_ES\n" +"precision mediump float;\n" +"#endif\n" +"uniform sampler2D tex;\n" +"varying vec4 col;\n" +"varying vec2 tex_c;\n" +"void main()\n" +"{\n" +" gl_FragColor = (vec4(1.0, 1.0, 1.0, 1.0) - texture2D(tex, tex_c.xy))*col;\n" +"}\n" diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_invert_bgra.shd b/legacy/evas/src/modules/engines/gl_common/shader/filter_invert_bgra.shd new file mode 100644 index 0000000000..1e6050704d --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_invert_bgra.shd @@ -0,0 +1,10 @@ +#ifdef GL_ES +precision mediump float; +#endif +uniform sampler2D tex; +varying vec4 col; +varying vec2 tex_c; +void main() +{ + gl_FragColor = (vec4(1.0, 1.0, 1.0, 1.0) - texture2D(tex, tex_c.xy))*col; +} diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.h b/legacy/evas/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.h new file mode 100644 index 0000000000..b0d0d531ff --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.h @@ -0,0 +1,11 @@ +"#ifdef GL_ES\n" +"precision mediump float;\n" +"#endif\n" +"uniform sampler2D tex;\n" +"varying vec4 col;\n" +"varying vec2 tex_c;\n" +"void main()\n" +"{\n" +" vec3 inv = vec3(1.0, 1.0, 1.0) - texture2D(tex,tex_c.xy).rgb;\n" +" gl_FragColor = vec4(inv.r, inv.g, inv.b, 1.0);\n" +"}\n" diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.shd b/legacy/evas/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.shd new file mode 100644 index 0000000000..2b37345e0f --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.shd @@ -0,0 +1,11 @@ +#ifdef GL_ES +precision mediump float; +#endif +uniform sampler2D tex; +varying vec4 col; +varying vec2 tex_c; +void main() +{ + vec3 inv = vec3(1.0, 1.0, 1.0) - texture2D(tex,tex_c.xy).rgb; + gl_FragColor = vec4(inv.r, inv.g, inv.b, 1.0); +} diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_invert_nomul.h b/legacy/evas/src/modules/engines/gl_common/shader/filter_invert_nomul.h new file mode 100644 index 0000000000..2b5268ab00 --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_invert_nomul.h @@ -0,0 +1,10 @@ +"#ifdef GL_ES\n" +"precision mediump float;\n" +"#endif\n" +"uniform sampler2D tex;\n" +"varying vec4 col;\n" +"varying vec2 tex_c;\n" +"void main()\n" +"{\n" +" gl_FragColor = (vec4(0, 1.0, 1.0, 1.0) - texture2D(tex, tex_c.xy).bgra)*col;\n" +"}\n" diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_invert_nomul.shd b/legacy/evas/src/modules/engines/gl_common/shader/filter_invert_nomul.shd new file mode 100644 index 0000000000..a40509911e --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_invert_nomul.shd @@ -0,0 +1,10 @@ +#ifdef GL_ES +precision mediump float; +#endif +uniform sampler2D tex; +varying vec4 col; +varying vec2 tex_c; +void main() +{ + gl_FragColor = (vec4(0, 1.0, 1.0, 1.0) - texture2D(tex, tex_c.xy).bgra)*col; +} diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia.h b/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia.h new file mode 100644 index 0000000000..821c8245c1 --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia.h @@ -0,0 +1,16 @@ +"#ifdef GL_ES\n" +"precision mediump float;\n" +"#endif\n" +"uniform sampler2D tex;\n" +"varying vec4 col;\n" +"varying vec2 tex_c;\n" +"void main()\n" +"{\n" +" vec3 inp = texture2D(tex,tex_c.xy).abg;\n" +" vec4 sep;\n" +" sep.r = dot(inp, vec3(.393, .769, .189));\n" +" sep.g = dot(inp, vec3(.349, .686, .168));\n" +" sep.b = dot(inp, vec3(.272, .534, .131));\n" +" sep.a = texture2D(tex,tex_c.xy).r;\n" +" gl_FragColor = sep * col;\n" +"}\n" diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia.shd b/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia.shd new file mode 100644 index 0000000000..63b62081bd --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia.shd @@ -0,0 +1,16 @@ +#ifdef GL_ES +precision mediump float; +#endif +uniform sampler2D tex; +varying vec4 col; +varying vec2 tex_c; +void main() +{ + vec3 inp = texture2D(tex,tex_c.xy).abg; + vec4 sep; + sep.r = dot(inp, vec3(.393, .769, .189)); + sep.g = dot(inp, vec3(.349, .686, .168)); + sep.b = dot(inp, vec3(.272, .534, .131)); + sep.a = texture2D(tex,tex_c.xy).r; + gl_FragColor = sep * col; +} diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra.h b/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra.h new file mode 100644 index 0000000000..66f88d322f --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra.h @@ -0,0 +1,16 @@ +"#ifdef GL_ES\n" +"precision mediump float;\n" +"#endif\n" +"uniform sampler2D tex;\n" +"varying vec4 col;\n" +"varying vec2 tex_c;\n" +"void main()\n" +"{\n" +" vec3 inp = texture2D(tex,tex_c.xy).rgb;\n" +" vec4 sep;\n" +" sep.r = dot(inp, vec3(.393, .769, .189));\n" +" sep.g = dot(inp, vec3(.349, .686, .168));\n" +" sep.b = dot(inp, vec3(.272, .534, .131));\n" +" sep.a = texture2D(tex,tex_c.xy).a;\n" +" gl_FragColor = sep * col;\n" +"}\n" diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra.shd b/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra.shd new file mode 100644 index 0000000000..d267b9c9fa --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra.shd @@ -0,0 +1,16 @@ +#ifdef GL_ES +precision mediump float; +#endif +uniform sampler2D tex; +varying vec4 col; +varying vec2 tex_c; +void main() +{ + vec3 inp = texture2D(tex,tex_c.xy).rgb; + vec4 sep; + sep.r = dot(inp, vec3(.393, .769, .189)); + sep.g = dot(inp, vec3(.349, .686, .168)); + sep.b = dot(inp, vec3(.272, .534, .131)); + sep.a = texture2D(tex,tex_c.xy).a; + gl_FragColor = sep * col; +} diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.h b/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.h new file mode 100644 index 0000000000..69904850dd --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.h @@ -0,0 +1,14 @@ +"#ifdef GL_ES\n" +"precision mediump float;\n" +"#endif\n" +"uniform sampler2D tex;\n" +"varying vec4 col;\n" +"varying vec2 tex_c;\n" +"void main()\n" +"{\n" +" vec3 inp = texture2D(tex,tex_c.xy).rgb;\n" +" gl_FragColor.r = dot(inp, vec3(.393, .769, .189));\n" +" gl_FragColor.g = dot(inp, vec3(.349, .686, .168));\n" +" gl_FragColor.b = dot(inp, vec3(.272, .534, .131));\n" +" gl_FragColor.a = texture2D(tex,tex_c.xy).a;\n" +"}\n" diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.shd b/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.shd new file mode 100644 index 0000000000..f2be987690 --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.shd @@ -0,0 +1,14 @@ +#ifdef GL_ES +precision mediump float; +#endif +uniform sampler2D tex; +varying vec4 col; +varying vec2 tex_c; +void main() +{ + vec3 inp = texture2D(tex,tex_c.xy).rgb; + gl_FragColor.r = dot(inp, vec3(.393, .769, .189)); + gl_FragColor.g = dot(inp, vec3(.349, .686, .168)); + gl_FragColor.b = dot(inp, vec3(.272, .534, .131)); + gl_FragColor.a = texture2D(tex,tex_c.xy).a; +} diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_nomul.h b/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_nomul.h new file mode 100644 index 0000000000..ba4621cab0 --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_nomul.h @@ -0,0 +1,14 @@ +"#ifdef GL_ES\n" +"precision mediump float;\n" +"#endif\n" +"uniform sampler2D tex;\n" +"varying vec4 col;\n" +"varying vec2 tex_c;\n" +"void main()\n" +"{\n" +" vec3 inp = texture2D(tex,tex_c.xy).abg;\n" +" gl_FragColor.r = dot(inp, vec3(.393, .769, .189));\n" +" gl_FragColor.g = dot(inp, vec3(.349, .686, .168));\n" +" gl_FragColor.b = dot(inp, vec3(.272, .534, .131));\n" +" gl_FragColor.a = texture2D(tex,tex_c.xy).r;\n" +"}\n" diff --git a/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_nomul.shd b/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_nomul.shd new file mode 100644 index 0000000000..cdd109ed2a --- /dev/null +++ b/legacy/evas/src/modules/engines/gl_common/shader/filter_sepia_nomul.shd @@ -0,0 +1,14 @@ +#ifdef GL_ES +precision mediump float; +#endif +uniform sampler2D tex; +varying vec4 col; +varying vec2 tex_c; +void main() +{ + vec3 inp = texture2D(tex,tex_c.xy).abg; + gl_FragColor.r = dot(inp, vec3(.393, .769, .189)); + gl_FragColor.g = dot(inp, vec3(.349, .686, .168)); + gl_FragColor.b = dot(inp, vec3(.272, .534, .131)); + gl_FragColor.a = texture2D(tex,tex_c.xy).r; +}