#version 450

layout (location = 0) in vec3 position;
layout (location = 1) in vec2 uv;
layout (location = 2) in mat4 model;

layout (location = 0) out vec2 fragUv;

layout (set = 0, binding = 0) uniform MVP {
    mat4 world;
    mat4 view;
    mat4 projection;
} uniforms;

void main() {
    mat4 worldview = uniforms.view * uniforms.world;
    vec4 modelPosition = model * vec4(position, 1.0);
    gl_Position = uniforms.projection * worldview * modelPosition;
    fragUv = uv;
}