@@ -32,7 +32,14 @@ IN(flat) vec4 var_FogSurface;
3232
3333#ifdef OUTSIDE_FOG
3434#define NUM_PLANES 5
35- IN(flat ) vec4 var_FogPlanes[NUM_PLANES];
35+
36+ /* Not supported on GLSL 1.20:
37+ IN(flat) vec4 var_FogPlanes[NUM_PLANES]; */
38+ IN(flat ) vec4 var_FogPlane0;
39+ IN(flat ) vec4 var_FogPlane1;
40+ IN(flat ) vec4 var_FogPlane2;
41+ IN(flat ) vec4 var_FogPlane3;
42+ IN(flat ) vec4 var_FogPlane4;
3643#endif
3744
3845uniform sampler2D u_DepthMap;
@@ -49,11 +56,19 @@ DECLARE_OUTPUT(vec4)
4956// Trace against the inner sides of the fog brush
5057float FogDistance(vec3 start, vec3 dir)
5158{
59+ vec4 fogPlanes[NUM_PLANES];
60+ fogPlanes[0 ] = var_FogPlane0;
61+ fogPlanes[1 ] = var_FogPlane1;
62+ fogPlanes[2 ] = var_FogPlane2;
63+ fogPlanes[3 ] = var_FogPlane3;
64+ fogPlanes[4 ] = var_FogPlane4;
65+
5266 vec4 start4 = vec4 (- start, 1.0 );
5367 float minDist = 1.0e20 ;
5468 for (int i = 0 ; i < NUM_PLANES; i++ )
5569 {
56- float dist = dot (start4, var_FogPlanes[i]) / dot (dir, var_FogPlanes[i].xyz) ;
70+ float dist = dot (start4, fogPlanes[i]) / dot (dir, fogPlanes[i].xyz) ;
71+
5772 if (dist >= 0.0 )
5873 {
5974 minDist = min (minDist, dist);
0 commit comments