From 5126582accd4af607184946200f5a937ff8d6b69 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Tue, 10 Mar 2026 21:52:38 +0000 Subject: Replace hacky m4 shader preprocessing with proper glslang version --- gfx/gl/shaders/billboard.frag | 3 +- gfx/gl/shaders/billboardPainter.frag | 5 ++- gfx/gl/shaders/billboardPainter.geom | 3 +- gfx/gl/shaders/billboardPainter.vert | 7 +-- gfx/gl/shaders/commonPoint.glsl | 7 ++- gfx/gl/shaders/commonShadowPoint-geom.glsl | 37 +++++++++++++++ gfx/gl/shaders/commonShadowPoint.geom | 30 ++----------- gfx/gl/shaders/commonShadowPoint.glsl | 11 ++++- gfx/gl/shaders/dynamicPoint.vert | 7 +-- gfx/gl/shaders/dynamicPointInst.vert | 7 +-- gfx/gl/shaders/fixedPoint.vert | 7 +-- gfx/gl/shaders/getMaterialDetail.glsl | 7 +++ gfx/gl/shaders/landmass.frag | 4 +- gfx/gl/shaders/material.frag | 7 +-- gfx/gl/shaders/materialCommon.glsl | 7 +++ gfx/gl/shaders/materialDetail.glsl | 5 +++ gfx/gl/shaders/materialInterface.glsl | 13 +++++- gfx/gl/shaders/materialOut.glsl | 5 +++ gfx/gl/shaders/meshIn.glsl | 5 +++ gfx/gl/shaders/network.frag | 4 +- gfx/gl/shaders/networkCommon.glsl | 52 +++++++++++++--------- gfx/gl/shaders/networkCurve.geom | 3 +- gfx/gl/shaders/networkCurve.tese | 3 +- gfx/gl/shaders/networkStraight.geom | 3 +- gfx/gl/shaders/networkStraight.vert | 3 +- gfx/gl/shaders/shadowDynamicPoint.vert | 5 ++- gfx/gl/shaders/shadowDynamicPointInst.vert | 5 ++- .../shadowDynamicPointInstWithTextures.frag | 5 ++- .../shadowDynamicPointInstWithTextures.geom | 6 ++- .../shadowDynamicPointInstWithTextures.vert | 11 ++--- gfx/gl/shaders/shadowStencil.frag | 6 ++- gfx/gl/shaders/shadowStencil.geom | 3 +- gfx/gl/shaders/shadowStencil.vert | 7 +-- gfx/gl/shaders/water.frag | 4 +- 34 files changed, 198 insertions(+), 99 deletions(-) create mode 100644 gfx/gl/shaders/commonShadowPoint-geom.glsl (limited to 'gfx') diff --git a/gfx/gl/shaders/billboard.frag b/gfx/gl/shaders/billboard.frag index 7864c79..d5610de 100644 --- a/gfx/gl/shaders/billboard.frag +++ b/gfx/gl/shaders/billboard.frag @@ -1,4 +1,5 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable const float tau = 6.28318531; @@ -8,7 +9,7 @@ layout(binding = 2) uniform sampler2DArray billboardAlbedo; uniform mat4 viewProjection; uniform float size; -include(`materialOut.glsl') +#include "materialOut.glsl" flat in vec3 ModelPos; flat in float Yaw; diff --git a/gfx/gl/shaders/billboardPainter.frag b/gfx/gl/shaders/billboardPainter.frag index 354f2ab..cba294f 100644 --- a/gfx/gl/shaders/billboardPainter.frag +++ b/gfx/gl/shaders/billboardPainter.frag @@ -1,11 +1,12 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable layout(binding = 0) uniform sampler2D textureAlbedo; layout(location = 0) out vec4 bNormal; layout(location = 1) out vec4 bAlbedoSpec; -include(`materialDetail.glsl') -include(`materialCommon.glsl') +#include "materialCommon.glsl" +#include "materialDetail.glsl" in vec2 gTexCoords; in vec3 gNormal; in vec4 gColour; diff --git a/gfx/gl/shaders/billboardPainter.geom b/gfx/gl/shaders/billboardPainter.geom index abd5f83..aa4ad81 100644 --- a/gfx/gl/shaders/billboardPainter.geom +++ b/gfx/gl/shaders/billboardPainter.geom @@ -1,6 +1,7 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable -include(`materialDetail.glsl') +#include "materialDetail.glsl" layout(triangles) in; layout(triangle_strip, max_vertices = 24) out; diff --git a/gfx/gl/shaders/billboardPainter.vert b/gfx/gl/shaders/billboardPainter.vert index d7c1219..a2d0b2e 100644 --- a/gfx/gl/shaders/billboardPainter.vert +++ b/gfx/gl/shaders/billboardPainter.vert @@ -1,10 +1,11 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable layout(binding = 1) uniform usampler2DRect materialData; -include(`meshIn.glsl') -include(`materialDetail.glsl') -include(`getMaterialDetail.glsl') +#include "getMaterialDetail.glsl" +#include "materialDetail.glsl" +#include "meshIn.glsl" out vec3 FragPos; out vec2 TexCoords; diff --git a/gfx/gl/shaders/commonPoint.glsl b/gfx/gl/shaders/commonPoint.glsl index 9a08321..7c1a521 100644 --- a/gfx/gl/shaders/commonPoint.glsl +++ b/gfx/gl/shaders/commonPoint.glsl @@ -1,4 +1,7 @@ -include(`getMaterialDetail.glsl') +#ifndef COMMON_POINT_INCLUDED +#define COMMON_POINT_INCLUDED + +#include "getMaterialDetail.glsl" void main() @@ -11,3 +14,5 @@ main() gl_Position = viewProjection * vec4(FragPos, 1); } + +#endif 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 diff --git a/gfx/gl/shaders/commonShadowPoint.geom b/gfx/gl/shaders/commonShadowPoint.geom index a515d97..519dc62 100644 --- a/gfx/gl/shaders/commonShadowPoint.geom +++ b/gfx/gl/shaders/commonShadowPoint.geom @@ -1,28 +1,4 @@ -#version 460 core +#version 460 +#extension GL_ARB_shading_language_include : enable -ifdef(`TEXTURES', include(`materialDetail.glsl')) - -uniform mat4 viewProjection[4]; -uniform int viewProjections; -in vec4 vworldPos[]; -layout(triangles) in; -layout(triangle_strip, max_vertices = 12) out; - -ifdef(`TEXTURES', in vec2 TexCoords[]; out vec2 texCoord;) -ifdef(`TEXTURES', flat in MaterialDetail Material[]; flat out MaterialDetail material;) - -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];) - ifdef(`TEXTURES', material = Material[v];) - EmitVertex(); - } - EndPrimitive(); - } -} +#include "commonShadowPoint-geom.glsl" diff --git a/gfx/gl/shaders/commonShadowPoint.glsl b/gfx/gl/shaders/commonShadowPoint.glsl index 9910d46..e0b71a8 100644 --- a/gfx/gl/shaders/commonShadowPoint.glsl +++ b/gfx/gl/shaders/commonShadowPoint.glsl @@ -1,3 +1,6 @@ +#ifndef COMMON_SHADOW_POINT_INCLUDED +#define COMMON_SHADOW_POINT_INCLUDED + out vec4 vworldPos; void @@ -5,6 +8,10 @@ main() { vec3 worldPos = model * position; vworldPos = vec4(worldPos - viewPoint + modelPos, 1); - ifdef(`TEXTURES', TexCoords = texCoord;); - ifdef(`TEXTURES', Material = getMaterialDetail(material);); +#ifdef TEXTURES + TexCoords = texCoord; + Material = getMaterialDetail(material); +#endif } + +#endif diff --git a/gfx/gl/shaders/dynamicPoint.vert b/gfx/gl/shaders/dynamicPoint.vert index cd5fc26..fb4c7fd 100644 --- a/gfx/gl/shaders/dynamicPoint.vert +++ b/gfx/gl/shaders/dynamicPoint.vert @@ -1,13 +1,14 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable layout(binding = 1) uniform usampler2DRect materialData; -include(`meshIn.glsl') -include(`materialInterface.glsl') +#include "materialInterface.glsl" +#include "meshIn.glsl" uniform mat4 viewProjection; uniform ivec3 viewPoint; uniform mat3 model; uniform ivec3 modelPos; -include(`commonPoint.glsl') +#include "commonPoint.glsl" diff --git a/gfx/gl/shaders/dynamicPointInst.vert b/gfx/gl/shaders/dynamicPointInst.vert index 46fead9..7a00099 100644 --- a/gfx/gl/shaders/dynamicPointInst.vert +++ b/gfx/gl/shaders/dynamicPointInst.vert @@ -1,13 +1,14 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable layout(binding = 1) uniform usampler2DRect materialData; -include(`meshIn.glsl') -include(`materialInterface.glsl') +#include "materialInterface.glsl" +#include "meshIn.glsl" uniform mat4 viewProjection; uniform ivec3 viewPoint; layout(location = 5) in mat3 model; layout(location = 8) in ivec3 modelPos; -include(`commonPoint.glsl') +#include "commonPoint.glsl" diff --git a/gfx/gl/shaders/fixedPoint.vert b/gfx/gl/shaders/fixedPoint.vert index 9201251..fa9cf67 100644 --- a/gfx/gl/shaders/fixedPoint.vert +++ b/gfx/gl/shaders/fixedPoint.vert @@ -1,13 +1,14 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable layout(binding = 1) uniform usampler2DRect materialData; -include(`meshIn.glsl') -include(`materialInterface.glsl') +#include "materialInterface.glsl" +#include "meshIn.glsl" uniform mat4 viewProjection; uniform ivec3 viewPoint; const mat3 model = mat3(1); const vec3 modelPos = ivec3(0); -include(`commonPoint.glsl') +#include "commonPoint.glsl" diff --git a/gfx/gl/shaders/getMaterialDetail.glsl b/gfx/gl/shaders/getMaterialDetail.glsl index f819fb2..0169e4e 100644 --- a/gfx/gl/shaders/getMaterialDetail.glsl +++ b/gfx/gl/shaders/getMaterialDetail.glsl @@ -1,3 +1,8 @@ +#ifndef GET_MATERIAL_DETAIL_INCLUDED +#define GET_MATERIAL_DETAIL_INCLUDED + +#include "materialDetail.glsl" + MaterialDetail getMaterialDetail(uint midx) { @@ -10,3 +15,5 @@ getMaterialDetail(uint midx) } return MaterialDetail(vec2(0, 0), vec2(0, 0), uvec2(0, 0)); } + +#endif diff --git a/gfx/gl/shaders/landmass.frag b/gfx/gl/shaders/landmass.frag index d641ecd..d0a2ce3 100644 --- a/gfx/gl/shaders/landmass.frag +++ b/gfx/gl/shaders/landmass.frag @@ -1,6 +1,8 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable + +#include "materialOut.glsl" -include(`materialOut.glsl') in vec3 FragPos; in vec3 Normal; diff --git a/gfx/gl/shaders/material.frag b/gfx/gl/shaders/material.frag index 18a3169..16ea6d1 100644 --- a/gfx/gl/shaders/material.frag +++ b/gfx/gl/shaders/material.frag @@ -1,10 +1,11 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable layout(binding = 0) uniform sampler2D textureAlbedo; -include(`materialInterface.glsl') -include(`materialOut.glsl') -include(`materialCommon.glsl') +#include "materialCommon.glsl" +#include "materialInterface.glsl" +#include "materialOut.glsl" void main() diff --git a/gfx/gl/shaders/materialCommon.glsl b/gfx/gl/shaders/materialCommon.glsl index 4c2fbf8..f905e76 100644 --- a/gfx/gl/shaders/materialCommon.glsl +++ b/gfx/gl/shaders/materialCommon.glsl @@ -1,3 +1,8 @@ +#ifndef MATERIAL_COMMON_INCLUDED +#define MATERIAL_COMMON_INCLUDED + +#include "materialDetail.glsl" + float map(uint mapmode, float value) { @@ -31,3 +36,5 @@ getTextureColour(MaterialDetail mat, vec2 uv) } return texture(textureAlbedo, uv); } + +#endif diff --git a/gfx/gl/shaders/materialDetail.glsl b/gfx/gl/shaders/materialDetail.glsl index a208d50..873b343 100644 --- a/gfx/gl/shaders/materialDetail.glsl +++ b/gfx/gl/shaders/materialDetail.glsl @@ -1,5 +1,10 @@ +#ifndef MATERIAL_DETAIL_INCLUDED +#define MATERIAL_DETAIL_INCLUDED + struct MaterialDetail { vec2 textureOrigin; vec2 textureSize; uvec2 mapmode; }; + +#endif diff --git a/gfx/gl/shaders/materialInterface.glsl b/gfx/gl/shaders/materialInterface.glsl index bf78290..926bd6c 100644 --- a/gfx/gl/shaders/materialInterface.glsl +++ b/gfx/gl/shaders/materialInterface.glsl @@ -1,9 +1,18 @@ -include(`materialDetail.glsl') +#ifndef MATERIAL_INTERFACE_INCLUDED +#define MATERIAL_INTERFACE_INCLUDED -define(INOUT, ifelse(TYPE, .frag, in, out)) +#include "materialDetail.glsl" + +#ifdef GL_FRAGMENT_SHADER +# define INOUT in +#else +# define INOUT out +#endif INOUT vec3 FragPos; INOUT vec2 TexCoords; INOUT vec3 Normal; INOUT vec4 Colour; flat INOUT MaterialDetail Material; + +#endif diff --git a/gfx/gl/shaders/materialOut.glsl b/gfx/gl/shaders/materialOut.glsl index dc5f8e8..928edf0 100644 --- a/gfx/gl/shaders/materialOut.glsl +++ b/gfx/gl/shaders/materialOut.glsl @@ -1,3 +1,8 @@ +#ifndef MATERIAL_OUT_INCLUDED +#define MATERIAL_OUT_INCLUDED + layout(location = 0) out vec4 gPosition; layout(location = 1) out vec4 gNormal; layout(location = 2) out vec4 gAlbedoSpec; + +#endif diff --git a/gfx/gl/shaders/meshIn.glsl b/gfx/gl/shaders/meshIn.glsl index dd84a10..2a69391 100644 --- a/gfx/gl/shaders/meshIn.glsl +++ b/gfx/gl/shaders/meshIn.glsl @@ -1,5 +1,10 @@ +#ifndef MESH_OUT_INCLUDED +#define MESH_OUT_INCLUDED + layout(location = 0) in vec3 position; layout(location = 1) in vec2 texCoord; layout(location = 2) in vec3 normal; layout(location = 3) in vec4 colour; layout(location = 4) in uint material; + +#endif diff --git a/gfx/gl/shaders/network.frag b/gfx/gl/shaders/network.frag index 8c62e34..b7e24d2 100644 --- a/gfx/gl/shaders/network.frag +++ b/gfx/gl/shaders/network.frag @@ -1,6 +1,8 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable + +#include "materialOut.glsl" -include(`materialOut.glsl') in vec3 rposition; in vec2 texCoord; diff --git a/gfx/gl/shaders/networkCommon.glsl b/gfx/gl/shaders/networkCommon.glsl index 7aa911d..faa95ec 100644 --- a/gfx/gl/shaders/networkCommon.glsl +++ b/gfx/gl/shaders/networkCommon.glsl @@ -1,3 +1,6 @@ +#ifndef NETWORK_COMMON_INCLUDED +#define NETWORK_COMMON_INCLUDED + uniform vec3[10] profile; uniform float[10] texturePos; uniform uint profileLength; @@ -23,27 +26,32 @@ segDist(const ivec3 a, const ivec3 b) return min(viewPointDist(a), viewPointDist(b)); } -ifelse( - TYPE, .geom, - // Begin: Geometry shader only function - void doVertex(const ivec3 end, const uint v, const float texY, const mat2 rot) { - ivec3 vpos = end + ivec3(rot * profile[v].xy, profile[v].z); - rposition = vpos - viewPoint; - gl_Position = viewProjection * vec4(rposition, 1); - texCoord = vec2(texturePos[v], texY); - EmitVertex(); - } +#ifdef GL_GEOMETRY_SHADER // Begin: Geometry shader only function + +void +doVertex(const ivec3 end, const uint v, const float texY, const mat2 rot) +{ + ivec3 vpos = end + ivec3(rot * profile[v].xy, profile[v].z); + rposition = vpos - viewPoint; + gl_Position = viewProjection * vec4(rposition, 1); + texCoord = vec2(texturePos[v], texY); + EmitVertex(); +} - void doSeg(const float dist, const ivec3 apos, const ivec3 bpos, const float atexY, const float btexY, - const mat2 arot, const mat2 brot) { - if (dist < clipDistance) { - uint vstep = (dist < flatDistance) ? 1u : profileLength - 1u; - for (uint v = 0u; v < profileLength; v += vstep) { - doVertex(bpos, v, btexY, brot); - doVertex(apos, v, atexY, arot); - } - EndPrimitive(); - } +void +doSeg(const float dist, const ivec3 apos, const ivec3 bpos, const float atexY, const float btexY, const mat2 arot, + const mat2 brot) +{ + if (dist < clipDistance) { + uint vstep = (dist < flatDistance) ? 1u : profileLength - 1u; + for (uint v = 0u; v < profileLength; v += vstep) { + doVertex(bpos, v, btexY, brot); + doVertex(apos, v, atexY, arot); } - // End: Geometry shader only function -) + EndPrimitive(); + } +} + +#endif // End: Geometry shader only function + +#endif diff --git a/gfx/gl/shaders/networkCurve.geom b/gfx/gl/shaders/networkCurve.geom index 4a5b3db..a6bbd13 100644 --- a/gfx/gl/shaders/networkCurve.geom +++ b/gfx/gl/shaders/networkCurve.geom @@ -1,4 +1,5 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable layout(lines) in; layout(triangle_strip, max_vertices = 10) out; @@ -8,7 +9,7 @@ flat in mat2 rot[]; flat in float tpos[]; flat in float dist[]; -include(`networkCommon.glsl') +#include "networkCommon.glsl" void main() diff --git a/gfx/gl/shaders/networkCurve.tese b/gfx/gl/shaders/networkCurve.tese index 9cc31e2..1331776 100644 --- a/gfx/gl/shaders/networkCurve.tese +++ b/gfx/gl/shaders/networkCurve.tese @@ -1,4 +1,5 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable layout(isolines, equal_spacing, cw) in; @@ -16,7 +17,7 @@ flat out float dist; const float startTolerance = 1. / 200.; const float endTolerance = 1. - startTolerance; -include(`networkCommon.glsl') +#include "networkCommon.glsl" mat2 getRot(float angle) diff --git a/gfx/gl/shaders/networkStraight.geom b/gfx/gl/shaders/networkStraight.geom index a0e57c8..0aa029a 100644 --- a/gfx/gl/shaders/networkStraight.geom +++ b/gfx/gl/shaders/networkStraight.geom @@ -1,4 +1,5 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable layout(points) in; layout(triangle_strip, max_vertices = 10) out; @@ -8,7 +9,7 @@ flat in mat2 rot[]; flat in float reps[]; flat in float dist[]; -include(`networkCommon.glsl') +#include "networkCommon.glsl" void main() diff --git a/gfx/gl/shaders/networkStraight.vert b/gfx/gl/shaders/networkStraight.vert index 91ba955..ffd7deb 100644 --- a/gfx/gl/shaders/networkStraight.vert +++ b/gfx/gl/shaders/networkStraight.vert @@ -1,4 +1,5 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable layout(location = 0) in ivec3 v_pos[2]; layout(location = 2) in mat2 v_rot; @@ -9,7 +10,7 @@ flat out mat2 rot; flat out float reps; flat out float dist; -include(`networkCommon.glsl') +#include "networkCommon.glsl" void main() diff --git a/gfx/gl/shaders/shadowDynamicPoint.vert b/gfx/gl/shaders/shadowDynamicPoint.vert index 907378e..248b7b0 100644 --- a/gfx/gl/shaders/shadowDynamicPoint.vert +++ b/gfx/gl/shaders/shadowDynamicPoint.vert @@ -1,9 +1,10 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable -include(`meshIn.glsl') +#include "meshIn.glsl" uniform ivec3 viewPoint; uniform mat3 model; uniform ivec3 modelPos; -include(`commonShadowPoint.glsl') +#include "commonShadowPoint.glsl" diff --git a/gfx/gl/shaders/shadowDynamicPointInst.vert b/gfx/gl/shaders/shadowDynamicPointInst.vert index da4a76f..d020717 100644 --- a/gfx/gl/shaders/shadowDynamicPointInst.vert +++ b/gfx/gl/shaders/shadowDynamicPointInst.vert @@ -1,9 +1,10 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable -include(`meshIn.glsl') +#include "meshIn.glsl" uniform ivec3 viewPoint; layout(location = 5) in mat3 model; layout(location = 8) in ivec3 modelPos; -include(`commonShadowPoint.glsl') +#include "commonShadowPoint.glsl" diff --git a/gfx/gl/shaders/shadowDynamicPointInstWithTextures.frag b/gfx/gl/shaders/shadowDynamicPointInstWithTextures.frag index 46a2c9c..e9d83d2 100644 --- a/gfx/gl/shaders/shadowDynamicPointInstWithTextures.frag +++ b/gfx/gl/shaders/shadowDynamicPointInstWithTextures.frag @@ -1,9 +1,10 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable layout(binding = 3) uniform sampler2D textureAlbedo; -include(`materialDetail.glsl') -include(`materialCommon.glsl') +#include "materialCommon.glsl" +#include "materialDetail.glsl" in vec2 texCoord; flat in MaterialDetail material; diff --git a/gfx/gl/shaders/shadowDynamicPointInstWithTextures.geom b/gfx/gl/shaders/shadowDynamicPointInstWithTextures.geom index 3aaf9a8..72e4075 100644 --- a/gfx/gl/shaders/shadowDynamicPointInstWithTextures.geom +++ b/gfx/gl/shaders/shadowDynamicPointInstWithTextures.geom @@ -1,3 +1,5 @@ -define(`TEXTURES', 1) +#version 460 +#extension GL_ARB_shading_language_include : enable +#define TEXTURES -include(`commonShadowPoint.geom') +#include "commonShadowPoint-geom.glsl" diff --git a/gfx/gl/shaders/shadowDynamicPointInstWithTextures.vert b/gfx/gl/shaders/shadowDynamicPointInstWithTextures.vert index 41a47b0..51b05c8 100644 --- a/gfx/gl/shaders/shadowDynamicPointInstWithTextures.vert +++ b/gfx/gl/shaders/shadowDynamicPointInstWithTextures.vert @@ -1,14 +1,15 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable +#define TEXTURES layout(binding = 4) uniform usampler2DRect materialData; -define(`TEXTURES', 1) -include(`materialInterface.glsl') -include(`getMaterialDetail.glsl') -include(`meshIn.glsl') +#include "getMaterialDetail.glsl" +#include "materialInterface.glsl" +#include "meshIn.glsl" uniform ivec3 viewPoint; layout(location = 5) in mat3 model; layout(location = 8) in ivec3 modelPos; -include(`commonShadowPoint.glsl') +#include "commonShadowPoint.glsl" diff --git a/gfx/gl/shaders/shadowStencil.frag b/gfx/gl/shaders/shadowStencil.frag index 3269f69..35cdf6e 100644 --- a/gfx/gl/shaders/shadowStencil.frag +++ b/gfx/gl/shaders/shadowStencil.frag @@ -1,9 +1,11 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable layout(binding = 0) uniform sampler2D textureAlbedo; -include(`materialDetail.glsl') -include(`materialCommon.glsl') +#include "materialCommon.glsl" +#include "materialDetail.glsl" + in vec2 gTexCoords; flat in MaterialDetail gMaterial; diff --git a/gfx/gl/shaders/shadowStencil.geom b/gfx/gl/shaders/shadowStencil.geom index 53a4c19..9c5ba48 100644 --- a/gfx/gl/shaders/shadowStencil.geom +++ b/gfx/gl/shaders/shadowStencil.geom @@ -1,6 +1,7 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable -include(`materialDetail.glsl') +#include "materialDetail.glsl" layout(triangles) in; layout(triangle_strip, max_vertices = 24) out; diff --git a/gfx/gl/shaders/shadowStencil.vert b/gfx/gl/shaders/shadowStencil.vert index e6286e6..98e8434 100644 --- a/gfx/gl/shaders/shadowStencil.vert +++ b/gfx/gl/shaders/shadowStencil.vert @@ -1,10 +1,11 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable layout(binding = 1) uniform usampler2DRect materialData; -include(`meshIn.glsl') -include(`materialDetail.glsl') -include(`getMaterialDetail.glsl') +#include "getMaterialDetail.glsl" +#include "materialDetail.glsl" +#include "meshIn.glsl" out vec3 FragPos; out vec2 TexCoords; diff --git a/gfx/gl/shaders/water.frag b/gfx/gl/shaders/water.frag index 86a8a87..0c57bfb 100644 --- a/gfx/gl/shaders/water.frag +++ b/gfx/gl/shaders/water.frag @@ -1,8 +1,10 @@ #version 460 core +#extension GL_ARB_shading_language_include : enable + +#include "materialOut.glsl" in vec4 FragPos; in vec2 TexCoords; -include(`materialOut.glsl') uniform sampler2D texture0; -- cgit v1.3