#version 450

layout(location = 0) in vec3 pos;
layout(location = 1) in vec3 normal;

layout(location = 2) in mat4 model_t;
/* 2 <- 3, 4, 5 */
layout(location = 6) in vec3 color_off;
layout(location = 7) in vec3 color_on;
layout(location = 8) in mat3 normal_t;
/* 8 <- 9, 10 */

layout(location = 0) out vec3 vsout_normal;
layout(location = 1) out vec3 vsout_color_off;
layout(location = 2) out vec3 vsout_color_on;
layout(location = 3) out vec3 vsout_pos;

layout(push_constant, std430) uniform pc {
    mat4 proj_cam_t;
};

void main(){
    vsout_normal = normalize(normal_t * normal);
    vsout_color_off = color_off;
    vsout_color_on = color_on;
    vec4 real_pos = model_t * vec4(pos, 1);
    vsout_pos = real_pos.xyz;
    gl_Position = proj_cam_t * real_pos;
}