summaryrefslogtreecommitdiff
path: root/gfx/gl/shaders/commonShadowPoint-geom.glsl
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2026-03-10 21:52:38 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2026-03-10 21:52:38 +0000
commit5126582accd4af607184946200f5a937ff8d6b69 (patch)
tree4418890fee58c4ae2a7ada8e41bdfa46df897157 /gfx/gl/shaders/commonShadowPoint-geom.glsl
parentRefactor glMappedBufferWriter into a DSA wrapper for std::span (diff)
downloadilt-5126582accd4af607184946200f5a937ff8d6b69.tar.bz2
ilt-5126582accd4af607184946200f5a937ff8d6b69.tar.xz
ilt-5126582accd4af607184946200f5a937ff8d6b69.zip
Replace hacky m4 shader preprocessing with proper glslang version
Diffstat (limited to 'gfx/gl/shaders/commonShadowPoint-geom.glsl')
-rw-r--r--gfx/gl/shaders/commonShadowPoint-geom.glsl37
1 files changed, 37 insertions, 0 deletions
diff --git a/gfx/gl/shaders/commonShadowPoint-geom.glsl b/gfx/gl/shaders/commonShadowPoint-geom.glsl
new file mode 100644
index 0000000..f373834
--- /dev/null
+++ b/gfx/gl/shaders/commonShadowPoint-geom.glsl
@@ -0,0 +1,37 @@
+#ifndef COMMON_SHADOW_POINT_GEOM_INCLUDED
+#define COMMON_SHADOW_POINT_GEOM_INCLUDED
+
+uniform mat4 viewProjection[4];
+uniform int viewProjections;
+in vec4 vworldPos[];
+layout(triangles) in;
+layout(triangle_strip, max_vertices = 12) out;
+
+#ifdef TEXTURES
+# include "materialDetail.glsl"
+
+in vec2 TexCoords[];
+out vec2 texCoord;
+flat in MaterialDetail Material[];
+flat out MaterialDetail material;
+#endif
+
+void
+main()
+{
+ for (int vp = 0; vp < viewProjections; ++vp) {
+ for (int v = 0; v < vworldPos.length(); ++v) {
+ gl_Position = viewProjection[vp] * vworldPos[v];
+ gl_Position.z = max(gl_Position.z, -1);
+ gl_Layer = vp;
+#ifdef TEXTURES
+ texCoord = TexCoords[v];
+ material = Material[v];
+#endif
+ EmitVertex();
+ }
+ EndPrimitive();
+ }
+}
+
+#endif