Beispiel #1
0
        private static GLShader GetShader(WebGLContext gl, string id)
        {
            var shaderScript = Element.GetById(id);

            var str = shaderScript.TextContent;
            if (str == "" || str == null)
            {
                var k = shaderScript.FirstChild;
                while (k != null)
                {
                    if (k.NodeType == 3)
                        str += k.TextContent;
                    k = k.NextSibling;
                }
            }

            GLShader shader;
            if (shaderScript.GetAttributeValue("type") == "x-shader/x-fragment")
            {
                shader = gl.CreateShader(gl.FragmentShader);
            }
            else if (shaderScript.GetAttributeValue("type") == "x-shader/x-vertex")
            {
                shader = gl.CreateShader(gl.VertexShader);
            }
            else
            {
                return null;
            }

            gl.ShaderSource(shader, str);
            gl.CompileShader(shader);

            if (!gl.GetShaderParameter(shader, gl.CompileStatus))
            {
                throw new Exception("Shader compilation failed");
            }

            return shader;
        }
Beispiel #2
0
 private static void initGL(Canvas canvas)
 {
     gl = canvas.GetWebGLContext();
     viewportWidth = canvas.Width = 500;
     viewportHeight = canvas.Height = 500;
 }
 public static WebGLContext GetWebGLContext(this Canvas canvas)
 {
     return(WebGLContext.GetContext(canvas));
 }