public static GlslProgram Generate(StructuredProgramInfo info, ShaderConfig config) { CodeGenContext context = new CodeGenContext(info, config); Declarations.Declare(context, info); if (info.Functions.Count != 0) { for (int i = 1; i < info.Functions.Count; i++) { context.AppendLine($"{GetFunctionSignature(info.Functions[i])};"); } context.AppendLine(); for (int i = 1; i < info.Functions.Count; i++) { PrintFunction(context, info, info.Functions[i]); context.AppendLine(); } } PrintFunction(context, info, info.Functions[0], MainFunctionName); return(new GlslProgram( context.CBufferDescriptors.ToArray(), context.SBufferDescriptors.ToArray(), context.TextureDescriptors.ToArray(), context.ImageDescriptors.ToArray(), context.GetCode())); }
public static string Generate(StructuredProgramInfo info, ShaderConfig config) { CodeGenContext context = new CodeGenContext(info, config); Declarations.Declare(context, info); if (info.Functions.Count != 0) { for (int i = 1; i < info.Functions.Count; i++) { context.AppendLine($"{GetFunctionSignature(info.Functions[i])};"); } context.AppendLine(); for (int i = 1; i < info.Functions.Count; i++) { PrintFunction(context, info, info.Functions[i]); context.AppendLine(); } } PrintFunction(context, info, info.Functions[0], MainFunctionName); return(context.GetCode()); }
public static GlslProgram Generate(StructuredProgramInfo info, ShaderConfig config) { CodeGenContext context = new CodeGenContext(config); Declarations.Declare(context, info); PrintMainBlock(context, info); return(new GlslProgram( context.CBufferDescriptors.ToArray(), context.TextureDescriptors.ToArray(), context.GetCode())); }