varying vec2 center_vec;
float PI2 = radians(360.0);
void vert ()
{
center_vec = TexCoord - center;
//Multiply by x/y ratio so we see a sphere on the screen
//instead of an ellipse.
center_vec.y *= Texture0Info.y / Texture0Info.x;
}
1.0) {
texc = TexCoord;
} else {
float rotation_amount = (1.0 - dist_to_center) * (1.0 - dist_to_center);
float r = PI2 * rotation_amount * spiral / 4.0;
float cos_r = cos(r);
float sin_r = sin(r);
mat2 rotation = mat2(cos_r, sin_r, -sin_r, cos_r);
texc = center + rotation * (TexCoord - center);
}
if ( texc.x < 0.0 || texc.x > 1.0 || texc.y < 0.0 || texc.y > 1.0 )
gl_FragColor = vec4(0.0);
else
colorOutput(texture2D_0(texc));
}
]]>