Пример #1
0
        public string Write(IGlslShader shader)
        {
            var impl = new NestedStringBuilderImpl("  ");

            // TODO: Support different versions.
            impl.WriteLine("#version 110");

            foreach (var inVar in shader.Ins)
            {
                GlslWriter.WriteHeaderVariable_(impl, HeaderVariableType.IN, inVar);
            }
            impl.Write("\n");

            foreach (var outVar in shader.Outs)
            {
                GlslWriter.WriteHeaderVariable_(impl, HeaderVariableType.OUT, outVar);
            }
            impl.Write("\n");

            foreach (var uniformVar in shader.Uniforms)
            {
                GlslWriter.WriteHeaderVariable_(impl,
                                                HeaderVariableType.UNIFORM,
                                                uniformVar);
            }
            impl.Write("\n\n");

            foreach (var method in shader.Methods)
            {
                GlslWriter.WriteMethod_(impl, method);
                impl.Write("\n");
            }

            return(impl.ToString());
        }