Evas: Filter: Add the shaders - nice and safe change here.
authornash <nash@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 19 Apr 2011 05:47:51 +0000 (05:47 +0000)
committernash <nash@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 19 Apr 2011 05:47:51 +0000 (05:47 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@58725 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

24 files changed:
src/modules/engines/gl_common/shader/filter_greyscale.h [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_greyscale.shd [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_greyscale_bgra.h [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_greyscale_bgra.shd [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.h [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.shd [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_greyscale_nomul.h [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_greyscale_nomul.shd [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_invert.h [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_invert.shd [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_invert_bgra.h [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_invert_bgra.shd [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.h [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.shd [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_invert_nomul.h [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_invert_nomul.shd [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_sepia.h [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_sepia.shd [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_sepia_bgra.h [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_sepia_bgra.shd [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.h [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.shd [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_sepia_nomul.h [new file with mode: 0644]
src/modules/engines/gl_common/shader/filter_sepia_nomul.shd [new file with mode: 0644]

diff --git a/src/modules/engines/gl_common/shader/filter_greyscale.h b/src/modules/engines/gl_common/shader/filter_greyscale.h
new file mode 100644 (file)
index 0000000..7bb1b7b
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_greyscale.shd b/src/modules/engines/gl_common/shader/filter_greyscale.shd
new file mode 100644 (file)
index 0000000..014e510
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_greyscale_bgra.h b/src/modules/engines/gl_common/shader/filter_greyscale_bgra.h
new file mode 100644 (file)
index 0000000..e29c26a
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_greyscale_bgra.shd b/src/modules/engines/gl_common/shader/filter_greyscale_bgra.shd
new file mode 100644 (file)
index 0000000..ec9ac11
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.h b/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.h
new file mode 100644 (file)
index 0000000..687670a
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.shd b/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.shd
new file mode 100644 (file)
index 0000000..b4dcc30
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_greyscale_nomul.h b/src/modules/engines/gl_common/shader/filter_greyscale_nomul.h
new file mode 100644 (file)
index 0000000..1de16b9
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_greyscale_nomul.shd b/src/modules/engines/gl_common/shader/filter_greyscale_nomul.shd
new file mode 100644 (file)
index 0000000..327e311
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_invert.h b/src/modules/engines/gl_common/shader/filter_invert.h
new file mode 100644 (file)
index 0000000..2b5268a
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_invert.shd b/src/modules/engines/gl_common/shader/filter_invert.shd
new file mode 100644 (file)
index 0000000..a405099
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_invert_bgra.h b/src/modules/engines/gl_common/shader/filter_invert_bgra.h
new file mode 100644 (file)
index 0000000..6ab298d
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_invert_bgra.shd b/src/modules/engines/gl_common/shader/filter_invert_bgra.shd
new file mode 100644 (file)
index 0000000..1e60507
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.h b/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.h
new file mode 100644 (file)
index 0000000..b0d0d53
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.shd b/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.shd
new file mode 100644 (file)
index 0000000..2b37345
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_invert_nomul.h b/src/modules/engines/gl_common/shader/filter_invert_nomul.h
new file mode 100644 (file)
index 0000000..2b5268a
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_invert_nomul.shd b/src/modules/engines/gl_common/shader/filter_invert_nomul.shd
new file mode 100644 (file)
index 0000000..a405099
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_sepia.h b/src/modules/engines/gl_common/shader/filter_sepia.h
new file mode 100644 (file)
index 0000000..821c824
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_sepia.shd b/src/modules/engines/gl_common/shader/filter_sepia.shd
new file mode 100644 (file)
index 0000000..63b6208
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_sepia_bgra.h b/src/modules/engines/gl_common/shader/filter_sepia_bgra.h
new file mode 100644 (file)
index 0000000..66f88d3
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_sepia_bgra.shd b/src/modules/engines/gl_common/shader/filter_sepia_bgra.shd
new file mode 100644 (file)
index 0000000..d267b9c
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.h b/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.h
new file mode 100644 (file)
index 0000000..6990485
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.shd b/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.shd
new file mode 100644 (file)
index 0000000..f2be987
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_sepia_nomul.h b/src/modules/engines/gl_common/shader/filter_sepia_nomul.h
new file mode 100644 (file)
index 0000000..ba4621c
--- /dev/null
@@ -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/src/modules/engines/gl_common/shader/filter_sepia_nomul.shd b/src/modules/engines/gl_common/shader/filter_sepia_nomul.shd
new file mode 100644 (file)
index 0000000..cdd109e
--- /dev/null
@@ -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;
+}