WebGLShader CreateShader(WebGLRenderingContext gl, int type, string source) { var shader = gl.CreateShader(type); gl.ShaderSource(shader, source); gl.CompileShader(shader); var status = gl.GetShaderParameter(shader, gl.COMPILE_STATUS); if (status.As <bool>()) { return(shader); } var info = gl.GetShaderInfoLog(shader); gl.DeleteShader(shader); throw new InvalidOperationException($"Unable to compile shader. Details: {info}"); }