427 lines
12 KiB
Plaintext
427 lines
12 KiB
Plaintext
#include <metal_stdlib>
|
|
|
|
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;
|
|
}
|
|
|