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

Removed unnecessary try-catch.

Lasse Öörni 15 жил өмнө
parent
commit
91eb98128d

+ 37 - 43
Engine/Renderer/Pipeline.cpp

@@ -964,58 +964,52 @@ void Pipeline::loadMaterialPassShaders(MaterialTechnique* technique, PassType pa
     vertexShaders.clear();
     pixelShaders.clear();
     
-    try
+    switch (i->first)
     {
-        switch (i->first)
+    default:
+        vertexShaders.resize(MAX_GEOMETRYTYPES);
+        pixelShaders.resize(1);
+        for (unsigned j = 0; j < MAX_GEOMETRYTYPES; ++j)
+            vertexShaders[j] = getVertexShader(vertexShaderName + geometryVSVariations[j], j != 0);
+        pixelShaders[0] = getPixelShader(pixelShaderName);
+        break;
+        
+    case PASS_LIGHT:
+    case PASS_NEGATIVE:
+        vertexShaders.resize(MAX_GEOMETRYTYPES * MAX_LIGHT_VS_VARIATIONS);
+        pixelShaders.resize(MAX_LIGHT_PS_VARIATIONS);
+        
+        for (unsigned j = 0; j < MAX_GEOMETRYTYPES * MAX_LIGHT_VS_VARIATIONS; ++j)
         {
-        default:
-            vertexShaders.resize(MAX_GEOMETRYTYPES);
-            pixelShaders.resize(1);
-            for (unsigned j = 0; j < MAX_GEOMETRYTYPES; ++j)
-                vertexShaders[j] = getVertexShader(vertexShaderName + geometryVSVariations[j], j != 0);
-            pixelShaders[0] = getPixelShader(pixelShaderName);
-            break;
-            
-        case PASS_LIGHT:
-        case PASS_NEGATIVE:
-            vertexShaders.resize(MAX_GEOMETRYTYPES * MAX_LIGHT_VS_VARIATIONS);
-            pixelShaders.resize(MAX_LIGHT_PS_VARIATIONS);
-            
-            for (unsigned j = 0; j < MAX_GEOMETRYTYPES * MAX_LIGHT_VS_VARIATIONS; ++j)
+            unsigned g = j / MAX_LIGHT_VS_VARIATIONS;
+            unsigned l = j % MAX_LIGHT_VS_VARIATIONS;
+            if ((!(l & LVS_SHADOW)) || (allowShadows))
+                vertexShaders[j] = getVertexShader(vertexShaderName + lightVSVariations[l] + geometryVSVariations[g], g != 0);
+            else
+                vertexShaders[j].reset();
+        }
+        for (unsigned j = 0; j < MAX_LIGHT_PS_VARIATIONS; ++j)
+        {
+            unsigned variation = j % 5;
+            if ((variation == LPS_SHADOW) || (variation == LPS_SHADOWSPEC))
             {
-                unsigned g = j / MAX_LIGHT_VS_VARIATIONS;
-                unsigned l = j % MAX_LIGHT_VS_VARIATIONS;
-                if ((!(l & LVS_SHADOW)) || (allowShadows))
-                    vertexShaders[j] = getVertexShader(vertexShaderName + lightVSVariations[l] + geometryVSVariations[g], g != 0);
+                if (allowShadows)
+                    pixelShaders[j] = getPixelShader(pixelShaderName + deferredLightPSVariations[j] + 
+                        shadowPSVariations[hwShadows]);
                 else
-                    vertexShaders[j].reset();
+                    pixelShaders[j].reset();
             }
-            for (unsigned j = 0; j < MAX_LIGHT_PS_VARIATIONS; ++j)
+            else
             {
-                unsigned variation = j % 5;
-                if ((variation == LPS_SHADOW) || (variation == LPS_SHADOWSPEC))
-                {
-                    if (allowShadows)
-                        pixelShaders[j] = getPixelShader(pixelShaderName + deferredLightPSVariations[j] + 
-                            shadowPSVariations[hwShadows]);
-                    else
-                        pixelShaders[j].reset();
-                }
+                // For the negative pass, load only the negative version of the shader
+                bool needed = (pass == PASS_LIGHT) ? (variation != LPS_NEGATIVE) : (variation == LPS_NEGATIVE);
+                if (needed)
+                    pixelShaders[j] = getPixelShader(pixelShaderName + deferredLightPSVariations[j]);
                 else
-                {
-                    // For the negative pass, load only the negative version of the shader
-                    bool needed = (pass == PASS_LIGHT) ? (variation != LPS_NEGATIVE) : (variation == LPS_NEGATIVE);
-                    if (needed)
-                        pixelShaders[j] = getPixelShader(pixelShaderName + deferredLightPSVariations[j]);
-                    else
-                        pixelShaders[j].reset();
-                }
+                    pixelShaders[j].reset();
             }
-            break;
         }
-    }
-    catch (...)
-    {
+        break;
     }
     
     technique->markShadersLoaded(mShadersChangedFrameNumber);