Browse Source

refactor LoadEffectResource(...)

Nick Kastellanos 2 years ago
parent
commit
c79d0e9a6f

+ 14 - 19
Shaders/Deferred/DeferredBasicEffect.cs

@@ -36,15 +36,12 @@ namespace nkast.Aether.Shaders
         #region Fields
 
 
-#if ((MG && WINDOWS) || W10)
-        static readonly String resourceName = "nkast.Aether.Shaders.Resources.DeferredBasicEffect.dx11.fxo";
-#else
-        static readonly String resourceName = "nkast.Aether.Shaders.Resources.DeferredBasicEffect.xna.WinReach";
-#endif
+        static readonly String ResourceName = "nkast.Aether.Shaders.Resources.DeferredBasicEffect";
 
         internal static byte[] LoadEffectResource(string name)
         {
-            using (var stream = LoadEffectResourceStream(name))
+            name = GetResourceName(name);
+            using (var stream = GetAssembly(typeof(DeferredBasicEffect)).GetManifestResourceStream(name))
             {
                 var bytecode = new byte[stream.Length];
                 stream.Read(bytecode, 0, (int)stream.Length);
@@ -52,11 +49,17 @@ namespace nkast.Aether.Shaders
             }
         }
 
-        internal static Stream LoadEffectResourceStream(string name)
+        private static string GetResourceName(string name)
         {
-            // Detect MG version     
+            String platformName = "";
             var version = "";
-#if !XNA
+
+#if XNA
+            platformName = ".xna.WinReach";
+#else
+            platformName = ".dx11.fxo";
+
+            // Detect version
             version = ".10";
             var mgVersion = GetAssembly(typeof(Effect)).GetName().Version;
             if (mgVersion.Major == 3)
@@ -72,11 +75,9 @@ namespace nkast.Aether.Shaders
                         version = ".10";
                 }
             }
-            name = name + version;
 #endif
 
-            Stream stream = GetAssembly(typeof(DeferredBasicEffect)).GetManifestResourceStream(name);
-            return stream;
+            return name + platformName + version;
         }
 
         private static Assembly GetAssembly(Type type)
@@ -115,13 +116,7 @@ namespace nkast.Aether.Shaders
         #region Methods
 
          public DeferredBasicEffect(GraphicsDevice graphicsDevice)
-            : base(graphicsDevice, 
-#if NETFX_CORE
-            LoadEffectResourceStream(resourceName), true
-#else
-            LoadEffectResource(resourceName)
-#endif
-           )
+            : base(graphicsDevice, LoadEffectResource(ResourceName))
         {    
             CacheEffectParameters(null);
         }

+ 15 - 20
Shaders/Deferred/DeferredClearGBufferEffect.cs

@@ -25,21 +25,18 @@ namespace nkast.Aether.Shaders
     public class DeferredClearGBufferEffect : Effect
     {
         #region Effect Parameters
-            
+
         #endregion
 
         #region Fields
 
 
-#if ((MG && WINDOWS) || W10)
-        static readonly String resourceName = "nkast.Aether.Shaders.Resources.DeferredClearGBuffer.dx11.fxo";
-#else
-        static readonly String resourceName = "nkast.Aether.Shaders.Resources.DeferredClearGBuffer.xna.WinReach";
-#endif
+        static readonly String ResourceName = "nkast.Aether.Shaders.Resources.DeferredClearGBuffer";
 
         internal static byte[] LoadEffectResource(string name)
         {
-            using (var stream = LoadEffectResourceStream(name))
+            name = GetResourceName(name);
+            using (var stream = GetAssembly(typeof(DeferredClearGBufferEffect)).GetManifestResourceStream(name))
             {
                 var bytecode = new byte[stream.Length];
                 stream.Read(bytecode, 0, (int)stream.Length);
@@ -47,11 +44,17 @@ namespace nkast.Aether.Shaders
             }
         }
 
-        internal static Stream LoadEffectResourceStream(string name)
+        private static string GetResourceName(string name)
         {
-            // Detect MG version            
+            String platformName = "";
             var version = "";
-#if !XNA
+
+#if XNA
+            platformName = ".xna.WinReach";
+#else
+            platformName = ".dx11.fxo";
+
+            // Detect version
             version = ".10";
             var mgVersion = GetAssembly(typeof(Effect)).GetName().Version;
             if (mgVersion.Major == 3)
@@ -67,11 +70,9 @@ namespace nkast.Aether.Shaders
                         version = ".10";
                 }
             }
