extern float vortex_amt;

#ifdef VERTEX
vec4 position( mat4 transform_projection, vec4 vertex_position )
{
    vec2 uv = (vertex_position.xy - 0.5*love_ScreenSize.xy)/length(love_ScreenSize.xy);

    float effectRadius = 1.6 - 0.05*vortex_amt;
    float effectAngle = 0.5 + 0.15*vortex_amt;
    
    float len = length(uv * vec2(love_ScreenSize.x / love_ScreenSize.y, 1.));
    float angle = atan(uv.y, uv.x) + effectAngle * smoothstep(effectRadius, 0., len);
    float radius = length(uv);

    vec2 center = 0.5*love_ScreenSize.xy/length(love_ScreenSize.xy);

    vertex_position.x = (radius * cos(angle) + center.x)*length(love_ScreenSize.xy);
    vertex_position.y = (radius * sin(angle) + center.y)*length(love_ScreenSize.xy);
    return transform_projection * vertex_position;
}
#endif