#include using namespace metal; struct buf0 { /* 0x0000 */ packed_float2 resolution; }; struct tint_array_wrapper { float4 arr[16]; }; struct main_out { float4 x_GLF_color_1; }; struct tint_symbol_1 { float4 x_GLF_color_1 [[color(0)]]; }; int collatz_i1_(thread int* const v) { int count = 0; count = 0; while (true) { int const x_89 = *(v); if ((x_89 > 1)) { } else { break; } int const x_92 = *(v); if (((x_92 & 1) == 1)) { int const x_98 = *(v); *(v) = as_type((as_type(as_type((as_type(3) * as_type(x_98)))) + as_type(1))); } else { int const x_101 = *(v); *(v) = (x_101 / 2); } int const x_103 = count; count = as_type((as_type(x_103) + as_type(1))); } int const x_105 = count; return x_105; } void main_1(constant buf0& x_10, thread float4* const tint_symbol_4, thread float4* const tint_symbol_5) { float2 lin = 0.0f; int v_1 = 0; int param = 0; tint_array_wrapper indexable = {}; float4 const x_63 = *(tint_symbol_4); float2 const x_66 = x_10.resolution; lin = (float2(x_63.x, x_63.y) / x_66); float2 const x_68 = lin; lin = floor((x_68 * 8.0f)); float const x_72 = lin.x; float const x_76 = lin.y; v_1 = as_type((as_type(as_type((as_type(int(x_72)) * as_type(8)))) + as_type(int(x_76)))); int const x_79 = v_1; param = x_79; int const x_80 = collatz_i1_(&(param)); tint_array_wrapper const tint_symbol_2 = {.arr={float4(0.0f, 0.0f, 0.0f, 1.0f), float4(0.5f, 0.0f, 0.0f, 1.0f), float4(0.0f, 0.5f, 0.0f, 1.0f), float4(0.5f, 0.5f, 0.0f, 1.0f), float4(0.0f, 0.0f, 0.5f, 1.0f), float4(0.5f, 0.0f, 0.5f, 1.0f), float4(0.0f, 0.5f, 0.5f, 1.0f), float4(0.5f, 0.5f, 0.5f, 1.0f), float4(0.0f, 0.0f, 0.0f, 1.0f), float4(1.0f, 0.0f, 0.0f, 1.0f), float4(0.0f, 1.0f, 0.0f, 1.0f), float4(1.0f, 1.0f, 0.0f, 1.0f), float4(0.0f, 0.0f, 1.0f, 1.0f), float4(1.0f, 0.0f, 1.0f, 1.0f), float4(0.0f, 1.0f, 1.0f, 1.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)}}; indexable = tint_symbol_2; float4 const x_83 = indexable.arr[(x_80 % 16)]; *(tint_symbol_5) = x_83; return; } main_out tint_symbol_inner(constant buf0& x_10, float4 gl_FragCoord_param, thread float4* const tint_symbol_6, thread float4* const tint_symbol_7) { *(tint_symbol_6) = gl_FragCoord_param; main_1(x_10, tint_symbol_6, tint_symbol_7); main_out const tint_symbol_3 = {.x_GLF_color_1=*(tint_symbol_7)}; return tint_symbol_3; } fragment tint_symbol_1 tint_symbol(float4 gl_FragCoord_param [[position]], constant buf0& x_10 [[buffer(0)]]) { thread float4 tint_symbol_8 = 0.0f; thread float4 tint_symbol_9 = 0.0f; main_out const inner_result = tint_symbol_inner(x_10, gl_FragCoord_param, &(tint_symbol_8), &(tint_symbol_9)); tint_symbol_1 wrapper_result = {}; wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1; return wrapper_result; }