-            name = name + version;
 #endif
 
-            Stream stream = GetAssembly(typeof(DeferredClearGBufferEffect)).GetManifestResourceStream(name);
-            return stream;
+            return name + platformName + version;
         }
 
         private static Assembly GetAssembly(Type type)
@@ -92,13 +93,7 @@ namespace nkast.Aether.Shaders
         #region Methods
 
          public DeferredClearGBufferEffect(GraphicsDevice graphicsDevice)
-            : base(graphicsDevice, 
-#if NETFX_CORE
-            LoadEffectResourceStream(resourceName), true
-#else
-            LoadEffectResource(resourceName)
-#endif
-           )
+            : base(graphicsDevice, LoadEffectResource(ResourceName))
         {    
             CacheEffectParameters(null);
         }

+ 14 - 19
Shaders/Deferred/DeferredCombineEffect.cs

@@ -35,15 +35,12 @@ namespace nkast.Aether.Shaders
         #region Fields
 
 
-#if ((MG && WINDOWS) || W10)
-        static readonly String resourceName = "nkast.Aether.Shaders.Resources.DeferredCombine.dx11.fxo";
-#else
-        static readonly String resourceName = "nkast.Aether.Shaders.Resources.DeferredCombine.xna.WinReach";
-#endif
+        static readonly String ResourceName = "nkast.Aether.Shaders.Resources.DeferredCombine";
 
         internal static byte[] LoadEffectResource(string name)
         {
-            using (var stream = LoadEffectResourceStream(name))
+            name = GetResourceName(name);
+            using (var stream = GetAssembly(typeof(DeferredCombineEffect)).GetManifestResourceStream(name))
             {
                 var bytecode = new byte[stream.Length];
                 stream.Read(bytecode, 0, (int)stream.Length);
@@ -51,11 +48,17 @@ namespace nkast.Aether.Shaders
             }
         }
 
-        internal static Stream LoadEffectResourceStream(string name)
+        private static string GetResourceName(string name)
         {
-            // Detect MG version            
+            String platformName = "";
             var version = "";
-#if !XNA
+
+#if XNA
+            platformName = ".xna.WinReach";
+#else
+            platformName = ".dx11.fxo";
+
+            // Detect version
             version = ".10";
             var mgVersion = GetAssembly(typeof(Effect)).GetName().Version;
             if (mgVersion.Major == 3)
@@ -71,11 +74,9 @@ namespace nkast.Aether.Shaders
                         version = ".10";
                 }
             }
-            name = name + version;
 #endif
 
-            Stream stream = GetAssembly(typeof(DeferredCombineEffect)).GetManifestResourceStream(name);
-            return stream;
+            return name + platformName + version;
         }
 
         private static Assembly GetAssembly(Type type)
@@ -114,13 +115,7 @@ namespace nkast.Aether.Shaders
         #region Methods
 
          public DeferredCombineEffect(GraphicsDevice graphicsDevice)
-            : base(graphicsDevice, 
-#if NETFX_CORE
-            LoadEffectResourceStream(resourceName), true
-#else
-            LoadEffectResource(resourceName)
-#endif
-           )
+            : base(graphicsDevice, LoadEffectResource(ResourceName))
         {
             CacheEffectParameters(null);
         }

+ 14 - 19
Shaders/Deferred/DeferredPointLightEffect.cs

@@ -48,15 +48,12 @@ namespace nkast.Aether.Shaders
         #region Fields
 
 
-#if ((MG && WINDOWS) || W10)
-        static readonly String resourceName = "nkast.Aether.Shaders.Resources.DeferredPointLight.dx11.fxo";
-#else
-        static readonly String resourceName = "nkast.Aether.Shaders.Resources.DeferredPointLight.xna.WinReach";
-#endif
+        static readonly String ResourceName = "nkast.Aether.Shaders.Resources.DeferredPointLight";
 
         internal static byte[] LoadEffectResource(string name)
         {
-            using (var stream = LoadEffectResourceStream(name))
+            name = GetResourceName(name);
+            using (var stream = GetAssembly(typeof(DeferredPointLightEffect)).GetManifestResourceStream(name))
             {
                 var bytecode = new byte[stream.Length];
                 stream.Read(bytecode, 0, (int)stream.Length);
@@ -64,11 +61,17 @@ namespace nkast.Aether.Shaders
             }
         }
 
