2025-06-01 16:44:31 +02:00
|
|
|
#version 450
|
|
|
|
|
|
|
|
|
|
layout(set = 1, binding = 0) uniform Viewport {
|
|
|
|
|
ivec2 view;
|
|
|
|
|
};
|
|
|
|
|
|
2025-06-03 09:16:51 +02:00
|
|
|
layout(location = 0) in ivec2 position;
|
|
|
|
|
layout(location = 1) in ivec2 uv;
|
2025-06-01 16:44:31 +02:00
|
|
|
layout(location = 2) in ivec4 color;
|
|
|
|
|
|
|
|
|
|
layout(location = 0) out vec4 col;
|
2025-06-10 12:54:03 +02:00
|
|
|
layout(location = 1) out vec2 local_position;
|
|
|
|
|
layout(location = 2) out vec2 global_position;
|
|
|
|
|
layout(location = 3) out float radius;
|
2025-06-01 16:44:31 +02:00
|
|
|
|
|
|
|
|
void main()
|
|
|
|
|
{
|
2025-06-03 09:16:51 +02:00
|
|
|
// vertex position
|
|
|
|
|
vec2 pos;
|
|
|
|
|
pos.x = float(position.x)*2.0 / view.x - 1.0;
|
|
|
|
|
pos.y = -(float(position.y)*2.0 / view.y - 1.0);
|
2025-06-01 16:44:31 +02:00
|
|
|
|
2025-06-10 23:02:44 +02:00
|
|
|
gl_Position = vec4(pos, 0.0, 1.0);
|
2025-06-10 12:54:03 +02:00
|
|
|
|
|
|
|
|
local_position = vec2(sign(uv));
|
|
|
|
|
global_position = gl_Position.xy;
|
|
|
|
|
radius = abs(float(uv.x));
|
|
|
|
|
|
2025-06-01 16:44:31 +02:00
|
|
|
col = vec4(color) / 255.0;
|
|
|
|
|
}
|