From 6b6b5484c0f2faccc34dc791ac3b88061294d631 Mon Sep 17 00:00:00 2001
From: Frederic Bouvier <fredfgfs01@free.fr>
Date: Sun, 11 Dec 2011 12:42:48 +0100
Subject: [PATCH] Urban shader doesn't need GL_ARB_shader_texture_lod for
 quality level below 4.0. If needed, the shader should be split to have
 different requirements between levels.

---
 Effects/urban.eff | 65 +++++++++++++++++++++--------------------------
 1 file changed, 29 insertions(+), 36 deletions(-)

diff --git a/Effects/urban.eff b/Effects/urban.eff
index ef355b43b..1a0123d5d 100644
--- a/Effects/urban.eff
+++ b/Effects/urban.eff
@@ -48,24 +48,22 @@
 					<value type="float">4.0</value>
 					<float-property>/sim/rendering/shaders/urban</float-property>
 				</less-equal>
-				<and>
-					<or>
-						<less-equal>
-							<value type="float">2.0</value>
-							<glversion/>
-						</less-equal>
-						<and>
-							<extension-supported>GL_ARB_shader_objects</extension-supported>
-							<extension-supported>GL_ARB_shading_language_100</extension-supported>
-							<extension-supported>GL_ARB_vertex_shader</extension-supported>
-							<extension-supported>GL_ARB_fragment_shader</extension-supported>
-						</and>
-					</or>
-					<or>
-						<extension-supported>GL_ATI_shader_texture_lod</extension-supported>
-						<extension-supported>GL_ARB_shader_texture_lod</extension-supported>
-					</or>
-				</and>
+				<or>
+					<less-equal>
+						<value type="float">2.0</value>
+						<glversion/>
+					</less-equal>
+					<and>
+						<extension-supported>GL_ARB_shader_objects</extension-supported>
+						<extension-supported>GL_ARB_shading_language_100</extension-supported>
+						<extension-supported>GL_ARB_vertex_shader</extension-supported>
+						<extension-supported>GL_ARB_fragment_shader</extension-supported>
+					</and>
+				</or>
+				<or>
+					<extension-supported>GL_ATI_shader_texture_lod</extension-supported>
+					<extension-supported>GL_ARB_shader_texture_lod</extension-supported>
+				</or>
 			</and>
 		</predicate>
 		<pass>
@@ -295,24 +293,19 @@
 					<value type="float">2.0</value>
 					<float-property>/sim/rendering/shaders/quality-level</float-property>
 				</less-equal>
-				<and>
-					<or>
-						<less-equal>
-							<value type="float">2.0</value>
-							<glversion/>
-						</less-equal>
-						<and>
-							<extension-supported>GL_ARB_shader_objects</extension-supported>
-							<extension-supported>GL_ARB_shading_language_100</extension-supported>
-							<extension-supported>GL_ARB_vertex_shader</extension-supported>
-							<extension-supported>GL_ARB_fragment_shader</extension-supported>
-						</and>
-					</or>
-					<or>
-						<extension-supported>GL_ATI_shader_texture_lod</extension-supported>
-						<extension-supported>GL_ARB_shader_texture_lod</extension-supported>
-					</or>
-				</and>
+				<or>
+					<less-equal>
+						<value type="float">2.0</value>
+						<glversion/>
+					</less-equal>
+					<and>
+						<extension-supported>GL_ARB_shader_objects</extension-supported>
+						<extension-supported>GL_ARB_shading_language_100</extension-supported>
+						<extension-supported>GL_ARB_vertex_shader</extension-supported>
+						<extension-supported>GL_ARB_fragment_shader</extension-supported>
+					</and>
+				</or>
+				<!-- quality level below 4.0 doesn't require GL_ATI_shader_texture_lod or GL_ARB_shader_texture_lod -->
 			</and>
 		</predicate>
 		<pass>