#include using namespace metal; struct BST { int data; int leftIndex; int rightIndex; }; struct buf0 { /* 0x0000 */ packed_float2 injectionSwitch; }; struct tint_array_wrapper { float arr[10]; }; struct Obj { tint_array_wrapper odd_numbers; tint_array_wrapper even_numbers; }; struct tint_array_wrapper_1 { BST arr[10]; }; struct tint_array_wrapper_2 { float arr[50]; }; struct main_out { float4 x_GLF_color_1; }; struct tint_symbol_2 { float4 x_GLF_color_1 [[color(0)]]; }; void makeTreeNode_struct_BST_i1_i1_i11_i1_(thread BST* const tree, thread int* const data) { int const x_74 = *(data); (*(tree)).data = x_74; (*(tree)).leftIndex = -1; (*(tree)).rightIndex = -1; return; } void insert_i1_i1_(constant buf0& x_27, thread int* const treeIndex, thread int* const data_1, thread tint_array_wrapper_1* const tint_symbol_5) { int baseIndex = 0; BST param = {}; int param_1 = 0; BST param_2 = {}; int param_3 = 0; int GLF_live8i = 0; tint_array_wrapper_2 GLF_live8A = {}; baseIndex = 0; while (true) { int const x_75 = baseIndex; int const x_76 = *(treeIndex); if ((x_75 <= x_76)) { } else { break; } int const x_77 = *(data_1); int const x_78 = baseIndex; int const x_79 = (*(tint_symbol_5)).arr[x_78].data; if ((x_77 <= x_79)) { int const x_80 = baseIndex; int const x_81 = (*(tint_symbol_5)).arr[x_80].leftIndex; if ((x_81 == -1)) { int const x_82 = baseIndex; int const x_83 = *(treeIndex); (*(tint_symbol_5)).arr[x_82].leftIndex = x_83; int const x_84 = *(treeIndex); BST const x_350 = (*(tint_symbol_5)).arr[x_84]; param = x_350; int const x_85 = *(data_1); param_1 = x_85; makeTreeNode_struct_BST_i1_i1_i11_i1_(&(param), &(param_1)); BST const x_352 = param; (*(tint_symbol_5)).arr[x_84] = x_352; return; } else { int const x_86 = baseIndex; int const x_87 = (*(tint_symbol_5)).arr[x_86].leftIndex; baseIndex = x_87; continue; } } else { int const x_88 = baseIndex; int const x_89 = (*(tint_symbol_5)).arr[x_88].rightIndex; if ((x_89 == -1)) { int const x_90 = baseIndex; int const x_91 = *(treeIndex); (*(tint_symbol_5)).arr[x_90].rightIndex = x_91; int const x_92 = *(treeIndex); BST const x_362 = (*(tint_symbol_5)).arr[x_92]; param_2 = x_362; int const x_93 = *(data_1); param_3 = x_93; makeTreeNode_struct_BST_i1_i1_i11_i1_(&(param_2), &(param_3)); BST const x_364 = param_2; (*(tint_symbol_5)).arr[x_92] = x_364; return; } else { GLF_live8i = 1; int const x_94 = GLF_live8i; int const x_95 = GLF_live8i; int const x_96 = GLF_live8i; int const x_369 = select(0, x_96, ((x_94 >= 0) & (x_95 < 50))); float const x_371 = GLF_live8A.arr[0]; float const x_373 = GLF_live8A.arr[x_369]; GLF_live8A.arr[x_369] = (x_373 + x_371); while (true) { int const x_97 = baseIndex; int const x_98 = (*(tint_symbol_5)).arr[x_97].rightIndex; baseIndex = x_98; { float const x_382 = x_27.injectionSwitch.x; float const x_384 = x_27.injectionSwitch.y; if ((x_382 > x_384)) { } else { break; } } } continue; } } } return; } int search_i1_(thread int* const target, thread tint_array_wrapper_1* const tint_symbol_6) { int index = 0; BST currentNode = {}; int x_387 = 0; index = 0; while (true) { int const x_99 = index; if ((x_99 != -1)) { } else { break; } int const x_100 = index; BST const x_395 = (*(tint_symbol_6)).arr[x_100]; currentNode = x_395; int const x_101 = currentNode.data; int const x_102 = *(target); if ((x_101 == x_102)) { int const x_103 = *(target); return x_103; } int const x_104 = *(target); int const x_105 = currentNode.data; if ((x_104 > x_105)) { int const x_106 = currentNode.rightIndex; x_387 = x_106; } else { int const x_107 = currentNode.leftIndex; x_387 = x_107; } int const x_108 = x_387; index = x_108; } return -1; } float makeFrame_f1_(thread float* const v, thread tint_array_wrapper_1* const tint_symbol_7) { int param_5 = 0; int param_6 = 0; int param_7 = 0; float const x_418 = *(v); *(v) = (x_418 * 6.5f); float const x_420 = *(v); if ((x_420 < 1.5f)) { param_5 = 100; int const x_110 = search_i1_(&(param_5), tint_symbol_7); return float(x_110); } float const x_425 = *(v); if ((x_425 < 4.0f)) { return 0.0f; } float const x_429 = *(v); param_6 = 6; int const x_111 = search_i1_(&(param_6), tint_symbol_7); if ((x_429 < float(x_111))) { return 1.0f; } param_7 = 30; int const x_112 = search_i1_(&(param_7), tint_symbol_7); return (10.0f + float(x_112)); } float3 hueColor_f1_(thread float* const angle, thread tint_array_wrapper_1* const tint_symbol_8) { float nodeData = 0.0f; int param_4 = 0; param_4 = 15; int const x_109 = search_i1_(&(param_4), tint_symbol_8); nodeData = float(x_109); float const x_409 = *(angle); float const x_410 = nodeData; return ((float3(30.0f, 30.0f, 30.0f) + (float3(1.0f, 5.0f, x_410) * x_409)) / float3(50.0f, 50.0f, 50.0f)); } void main_1(constant buf0& x_27, thread tint_array_wrapper_1* const tint_symbol_9, thread float4* const tint_symbol_10, thread float4* const tint_symbol_11) { int treeIndex_1 = 0; BST param_8 = {}; int param_9 = 0; int param_10 = 0; int param_11 = 0; int GLF_live1_looplimiter2 = 0; int GLF_live1i = 0; int param_12 = 0; int param_13 = 0; int param_14 = 0; int param_15 = 0; int param_16 = 0; int param_17 = 0; int param_18 = 0; int param_19 = 0; int param_20 = 0; int param_21 = 0; int param_22 = 0; int param_23 = 0; int GLF_live4_looplimiter3 = 0; int GLF_live4i = 0; int GLF_live4index = 0; Obj GLF_live4obj = {}; int param_24 = 0; int param_25 = 0; int param_26 = 0; int param_27 = 0; float2 z = 0.0f; float x_1 = 0.0f; float param_28 = 0.0f; float y_1 = 0.0f; float param_29 = 0.0f; int sum = 0; int target_1 = 0; int result = 0; int param_30 = 0; float a = 0.0f; float3 x_235 = 0.0f; float param_31 = 0.0f; treeIndex_1 = 0; BST const x_237 = (*(tint_symbol_9)).arr[0]; param_8 = x_237; param_9 = 9; makeTreeNode_struct_BST_i1_i1_i11_i1_(&(param_8), &(param_9)); BST const x_239 = param_8; (*(tint_symbol_9)).arr[0] = x_239; int const x_113 = treeIndex_1; treeIndex_1 = (x_113 + 1); int const x_115 = treeIndex_1; param_10 = x_115; param_11 = 5; insert_i1_i1_(x_27, &(param_10), &(param_11), tint_symbol_9); int const x_116 = treeIndex_1; treeIndex_1 = (x_116 + 1); GLF_live1_looplimiter2 = 0; GLF_live1i = 0; while (true) { if (true) { } else { break; } int const x_118 = GLF_live1_looplimiter2; if ((x_118 >= 7)) { break; } int const x_119 = GLF_live1_looplimiter2; GLF_live1_looplimiter2 = (x_119 + 1); { int const x_121 = GLF_live1i; GLF_live1i = (x_121 + 1); } } int const x_123 = treeIndex_1; param_12 = x_123; param_13 = 12; insert_i1_i1_(x_27, &(param_12), &(param_13), tint_symbol_9); int const x_124 = treeIndex_1; treeIndex_1 = (x_124 + 1); int const x_126 = treeIndex_1; param_14 = x_126; param_15 = 15; insert_i1_i1_(x_27, &(param_14), &(param_15), tint_symbol_9); int const x_127 = treeIndex_1; treeIndex_1 = (x_127 + 1); int const x_129 = treeIndex_1; param_16 = x_129; param_17 = 7; insert_i1_i1_(x_27, &(param_16), &(param_17), tint_symbol_9); int const x_130 = treeIndex_1; treeIndex_1 = (x_130 + 1); int const x_132 = treeIndex_1; param_18 = x_132; param_19 = 8; insert_i1_i1_(x_27, &(param_18), &(param_19), tint_symbol_9); int const x_133 = treeIndex_1; treeIndex_1 = (x_133 + 1); int const x_135 = treeIndex_1; param_20 = x_135; param_21 = 2; insert_i1_i1_(x_27, &(param_20), &(param_21), tint_symbol_9); int const x_136 = treeIndex_1; treeIndex_1 = (x_136 + 1); int const x_138 = treeIndex_1; param_22 = x_138; param_23 = 6; insert_i1_i1_(x_27, &(param_22), &(param_23), tint_symbol_9); int const x_139 = treeIndex_1; treeIndex_1 = (x_139 + 1); GLF_live4_looplimiter3 = 0; GLF_live4i = 0; while (true) { if (true) { } else { break; } int const x_141 = GLF_live4_looplimiter3; if ((x_141 >= 3)) { break; } int const x_142 = GLF_live4_looplimiter3; GLF_live4_looplimiter3 = (x_142 + 1); GLF_live4index = 1; int const x_144 = GLF_live4index; int const x_145 = GLF_live4index; int const x_146 = GLF_live4index; float const x_269 = GLF_live4obj.even_numbers.arr[1]; GLF_live4obj.even_numbers.arr[select(0, x_146, ((x_144 >= 0) & (x_145 < 10)))] = x_269; int const x_147 = GLF_live4i; int const x_148 = GLF_live4i; int const x_149 = GLF_live4i; GLF_live4obj.even_numbers.arr[select(0, x_149, ((x_147 >= 0) & (x_148 < 10)))] = 1.0f; { int const x_150 = GLF_live4i; GLF_live4i = (x_150 + 1); } } int const x_152 = treeIndex_1; param_24 = x_152; param_25 = 17; insert_i1_i1_(x_27, &(param_24), &(param_25), tint_symbol_9); float const x_278 = x_27.injectionSwitch.x; float const x_280 = x_27.injectionSwitch.y; if ((x_278 > x_280)) { return; } int const x_153 = treeIndex_1; treeIndex_1 = (x_153 + 1); int const x_155 = treeIndex_1; param_26 = x_155; param_27 = 13; insert_i1_i1_(x_27, &(param_26), &(param_27), tint_symbol_9); float4 const x_285 = *(tint_symbol_10); z = (float2(x_285.y, x_285.x) / float2(256.0f, 256.0f)); float const x_289 = z.x; param_28 = x_289; float const x_290 = makeFrame_f1_(&(param_28), tint_symbol_9); x_1 = x_290; float const x_292 = z.y; param_29 = x_292; float const x_293 = makeFrame_f1_(&(param_29), tint_symbol_9); y_1 = x_293; sum = -100; target_1 = 0; while (true) { int const x_156 = target_1; if ((x_156 < 20)) { } else { break; } int const x_157 = target_1; param_30 = x_157; int const x_158 = search_i1_(&(param_30), tint_symbol_9); result = x_158; int const x_159 = result; if ((x_159 > 0)) { } else { int const x_160 = result; switch(x_160) { case 0: { return; break; } case -1: { int const x_161 = sum; sum = (x_161 + 1); break; } default: { break; } } } { int const x_163 = target_1; target_1 = (x_163 + 1); } } float const x_307 = x_1; float const x_308 = y_1; int const x_165 = sum; a = (x_307 + (x_308 * float(x_165))); float const x_313 = x_27.injectionSwitch.x; float const x_315 = x_27.injectionSwitch.y; if ((x_313 < x_315)) { x_235 = float3(1.0f, 0.0f, 0.0f); } else { float const x_320 = a; param_31 = x_320; float3 const x_321 = hueColor_f1_(&(param_31), tint_symbol_9); x_235 = x_321; } float3 const x_322 = x_235; *(tint_symbol_11) = float4(x_322.x, x_322.y, x_322.z, 1.0f); return; } fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], constant buf0& x_27 [[buffer(0)]]) { thread float4 tint_symbol_12 = 0.0f; thread tint_array_wrapper_1 tint_symbol_13 = {}; thread float4 tint_symbol_14 = 0.0f; tint_symbol_12 = gl_FragCoord_param; main_1(x_27, &(tint_symbol_13), &(tint_symbol_12), &(tint_symbol_14)); main_out const tint_symbol_3 = {.x_GLF_color_1=tint_symbol_14}; tint_symbol_2 const tint_symbol_4 = {.x_GLF_color_1=tint_symbol_3.x_GLF_color_1}; return tint_symbol_4; }