예제 #1
0
        static WebGLShader InternalConstructor(WebGLRenderingContext gl, uint type = WebGLRenderingContext.VERTEX_SHADER)
        {
            // X:\jsc.svn\examples\javascript\chrome\apps\WebGL\ChromeShaderToyColumns\ChromeShaderToyColumns\Library\ShaderToy.cs
            var p = gl.createShader(type);

            return(p);
        }
예제 #2
0
        // we are defining extensions for a class generated from IDL

        public static WebGLProgram createProgram(this WebGLRenderingContext gl, VertexShader v, FragmentShader f)
        {
            var programHandle = gl.createProgram();

            var vs = gl.createShader(v);
            var fs = gl.createShader(f);

            gl.attachShader(programHandle, vs);
            gl.attachShader(programHandle, fs);

            gl.deleteShader(vs);
            gl.deleteShader(fs);
            // http://www.seas.upenn.edu/~pcozzi/OpenGLInsights/OpenGLInsights-ANGLE.pdf
            // are implicitly linked when the shaders are made active.

            return(programHandle);
        }
예제 #3
0
        public static WebGLShader createShader(this WebGLRenderingContext gl, Shader source)
        {
            // jsc/java should pick this up!
            FragmentShader refhack;

            var type = gl.VERTEX_SHADER;

            //if (source is FragmentShader)
            var IsFragmentShader = source is FragmentShader;

            if (IsFragmentShader)
            {
                type = gl.FRAGMENT_SHADER;
            }

            var shader = gl.createShader(type);



            // we could just use object.ToString

            // later we might want to update jsc to create a special interface method for that..

            var code = source.ToString();

            // or jsc could replace a method to "compile" a type into actual source code :)
            // ahead of time or on runtime? (.net 5 code expressions?)

            // how do WebGLShader and Shader relate?

            // will actionscript require the same extensions?

            gl.shaderSource(shader, code);

            gl.compileShader(shader);

            return(shader);
        }