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(0)]] member: vec4; [[builtin(position)]] gl_Position: vec4; [[location(3)]] member_1: u32; [[location(2)]] member_2: vec4; [[location(1)]] member_3: vec2; }; var gl_InstanceIndex_1: i32; [[group(1), binding(0)]] var unnamed: ObjectOutputDataBuffer; var i_position_1: vec3; var o_position: vec4; var perVertexStruct: gl_PerVertex = gl_PerVertex(vec4(0.0, 0.0, 0.0, 1.0), ); var o_material: u32; var o_color: vec4; var i_color_1: vec4; var o_coords0_: vec2; var i_coords0_1: vec2; var i_normal_1: vec3; var i_tangent_1: vec3; var i_coords1_1: vec2; fn main_1() { let _e21 = gl_InstanceIndex_1; let _e26 = unnamed.object_output[bitcast(_e21)].model_view_proj; let _e28 = unnamed.object_output[bitcast(_e21)].material_idx; let _e29 = i_position_1; let _e34 = (_e26 * vec4(_e29.x, _e29.y, _e29.z, 1.0)); o_position = _e34; perVertexStruct.gl_Position = _e34; o_material = _e28; let _e36 = i_color_1; o_color = _e36; let _e37 = i_coords0_1; o_coords0_ = _e37; return; } [[stage(vertex)]] fn main([[builtin(instance_index)]] gl_InstanceIndex: u32, [[location(0)]] i_position: vec3, [[location(5)]] i_color: vec4, [[location(3)]] i_coords0_: vec2, [[location(1)]] i_normal: vec3, [[location(2)]] i_tangent: vec3, [[location(4)]] i_coords1_: vec2) -> VertexOutput { gl_InstanceIndex_1 = i32(gl_InstanceIndex); i_position_1 = i_position; i_color_1 = i_color; i_coords0_1 = i_coords0_; i_normal_1 = i_normal; i_tangent_1 = i_tangent; i_coords1_1 = i_coords1_; main_1(); let _e21 = o_position; let _e22 = perVertexStruct.gl_Position; let _e23 = o_material; let _e24 = o_color; let _e25 = o_coords0_; return VertexOutput(_e21, _e22, _e23, _e24, _e25); }