From 6ab13f2d0cb345795f761181a06777ade61ff09c Mon Sep 17 00:00:00 2001 From: tcmal Date: Sun, 25 Aug 2024 17:44:23 +0100 Subject: refactor(all): separate rendering from framework stockton-passes is mostly just a stand-in until this is properly separated --- stockton-passes/src/data/ui.vert | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 stockton-passes/src/data/ui.vert (limited to 'stockton-passes/src/data/ui.vert') 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); +} -- cgit v1.2.3