summaryrefslogtreecommitdiff
path: root/wimmel.frag
diff options
context:
space:
mode:
Diffstat (limited to 'wimmel.frag')
-rw-r--r--wimmel.frag27
1 files changed, 27 insertions, 0 deletions
diff --git a/wimmel.frag b/wimmel.frag
new file mode 100644
index 0000000..d4cb7ef
--- /dev/null
+++ b/wimmel.frag
@@ -0,0 +1,27 @@
+varying vec2 v_texcoord;
+uniform sampler2D tex;
+uniform vec2 pixelsize;
+uniform vec4 search_rect;
+uniform int barrier;
+
+void
+main()
+{
+ float i, j;
+ float width = search_rect[2];
+ float height = search_rect[3];
+ int diff = 0;
+
+ for (i = 0.0; i < width && diff < barrier; i += pixelsize.x) {
+ for (j = 0.0; j < height && diff < barrier; j += pixelsize.y) {
+ vec4 match = texture2D(tex, search_rect.xy + vec2(i,j));
+ vec4 orig = texture2D(tex, v_texcoord + vec2(i,j));
+
+ diff += int(any(greaterThan(abs(orig - match), vec4(0.2))));
+ }
+ }
+
+ gl_FragColor = vec4(float(diff < barrier), 0.0, 0.0, 0.0);
+}
+
+// vim:ft=c: