From f76b3d7e7d778fec7f082c46491197cac9867a50 Mon Sep 17 00:00:00 2001
From: Graham Madarasz <graham@lindenlab.com>
Date: Thu, 18 Apr 2013 05:30:44 -0700
Subject: NORSPEC-125 fiddle with ifdefs in alpha shaders again in hopes of
 linking on mobile geforce macs

---
 .../shaders/class1/deferred/alphaF.glsl            | 20 ++++++--------
 .../shaders/class1/deferred/alphaV.glsl            | 24 +++++++++-------
 .../shaders/class2/deferred/alphaF.glsl            | 16 ++++-------
 .../shaders/class2/deferred/alphaV.glsl            | 32 ++++++++++++----------
 indra/newview/llviewershadermgr.cpp                |  6 ++--
 indra/newview/pipeline.cpp                         |  1 +
 6 files changed, 50 insertions(+), 49 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
index 057c0a1ec9..713aae9187 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
@@ -25,10 +25,6 @@
  
 #extension GL_ARB_texture_rectangle : enable
 
-#define INDEXED 1
-#define NON_INDEXED 2
-#define NON_INDEXED_NO_COLOR 3
-
 #ifdef DEFINE_GL_FRAGCOLOR
 out vec4 frag_color;
 #else
@@ -37,11 +33,13 @@ out vec4 frag_color;
 
 uniform sampler2DRect depthMap;
 
-#if !INDEX_MODE || INDEX_MODE_NO_COLOR
+#ifndef INDEX_MODE
+#ifndef INDEX_MODE_USE_COLOR
 uniform sampler2D diffuseMap;
 #endif
+#endif
 
-#if INDEX_MODE
+#ifdef INDEX_MODE
 vec4 diffuseLookup(vec2 texcoord);
 #endif
 
@@ -61,7 +59,7 @@ VARYING vec2 vary_texcoord2;
 VARYING vec3 vary_norm;
 VARYING mat3 vary_rotation;
 
-#if !INDEX_MODE_NO_COLOR
+#ifdef INDEX_MODE_USE_COLOR
 VARYING vec4 vertex_color;
 #endif
 
@@ -124,16 +122,16 @@ void main()
 	
 	vec4 pos = vec4(vary_position, 1.0);
 	
-#if INDEX_MODE
+#ifdef INDEX_MODE
 	vec4 diff= diffuseLookup(vary_texcoord0.xy);
 #else
 	vec4 diff = texture2D(diffuseMap,vary_texcoord0.xy);
 #endif
 
-#if INDEX_MODE_NO_COLOR
-	float vertex_color_alpha = 1.0;
-#else
+#ifdef INDEX_MODE_USE_COLOR
 	float vertex_color_alpha = vertex_color.a;
+#else
+	float vertex_color_alpha = 1.0;
 #endif
 	
 	vec3 normal = texture2D(bumpMap, vary_texcoord1.xy).xyz * 2 - 1;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl
index 7506123a94..55d15ce847 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl
@@ -34,7 +34,7 @@ uniform mat4 modelview_matrix;
 uniform mat4 modelview_projection_matrix;
 
 ATTRIBUTE vec3 position;
-#if INDEX_MODE
+#ifdef INDEX_MODE
 void passTextureIndex();
 #endif
 ATTRIBUTE vec3 normal;
@@ -44,7 +44,7 @@ ATTRIBUTE vec3 binormal;
 ATTRIBUTE vec2 texcoord1;
 ATTRIBUTE vec2 texcoord2;
 
-#if HAS_SKIN
+#ifdef HAS_SKIN
 mat4 getObjectSkinnedTransform();
 #elif IS_AVATAR_SKIN
 mat4 getSkinnedTransform();
@@ -66,7 +66,7 @@ VARYING vec3 vary_fragcoord;
 VARYING vec3 vary_position;
 VARYING vec3 vary_pointlight_col;
 
-#if !INDEX_MODE_NO_COLOR
+#ifdef INDEX_MODE_USE_COLOR
 VARYING vec4 vertex_color;
 #endif
 
@@ -127,7 +127,7 @@ void main()
 	vec4 pos;
 	vec3 norm;
 	//transform vertex
-#if HAS_SKIN
+#ifdef HAS_SKIN
 	mat4 trans = getObjectSkinnedTransform();
 	trans = modelview_matrix * trans;
 	
@@ -137,7 +137,8 @@ void main()
 	norm = normalize((trans * vec4(norm, 1.0)).xyz - pos.xyz);
 	vec4 frag_pos = projection_matrix * pos;
 	gl_Position = frag_pos;
-#elif IS_AVATAR_SKIN
+#else
+#ifdef IS_AVATAR_SKIN
 	mat4 trans = getSkinnedTransform();
 	vec4 pos_in = vec4(position.xyz, 1.0);
 	pos.x = dot(trans[0], pos_in);
@@ -157,11 +158,13 @@ void main()
 	vec4 vert = vec4(position.xyz, 1.0);
 	pos = (modelview_matrix * vert);
 	gl_Position = modelview_projection_matrix*vec4(position.xyz, 1.0);
+#endif
 #endif
 
 	vary_texcoord1 = (texture_matrix0 * vec4(texcoord1,0,1)).xy;
 	vary_texcoord2 = (texture_matrix0 * vec4(texcoord2,0,1)).xy;
-#if INDEX_MODE
+
+#ifdef INDEX_MODE
 	passTextureIndex();
 	vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy;
 #else
@@ -197,17 +200,18 @@ void main()
 	vary_directional.rgb = atmosAffectDirectionalLight(1.0f);
 	
 	col.rgb = col.rgb*diffuse_color.rgb;
-#if !INDEX_MODE_NO_COLOR
+#ifdef INDEX_MODE_USE_COLOR
 	vertex_color = col;
 #endif
 	
-#if HAS_SKIN
+#ifdef HAS_SKIN
 	vary_fragcoord.xyz = frag_pos.xyz + vec3(0,0,near_clip);
-#elif IS_AVATAR_SKIN
+#else
+#ifdef IS_AVATAR_SKIN
 	vary_fragcoord.xyz = pos.xyz + vec3(0,0,near_clip);
 #else
 	pos = modelview_projection_matrix * vert;
 	vary_fragcoord.xyz = pos.xyz + vec3(0,0,near_clip);
 #endif
-
+#endif
 }
diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl
index e2fd52b8ad..da47d60049 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl
@@ -25,10 +25,6 @@
 
 #extension GL_ARB_texture_rectangle : enable
 
-#define INDEXED 1
-#define NON_INDEXED 2
-#define NON_INDEXED_NO_COLOR 3
-
 #ifdef DEFINE_GL_FRAGCOLOR
 out vec4 frag_color;
 #else
@@ -41,7 +37,7 @@ uniform sampler2DShadow shadowMap2;
 uniform sampler2DShadow shadowMap3;
 uniform sampler2DRect depthMap;
 
-#if !INDEX_MODE || INDEX_MODE_NO_COLOR
+#ifndef INDEX_MODE
 uniform sampler2D diffuseMap;
 #endif
 
@@ -62,7 +58,7 @@ VARYING vec2 vary_texcoord2;
 VARYING vec3 vary_norm;
 VARYING mat3 vary_rotation;
 
-#if !INDEX_MODE_NO_COLOR
+#ifdef INDEX_MODE_USE_COLOR
 VARYING vec4 vertex_color;
 #endif
 
@@ -210,16 +206,16 @@ void main()
 	}
 
 	vec4 diff;
-#if INDEX_MODE
+#ifdef INDEX_MODE
 	diff = diffuseLookup(vary_texcoord0.xy);
 #else
 	diff = texture2D(diffuseMap,vary_texcoord0.xy);
 #endif
 	
-#if INDEX_MODE_NO_COLOR
-	float vertex_color_alpha = 1.0;
-#else
+#ifdef INDEX_MODE_USE_COLOR
 	float vertex_color_alpha = vertex_color.a;
+#else
+	float vertex_color_alpha = 1.0;
 #endif
 
 	vec3 normal = texture2D(bumpMap, vary_texcoord1.xy).xyz * 2 - 1;
diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl
index 7c71e605c7..bc5bbd42c7 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl
@@ -23,10 +23,6 @@
  * $/LicenseInfo$
  */
 
-#define INDEXED 1
-#define NON_INDEXED 2
-#define NON_INDEXED_NO_COLOR 3
-
 uniform mat3 normal_matrix;
 uniform mat4 texture_matrix0;
 uniform mat4 projection_matrix;
@@ -34,7 +30,7 @@ uniform mat4 modelview_matrix;
 uniform mat4 modelview_projection_matrix;
 
 ATTRIBUTE vec3 position;
-#if INDEX_MODE
+#ifdef INDEX_MODE
 void passTextureIndex();
 #endif
 ATTRIBUTE vec3 normal;
@@ -45,11 +41,13 @@ ATTRIBUTE vec2 texcoord1;
 ATTRIBUTE vec2 texcoord2;
 
 
-#if HAS_SKIN
+#ifdef HAS_SKIN
 mat4 getObjectSkinnedTransform();
-#elif IS_AVATAR_SKIN
+#else
+#ifdef IS_AVATAR_SKIN
 mat4 getSkinnedTransform();
 #endif
+#endif
 
 vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);
 void calcAtmospherics(vec3 inPositionEye);
@@ -67,7 +65,7 @@ VARYING vec3 vary_fragcoord;
 VARYING vec3 vary_position;
 VARYING vec3 vary_pointlight_col;
 
-#if !INDEX_MODE_NO_COLOR
+#ifdef INDEX_MODE_USE_COLOR
 VARYING vec4 vertex_color;
 #endif
 
@@ -129,7 +127,7 @@ void main()
 	vec3 norm;
 	
 	//transform vertex
-#if HAS_SKIN
+#ifdef HAS_SKIN
 	mat4 trans = getObjectSkinnedTransform();
 	trans = modelview_matrix * trans;
 	
@@ -139,7 +137,8 @@ void main()
 	norm = normalize((trans * vec4(norm, 1.0)).xyz - pos.xyz);
 	vec4 frag_pos = projection_matrix * pos;
 	gl_Position = frag_pos;
-#elif IS_AVATAR_SKIN
+#else
+#ifdef IS_AVATAR_SKIN
 	mat4 trans = getSkinnedTransform();
 	vec4 pos_in = vec4(position.xyz, 1.0);
 	pos.x = dot(trans[0], pos_in);
@@ -160,9 +159,11 @@ void main()
 	pos = (modelview_matrix * vert);
 	gl_Position = modelview_projection_matrix*vec4(position.xyz, 1.0);
 #endif
+#endif
+
 	vary_texcoord1 = (texture_matrix0 * vec4(texcoord1,0,1)).xy;
 	vary_texcoord2 = (texture_matrix0 * vec4(texcoord2,0,1)).xy;
-#if INDEX_MODE
+#ifdef INDEX_MODE
 	passTextureIndex();
 	vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy;
 #else
@@ -198,16 +199,19 @@ void main()
 	
 	col.rgb = col.rgb*diffuse_color.rgb;
 	
-#if !INDEX_MODE_NO_COLOR
+#ifdef INDEX_MODE_USE_COLOR
 	vertex_color = col;
 #endif
 	
-#if HAS_SKIN
+#ifdef HAS_SKIN
 	vary_fragcoord.xyz = frag_pos.xyz + vec3(0,0,near_clip);
-#elif IS_AVATAR_SKIN
+#else
+#ifdef IS_AVATAR_SKIN
 	vary_fragcoord.xyz = pos.xyz + vec3(0,0,near_clip);
 #else
 	pos = modelview_projection_matrix * vert;
 	vary_fragcoord.xyz = pos.xyz + vec3(0,0,near_clip);
 #endif
+#endif
+
 }
diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp
index 92533f64ab..2a2ca74e5d 100644
--- a/indra/newview/llviewershadermgr.cpp
+++ b/indra/newview/llviewershadermgr.cpp
@@ -1221,10 +1221,8 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
 		gDeferredSkinnedAlphaProgram.mShaderFiles.push_back(make_pair("deferred/alphaV.glsl", GL_VERTEX_SHADER_ARB));
 		gDeferredSkinnedAlphaProgram.mShaderFiles.push_back(make_pair("deferred/alphaF.glsl", GL_FRAGMENT_SHADER_ARB));
 		gDeferredSkinnedAlphaProgram.mShaderLevel = mVertexShaderLevel[SHADER_DEFERRED];
-		gDeferredSkinnedAlphaProgram.addPermutation("INDEX_MODE", "0");
-		gDeferredSkinnedAlphaProgram.addPermutation("INDEX_MODE_NO_COLOR", "0");
+		gDeferredSkinnedAlphaProgram.addPermutation("INDEX_MODE_USE_COLOR", "1");
 		gDeferredSkinnedAlphaProgram.addPermutation("HAS_SKIN", "1");
-		gDeferredSkinnedAlphaProgram.addPermutation("IS_AVATAR_SKIN", "0");
 		success = gDeferredSkinnedAlphaProgram.createShader(NULL, NULL);
 		
 		// Hack to include uniforms for lighting without linking in lighting file
@@ -1260,9 +1258,9 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
 			gDeferredMaterialProgram[i].addPermutation("DIFFUSE_ALPHA_MODE", llformat("%d", alpha_mode));
 
 			bool has_skin = i & 0x10;
-			gDeferredMaterialProgram[i].addPermutation("HAS_SKIN",has_skin ? "1" : "0");
 			if (has_skin)
 			{
+				gDeferredMaterialProgram[i].addPermutation("HAS_SKIN", "1");
 				gDeferredMaterialProgram[i].mFeatures.hasObjectSkinning = true;
 			}
 
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index c074a0e16e..75c6480a95 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -9488,6 +9488,7 @@ void LLPipeline::generateSunShadow(LLCamera& camera)
 
 	//currently used for amount to extrude frusta corners for constructing shadow frusta
 	LLVector3 n = RenderShadowNearDist;
+	(void)n;
 	//F32 nearDist[] = { n.mV[0], n.mV[1], n.mV[2], n.mV[2] };
 
 	//put together a universal "near clip" plane for shadow frusta
-- 
cgit v1.2.3