starlight-renderer 0.0.1

WIP renderer framework
#version 460

#extension GL_EXT_multiview : enable
#extension GL_EXT_scalar_block_layout : enable
#extension GL_EXT_buffer_reference : enable
#extension GL_EXT_shader_explicit_arithmetic_types_int8 : enable
#extension GL_EXT_shader_explicit_arithmetic_types_int64 : enable
#extension GL_GOOGLE_include_directive : enable

layout(location = 0) in vec3 pos;
layout(location = 1) in vec3 normal;
layout(location = 2) in vec2 uv;
layout(location = 3) in vec4 color;

#include "./common.glsl"

layout(location = 0) flat out uint o_draw_id;
layout(location = 1) out vec4 o_color;
layout(location = 2) out vec2 o_uv;
layout(location = 3) out vec3 o_normal;

void main() {
    Metadata metadata = pc.metadata_ptr.data[gl_InstanceIndex];
    mat4 combined_mat = pc.cam_ptr.data[gl_ViewIndex].proj_mat * metadata.global_transform.data;
    gl_Position = combined_mat * vec4(pos, 1.0);
    o_color = color;
    o_uv = uv;
    mat3 normal_mat = transpose(inverse(mat3(metadata.global_transform.data)));
    o_normal = normal_mat * normal;
    o_draw_id = gl_InstanceIndex;
}