struct ObjectOutputData { model_view: mat4x4; model_view_proj: mat4x4; material_idx: u32; inv_squared_scale: vec3; }; struct ObjectOutputDataBuffer { object_output: [[stride(160)]] array; }; struct gl_PerVertex { [[builtin(position)]] gl_Position: vec4; }; struct VertexOutput { [[location(6)]] member: u32; [[location(0)]] member_1: vec4; [[location(1)]] member_2: vec3; [[location(2)]] member_3: vec3; [[location(5)]] member_4: vec4; [[location(3)]] member_5: vec2; [[location(4)]] member_6: vec2; [[builtin(position)]] gl_Position: vec4; }; var gl_InstanceIndex_1: i32; [[group(1), binding(0)]] var unnamed: ObjectOutputDataBuffer; var o_material: u32; var o_view_position: vec4; var i_position_1: vec3; var o_normal: vec3; var i_normal_1: vec3; var o_tangent: vec3; var i_tangent_1: vec3; var o_color: vec4; var i_color_1: vec4; var o_coords0_: vec2; var i_coords0_1: vec2; var o_coords1_: vec2; var i_coords1_1: vec2; var perVertexStruct: gl_PerVertex = gl_PerVertex(vec4(0.0, 0.0, 0.0, 1.0), ); fn main_1() { let _e23 = gl_InstanceIndex_1; let _e27 = unnamed.object_output[bitcast(_e23)]; o_material = _e27.material_idx; let _e32 = i_position_1; let _e36 = vec4(_e32.x, _e32.y, _e32.z, 1.0); o_view_position = (_e27.model_view * _e36); let _e44 = mat3x3(_e27.model_view[0].xyz, _e27.model_view[1].xyz, _e27.model_view[2].xyz); let _e45 = i_normal_1; o_normal = normalize((_e44 * (_e27.inv_squared_scale * _e45))); let _e49 = i_tangent_1; o_tangent = normalize((_e44 * (_e27.inv_squared_scale * _e49))); let _e53 = i_color_1; o_color = _e53; let _e54 = i_coords0_1; o_coords0_ = _e54; let _e55 = i_coords1_1; o_coords1_ = _e55; perVertexStruct.gl_Position = (_e27.model_view_proj * _e36); return; } [[stage(vertex)]] fn main([[builtin(instance_index)]] gl_InstanceIndex: u32, [[location(0)]] i_position: vec3, [[location(1)]] i_normal: vec3, [[location(2)]] i_tangent: vec3, [[location(5)]] i_color: vec4, [[location(3)]] i_coords0_: vec2, [[location(4)]] i_coords1_: vec2) -> VertexOutput { gl_InstanceIndex_1 = i32(gl_InstanceIndex); i_position_1 = i_position; i_normal_1 = i_normal; i_tangent_1 = i_tangent; i_color_1 = i_color; i_coords0_1 = i_coords0_; i_coords1_1 = i_coords1_; main_1(); let _e24 = o_material; let _e25 = o_view_position; let _e26 = o_normal; let _e27 = o_tangent; let _e28 = o_color; let _e29 = o_coords0_; let _e30 = o_coords1_; let _e31 = perVertexStruct.gl_Position; return VertexOutput(_e24, _e25, _e26, _e27, _e28, _e29, _e30, _e31); }