| struct Mat4x4_ { |
| mx: vec4<f32>; |
| my: vec4<f32>; |
| mz: vec4<f32>; |
| mw: vec4<f32>; |
| }; |
| |
| struct Mat4x3_ { |
| mx: vec4<f32>; |
| my: vec4<f32>; |
| mz: vec4<f32>; |
| }; |
| |
| struct Mat4x2_ { |
| mx: vec4<f32>; |
| my: vec4<f32>; |
| }; |
| |
| [[block]] |
| struct ub_SceneParams { |
| u_Projection: Mat4x4_; |
| }; |
| |
| [[block]] |
| struct ub_MaterialParams { |
| u_TexMtx: [[stride(32)]] array<Mat4x2_,1>; |
| u_Misc0_: vec4<f32>; |
| }; |
| |
| [[block]] |
| struct ub_PacketParams { |
| u_PosMtx: [[stride(48)]] array<Mat4x3_,32>; |
| }; |
| |
| struct VertexOutput { |
| [[location(0)]] v_Color: vec4<f32>; |
| [[location(1)]] v_TexCoord: vec2<f32>; |
| [[builtin(position)]] member: vec4<f32>; |
| }; |
| |
| [[group(0), binding(0)]] |
| var<uniform> global: ub_SceneParams; |
| [[group(0), binding(1)]] |
| var<uniform> global1: ub_MaterialParams; |
| [[group(0), binding(2)]] |
| var<uniform> global2: ub_PacketParams; |
| var<private> a_Position1: vec3<f32>; |
| var<private> a_UV1: vec2<f32>; |
| var<private> a_Color1: vec4<f32>; |
| var<private> a_Normal1: vec3<f32>; |
| var<private> a_PosMtxIdx1: f32; |
| var<private> v_Color: vec4<f32>; |
| var<private> v_TexCoord: vec2<f32>; |
| var<private> gl_Position: vec4<f32>; |
| |
| fn Mat4x3GetCol0_(m: Mat4x3_) -> vec3<f32> { |
| var m1: Mat4x3_; |
| |
| m1 = m; |
| let x_e2: Mat4x3_ = m1; |
| let x_e5: Mat4x3_ = m1; |
| let x_e8: Mat4x3_ = m1; |
| return vec3<f32>(x_e2.mx.x, x_e5.my.x, x_e8.mz.x); |
| } |
| |
| fn Mat4x3GetCol1_(m2: Mat4x3_) -> vec3<f32> { |
| var m3: Mat4x3_; |
| |
| m3 = m2; |
| let x_e2: Mat4x3_ = m3; |
| let x_e5: Mat4x3_ = m3; |
| let x_e8: Mat4x3_ = m3; |
| return vec3<f32>(x_e2.mx.y, x_e5.my.y, x_e8.mz.y); |
| } |
| |
| fn Mat4x3GetCol2_(m4: Mat4x3_) -> vec3<f32> { |
| var m5: Mat4x3_; |
| |
| m5 = m4; |
| let x_e2: Mat4x3_ = m5; |
| let x_e5: Mat4x3_ = m5; |
| let x_e8: Mat4x3_ = m5; |
| return vec3<f32>(x_e2.mx.z, x_e5.my.z, x_e8.mz.z); |
| } |
| |
| fn Mat4x3GetCol3_(m6: Mat4x3_) -> vec3<f32> { |
| var m7: Mat4x3_; |
| |
| m7 = m6; |
| let x_e2: Mat4x3_ = m7; |
| let x_e5: Mat4x3_ = m7; |
| let x_e8: Mat4x3_ = m7; |
| return vec3<f32>(x_e2.mx.w, x_e5.my.w, x_e8.mz.w); |
| } |
| |
| fn Mul(m8: Mat4x4_, v: vec4<f32>) -> vec4<f32> { |
| var m9: Mat4x4_; |
| var v1: vec4<f32>; |
| |
| m9 = m8; |
| v1 = v; |
| let x_e4: Mat4x4_ = m9; |
| let x_e6: vec4<f32> = v1; |
| let x_e8: Mat4x4_ = m9; |
| let x_e10: vec4<f32> = v1; |
| let x_e12: Mat4x4_ = m9; |
| let x_e14: vec4<f32> = v1; |
| let x_e16: Mat4x4_ = m9; |
| let x_e18: vec4<f32> = v1; |
| return vec4<f32>(dot(x_e4.mx, x_e6), dot(x_e8.my, x_e10), dot(x_e12.mz, x_e14), dot(x_e16.mw, x_e18)); |
| } |
| |
| fn Mul1(m10: Mat4x3_, v2: vec4<f32>) -> vec3<f32> { |
| var m11: Mat4x3_; |
| var v3: vec4<f32>; |
| |
| m11 = m10; |
| v3 = v2; |
| let x_e4: Mat4x3_ = m11; |
| let x_e6: vec4<f32> = v3; |
| let x_e8: Mat4x3_ = m11; |
| let x_e10: vec4<f32> = v3; |
| let x_e12: Mat4x3_ = m11; |
| let x_e14: vec4<f32> = v3; |
| return vec3<f32>(dot(x_e4.mx, x_e6), dot(x_e8.my, x_e10), dot(x_e12.mz, x_e14)); |
| } |
| |
| fn Mul2(m12: Mat4x2_, v4: vec4<f32>) -> vec2<f32> { |
| var m13: Mat4x2_; |
| var v5: vec4<f32>; |
| |
| m13 = m12; |
| v5 = v4; |
| let x_e4: Mat4x2_ = m13; |
| let x_e6: vec4<f32> = v5; |
| let x_e8: Mat4x2_ = m13; |
| let x_e10: vec4<f32> = v5; |
| return vec2<f32>(dot(x_e4.mx, x_e6), dot(x_e8.my, x_e10)); |
| } |
| |
| fn Mul3(v6: vec3<f32>, m14: Mat4x3_) -> vec4<f32> { |
| var v7: vec3<f32>; |
| var m15: Mat4x3_; |
| |
| v7 = v6; |
| m15 = m14; |
| let x_e5: Mat4x3_ = m15; |
| let x_e6: vec3<f32> = Mat4x3GetCol0_(x_e5); |
| let x_e7: vec3<f32> = v7; |
| let x_e10: Mat4x3_ = m15; |
| let x_e11: vec3<f32> = Mat4x3GetCol1_(x_e10); |
| let x_e12: vec3<f32> = v7; |
| let x_e15: Mat4x3_ = m15; |
| let x_e16: vec3<f32> = Mat4x3GetCol2_(x_e15); |
| let x_e17: vec3<f32> = v7; |
| let x_e20: Mat4x3_ = m15; |
| let x_e21: vec3<f32> = Mat4x3GetCol3_(x_e20); |
| let x_e22: vec3<f32> = v7; |
| return vec4<f32>(dot(x_e6, x_e7), dot(x_e11, x_e12), dot(x_e16, x_e17), dot(x_e21, x_e22)); |
| } |
| |
| fn x_Mat4x4_(n: f32) -> Mat4x4_ { |
| var n1: f32; |
| var o: Mat4x4_; |
| |
| n1 = n; |
| let x_e4: f32 = n1; |
| o.mx = vec4<f32>(x_e4, 0.0, 0.0, 0.0); |
| let x_e11: f32 = n1; |
| o.my = vec4<f32>(0.0, x_e11, 0.0, 0.0); |
| let x_e18: f32 = n1; |
| o.mz = vec4<f32>(0.0, 0.0, x_e18, 0.0); |
| let x_e25: f32 = n1; |
| o.mw = vec4<f32>(0.0, 0.0, 0.0, x_e25); |
| let x_e27: Mat4x4_ = o; |
| return x_e27; |
| } |
| |
| fn x_Mat4x4_1(m16: Mat4x3_) -> Mat4x4_ { |
| var m17: Mat4x3_; |
| var o1: Mat4x4_; |
| |
| m17 = m16; |
| let x_e4: Mat4x4_ = x_Mat4x4_(1.0); |
| o1 = x_e4; |
| let x_e7: Mat4x3_ = m17; |
| o1.mx = x_e7.mx; |
| let x_e10: Mat4x3_ = m17; |
| o1.my = x_e10.my; |
| let x_e13: Mat4x3_ = m17; |
| o1.mz = x_e13.mz; |
| let x_e15: Mat4x4_ = o1; |
| return x_e15; |
| } |
| |
| fn x_Mat4x4_2(m18: Mat4x2_) -> Mat4x4_ { |
| var m19: Mat4x2_; |
| var o2: Mat4x4_; |
| |
| m19 = m18; |
| let x_e4: Mat4x4_ = x_Mat4x4_(1.0); |
| o2 = x_e4; |
| let x_e7: Mat4x2_ = m19; |
| o2.mx = x_e7.mx; |
| let x_e10: Mat4x2_ = m19; |
| o2.my = x_e10.my; |
| let x_e12: Mat4x4_ = o2; |
| return x_e12; |
| } |
| |
| fn x_Mat4x3_(n2: f32) -> Mat4x3_ { |
| var n3: f32; |
| var o3: Mat4x3_; |
| |
| n3 = n2; |
| let x_e4: f32 = n3; |
| o3.mx = vec4<f32>(x_e4, 0.0, 0.0, 0.0); |
| let x_e11: f32 = n3; |
| o3.my = vec4<f32>(0.0, x_e11, 0.0, 0.0); |
| let x_e18: f32 = n3; |
| o3.mz = vec4<f32>(0.0, 0.0, x_e18, 0.0); |
| let x_e21: Mat4x3_ = o3; |
| return x_e21; |
| } |
| |
| fn x_Mat4x3_1(m20: Mat4x4_) -> Mat4x3_ { |
| var m21: Mat4x4_; |
| var o4: Mat4x3_; |
| |
| m21 = m20; |
| let x_e4: Mat4x4_ = m21; |
| o4.mx = x_e4.mx; |
| let x_e7: Mat4x4_ = m21; |
| o4.my = x_e7.my; |
| let x_e10: Mat4x4_ = m21; |
| o4.mz = x_e10.mz; |
| let x_e12: Mat4x3_ = o4; |
| return x_e12; |
| } |
| |
| fn main1() { |
| var t_PosMtx: Mat4x3_; |
| var t_TexSpaceCoord: vec2<f32>; |
| |
| let x_e15: f32 = a_PosMtxIdx1; |
| let x_e18: Mat4x3_ = global2.u_PosMtx[i32(x_e15)]; |
| t_PosMtx = x_e18; |
| let x_e23: Mat4x3_ = t_PosMtx; |
| let x_e24: Mat4x4_ = x_Mat4x4_1(x_e23); |
| let x_e25: vec3<f32> = a_Position1; |
| let x_e29: Mat4x3_ = t_PosMtx; |
| let x_e30: Mat4x4_ = x_Mat4x4_1(x_e29); |
| let x_e31: vec3<f32> = a_Position1; |
| let x_e34: vec4<f32> = Mul(x_e30, vec4<f32>(x_e31, 1.0)); |
| let x_e35: Mat4x4_ = global.u_Projection; |
| let x_e37: Mat4x3_ = t_PosMtx; |
| let x_e38: Mat4x4_ = x_Mat4x4_1(x_e37); |
| let x_e39: vec3<f32> = a_Position1; |
| let x_e43: Mat4x3_ = t_PosMtx; |
| let x_e44: Mat4x4_ = x_Mat4x4_1(x_e43); |
| let x_e45: vec3<f32> = a_Position1; |
| let x_e48: vec4<f32> = Mul(x_e44, vec4<f32>(x_e45, 1.0)); |
| let x_e49: vec4<f32> = Mul(x_e35, x_e48); |
| gl_Position = x_e49; |
| let x_e50: vec4<f32> = a_Color1; |
| v_Color = x_e50; |
| let x_e52: vec4<f32> = global1.u_Misc0_; |
| if ((x_e52.x == 2.0)) { |
| { |
| let x_e59: vec3<f32> = a_Normal1; |
| let x_e64: Mat4x2_ = global1.u_TexMtx[0]; |
| let x_e65: vec3<f32> = a_Normal1; |
| let x_e68: vec2<f32> = Mul2(x_e64, vec4<f32>(x_e65, 1.0)); |
| v_TexCoord = x_e68.xy; |
| return; |
| } |
| } else { |
| { |
| let x_e73: vec2<f32> = a_UV1; |
| let x_e79: Mat4x2_ = global1.u_TexMtx[0]; |
| let x_e80: vec2<f32> = a_UV1; |
| let x_e84: vec2<f32> = Mul2(x_e79, vec4<f32>(x_e80, 1.0, 1.0)); |
| v_TexCoord = x_e84.xy; |
| return; |
| } |
| } |
| } |
| |
| [[stage(vertex)]] |
| fn main([[location(0)]] a_Position: vec3<f32>, [[location(1)]] a_UV: vec2<f32>, [[location(2)]] a_Color: vec4<f32>, [[location(3)]] a_Normal: vec3<f32>, [[location(4)]] a_PosMtxIdx: f32) -> VertexOutput { |
| a_Position1 = a_Position; |
| a_UV1 = a_UV; |
| a_Color1 = a_Color; |
| a_Normal1 = a_Normal; |
| a_PosMtxIdx1 = a_PosMtxIdx; |
| main1(); |
| let x_e11: vec4<f32> = v_Color; |
| let x_e13: vec2<f32> = v_TexCoord; |
| let x_e15: vec4<f32> = gl_Position; |
| return VertexOutput(x_e11, x_e13, x_e15); |
| } |