-        internal static Stream LoadEffectResourceStream(string name)
+        private static string GetResourceName(string name)
         {
-            // Detect MG version            
+            String platformName = "";
             var version = "";
-#if !XNA
+
+#if XNA
+            platformName = ".xna.WinReach";
+#else
+            platformName = ".dx11.fxo";
+
+            // Detect version  
             version = ".10";
             var mgVersion = GetAssembly(typeof(Effect)).GetName().Version;
             if (mgVersion.Major == 3)
@@ -84,11 +87,9 @@ namespace nkast.Aether.Shaders
                         version = ".10";
                 }
             }
-            name = name + version;
 #endif
 
-            Stream stream = GetAssembly(typeof(DeferredPointLightEffect)).GetManifestResourceStream(name);
-            return stream;
+            return name + platformName + version;
         }
 
         private static Assembly GetAssembly(Type type)
@@ -187,13 +188,7 @@ namespace nkast.Aether.Shaders
         #region Methods
 
          public DeferredPointLightEffect(GraphicsDevice graphicsDevice)
-            : base(graphicsDevice, 
-#if NETFX_CORE
-            LoadEffectResourceStream(resourceName), true
-#else
-            LoadEffectResource(resourceName)
-#endif
-           )
+            : base(graphicsDevice, LoadEffectResource(ResourceName))
         {    
             CacheEffectParameters(null);
         }

+ 15 - 19
Shaders/Deferred/DeferredSpotLightEffect.cs

@@ -52,15 +52,12 @@ namespace nkast.Aether.Shaders
         #region Fields
 
 
-#if ((MG && WINDOWS) || W10)
-        static readonly String resourceName = "nkast.Aether.Shaders.Resources.DeferredSpotLight.dx11.fxo";
-#else
-        static readonly String resourceName = "nkast.Aether.Shaders.Resources.DeferredSpotLight.xna.WinReach";
-#endif
+        static readonly String ResourceName = "nkast.Aether.Shaders.Resources.DeferredSpotLight";
 
         internal static byte[] LoadEffectResource(string name)
         {
-            using (var stream = LoadEffectResourceStream(name))
+            name = GetResourceName(name);
+            using (var stream = GetAssembly(typeof(DeferredPointLightEffect)).GetManifestResourceStream(name))
             {
                 var bytecode = new byte[stream.Length];
                 stream.Read(bytecode, 0, (int)stream.Length);
@@ -68,11 +65,18 @@ namespace nkast.Aether.Shaders
             }
         }
 
-        internal static Stream LoadEffectResourceStream(string name)
+
+        private static string GetResourceName(string name)
         {
-            // Detect MG version            
+            String platformName = "";
             var version = "";
-#if !XNA
+
+#if XNA
+            platformName = ".xna.WinReach";
+#else
+            platformName = ".dx11.fxo";
+
+            // Detect version  
             version = ".10";
             var mgVersion = GetAssembly(typeof(Effect)).GetName().Version;
             if (mgVersion.Major == 3)
@@ -88,11 +92,9 @@ namespace nkast.Aether.Shaders
                         version = ".10";
                 }
             }
-            name = name + version;
 #endif
 
-            Stream stream = GetAssembly(typeof(DeferredPointLightEffect)).GetManifestResourceStream(name);
-            return stream;
+            return name + platformName + version;
         }
 
         private static Assembly GetAssembly(Type type)
@@ -209,13 +211,7 @@ namespace nkast.Aether.Shaders
         #region Methods
 
          public DeferredSpotLightEffect(GraphicsDevice graphicsDevice)
-            : base(graphicsDevice, 
-#if NETFX_CORE
-            LoadEffectResourceStream(resourceName), true
-#else
-            LoadEffectResource(resourceName)
-#endif
-           )
+            : base(graphicsDevice, LoadEffectResource(ResourceName))
         {    
             CacheEffectParameters(null);
         }

+ 13 - 8
Shaders/FXAA/FXAAEffect.cs

@@ -50,7 +50,8 @@ namespace nkast.Aether.Shaders
 
         internal static byte[] LoadEffectResource(string name)
         {
-            using (var stream = LoadEffectResourceStream(name))
+            name = GetResourceName(name);
+            using (var stream = GetAssembly(typeof(FXAAEffect)).GetManifestResourceStream(name))
             {
                 var bytecode = new byte[stream.Length];
                 stream.Read(bytecode, 0, (int)stream.Length);
@@ -58,11 +59,17 @@ namespace nkast.Aether.Shaders
             }
         }
 
