diff options
Diffstat (limited to 'render/vulkan/shaders/common.vert')
-rw-r--r-- | render/vulkan/shaders/common.vert | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/render/vulkan/shaders/common.vert b/render/vulkan/shaders/common.vert new file mode 100644 index 00000000..fa31d26c --- /dev/null +++ b/render/vulkan/shaders/common.vert @@ -0,0 +1,25 @@ +#version 450 + +// we use a mat4 since it uses the same size as mat3 due to +// alignment. Easier to deal with (tighly-packed) mat4 though. +layout(push_constant, row_major) uniform UBO { + mat4 proj; + vec2 uv_offset; + vec2 uv_size; +} data; + +layout(location = 0) out vec2 uv; + +// 4 outlining points and uv coords +const vec2[] values = { + {0, 0}, + {1, 0}, + {1, 1}, + {0, 1}, +}; + +void main() { + vec2 pos = values[gl_VertexIndex % 4]; + uv = data.uv_offset + pos * data.uv_size; + gl_Position = data.proj * vec4(pos, 0.0, 1.0); +} |