blob: 3ad0c378f04e170e76d88f987680aedea672f71b [file] [log] [blame]
/*
* When calling makeShader, pass
* radius_scale 0.5
* center x, y
* color0 r, g, b, a
* color1 r, g, b, a
*/
function MakeSpiralShaderEffect(CanvasKit) {
const _spiralSkSL = `
uniform float rad_scale;
uniform float2 in_center;
uniform float4 in_colors0;
uniform float4 in_colors1;
half4 main(float2 p) {
float2 pp = p - in_center;
float radius = sqrt(dot(pp, pp));
radius = sqrt(radius);
float angle = atan(pp.y / pp.x);
float t = (angle + 3.1415926/2) / (3.1415926);
t += radius * rad_scale;
t = fract(t);
return half4(mix(in_colors0, in_colors1, t));
}`;
return CanvasKit.RuntimeEffect.Make(_spiralSkSL);
}