-        internal static Stream LoadEffectResourceStream(string name)
+        private static string GetResourceName(string name)
         {
-            // Detect MG version
+            String platformName = "";
             var version = "";
-#if !XNA
+
+#if XNA
+            platformName = ".xna.WinHiDef";
+#else
+            platformName = ".dx11.fxo";
+
+            // Detect version
             version = ".10";
             var mgVersion = GetAssembly(typeof(Effect)).GetName().Version;
             if (mgVersion.Major == 3)
@@ -78,11 +85,9 @@ namespace nkast.Aether.Shaders
                         version = ".10";
                 }
             }
-            name = name + version;
 #endif
-            
-            Stream stream = GetAssembly(typeof(FXAAEffect)).GetManifestResourceStream(name);
-            return stream;
+
+            return name + platformName + version;
         }
 
         private static Assembly GetAssembly(Type type)

+ 3 - 6
Shaders/FXAA/FXAAGreenLumaHighEffect.cs

@@ -21,14 +21,11 @@ namespace nkast.Aether.Shaders
 {
     public class FXAAGreenLumaHighEffect : FXAAEffect 
     {
-#if ((MG && WINDOWS) || W10)
-        static readonly String resourceName = "nkast.Aether.Shaders.Resources.FXAAGreenLumaHigh.dx11.fxo";
-#elif (XNA && WINDOWS)
-        static readonly String resourceName = "nkast.Aether.Shaders.Resources.FXAAGreenLumaHigh.xna.WinHiDef";
-#endif
+        static readonly String ResourceName = "nkast.Aether.Shaders.Resources.FXAAGreenLumaHigh";
+
 
         public FXAAGreenLumaHighEffect(GraphicsDevice graphicsDevice)
-            : base(graphicsDevice, LoadEffectResource(resourceName))
+            : base(graphicsDevice, LoadEffectResource(ResourceName))
         {    
         }
     }

+ 3 - 6
Shaders/FXAA/FXAAGreenLumaLowEffect.cs

@@ -21,14 +21,11 @@ namespace nkast.Aether.Shaders
 {
     public class FXAAGreenLumaLowEffect : FXAAEffect 
     {
-#if ((MG && WINDOWS) || W10)
-        static readonly String resourceName = "nkast.Aether.Shaders.Resources.FXAAGreenLumaLow.dx11.fxo";
-#elif (XNA && WINDOWS)
-        static readonly String resourceName = "nkast.Aether.Shaders.Resources.FXAAGreenLumaLow.xna.WinHiDef";
-#endif
+        static readonly String ResourceName = "nkast.Aether.Shaders.Resources.FXAAGreenLumaLow";
+
 
         public FXAAGreenLumaLowEffect(GraphicsDevice graphicsDevice)
-            : base(graphicsDevice, LoadEffectResource(resourceName))
+            : base(graphicsDevice, LoadEffectResource(ResourceName))
         {    
         }        
     }

+ 3 - 6
Shaders/FXAA/FXAAGreenLumaMediumEffect.cs

@@ -21,14 +21,11 @@ namespace nkast.Aether.Shaders
 {
     public class FXAAGreenLumaMediumEffect : FXAAEffect 
     {
-#if ((MG && WINDOWS) || W10)
-        static readonly String resourceName = "nkast.Aether.Shaders.Resources.FXAAGreenLumaMedium.dx11.fxo";
-#elif (XNA && WINDOWS)
-        static readonly String resourceName = "nkast.Aether.Shaders.Resources.FXAAGreenLumaMedium.xna.WinHiDef";
-#endif
+        static readonly String ResourceName = "nkast.Aether.Shaders.Resources.FXAAGreenLumaMedium";
+
 
         public FXAAGreenLumaMediumEffect(GraphicsDevice graphicsDevice)
-            : base(graphicsDevice, LoadEffectResource(resourceName))
+            : base(graphicsDevice, LoadEffectResource(ResourceName))
         {    
         }
     }

+ 12 - 12
Shaders/InfiniteGrid/InfiniteGridEffect.cs

@@ -40,20 +40,19 @@ namespace nkast.Aether.Shaders
         #region Fields
 
         static readonly String ResourceName = "nkast.Aether.Shaders.Resources.InfiniteGridEffect";
-#if XNA
-        static readonly String PlatformName = ".xna";
-#elif ((MG && WINDOWS) || W10)
-         static readonly String PlatformName = ".dx11.fxo";
-#endif
 
-        private static string GetResourceName(GraphicsDevice graphicsDevice)
+        private static string GetResourceName(string name, GraphicsDevice graphicsDevice)
         {
             string profileName = (graphicsDevice.GraphicsProfile == GraphicsProfile.Reach) ? ".Reach" : ".HiDef";
+            String platformName = "";
+            var version = "";
 
+#if XNA
+            platformName = ".xna";
+#else
+            platformName = ".dx11.fxo";
 
-            // Detect MG version
-            var version = "";
-#if !XNA
+            // Detect version
             version = ".10";
             var mgVersion = GetAssembly(typeof(Effect)).GetName().Version;
             if (mgVersion.Major == 3)
@@ -71,11 +70,12 @@ namespace nkast.Aether.Shaders
             }
 #endif
 
-            return ResourceName + profileName + PlatformName + version;
+            return name + profileName + platformName + version;
         }
 
-        internal static byte[] LoadEffectResource(string name)
+        internal static byte[] LoadEffectResource(string name, GraphicsDevice graphicsDevice)
         {
+            name = GetResourceName(name, graphicsDevice);
             using (var stream = GetAssembly(typeof(InfiniteGridEffect)).GetManifestResourceStream(name))
             {
                 var bytecode = new byte[stream.Length];
@@ -143,7 +143,7 @@ namespace nkast.Aether.Shaders
         #region Methods
 
         public InfiniteGridEffect(GraphicsDevice graphicsDevice)
-            : base(graphicsDevice, LoadEffectResource(GetResourceName(graphicsDevice)))
+            : base(graphicsDevice, LoadEffectResource(ResourceName, graphicsDevice))
         {
             CacheEffectParameters(null);
             worldViewProjectionParam.SetValue(Matrix.Identity);

+ 14 - 19
Shaders/Tilemap/TilemapEffect.cs

@@ -63,15 +63,12 @@ namespace nkast.Aether.Shaders
 
         EffectDirtyFlags dirtyFlags = EffectDirtyFlags.All;
 
-#if ((MG && WINDOWS) || W10)
-        static readonly String resourceName = "nkast.Aether.Shaders.Resources.TilemapEffect.dx11.fxo";
-#else
-        static readonly String resourceName = "nkast.Aether.Shaders.Resources.TilemapEffect.xna.WinReach";
-#endif
+        static readonly String ResourceName = "nkast.Aether.Shaders.Resources.TilemapEffect";
 
         internal static byte[] LoadEffectResource(string name)
         {
-            using (var stream = LoadEffectResourceStream(name))
+            name = GetResourceName(name);
+            using (var stream = GetAssembly(typeof(TilemapEffect)).GetManifestResourceStream(name))
             using (var ms = new MemoryStream())
             {
                 stream.CopyTo(ms);
@@ -79,11 +76,17 @@ namespace nkast.Aether.Shaders
             }
         }
 
-        internal static Stream LoadEffectResourceStream(string name)
+        private static string GetResourceName(string name)
         {
-            // Detect MG version
+            String platformName = "";
             var version = "";
-#if !XNA && !PORTABLE
+
+#if XNA
+            platformName = ".xna.WinReach";
+#else
+            platformName = ".dx11.fxo";
+
+            // Detect version
             version = ".10";
             var mgVersion = GetAssembly(typeof(Effect)).GetName().Version;
             if (mgVersion.Major == 3)
@@ -99,11 +102,9 @@ namespace nkast.Aether.Shaders
                         version = ".10";
                 }
             }
-            name = name + version;
 #endif
 
-            Stream stream = GetAssembly(typeof(TilemapEffect)).GetManifestResourceStream(name);
-            return stream;
+            return name + platformName + version;
         }
 
         private static Assembly GetAssembly(Type type)
@@ -303,13 +304,7 @@ namespace nkast.Aether.Shaders
         #region Methods
 
          public TilemapEffect(GraphicsDevice graphicsDevice)
-            : base(graphicsDevice, 
-#if NETFX_CORE
-            LoadEffectResourceStream(resourceName), true
-#else
-            LoadEffectResource(resourceName)
-#endif
-           )
+            : base(graphicsDevice, LoadEffectResource(ResourceName))
         {    
             CacheEffectParameters(null);
         }