2024-04-16 20:14:42 +02:00
|
|
|
#version 450
|
|
|
|
|
2024-04-23 18:59:45 +02:00
|
|
|
layout(binding = 0) uniform UniformBufferObject {
|
|
|
|
mat4 model;
|
2024-05-04 15:24:42 +02:00
|
|
|
mat4 geom_rot;
|
2024-04-23 18:59:45 +02:00
|
|
|
mat4 view;
|
|
|
|
mat4 proj;
|
2024-06-02 15:25:11 +02:00
|
|
|
bool[16] use_geom_shader;
|
2024-04-23 18:59:45 +02:00
|
|
|
} ubo;
|
|
|
|
|
|
|
|
|
2024-04-26 17:48:49 +02:00
|
|
|
layout(location = 0) in vec3 inPosition;
|
2024-04-18 19:00:01 +02:00
|
|
|
layout(location = 1) in vec3 inColor;
|
2024-04-26 17:48:49 +02:00
|
|
|
layout(location = 2) in vec2 inTexCoord;
|
2024-04-16 20:14:42 +02:00
|
|
|
|
2024-05-04 15:24:42 +02:00
|
|
|
layout(location = 0) out vec3 geoColor;
|
|
|
|
layout(location = 1) out vec2 geoTexCoord;
|
2024-04-16 20:14:42 +02:00
|
|
|
|
|
|
|
void main() {
|
2024-06-02 15:25:11 +02:00
|
|
|
if (ubo.use_geom_shader[0]) {
|
|
|
|
gl_Position = ubo.geom_rot * ubo.model * vec4(inPosition, 1.0);
|
|
|
|
} else {
|
|
|
|
gl_Position = ubo.proj * ubo.view * ubo.geom_rot * ubo.model * vec4(inPosition, 1.0);
|
|
|
|
}
|
2024-05-04 15:24:42 +02:00
|
|
|
geoColor = inColor;
|
|
|
|
geoTexCoord = inTexCoord;
|
2024-04-16 20:14:42 +02:00
|
|
|
}
|