From f166d006c26446c413d44522f783522541842976 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Wed, 18 Sep 2013 21:44:51 +0200 Subject: [PATCH] Shaders: `const` for readonly variables is since GLSL 4.20. --- src/Shaders/MeshVisualizer.frag | 3 +++ src/Shaders/MeshVisualizer.geom | 4 ++++ src/Shaders/Phong.frag | 4 ++++ src/Shaders/compatibility.glsl | 6 ++++++ 4 files changed, 17 insertions(+) diff --git a/src/Shaders/MeshVisualizer.frag b/src/Shaders/MeshVisualizer.frag index 5ec882ed0..981b30a8b 100644 --- a/src/Shaders/MeshVisualizer.frag +++ b/src/Shaders/MeshVisualizer.frag @@ -25,6 +25,9 @@ #ifndef NEW_GLSL #define in varying #define fragmentColor gl_FragColor +#endif + +#ifndef RUNTIME_CONST #define const #endif diff --git a/src/Shaders/MeshVisualizer.geom b/src/Shaders/MeshVisualizer.geom index 3043f38cf..f6a5f6e73 100644 --- a/src/Shaders/MeshVisualizer.geom +++ b/src/Shaders/MeshVisualizer.geom @@ -22,6 +22,10 @@ DEALINGS IN THE SOFTWARE. */ +#ifndef RUNTIME_CONST +#define const +#endif + layout(location = 1) uniform vec2 viewportSize; layout(triangles) in; diff --git a/src/Shaders/Phong.frag b/src/Shaders/Phong.frag index 3d98851f6..3390442f7 100644 --- a/src/Shaders/Phong.frag +++ b/src/Shaders/Phong.frag @@ -27,6 +27,10 @@ #define color gl_FragColor #endif +#ifndef RUNTIME_CONST +#define const +#endif + #ifndef GL_ES #ifdef EXPLICIT_UNIFORM_LOCATION layout(location = 7) uniform vec3 lightColor = vec3(1.0, 1.0, 1.0); diff --git a/src/Shaders/compatibility.glsl b/src/Shaders/compatibility.glsl index 3534b4187..50e527d10 100644 --- a/src/Shaders/compatibility.glsl +++ b/src/Shaders/compatibility.glsl @@ -56,3 +56,9 @@ #define mediump #define lowp #endif + +/* const qualifier can be used for readonly variables since GLSL 4.20, however + it's not supported even in ES 3.0 */ +#if !defined(GL_ES) && __VERSION__ >= 420 +#define RUNTIME_CONST +#endif