2024-01-07 22:27:53 -07:00
|
|
|
#version 450
|
2024-01-13 15:27:14 -07:00
|
|
|
#extension GL_EXT_buffer_reference : require
|
|
|
|
|
|
|
|
struct Object {
|
|
|
|
mat4 model;
|
|
|
|
};
|
|
|
|
|
|
|
|
layout(buffer_reference, buffer_reference_align = 16) buffer ObjectBuffer {
|
|
|
|
Object objects[];
|
|
|
|
};
|
2024-01-07 22:27:53 -07:00
|
|
|
|
2024-01-12 21:12:31 -07:00
|
|
|
layout( push_constant ) uniform constants {
|
2024-01-08 12:42:59 -07:00
|
|
|
mat4 view;
|
|
|
|
mat4 proj;
|
2024-01-13 15:27:14 -07:00
|
|
|
ObjectBuffer objects;
|
2024-01-10 19:32:01 -07:00
|
|
|
} scene;
|
|
|
|
|
2024-01-12 21:12:31 -07:00
|
|
|
layout(set = 0, binding = 0) uniform SceneUniform {
|
|
|
|
mat4 test;
|
|
|
|
} scene_ubo;
|
|
|
|
|
2024-01-08 17:37:52 -07:00
|
|
|
layout(location = 0) in vec3 inPosition;
|
2024-01-08 09:44:47 -07:00
|
|
|
layout(location = 1) in vec3 inColor;
|
2024-01-07 22:27:53 -07:00
|
|
|
|
2024-01-08 09:44:47 -07:00
|
|
|
layout(location = 0) out vec3 fragColor;
|
2024-01-07 22:27:53 -07:00
|
|
|
|
|
|
|
void main() {
|
2024-01-13 15:27:14 -07:00
|
|
|
gl_Position = scene.proj * scene.view * scene.objects.objects[0].model * vec4(inPosition, 1.0);
|
2024-01-08 09:44:47 -07:00
|
|
|
fragColor = inColor;
|
2024-01-07 22:27:53 -07:00
|
|
|
}
|