wgpu 0.4.0

Rusty WebGPU API wrapper
Documentation
#version 450

layout(location = 0) out vec3 v_Uv;

layout(set = 0, binding = 0) uniform Data {
  mat4 proj;
  mat4 view;
};

void main() {
    vec4 pos = vec4(0.0);
    switch(gl_VertexIndex) {
        case 0: pos = vec4(-1.0, -1.0, 0.0, 1.0); break;
        case 1: pos = vec4( 3.0, -1.0, 0.0, 1.0); break;
        case 2: pos = vec4(-1.0,  3.0, 0.0, 1.0); break;
    }
    mat3 invModelView = transpose(mat3(view));
    vec3 unProjected = (inverse(proj) * pos).xyz;
    v_Uv = invModelView * unProjected;

    gl_Position = pos;
}