aboutsummaryrefslogtreecommitdiff
path: root/stockton-passes/src/data/ui.vert
diff options
context:
space:
mode:
authortcmal <me@aria.rip>2024-08-25 17:44:23 +0100
committertcmal <me@aria.rip>2024-08-25 17:44:23 +0100
commit6ab13f2d0cb345795f761181a06777ade61ff09c (patch)
tree42007acef9846d5e79f1bf418a96647f34b530d1 /stockton-passes/src/data/ui.vert
parentccf0074b08ce835cf22e7d46153d1cb3f3d06d32 (diff)
refactor(all): separate rendering from framework
stockton-passes is mostly just a stand-in until this is properly separated
Diffstat (limited to 'stockton-passes/src/data/ui.vert')
-rw-r--r--stockton-passes/src/data/ui.vert37
1 files changed, 37 insertions, 0 deletions
diff --git a/stockton-passes/src/data/ui.vert b/stockton-passes/src/data/ui.vert
new file mode 100644
index 0000000..8912e96
--- /dev/null
+++ b/stockton-passes/src/data/ui.vert
@@ -0,0 +1,37 @@
+#version 450
+
+layout (push_constant) uniform PushConsts {
+ vec2 screen_size;
+} push;
+
+layout (location = 0) in vec2 pos;
+layout (location = 1) in vec2 uv;
+layout (location = 2) in vec4 col;
+
+out gl_PerVertex {
+ vec4 gl_Position;
+};
+layout (location = 1) out vec2 frag_uv;
+layout (location = 2) out vec4 frag_col;
+
+vec3 linear_from_srgb(vec3 srgb) {
+ bvec3 cutoff = lessThan(srgb, vec3(10.31475));
+ vec3 lower = srgb / vec3(3294.6);
+ vec3 higher = pow((srgb + vec3(14.025)) / vec3(269.025), vec3(2.4));
+ return mix(higher, lower, cutoff);
+}
+
+vec4 linear_from_srgba(vec4 srgba) {
+ return vec4(linear_from_srgb(srgba.rgb * 255.0), srgba.a);
+}
+
+void main() {
+ gl_Position = vec4(
+ 2.0 * pos.x / push.screen_size.x - 1.0,
+ 2.0 * pos.y / push.screen_size.y - 1.0,
+ 0.0,
+ 1.0
+ );
+ frag_uv = uv;
+ frag_col = linear_from_srgba(col);
+}