Ejemplo n.º 1
0
        private WebGLProgram InitProgram(WebGLContext gl, string vsSource, string fsSource)
        {
            var vertexShader   = this.LoadShader(gl, ShaderType.VERTEX_SHADER, vsSource);
            var fragmentShader = this.LoadShader(gl, ShaderType.FRAGMENT_SHADER, fsSource);

            var program = gl.CreateProgram();

            gl.AttachShader(program, vertexShader);
            gl.AttachShader(program, fragmentShader);
            gl.LinkProgram(program);

            gl.DeleteShader(vertexShader);
            gl.DeleteShader(fragmentShader);

            if (!gl.GetProgramParameter <bool>(program, ProgramParameter.LINK_STATUS))
            {
                string info = gl.GetProgramInfoLog(program);
                throw new Exception("An error occured while linking the program: " + info);
            }

            return(program);
        }