#include using namespace metal; struct buf0 { /* 0x0000 */ packed_float2 injectionSwitch; }; struct tint_array_wrapper { int arr[10]; }; struct main_out { float4 x_GLF_color_1; }; struct tint_symbol_2 { float4 x_GLF_color_1 [[color(0)]]; }; void merge_i1_i1_i1_(thread int* const from, thread int* const mid, thread int* const to, thread tint_array_wrapper* const tint_symbol_5, thread tint_array_wrapper* const tint_symbol_6) { int k = 0; int i = 0; int j = 0; int i_1 = 0; int const x_260 = *(from); k = x_260; int const x_261 = *(from); i = x_261; int const x_262 = *(mid); j = (x_262 + 1); while (true) { int const x_268 = i; int const x_269 = *(mid); int const x_271 = j; int const x_272 = *(to); if (((x_268 <= x_269) & (x_271 <= x_272))) { } else { break; } int const x_276 = i; int const x_278 = (*(tint_symbol_5)).arr[x_276]; int const x_279 = j; int const x_281 = (*(tint_symbol_5)).arr[x_279]; if ((x_278 < x_281)) { int const x_286 = k; k = (x_286 + 1); int const x_288 = i; i = (x_288 + 1); int const x_291 = (*(tint_symbol_5)).arr[x_288]; (*(tint_symbol_6)).arr[x_286] = x_291; } else { int const x_293 = k; k = (x_293 + 1); int const x_295 = j; j = (x_295 + 1); int const x_298 = (*(tint_symbol_5)).arr[x_295]; (*(tint_symbol_6)).arr[x_293] = x_298; } } while (true) { int const x_304 = i; int const x_306 = i; int const x_307 = *(mid); if (((x_304 < 10) & (x_306 <= x_307))) { } else { break; } int const x_311 = k; k = (x_311 + 1); int const x_313 = i; i = (x_313 + 1); int const x_316 = (*(tint_symbol_5)).arr[x_313]; (*(tint_symbol_6)).arr[x_311] = x_316; } int const x_318 = *(from); i_1 = x_318; while (true) { int const x_323 = i_1; int const x_324 = *(to); if ((x_323 <= x_324)) { } else { break; } int const x_327 = i_1; int const x_328 = i_1; int const x_330 = (*(tint_symbol_6)).arr[x_328]; (*(tint_symbol_5)).arr[x_327] = x_330; { int const x_332 = i_1; i_1 = (x_332 + 1); } } return; } int func_i1_i1_(thread int* const m, thread int* const high, thread float4* const tint_symbol_7) { int x = 0; int x_335 = 0; int x_336 = 0; float const x_338 = (*(tint_symbol_7)).x; if ((x_338 >= 0.0f)) { if (false) { int const x_346 = *(high); x_336 = (x_346 << as_type(0)); } else { x_336 = 4; } int const x_348 = x_336; x_335 = (1 << as_type(x_348)); } else { x_335 = 1; } int const x_350 = x_335; x = x_350; int const x_351 = x; x = (x_351 >> as_type(4)); int const x_353 = *(m); int const x_355 = *(m); int const x_357 = *(m); int const x_359 = x; return clamp((2 * x_353), (2 * x_355), ((2 * x_357) / x_359)); } void mergeSort_(thread tint_array_wrapper* const tint_symbol_8, thread tint_array_wrapper* const tint_symbol_9, thread float4* const tint_symbol_10) { int low = 0; int high_1 = 0; int m_1 = 0; int i_2 = 0; int from_1 = 0; int mid_1 = 0; int to_1 = 0; int param = 0; int param_1 = 0; int param_2 = 0; int param_3 = 0; int param_4 = 0; low = 0; high_1 = 9; m_1 = 1; while (true) { int const x_367 = m_1; int const x_368 = high_1; if ((x_367 <= x_368)) { } else { break; } int const x_371 = low; i_2 = x_371; while (true) { int const x_376 = i_2; int const x_377 = high_1; if ((x_376 < x_377)) { } else { break; } int const x_380 = i_2; from_1 = x_380; int const x_381 = i_2; int const x_382 = m_1; mid_1 = ((x_381 + x_382) - 1); int const x_385 = i_2; int const x_386 = m_1; int const x_390 = high_1; to_1 = min(((x_385 + (2 * x_386)) - 1), x_390); int const x_392 = from_1; param = x_392; int const x_393 = mid_1; param_1 = x_393; int const x_394 = to_1; param_2 = x_394; merge_i1_i1_i1_(&(param), &(param_1), &(param_2), tint_symbol_8, tint_symbol_9); { int const x_396 = m_1; param_3 = x_396; int const x_397 = high_1; param_4 = x_397; int const x_398 = func_i1_i1_(&(param_3), &(param_4), tint_symbol_10); int const x_399 = i_2; i_2 = (x_399 + x_398); } } { int const x_401 = m_1; m_1 = (2 * x_401); } } return; } void main_1(constant buf0& x_34, thread tint_array_wrapper* const tint_symbol_11, thread tint_array_wrapper* const tint_symbol_12, thread float4* const tint_symbol_13, thread float4* const tint_symbol_14) { int i_3 = 0; int j_1 = 0; float grey = 0.0f; float const x_93 = x_34.injectionSwitch.x; i_3 = int(x_93); while (true) { int const x_99 = i_3; switch(x_99) { case 9: { int const x_129 = i_3; (*(tint_symbol_11)).arr[x_129] = -5; break; } case 8: { int const x_127 = i_3; (*(tint_symbol_11)).arr[x_127] = -4; break; } case 7: { int const x_125 = i_3; (*(tint_symbol_11)).arr[x_125] = -3; break; } case 6: { int const x_123 = i_3; (*(tint_symbol_11)).arr[x_123] = -2; break; } case 5: { int const x_121 = i_3; (*(tint_symbol_11)).arr[x_121] = -1; break; } case 4: { int const x_119 = i_3; (*(tint_symbol_11)).arr[x_119] = 0; break; } case 3: { int const x_117 = i_3; (*(tint_symbol_11)).arr[x_117] = 1; break; } case 2: { int const x_115 = i_3; (*(tint_symbol_11)).arr[x_115] = 2; break; } case 1: { int const x_113 = i_3; (*(tint_symbol_11)).arr[x_113] = 3; break; } case 0: { int const x_111 = i_3; (*(tint_symbol_11)).arr[x_111] = 4; break; } default: { break; } } int const x_131 = i_3; i_3 = (x_131 + 1); { int const x_133 = i_3; if ((x_133 < 10)) { } else { break; } } } j_1 = 0; while (true) { int const x_139 = j_1; if ((x_139 < 10)) { } else { break; } int const x_142 = j_1; int const x_143 = j_1; int const x_145 = (*(tint_symbol_11)).arr[x_143]; (*(tint_symbol_12)).arr[x_142] = x_145; { int const x_147 = j_1; j_1 = (x_147 + 1); } } mergeSort_(tint_symbol_11, tint_symbol_12, tint_symbol_13); float const x_151 = (*(tint_symbol_13)).y; if ((int(x_151) < 30)) { int const x_158 = (*(tint_symbol_11)).arr[0]; grey = (0.5f + (float(x_158) / 10.0f)); } else { float const x_163 = (*(tint_symbol_13)).y; if ((int(x_163) < 60)) { int const x_170 = (*(tint_symbol_11)).arr[1]; grey = (0.5f + (float(x_170) / 10.0f)); } else { float const x_175 = (*(tint_symbol_13)).y; if ((int(x_175) < 90)) { int const x_182 = (*(tint_symbol_11)).arr[2]; grey = (0.5f + (float(x_182) / 10.0f)); } else { float const x_187 = (*(tint_symbol_13)).y; if ((int(x_187) < 120)) { int const x_194 = (*(tint_symbol_11)).arr[3]; grey = (0.5f + (float(x_194) / 10.0f)); } else { float const x_199 = (*(tint_symbol_13)).y; if ((int(x_199) < 150)) { discard_fragment(); } else { float const x_206 = (*(tint_symbol_13)).y; if ((int(x_206) < 180)) { int const x_213 = (*(tint_symbol_11)).arr[5]; grey = (0.5f + (float(x_213) / 10.0f)); } else { float const x_218 = (*(tint_symbol_13)).y; if ((int(x_218) < 210)) { int const x_225 = (*(tint_symbol_11)).arr[6]; grey = (0.5f + (float(x_225) / 10.0f)); } else { float const x_230 = (*(tint_symbol_13)).y; if ((int(x_230) < 240)) { int const x_237 = (*(tint_symbol_11)).arr[7]; grey = (0.5f + (float(x_237) / 10.0f)); } else { float const x_242 = (*(tint_symbol_13)).y; if ((int(x_242) < 270)) { int const x_249 = (*(tint_symbol_11)).arr[8]; grey = (0.5f + (float(x_249) / 10.0f)); } else { discard_fragment(); } } } } } } } } } float const x_253 = grey; float3 const x_254 = float3(x_253, x_253, x_253); *(tint_symbol_14) = float4(x_254.x, x_254.y, x_254.z, 1.0f); return; } fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], constant buf0& x_34 [[buffer(0)]]) { thread float4 tint_symbol_15 = 0.0f; thread tint_array_wrapper tint_symbol_16 = {}; thread tint_array_wrapper tint_symbol_17 = {}; thread float4 tint_symbol_18 = 0.0f; tint_symbol_15 = gl_FragCoord_param; main_1(x_34, &(tint_symbol_16), &(tint_symbol_17), &(tint_symbol_15), &(tint_symbol_18)); main_out const tint_symbol_3 = {.x_GLF_color_1=tint_symbol_18}; tint_symbol_2 const tint_symbol_4 = {.x_GLF_color_1=tint_symbol_3.x_GLF_color_1}; return tint_symbol_4; }