uniform float timer;

#define PI 3.14159265358979323846
#define FREQUENCY 2.0 * PI
#define TEX_HEIGHT 512.0

float offset(float y) {
    return sin(FREQUENCY * y + timer);
}

vec4 Process(vec4 color) {
    vec2 texCoord = gl_TexCoord[0].st;
    float off = offset(texCoord.y) * 0.25 * abs(sin(timer * PI / 10.0));
    
    float scanline = floor(TEX_HEIGHT * texCoord.y);
    if (mod(scanline, 2.0) == 1.0)
        texCoord.x += off;
    else
        texCoord.x -= off;
    
    vec4 texColour = getTexel(texCoord) * color;
    return texColour;
}