Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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());
        }