From ff8b849957ed63e6a19522597903f6bf55788426 Mon Sep 17 00:00:00 2001 From: Micha White Date: Fri, 30 Sep 2022 21:20:08 -0400 Subject: Set up instances with texture information --- shaders/sprite.wgsl | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'shaders/sprite.wgsl') diff --git a/shaders/sprite.wgsl b/shaders/sprite.wgsl index f8b9e7e..22225f7 100644 --- a/shaders/sprite.wgsl +++ b/shaders/sprite.wgsl @@ -9,12 +9,17 @@ struct VertexInput { struct InstanceInput { @location(1) position: vec2, @location(2) size: vec2, - @location(3) rotation: f32, - @location(4) z_layer: u32 + @location(3) texture_coordinates: vec2, + @location(4) texture_size: vec2, + @location(5) texture_atlas_index: u32, + @location(6) rotation: f32, + @location(7) z_layer: u32 } struct VertexOutput { - @builtin(position) clip_position: vec4 + @builtin(position) clip_position: vec4, + @location(0) texture_coordinates: vec2, + @location(1) texture_atlas_index: u32 } @vertex @@ -38,6 +43,8 @@ fn vs_main(model: VertexInput, instance: InstanceInput) -> VertexOutput { let position = camera * position4d; out.clip_position = position; + out.texture_atlas_index = instance.texture_atlas_index; + out.texture_coordinates = (model.position + 0.5) * instance.texture_size + instance.texture_coordinates; return out; } -- cgit v1.2.3