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); }
// 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); }
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); }