Function overload check cleanup. Added if statement to parsing.

This commit is contained in:
2025-01-12 22:15:02 +01:00
parent ec31046d30
commit 85b23f90e5
12 changed files with 540 additions and 3 deletions

39
test/colorful_circle.ink Normal file
View File

@@ -0,0 +1,39 @@
prop :: properties {
time : float @time;
resolution : float2 @resolution;
}
vertex main :: (pos : float3 @position) -> float4 @position {
return float4(pos, 1.0);
}
pixel main :: (pos : float4 @outposition) -> float4 @target {
p := float2(2.0 * pos.x - prop.resolution.x, 2.0 * pos.y - prop.resolution.y) / prop.resolution.y;
tau := 3.1415926535 * 2.0;
a := atan(p.x, p.y);
r := length(p) * 0.75;
uv := float2(a / tau, r);
x_col := (uv.x - (p.time / 3.0)) * 3.0;
x_col = mod(x_col, 3.0);
hor_colour := float3(0.25, 0.25, 0.25);
if x_col < 1.0 {
horColour.r += 1.0 - xCol;
horColour.g += xCol;
} else if x_col < 2.0 {
xCol -= 1.0;
horColour.g += 1.0 - xCol;
horColour.b += xCol;
} else {
x_col -= 2.0;
hor_colour.b += 1.0 - x_col;
hor_colour.r += x_col;
}
uv = (2.0 * uv) - 1.0;
beam_width = (0.7+0.5*cos(uv.x*10.0*tau*0.15*clamp(floor(5.0 + 10.0*cos(iTime)), 0.0, 10.0))) * abs(1.0 / (30.0 * uv.y));
hor_beam = float3(beam_width);
result := float4(((hor_beam) * hor_colour), 1.0);
}