/// <summary> /// Get a compilation context based on the macros /// </summary> /// <param name="mixinToAnalyze">List of mixin to analyze</param> /// <param name="log">The log.</param> /// <returns>the correct compilation context</returns> private ShaderCompilationContext GetCompilationContext(IEnumerable<ModuleMixinInfo> mixinToAnalyze, LoggerResult log) { var mixinInfos = new HashSet<ModuleMixinInfo>(); foreach (var mixin in mixinToAnalyze) mixinInfos.UnionWith(mixin.MinimalContext); var context = new ShaderCompilationContext(log); context.Preprocess(mixinInfos); return context; }