From a07eccd5c733878b16c9830377aa3efe08a0d97a Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Thu, 3 Nov 2022 16:42:49 +0900 Subject: [PATCH] [glsl] Fix some GLSL conformance issues I'm not sure when things broke on my laptop (I thought I got warp and fisheye working on my laptop), but it turns out things weren't quite right, thus warp (and presumably fisheye) weren't working properly due to GLSL errors that I only just noticed. This fixes water warp (and probably fisheye). --- libs/video/renderer/glsl/glsl_fisheye.c | 2 ++ libs/video/renderer/glsl/glsl_warp.c | 2 ++ libs/video/renderer/glsl/quakeforge.glsl | 8 +++++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/libs/video/renderer/glsl/glsl_fisheye.c b/libs/video/renderer/glsl/glsl_fisheye.c index edd7c9871..2291ccdc6 100644 --- a/libs/video/renderer/glsl/glsl_fisheye.c +++ b/libs/video/renderer/glsl/glsl_fisheye.c @@ -53,12 +53,14 @@ static const char *fisheye_vert_effects[] = { + "QuakeForge.version.130", "QuakeForge.Vertex.fstri", 0 }; static const char *fisheye_frag_effects[] = { + "QuakeForge.version.130", "QuakeForge.Math.const", "QuakeForge.Fragment.screen.fisheye", 0 diff --git a/libs/video/renderer/glsl/glsl_warp.c b/libs/video/renderer/glsl/glsl_warp.c index d0e16727d..b4579b606 100644 --- a/libs/video/renderer/glsl/glsl_warp.c +++ b/libs/video/renderer/glsl/glsl_warp.c @@ -53,12 +53,14 @@ static const char *warp_vert_effects[] = { + "QuakeForge.version.130", "QuakeForge.Vertex.fstri", 0 }; static const char *warp_frag_effects[] = { + "QuakeForge.version.130", "QuakeForge.Math.const", "QuakeForge.Fragment.screen.warp", 0 diff --git a/libs/video/renderer/glsl/quakeforge.glsl b/libs/video/renderer/glsl/quakeforge.glsl index b99f142e2..05001cb83 100644 --- a/libs/video/renderer/glsl/quakeforge.glsl +++ b/libs/video/renderer/glsl/quakeforge.glsl @@ -552,8 +552,9 @@ main (void) gl_FragColor = fogBlend (col); } --- Vertex.fstri +-- version.130 #version 130 +-- Vertex.fstri out vec2 uv; @@ -582,8 +583,9 @@ const vec2 B = vec2 (1, 1); void main () { - uv = uv * (1.0 - 2.0*A) + A * (B + sin ((time * S + F * uv.yx) * 2.0*PI)); - vec4 c = texture2D (screenTex, uv); + vec2 st; + st = uv * (1.0 - 2.0*A) + A * (B + sin ((time * S + F * uv.yx) * 2.0*PI)); + vec4 c = texture2D (screenTex, st); gl_FragColor = c;//vec4(uv, c.x, 1); }