3 using SiliconStudio.Paradox.Effects;
4 using SiliconStudio.Paradox.Shaders;
5 using SiliconStudio.Paradox.Shaders.Parser.Ast;
6 using SiliconStudio.Paradox.Shaders.Parser.Mixins;
7 using SiliconStudio.Shaders.Utility;
9 namespace SiliconStudio.
Paradox.Assets.Materials
11 internal class MaterialNodeClassLoader
16 private static MaterialNodeClassLoader materialNodeClassLoader;
22 public static MaterialNodeClassLoader GetLoader()
24 if (materialNodeClassLoader == null)
25 materialNodeClassLoader =
new MaterialNodeClassLoader();
26 return materialNodeClassLoader;
37 private readonly ShaderLoader loader;
44 private MaterialNodeClassLoader()
47 manager.LookupDirectoryList.Add(EffectSystem.DefaultSourceShaderFolder);
49 loader =
new ShaderLoader(manager);
61 if (!loader.ClassExists(name))
68 logger.Messages.Clear();
84 var shader = loader.ParseSource(shaderSource, logger);
88 logger.Messages.Clear();
A class to collect parsing/expression messages.
Class ShaderSourceManager
A shader class used for mixin.