2
0
Эх сурвалжийг харах

call UpdateCurrentTechnique directly

Nick Kastellanos 2 жил өмнө
parent
commit
0b97e5510f

+ 12 - 16
Shaders/Tilemap/TilemapEffect.cs

@@ -246,7 +246,8 @@ namespace nkast.Aether.Shaders
                 if (fogEnabled != value)
                 {
                     fogEnabled = value;
-                    dirtyFlags |= EffectDirtyFlags.ShaderIndex | EffectDirtyFlags.FogEnable;
+                    dirtyFlags |= EffectDirtyFlags.FogEnable;
+                    UpdateCurrentTechnique();
                 }
             }
         }
@@ -304,7 +305,7 @@ namespace nkast.Aether.Shaders
                 if (vertexColorEnabled != value)
                 {
                     vertexColorEnabled = value;
-                    dirtyFlags |= EffectDirtyFlags.ShaderIndex;
+                    UpdateCurrentTechnique();
                 }
             }
         }
@@ -377,25 +378,21 @@ namespace nkast.Aether.Shaders
             if ((dirtyFlags & EffectDirtyFlags.MaterialColor) != 0)
             {
                 diffuseColorParam.SetValue(new Vector4(diffuseColor * alpha, alpha));
-
                 dirtyFlags &= ~EffectDirtyFlags.MaterialColor;
             }
+        }
 
-            // Recompute the shader index?
-            if ((dirtyFlags & EffectDirtyFlags.ShaderIndex) != 0)
-            {
-                int shaderIndex = 0;
-
-                if (!fogEnabled)
-                    shaderIndex += 1;
+        private void UpdateCurrentTechnique()
+        {
+            int shaderIndex = 0;
 
-                if (vertexColorEnabled)
-                    shaderIndex += 2;
+            if (!fogEnabled)
+                shaderIndex += 1;
 
-                dirtyFlags &= ~EffectDirtyFlags.ShaderIndex;
+            if (vertexColorEnabled)
+                shaderIndex += 2;
 
-                CurrentTechnique = Techniques[shaderIndex];
-            }
+            CurrentTechnique = Techniques[shaderIndex];
         }
 
 
@@ -487,7 +484,6 @@ namespace nkast.Aether.Shaders
             Fog = 16,
             FogEnable = 32,
             //AlphaTest = 64,
-            ShaderIndex = 128,
             All = -1
         }
     }