blob: 04458e766779e5ad2d62e0006c590e8e35d3ace5 [file] [log] [blame]
#include <metal_stdlib>
using namespace metal;
struct buf0 {
/* 0x0000 */ packed_float2 resolution;
};
struct buf1 {
/* 0x0000 */ packed_float2 injectionSwitch;
};
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 [[color(0)]];
};
float compute_value_f1_f1_(thread float* const limit, thread float* const thirty_two) {
float x_104 = 0.0f;
float x_104_phi = 0.0f;
int x_107_phi = 0;
x_104_phi = -0.5f;
x_107_phi = 1;
while (true) {
float x_126 = 0.0f;
float x_125 = 0.0f;
int x_108 = 0;
float x_105_phi = 0.0f;
x_104 = x_104_phi;
int const x_107 = x_107_phi;
if ((x_107 < 800)) {
} else {
break;
}
float x_124 = 0.0f;
float x_125_phi = 0.0f;
if (((x_107 % 32) == 0)) {
x_126 = (x_104 + 0.400000006f);
x_105_phi = x_126;
} else {
float const x_118 = *(thirty_two);
x_125_phi = x_104;
if ((fmod(float(x_107), rint(x_118)) <= 0.01f)) {
x_124 = (x_104 + 100.0f);
x_125_phi = x_124;
}
x_125 = x_125_phi;
x_105_phi = x_125;
}
float x_105 = 0.0f;
x_105 = x_105_phi;
float const x_128 = *(limit);
if ((float(x_107) >= x_128)) {
return x_105;
}
{
x_108 = as_type<int>((as_type<uint>(x_107) + as_type<uint>(1)));
x_104_phi = x_105;
x_107_phi = x_108;
}
}
return x_104;
}
void main_1(constant buf0& x_10, constant buf1& x_16, thread float4* const tint_symbol_5, thread float4* const tint_symbol_6) {
float3 c = 0.0f;
float param = 0.0f;
float param_1 = 0.0f;
float param_2 = 0.0f;
float param_3 = 0.0f;
float3 x_54 = 0.0f;
int x_74_phi = 0;
c = float3(7.0f, 8.0f, 9.0f);
float const x_56 = x_10.resolution.x;
float const x_58 = rint((x_56 * 0.125f));
float const x_60 = (*(tint_symbol_5)).x;
param = x_60;
param_1 = x_58;
float const x_61 = compute_value_f1_f1_(&(param), &(param_1));
c.x = x_61;
float const x_64 = (*(tint_symbol_5)).y;
param_2 = x_64;
param_3 = x_58;
float const x_65 = compute_value_f1_f1_(&(param_2), &(param_3));
c.y = x_65;
float const x_67 = c.x;
float3 const x_68 = c;
x_54 = x_68;
float const x_70 = x_54.y;
c.z = (x_67 + x_70);
x_74_phi = 0;
while (true) {
int x_75 = 0;
int const x_74 = x_74_phi;
if ((x_74 < 3)) {
} else {
break;
}
int const x_80_save = x_74;
float const x_81 = c[x_80_save];
if ((x_81 >= 1.0f)) {
float const x_86 = x_16.injectionSwitch.x;
float const x_88 = x_16.injectionSwitch.y;
if ((x_86 > x_88)) {
discard_fragment();
}
float const x_92 = c[x_80_save];
float const x_93 = c[x_80_save];
c[x_80_save] = (x_92 * x_93);
}
{
x_75 = as_type<int>((as_type<uint>(x_74) + as_type<uint>(1)));
x_74_phi = x_75;
}
}
float3 const x_95 = c;
float3 const x_97 = normalize(fabs(x_95));
*(tint_symbol_6) = float4(x_97.x, x_97.y, x_97.z, 1.0f);
return;
}
fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], constant buf0& x_10 [[buffer(0)]], constant buf1& x_16 [[buffer(1)]]) {
thread float4 tint_symbol_7 = 0.0f;
thread float4 tint_symbol_8 = 0.0f;
tint_symbol_7 = gl_FragCoord_param;
main_1(x_10, x_16, &(tint_symbol_7), &(tint_symbol_8));
main_out const tint_symbol_3 = {.x_GLF_color_1=tint_symbol_8};
tint_symbol_2 const tint_symbol_4 = {.x_GLF_color_1=tint_symbol_3.x_GLF_color_1};
return tint_symbol_4;
}