private string buildFragmentShader() { var code = new StringBuilder(); FragmentShader.GenerateFunctions(code); // Main function code.AppendLine("void main() {"); FragmentShaderScope.DeclareVariables(code); Context.GenerateCode(code, () => FragmentShader.Generate(Context)); code.AppendLine("}"); return(code.ToString()); }
private string buildVertexShader() { var code = new StringBuilder(); // Attributes foreach (var attribute in VertexDeclaration) { code.AppendLine($"attribute {attribute.ShaderTypeName} {attribute.Name};"); } VertexShader.GenerateFunctions(code); // Main function code.AppendLine("void main() {"); ProgramScope.DeclareUnusedVaryingsAsVariables(code, Context); VertexShaderScope.DeclareVariables(code); Context.GenerateCode(code, () => VertexShader.Generate(Context)); code.AppendLine("}"); return(code.ToString()); }