aboutsummaryrefslogtreecommitdiff
path: root/render/vulkan/shaders/common.vert
diff options
context:
space:
mode:
Diffstat (limited to 'render/vulkan/shaders/common.vert')
-rw-r--r--render/vulkan/shaders/common.vert25
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);
+}