From 5b50311c440dfbb2f8667161d78ca673dfdcff4b Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Wed, 14 Mar 2012 20:56:58 +0100 Subject: Add wimmel_gl prototype Uses a shader to search for matching subimages. --- wimmel.frag | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 wimmel.frag (limited to 'wimmel.frag') 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: -- cgit