#version 150 in vec2 texCoord; uniform sampler2DRect selection; uniform float spacing; uniform float threshold; uniform float time; uniform vec4 borderColor1; uniform vec4 borderColor2; uniform float centerSampleMix; out vec4 fragColor; void main() { float centerSample = step(threshold, texture(selection, vec2(texCoord.x, texCoord.y)).r); float luminance = step(0.5, mod(gl_FragCoord.x + gl_FragCoord.y + time * 2 * spacing, spacing) / spacing); fragColor = mix(borderColor1, borderColor2, luminance) * centerSample * centerSampleMix; }