Beispiel #1
0
        public static void parse(String url, String src, OnShadersParsed onload)
        {
            List <shader_t> shaders = new List <shader_t>();

            ShaderTokenizer tokens = new ShaderTokenizer(src);

            // Parse a shader
            while (!tokens.EOF())
            {
                String name = tokens.next();

                shader_t shader = ShaderParser.parseShader(name, tokens);

                if (shader != null)
                {
                    shader.url = url;

                    if (shader.stages != null)
                    {
                        for (var i = 0; i < shader.stages.Count; ++i)
                        {
                            // Build a OpenGL shader program out of the stage parameters set here
                            shader.stages[i].shaderSrc = ShaderParser.buildShaderSource(shader, shader.stages[i]);
                        }
                    }
                }
                shaders.Add(shader);
            }

            // Send shaders to gl Thread
            onload(shaders);
        }