uniform sampler2D tex0;
uniform float time;

void main() {
    float BarrelPower = 0.2;
    vec2 p = gl_TexCoord[0].st;
    float theta  = atan(p.y, p.x);
    float radius = length(p);
    radius = pow(radius, BarrelPower);
    p.x = radius * cos(theta);
    p.y = radius * sin(theta);
    vec2 tc = vec2(0.5 * (p + 1.0));
    gl_FragColor = texture2D(tex0, tc);
}
