diff options
| author | Micha White <botahamec@outlook.com> | 2022-09-30 21:20:08 -0400 |
|---|---|---|
| committer | Micha White <botahamec@outlook.com> | 2022-09-30 21:20:08 -0400 |
| commit | ff8b849957ed63e6a19522597903f6bf55788426 (patch) | |
| tree | 6e8ef2589c71e430e95fb2cb1853f05c41761536 /shaders/sprite.wgsl | |
| parent | 867b344a6c05ec3bf8751bda0c2f2e2b3c3778c2 (diff) | |
Set up instances with texture information
Diffstat (limited to 'shaders/sprite.wgsl')
| -rw-r--r-- | shaders/sprite.wgsl | 13 |
1 files changed, 10 insertions, 3 deletions
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<f32>, @location(2) size: vec2<f32>, - @location(3) rotation: f32, - @location(4) z_layer: u32 + @location(3) texture_coordinates: vec2<f32>, + @location(4) texture_size: vec2<f32>, + @location(5) texture_atlas_index: u32, + @location(6) rotation: f32, + @location(7) z_layer: u32 } struct VertexOutput { - @builtin(position) clip_position: vec4<f32> + @builtin(position) clip_position: vec4<f32>, + @location(0) texture_coordinates: vec2<f32>, + @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; } |
