@Override public void glViewport (int x, int y, int width, int height) { gl.viewport(x, y, width, height); } }
@Override public boolean supportsExtension (String extensionName) { // Contrary to regular OpenGL, WebGL extensions need to be explicitly enabled before they can be used. See // https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Using_Extensions // Thus, it is not safe to use an extension just because context.getSupportedExtensions() tells you it is available. // We need to call getExtension() to enable it. return context.getExtension(extensionName) != null; }
@Override public void glClearColor (float red, float green, float blue, float alpha) { gl.clearColor(red, green, blue, alpha); }
public static WebGLProgram createShaderProgram (WebGLRenderingContext gl, String vertexSource, String fragmentSource) { WebGLShader vertexShader = getShader(gl, VERTEX_SHADER, vertexSource); WebGLShader fragmentShader = getShader(gl, FRAGMENT_SHADER, fragmentSource); WebGLProgram shaderProgram = gl.createProgram(); gl.attachShader(shaderProgram, fragmentShader); gl.attachShader(shaderProgram, vertexShader); gl.linkProgram(shaderProgram); if (!gl.getProgramParameterb(shaderProgram, LINK_STATUS)) { throw new RuntimeException("Could not initialize shaders"); } return shaderProgram; }
@Override public void glEnableVertexAttribArray (int index) { gl.enableVertexAttribArray(index); }
@Override public void glClear (int mask) { gl.clear(mask); }
@Override public void glColorMask (boolean red, boolean green, boolean blue, boolean alpha) { gl.colorMask(red, green, blue, alpha); }
@Override public void glBlendEquationSeparate (int modeRGB, int modeAlpha) { gl.blendEquationSeparate(modeRGB, modeAlpha); }
@Override public void glDepthFunc (int func) { gl.depthFunc(func); }
@Override public void glDisable (int cap) { gl.disable(cap); }
@Override public void glDrawElements (int mode, int count, int type, int indices) { gl.drawElements(mode, count, type, indices); }
@Override public void glStencilFuncSeparate (int face, int func, int ref, int mask) { gl.stencilFuncSeparate(face, func, ref, mask); }
@Override public void glStencilOpSeparate (int face, int fail, int zfail, int zpass) { gl.stencilOpSeparate(face, fail, zfail, zpass); }
@Override public int glCheckFramebufferStatus (int target) { return gl.checkFramebufferStatus(target); }
@Override public void glClearDepthf (float depth) { gl.clearDepth(depth); }
@Override public void glScissor (int x, int y, int width, int height) { gl.scissor(x, y, width, height); }
public static WebGLProgram createShaderProgram (WebGLRenderingContext gl, String vertexSource, String fragmentSource) { WebGLShader vertexShader = getShader(gl, VERTEX_SHADER, vertexSource); WebGLShader fragmentShader = getShader(gl, FRAGMENT_SHADER, fragmentSource); WebGLProgram shaderProgram = gl.createProgram(); gl.attachShader(shaderProgram, fragmentShader); gl.attachShader(shaderProgram, vertexShader); gl.linkProgram(shaderProgram); if (!gl.getProgramParameterb(shaderProgram, LINK_STATUS)) { throw new RuntimeException("Could not initialize shaders"); } return shaderProgram; }
@Override public void glViewport (int x, int y, int width, int height) { gl.viewport(x, y, width, height); } }
@Override public void glColorMask (boolean red, boolean green, boolean blue, boolean alpha) { gl.colorMask(red, green, blue, alpha); }
@Override public boolean supportsExtension (String extensionName) { // Contrary to regular OpenGL, WebGL extensions need to be explicitly enabled before they can be used. See // https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Using_Extensions // Thus, it is not safe to use an extension just because context.getSupportedExtensions() tells you it is available. // We need to call getExtension() to enable it. return context.getExtension(extensionName) != null; }