
////////////////////////////////////////////////////////////////////////////////////////////////////////////

const float fade = 1.;

void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
    vec2 uv = fragCoord / iResolution.xy;

    float amount = 0.0;
    
    amount = (1.0 + sin(iTime*6.0)) * 0.5;
    amount *= 1.0 + sin(iTime*16.0) * 0.5;
    amount *= 1.0 + sin(iTime*19.0) * 0.5;
    amount *= 1.0 + sin(iTime*27.0) * 0.5;
    amount = pow(amount, 3.0);

    amount *= 0.05;
    
    amount *= fade;
    
    vec3 col;
    col.r = texture2D(iChannel[0], vec2(uv.x+amount,uv.y) ).r;
    col.g = texture2D(iChannel[0], uv ).g;
    col.b = texture2D(iChannel[0], vec2(uv.x-amount,uv.y) ).b;

    col *= (1.0 - amount * 0.5);
    
    fragColor = vec4(col, texture2D(iChannel[0], uv).a);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////

void main() {
    mainImage(gl_FragColor, gl_FragCoord.xy);
}
