#include using namespace metal; struct Mat4x4_ { /* 0x0000 */ float4 mx; /* 0x0010 */ float4 my; /* 0x0020 */ float4 mz; /* 0x0030 */ float4 mw; }; struct Mat4x3_ { /* 0x0000 */ float4 mx; /* 0x0010 */ float4 my; /* 0x0020 */ float4 mz; }; struct Mat4x2_ { /* 0x0000 */ float4 mx; /* 0x0010 */ float4 my; }; struct ub_SceneParams { /* 0x0000 */ Mat4x4_ u_Projection; }; struct tint_array_wrapper { /* 0x0000 */ Mat4x2_ arr[1]; }; struct ub_MaterialParams { /* 0x0000 */ tint_array_wrapper u_TexMtx; /* 0x0020 */ float4 u_Misc0_; }; struct tint_array_wrapper_1 { /* 0x0000 */ Mat4x3_ arr[32]; }; struct ub_PacketParams { /* 0x0000 */ tint_array_wrapper_1 u_PosMtx; }; struct VertexOutput { float4 v_Color; float2 v_TexCoord; float4 member; }; struct tint_symbol_2 { float3 a_Position [[attribute(0)]]; float2 a_UV [[attribute(1)]]; float4 a_Color [[attribute(2)]]; float3 a_Normal [[attribute(3)]]; float a_PosMtxIdx [[attribute(4)]]; }; struct tint_symbol_3 { float4 v_Color [[user(locn0)]]; float2 v_TexCoord [[user(locn1)]]; float4 member [[position]]; }; float3 Mat4x3GetCol0_(Mat4x3_ m) { Mat4x3_ m1 = {}; m1 = m; Mat4x3_ const x_e2 = m1; Mat4x3_ const x_e5 = m1; Mat4x3_ const x_e8 = m1; return float3(x_e2.mx[0], x_e5.my[0], x_e8.mz[0]); } float3 Mat4x3GetCol1_(Mat4x3_ m2) { Mat4x3_ m3 = {}; m3 = m2; Mat4x3_ const x_e2 = m3; Mat4x3_ const x_e5 = m3; Mat4x3_ const x_e8 = m3; return float3(x_e2.mx[1], x_e5.my[1], x_e8.mz[1]); } float3 Mat4x3GetCol2_(Mat4x3_ m4) { Mat4x3_ m5 = {}; m5 = m4; Mat4x3_ const x_e2 = m5; Mat4x3_ const x_e5 = m5; Mat4x3_ const x_e8 = m5; return float3(x_e2.mx[2], x_e5.my[2], x_e8.mz[2]); } float3 Mat4x3GetCol3_(Mat4x3_ m6) { Mat4x3_ m7 = {}; m7 = m6; Mat4x3_ const x_e2 = m7; Mat4x3_ const x_e5 = m7; Mat4x3_ const x_e8 = m7; return float3(x_e2.mx[3], x_e5.my[3], x_e8.mz[3]); } float4 Mul(Mat4x4_ m8, float4 v) { Mat4x4_ m9 = {}; float4 v1 = 0.0f; m9 = m8; v1 = v; Mat4x4_ const x_e4 = m9; float4 const x_e6 = v1; Mat4x4_ const x_e8 = m9; float4 const x_e10 = v1; Mat4x4_ const x_e12 = m9; float4 const x_e14 = v1; Mat4x4_ const x_e16 = m9; float4 const x_e18 = v1; return float4(dot(x_e4.mx, x_e6), dot(x_e8.my, x_e10), dot(x_e12.mz, x_e14), dot(x_e16.mw, x_e18)); } float3 Mul1(Mat4x3_ m10, float4 v2) { Mat4x3_ m11 = {}; float4 v3 = 0.0f; m11 = m10; v3 = v2; Mat4x3_ const x_e4 = m11; float4 const x_e6 = v3; Mat4x3_ const x_e8 = m11; float4 const x_e10 = v3; Mat4x3_ const x_e12 = m11; float4 const x_e14 = v3; return float3(dot(x_e4.mx, x_e6), dot(x_e8.my, x_e10), dot(x_e12.mz, x_e14)); } float2 Mul2(Mat4x2_ m12, float4 v4) { Mat4x2_ m13 = {}; float4 v5 = 0.0f; m13 = m12; v5 = v4; Mat4x2_ const x_e4 = m13; float4 const x_e6 = v5; Mat4x2_ const x_e8 = m13; float4 const x_e10 = v5; return float2(dot(x_e4.mx, x_e6), dot(x_e8.my, x_e10)); } float4 Mul3(float3 v6, Mat4x3_ m14) { float3 v7 = 0.0f; Mat4x3_ m15 = {}; v7 = v6; m15 = m14; Mat4x3_ const x_e5 = m15; float3 const x_e6 = Mat4x3GetCol0_(x_e5); float3 const x_e7 = v7; Mat4x3_ const x_e10 = m15; float3 const x_e11 = Mat4x3GetCol1_(x_e10); float3 const x_e12 = v7; Mat4x3_ const x_e15 = m15; float3 const x_e16 = Mat4x3GetCol2_(x_e15); float3 const x_e17 = v7; Mat4x3_ const x_e20 = m15; float3 const x_e21 = Mat4x3GetCol3_(x_e20); float3 const x_e22 = v7; return float4(dot(x_e6, x_e7), dot(x_e11, x_e12), dot(x_e16, x_e17), dot(x_e21, x_e22)); } Mat4x4_ x_Mat4x4_(float n) { float n1 = 0.0f; Mat4x4_ o = {}; n1 = n; float const x_e4 = n1; o.mx = float4(x_e4, 0.0f, 0.0f, 0.0f); float const x_e11 = n1; o.my = float4(0.0f, x_e11, 0.0f, 0.0f); float const x_e18 = n1; o.mz = float4(0.0f, 0.0f, x_e18, 0.0f); float const x_e25 = n1; o.mw = float4(0.0f, 0.0f, 0.0f, x_e25); Mat4x4_ const x_e27 = o; return x_e27; } Mat4x4_ x_Mat4x4_1(Mat4x3_ m16) { Mat4x3_ m17 = {}; Mat4x4_ o1 = {}; m17 = m16; Mat4x4_ const x_e4 = x_Mat4x4_(1.0f); o1 = x_e4; Mat4x3_ const x_e7 = m17; o1.mx = x_e7.mx; Mat4x3_ const x_e10 = m17; o1.my = x_e10.my; Mat4x3_ const x_e13 = m17; o1.mz = x_e13.mz; Mat4x4_ const x_e15 = o1; return x_e15; } Mat4x4_ x_Mat4x4_2(Mat4x2_ m18) { Mat4x2_ m19 = {}; Mat4x4_ o2 = {}; m19 = m18; Mat4x4_ const x_e4 = x_Mat4x4_(1.0f); o2 = x_e4; Mat4x2_ const x_e7 = m19; o2.mx = x_e7.mx; Mat4x2_ const x_e10 = m19; o2.my = x_e10.my; Mat4x4_ const x_e12 = o2; return x_e12; } Mat4x3_ x_Mat4x3_(float n2) { float n3 = 0.0f; Mat4x3_ o3 = {}; n3 = n2; float const x_e4 = n3; o3.mx = float4(x_e4, 0.0f, 0.0f, 0.0f); float const x_e11 = n3; o3.my = float4(0.0f, x_e11, 0.0f, 0.0f); float const x_e18 = n3; o3.mz = float4(0.0f, 0.0f, x_e18, 0.0f); Mat4x3_ const x_e21 = o3; return x_e21; } Mat4x3_ x_Mat4x3_1(Mat4x4_ m20) { Mat4x4_ m21 = {}; Mat4x3_ o4 = {}; m21 = m20; Mat4x4_ const x_e4 = m21; o4.mx = x_e4.mx; Mat4x4_ const x_e7 = m21; o4.my = x_e7.my; Mat4x4_ const x_e10 = m21; o4.mz = x_e10.mz; Mat4x3_ const x_e12 = o4; return x_e12; } void main1(constant ub_PacketParams& global2, constant ub_SceneParams& global, constant ub_MaterialParams& global1, thread float* const tint_symbol_5, thread float3* const tint_symbol_6, thread float4* const tint_symbol_7, thread float4* const tint_symbol_8, thread float4* const tint_symbol_9, thread float3* const tint_symbol_10, thread float2* const tint_symbol_11, thread float2* const tint_symbol_12) { Mat4x3_ t_PosMtx = {}; float2 t_TexSpaceCoord = 0.0f; float const x_e15 = *(tint_symbol_5); Mat4x3_ const x_e18 = global2.u_PosMtx.arr[int(x_e15)]; t_PosMtx = x_e18; Mat4x3_ const x_e23 = t_PosMtx; Mat4x4_ const x_e24 = x_Mat4x4_1(x_e23); float3 const x_e25 = *(tint_symbol_6); Mat4x3_ const x_e29 = t_PosMtx; Mat4x4_ const x_e30 = x_Mat4x4_1(x_e29); float3 const x_e31 = *(tint_symbol_6); float4 const x_e34 = Mul(x_e30, float4(x_e31, 1.0f)); Mat4x4_ const x_e35 = global.u_Projection; Mat4x3_ const x_e37 = t_PosMtx; Mat4x4_ const x_e38 = x_Mat4x4_1(x_e37); float3 const x_e39 = *(tint_symbol_6); Mat4x3_ const x_e43 = t_PosMtx; Mat4x4_ const x_e44 = x_Mat4x4_1(x_e43); float3 const x_e45 = *(tint_symbol_6); float4 const x_e48 = Mul(x_e44, float4(x_e45, 1.0f)); float4 const x_e49 = Mul(x_e35, x_e48); *(tint_symbol_7) = x_e49; float4 const x_e50 = *(tint_symbol_8); *(tint_symbol_9) = x_e50; float4 const x_e52 = global1.u_Misc0_; if ((x_e52[0] == 2.0f)) { { float3 const x_e59 = *(tint_symbol_10); Mat4x2_ const x_e64 = global1.u_TexMtx.arr[0]; float3 const x_e65 = *(tint_symbol_10); float2 const x_e68 = Mul2(x_e64, float4(x_e65, 1.0f)); *(tint_symbol_11) = float2(x_e68).xy; return; } } else { { float2 const x_e73 = *(tint_symbol_12); Mat4x2_ const x_e79 = global1.u_TexMtx.arr[0]; float2 const x_e80 = *(tint_symbol_12); float2 const x_e84 = Mul2(x_e79, float4(x_e80, 1.0f, 1.0f)); *(tint_symbol_11) = float2(x_e84).xy; return; } } } VertexOutput tint_symbol_inner(constant ub_PacketParams& global2, constant ub_SceneParams& global, constant ub_MaterialParams& global1, float3 a_Position, float2 a_UV, float4 a_Color, float3 a_Normal, float a_PosMtxIdx, thread float3* const tint_symbol_13, thread float2* const tint_symbol_14, thread float4* const tint_symbol_15, thread float3* const tint_symbol_16, thread float* const tint_symbol_17, thread float4* const tint_symbol_18, thread float4* const tint_symbol_19, thread float2* const tint_symbol_20) { *(tint_symbol_13) = a_Position; *(tint_symbol_14) = a_UV; *(tint_symbol_15) = a_Color; *(tint_symbol_16) = a_Normal; *(tint_symbol_17) = a_PosMtxIdx; main1(global2, global, global1, tint_symbol_17, tint_symbol_13, tint_symbol_18, tint_symbol_15, tint_symbol_19, tint_symbol_16, tint_symbol_20, tint_symbol_14); float4 const x_e11 = *(tint_symbol_19); float2 const x_e13 = *(tint_symbol_20); float4 const x_e15 = *(tint_symbol_18); VertexOutput const tint_symbol_4 = {.v_Color=x_e11, .v_TexCoord=x_e13, .member=x_e15}; return tint_symbol_4; } vertex tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1 [[stage_in]], constant ub_PacketParams& global2 [[buffer(0)]], constant ub_SceneParams& global [[buffer(1)]], constant ub_MaterialParams& global1 [[buffer(2)]]) { thread float3 tint_symbol_21 = 0.0f; thread float2 tint_symbol_22 = 0.0f; thread float4 tint_symbol_23 = 0.0f; thread float3 tint_symbol_24 = 0.0f; thread float tint_symbol_25 = 0.0f; thread float4 tint_symbol_26 = 0.0f; thread float4 tint_symbol_27 = 0.0f; thread float2 tint_symbol_28 = 0.0f; VertexOutput const inner_result = tint_symbol_inner(global2, global, global1, tint_symbol_1.a_Position, tint_symbol_1.a_UV, tint_symbol_1.a_Color, tint_symbol_1.a_Normal, tint_symbol_1.a_PosMtxIdx, &(tint_symbol_21), &(tint_symbol_22), &(tint_symbol_23), &(tint_symbol_24), &(tint_symbol_25), &(tint_symbol_26), &(tint_symbol_27), &(tint_symbol_28)); tint_symbol_3 wrapper_result = {}; wrapper_result.v_Color = inner_result.v_Color; wrapper_result.v_TexCoord = inner_result.v_TexCoord; wrapper_result.member = inner_result.member; return wrapper_result; }