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, 1.0); } // vim:ft=c: