summaryrefslogtreecommitdiff
path: root/gfx
diff options
context:
space:
mode:
Diffstat (limited to 'gfx')
-rw-r--r--gfx/gl/shaders/billboard.frag3
-rw-r--r--gfx/gl/shaders/billboardPainter.frag5
-rw-r--r--gfx/gl/shaders/billboardPainter.geom3
-rw-r--r--gfx/gl/shaders/billboardPainter.vert7
-rw-r--r--gfx/gl/shaders/commonPoint.glsl7
-rw-r--r--gfx/gl/shaders/commonShadowPoint-geom.glsl37
-rw-r--r--gfx/gl/shaders/commonShadowPoint.geom30
-rw-r--r--gfx/gl/shaders/commonShadowPoint.glsl11
-rw-r--r--gfx/gl/shaders/dynamicPoint.vert7
-rw-r--r--gfx/gl/shaders/dynamicPointInst.vert7
-rw-r--r--gfx/gl/shaders/fixedPoint.vert7
-rw-r--r--gfx/gl/shaders/getMaterialDetail.glsl7
-rw-r--r--gfx/gl/shaders/landmass.frag4
-rw-r--r--gfx/gl/shaders/material.frag7
-rw-r--r--gfx/gl/shaders/materialCommon.glsl7
-rw-r--r--gfx/gl/shaders/materialDetail.glsl5
-rw-r--r--gfx/gl/shaders/materialInterface.glsl13
-rw-r--r--gfx/gl/shaders/materialOut.glsl5
-rw-r--r--gfx/gl/shaders/meshIn.glsl5
-rw-r--r--gfx/gl/shaders/network.frag4
-rw-r--r--gfx/gl/shaders/networkCommon.glsl52
-rw-r--r--gfx/gl/shaders/networkCurve.geom3
-rw-r--r--gfx/gl/shaders/networkCurve.tese3
-rw-r--r--gfx/gl/shaders/networkStraight.geom3
-rw-r--r--gfx/gl/shaders/networkStraight.vert3
-rw-r--r--gfx/gl/shaders/shadowDynamicPoint.vert5
-rw-r--r--gfx/gl/shaders/shadowDynamicPointInst.vert5
-rw-r--r--gfx/gl/shaders/shadowDynamicPointInstWithTextures.frag5
-rw-r--r--gfx/gl/shaders/shadowDynamicPointInstWithTextures.geom6
-rw-r--r--gfx/gl/shaders/shadowDynamicPointInstWithTextures.vert11
-rw-r--r--gfx/gl/shaders/shadowStencil.frag6
-rw-r--r--gfx/gl/shaders/shadowStencil.geom3
-rw-r--r--gfx/gl/shaders/shadowStencil.vert7
-rw-r--r--gfx/gl/shaders/water.frag4
34 files changed, 198 insertions, 99 deletions
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;