public MidModuleDecl EmitModule( IResModuleDecl resModule) { var env = new MidGlobalEmitEnv(null, this); var midModule = new MidModuleDecl(null, this, env); _module = midModule; _modules[resModule] = midModule; foreach (var decl in resModule.Decls) { EmitMemberDecl(midModule, decl, env); } _module.DoneBuilding(); _module.ForceDeep(); _lazy.Force(); var midSimplifyContext = new Mid.MidSimplifyContext(_exps); midSimplifyContext.SimplifyModule(midModule); MidMarkOutputs.MarkOutputs(midModule); var midScalarizeOutputs = new Mid.MidScalarizeOutputs(_identifiers, _exps); midScalarizeOutputs.ApplyToModule(midModule); // Do cleanup tasks (new MidCleanup(_exps)).ApplyToModule(midModule); MidMarkOutputs.UnmarkOutputs(midModule); MidMarkOutputs.MarkOutputs(midModule); return(midModule); }
public static IResPipelineRef FindShaderClass( this IResModuleDecl module, string name) { foreach (var d in module.Decls) { if (d.Name.ToString() == name) { return(d.MakeRef(new SourceRange())); } } return(null); }