#version 450
#extension GL_ARB_separate_shader_objects : enable

layout(binding = 0) uniform UniformBufferObject {
    mat4 view;
    mat4 proj;
} UBO;
layout(push_constant) uniform PushConst {
    mat4 model;
} Push;

layout(location = 0) in vec3 Position_modelspace;
layout(location = 1) in vec3 Color_model;
layout(location = 2) in vec2 TexCoord_model;

layout(location = 0) out vec3 Color;
layout(location = 1) out vec2 TexCoord;

void main() {
    gl_Position = UBO.proj * UBO.view * Push.model * vec4(Position_modelspace, 1.0);
    Color = Color_model;
    TexCoord = TexCoord_model;
}