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)); } ]]>