aboutsummaryrefslogtreecommitdiff
path: root/stockton-passes/src/data
diff options
context:
space:
mode:
Diffstat (limited to 'stockton-passes/src/data')
-rw-r--r--stockton-passes/src/data/3d.frag15
-rw-r--r--stockton-passes/src/data/3d.vert23
-rw-r--r--stockton-passes/src/data/ui.frag15
-rw-r--r--stockton-passes/src/data/ui.vert37
4 files changed, 90 insertions, 0 deletions
diff --git a/stockton-passes/src/data/3d.frag b/stockton-passes/src/data/3d.frag
new file mode 100644
index 0000000..336d9fe
--- /dev/null
+++ b/stockton-passes/src/data/3d.frag
@@ -0,0 +1,15 @@
+#version 450
+
+// DescriptorSet 0 = Textures
+layout(set = 0, binding = 0) uniform texture2D tex[8];
+layout(set = 0, binding = 1) uniform sampler samp[8];
+
+layout (location = 1) in vec2 frag_uv;
+layout (location = 2) in flat int frag_tex;
+
+layout (location = 0) out vec4 color;
+
+void main()
+{
+ color = texture(sampler2D(tex[frag_tex % 8], samp[frag_tex % 8]), frag_uv);
+} \ No newline at end of file
diff --git a/stockton-passes/src/data/3d.vert b/stockton-passes/src/data/3d.vert
new file mode 100644
index 0000000..aaee1a5
--- /dev/null
+++ b/stockton-passes/src/data/3d.vert
@@ -0,0 +1,23 @@
+#version 450
+
+// DescriptorSet 0 = Matrices
+layout (push_constant) uniform PushConsts {
+ mat4 vp;
+} push;
+
+layout (location = 0) in vec3 position;
+layout (location = 1) in int tex;
+layout (location = 2) in vec2 uv;
+
+out gl_PerVertex {
+ vec4 gl_Position;
+};
+layout (location = 1) out vec2 frag_uv;
+layout (location = 2) out flat int frag_tex;
+
+void main()
+{
+ gl_Position = push.vp * vec4(position, 1.0);
+ frag_uv = uv;
+ frag_tex = tex;
+} \ No newline at end of file
diff --git a/stockton-passes/src/data/ui.frag b/stockton-passes/src/data/ui.frag
new file mode 100644
index 0000000..c30c99e
--- /dev/null
+++ b/stockton-passes/src/data/ui.frag
@@ -0,0 +1,15 @@
+#version 450
+#extension GL_ARB_separate_shader_objects : enable
+
+// DescriptorSet 0 = Textures
+layout(set = 0, binding = 0) uniform texture2D tex[8];
+layout(set = 0, binding = 1) uniform sampler samp[8];
+
+layout (location = 1) in vec2 frag_uv;
+layout (location = 2) in vec4 frag_col;
+
+layout (location = 0) out vec4 color;
+
+void main() {
+ color = texture(sampler2D(tex[0], samp[0]), frag_uv) * frag_col;
+} \ No newline at end of file
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);
+}