| #include <metal_stdlib> |
| |
| using namespace metal; |
| struct Mat4x4_ { |
| /* 0x0000 */ packed_float4 mx; |
| /* 0x0010 */ packed_float4 my; |
| /* 0x0020 */ packed_float4 mz; |
| /* 0x0030 */ packed_float4 mw; |
| }; |
| struct Mat4x3_ { |
| /* 0x0000 */ packed_float4 mx; |
| /* 0x0010 */ packed_float4 my; |
| /* 0x0020 */ packed_float4 mz; |
| }; |
| struct Mat4x2_ { |
| /* 0x0000 */ packed_float4 mx; |
| /* 0x0010 */ packed_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 */ packed_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 _e2 = m1; |
| Mat4x3_ const _e5 = m1; |
| Mat4x3_ const _e8 = m1; |
| return float3(_e2.mx.x, _e5.my.x, _e8.mz.x); |
| } |
| |
| float3 Mat4x3GetCol1_(Mat4x3_ m2) { |
| Mat4x3_ m3 = {}; |
| m3 = m2; |
| Mat4x3_ const _e2 = m3; |
| Mat4x3_ const _e5 = m3; |
| Mat4x3_ const _e8 = m3; |
| return float3(_e2.mx.y, _e5.my.y, _e8.mz.y); |
| } |
| |
| float3 Mat4x3GetCol2_(Mat4x3_ m4) { |
| Mat4x3_ m5 = {}; |
| m5 = m4; |
| Mat4x3_ const _e2 = m5; |
| Mat4x3_ const _e5 = m5; |
| Mat4x3_ const _e8 = m5; |
| return float3(_e2.mx.z, _e5.my.z, _e8.mz.z); |
| } |
| |
| float3 Mat4x3GetCol3_(Mat4x3_ m6) { |
| Mat4x3_ m7 = {}; |
| m7 = m6; |
| Mat4x3_ const _e2 = m7; |
| Mat4x3_ const _e5 = m7; |
| Mat4x3_ const _e8 = m7; |
| return float3(_e2.mx.w, _e5.my.w, _e8.mz.w); |
| } |
| |
| float4 Mul(Mat4x4_ m8, float4 v) { |
| Mat4x4_ m9 = {}; |
| float4 v1 = 0.0f; |
| m9 = m8; |
| v1 = v; |
| Mat4x4_ const _e4 = m9; |
| float4 const _e6 = v1; |
| Mat4x4_ const _e8 = m9; |
| float4 const _e10 = v1; |
| Mat4x4_ const _e12 = m9; |
| float4 const _e14 = v1; |
| Mat4x4_ const _e16 = m9; |
| float4 const _e18 = v1; |
| return float4(dot(_e4.mx, _e6), dot(_e8.my, _e10), dot(_e12.mz, _e14), dot(_e16.mw, _e18)); |
| } |
| |
| float3 Mul1(Mat4x3_ m10, float4 v2) { |
| Mat4x3_ m11 = {}; |
| float4 v3 = 0.0f; |
| m11 = m10; |
| v3 = v2; |
| Mat4x3_ const _e4 = m11; |
| float4 const _e6 = v3; |
| Mat4x3_ const _e8 = m11; |
| float4 const _e10 = v3; |
| Mat4x3_ const _e12 = m11; |
| float4 const _e14 = v3; |
| return float3(dot(_e4.mx, _e6), dot(_e8.my, _e10), dot(_e12.mz, _e14)); |
| } |
| |
| float2 Mul2(Mat4x2_ m12, float4 v4) { |
| Mat4x2_ m13 = {}; |
| float4 v5 = 0.0f; |
| m13 = m12; |
| v5 = v4; |
| Mat4x2_ const _e4 = m13; |
| float4 const _e6 = v5; |
| Mat4x2_ const _e8 = m13; |
| float4 const _e10 = v5; |
| return float2(dot(_e4.mx, _e6), dot(_e8.my, _e10)); |
| } |
| |
| float4 Mul3(float3 v6, Mat4x3_ m14) { |
| float3 v7 = 0.0f; |
| Mat4x3_ m15 = {}; |
| v7 = v6; |
| m15 = m14; |
| Mat4x3_ const _e5 = m15; |
| float3 const _e6 = Mat4x3GetCol0_(_e5); |
| float3 const _e7 = v7; |
| Mat4x3_ const _e10 = m15; |
| float3 const _e11 = Mat4x3GetCol1_(_e10); |
| float3 const _e12 = v7; |
| Mat4x3_ const _e15 = m15; |
| float3 const _e16 = Mat4x3GetCol2_(_e15); |
| float3 const _e17 = v7; |
| Mat4x3_ const _e20 = m15; |
| float3 const _e21 = Mat4x3GetCol3_(_e20); |
| float3 const _e22 = v7; |
| return float4(dot(_e6, _e7), dot(_e11, _e12), dot(_e16, _e17), dot(_e21, _e22)); |
| } |
| |
| Mat4x4_ _Mat4x4_(float n) { |
| float n1 = 0.0f; |
| Mat4x4_ o = {}; |
| n1 = n; |
| float const _e4 = n1; |
| o.mx = float4(_e4, 0.0f, 0.0f, 0.0f); |
| float const _e11 = n1; |
| o.my = float4(0.0f, _e11, 0.0f, 0.0f); |
| float const _e18 = n1; |
| o.mz = float4(0.0f, 0.0f, _e18, 0.0f); |
| float const _e25 = n1; |
| o.mw = float4(0.0f, 0.0f, 0.0f, _e25); |
| Mat4x4_ const _e27 = o; |
| return _e27; |
| } |
| |
| Mat4x4_ _Mat4x4_1(Mat4x3_ m16) { |
| Mat4x3_ m17 = {}; |
| Mat4x4_ o1 = {}; |
| m17 = m16; |
| Mat4x4_ const _e4 = _Mat4x4_(1.0f); |
| o1 = _e4; |
| Mat4x3_ const _e7 = m17; |
| o1.mx = _e7.mx; |
| Mat4x3_ const _e10 = m17; |
| o1.my = _e10.my; |
| Mat4x3_ const _e13 = m17; |
| o1.mz = _e13.mz; |
| Mat4x4_ const _e15 = o1; |
| return _e15; |
| } |
| |
| Mat4x4_ _Mat4x4_2(Mat4x2_ m18) { |
| Mat4x2_ m19 = {}; |
| Mat4x4_ o2 = {}; |
| m19 = m18; |
| Mat4x4_ const _e4 = _Mat4x4_(1.0f); |
| o2 = _e4; |
| Mat4x2_ const _e7 = m19; |
| o2.mx = _e7.mx; |
| Mat4x2_ const _e10 = m19; |
| o2.my = _e10.my; |
| Mat4x4_ const _e12 = o2; |
| return _e12; |
| } |
| |
| Mat4x3_ _Mat4x3_(float n2) { |
| float n3 = 0.0f; |
| Mat4x3_ o3 = {}; |
| n3 = n2; |
| float const _e4 = n3; |
| o3.mx = float4(_e4, 0.0f, 0.0f, 0.0f); |
| float const _e11 = n3; |
| o3.my = float4(0.0f, _e11, 0.0f, 0.0f); |
| float const _e18 = n3; |
| o3.mz = float4(0.0f, 0.0f, _e18, 0.0f); |
| Mat4x3_ const _e21 = o3; |
| return _e21; |
| } |
| |
| Mat4x3_ _Mat4x3_1(Mat4x4_ m20) { |
| Mat4x4_ m21 = {}; |
| Mat4x3_ o4 = {}; |
| m21 = m20; |
| Mat4x4_ const _e4 = m21; |
| o4.mx = _e4.mx; |
| Mat4x4_ const _e7 = m21; |
| o4.my = _e7.my; |
| Mat4x4_ const _e10 = m21; |
| o4.mz = _e10.mz; |
| Mat4x3_ const _e12 = o4; |
| return _e12; |
| } |
| |
| void main1(constant ub_PacketParams& global2, constant ub_SceneParams& global, constant ub_MaterialParams& global1, thread float* const tint_symbol_6, thread float3* const tint_symbol_7, thread float4* const tint_symbol_8, thread float4* const tint_symbol_9, thread float4* const tint_symbol_10, thread float3* const tint_symbol_11, thread float2* const tint_symbol_12, thread float2* const tint_symbol_13) { |
| Mat4x3_ t_PosMtx = {}; |
| float2 t_TexSpaceCoord = 0.0f; |
| float const _e15 = *(tint_symbol_6); |
| Mat4x3_ const _e18 = global2.u_PosMtx.arr[int(_e15)]; |
| t_PosMtx = _e18; |
| Mat4x3_ const _e23 = t_PosMtx; |
| Mat4x4_ const _e24 = _Mat4x4_1(_e23); |
| float3 const _e25 = *(tint_symbol_7); |
| Mat4x3_ const _e29 = t_PosMtx; |
| Mat4x4_ const _e30 = _Mat4x4_1(_e29); |
| float3 const _e31 = *(tint_symbol_7); |
| float4 const _e34 = Mul(_e30, float4(_e31, 1.0f)); |
| Mat4x4_ const _e35 = global.u_Projection; |
| Mat4x3_ const _e37 = t_PosMtx; |
| Mat4x4_ const _e38 = _Mat4x4_1(_e37); |
| float3 const _e39 = *(tint_symbol_7); |
| Mat4x3_ const _e43 = t_PosMtx; |
| Mat4x4_ const _e44 = _Mat4x4_1(_e43); |
| float3 const _e45 = *(tint_symbol_7); |
| float4 const _e48 = Mul(_e44, float4(_e45, 1.0f)); |
| float4 const _e49 = Mul(_e35, _e48); |
| *(tint_symbol_8) = _e49; |
| float4 const _e50 = *(tint_symbol_9); |
| *(tint_symbol_10) = _e50; |
| float4 const _e52 = global1.u_Misc0_; |
| if ((_e52.x == 2.0f)) { |
| { |
| float3 const _e59 = *(tint_symbol_11); |
| Mat4x2_ const _e64 = global1.u_TexMtx.arr[0]; |
| float3 const _e65 = *(tint_symbol_11); |
| float2 const _e68 = Mul2(_e64, float4(_e65, 1.0f)); |
| *(tint_symbol_12) = _e68.xy; |
| return; |
| } |
| } else { |
| { |
| float2 const _e73 = *(tint_symbol_13); |
| Mat4x2_ const _e79 = global1.u_TexMtx.arr[0]; |
| float2 const _e80 = *(tint_symbol_13); |
| float2 const _e84 = Mul2(_e79, float4(_e80, 1.0f, 1.0f)); |
| *(tint_symbol_12) = _e84.xy; |
| return; |
| } |
| } |
| } |
| |
| vertex tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1 [[stage_in]], constant ub_PacketParams& global2 [[buffer(2)]], constant ub_SceneParams& global [[buffer(0)]], constant ub_MaterialParams& global1 [[buffer(1)]]) { |
| thread float3 tint_symbol_14 = 0.0f; |
| thread float2 tint_symbol_15 = 0.0f; |
| thread float4 tint_symbol_16 = 0.0f; |
| thread float3 tint_symbol_17 = 0.0f; |
| thread float tint_symbol_18 = 0.0f; |
| thread float4 tint_symbol_19 = 0.0f; |
| thread float4 tint_symbol_20 = 0.0f; |
| thread float2 tint_symbol_21 = 0.0f; |
| float3 const a_Position = tint_symbol_1.a_Position; |
| float2 const a_UV = tint_symbol_1.a_UV; |
| float4 const a_Color = tint_symbol_1.a_Color; |
| float3 const a_Normal = tint_symbol_1.a_Normal; |
| float const a_PosMtxIdx = tint_symbol_1.a_PosMtxIdx; |
| tint_symbol_14 = a_Position; |
| tint_symbol_15 = a_UV; |
| tint_symbol_16 = a_Color; |
| tint_symbol_17 = a_Normal; |
| tint_symbol_18 = a_PosMtxIdx; |
| main1(global2, global, global1, &(tint_symbol_18), &(tint_symbol_14), &(tint_symbol_19), &(tint_symbol_16), &(tint_symbol_20), &(tint_symbol_17), &(tint_symbol_21), &(tint_symbol_15)); |
| float4 const _e11 = tint_symbol_20; |
| float2 const _e13 = tint_symbol_21; |
| float4 const _e15 = tint_symbol_19; |
| VertexOutput const tint_symbol_4 = {.v_Color=_e11, .v_TexCoord=_e13, .member=_e15}; |
| tint_symbol_3 const tint_symbol_5 = {.v_Color=tint_symbol_4.v_Color, .v_TexCoord=tint_symbol_4.v_TexCoord, .member=tint_symbol_4.member}; |
| return tint_symbol_5; |
| } |
| |