/** * * @return current GL (as GL2ES2) */ public javax.media.opengl.GL2ES2 getGL2ES2() { return gLDrawable.getGL().getGL2ES2(); }
@Override public final void ppOneEye(final GL gl, final int eyeNum) { final GenericEye eye = eyes[eyeNum]; final GL2ES2 gl2es2 = gl.getGL2ES2(); eye.updateUniform(gl2es2, sp); eye.enableVBO(gl2es2, true); gl2es2.glDrawElements(GL.GL_TRIANGLES, eye.indexCount, GL.GL_UNSIGNED_SHORT, 0); eyes[eyeNum].enableVBO(gl2es2, false); }
@Override public final void ppEnd(final GL gl) { sp.useProgram(gl.getGL2ES2(), false); } }
public static void createShader(final GL _gl, final int type, final IntBuffer shaders) { final GL2ES2 gl = _gl.getGL2ES2(); for (int i = shaders.position(); i < shaders.limit(); i++) { shaders.put(i, gl.glCreateShader(type)); } }
public static void compileShader(final GL _gl, final IntBuffer shaders) { final GL2ES2 gl = _gl.getGL2ES2(); for (int i = shaders.position(); i < shaders.limit(); i++) { gl.glCompileShader(shaders.get(i)); } }
public static void detachShader(final GL _gl, final int program, final IntBuffer shaders) { final GL2ES2 gl = _gl.getGL2ES2(); for (int i = shaders.position(); i < shaders.limit(); i++) { gl.glDetachShader(program, shaders.get(i)); } }
public static String getProgramInfoLog(final GL _gl, final int programObj) { final GL2ES2 gl = _gl.getGL2ES2(); final int[] infoLogLength=new int[1]; gl.glGetProgramiv(programObj, GL2ES2.GL_INFO_LOG_LENGTH, infoLogLength, 0); if(infoLogLength[0]==0) { return "(no info log)"; } final int[] charsWritten=new int[1]; final byte[] infoLogBytes = new byte[infoLogLength[0]]; gl.glGetProgramInfoLog(programObj, infoLogLength[0], charsWritten, 0, infoLogBytes, 0); return new String(infoLogBytes, 0, charsWritten[0]); }
public static boolean isShaderStatusValid(final GL _gl, final int shaderObj, final int name, final PrintStream verboseOut) { final GL2ES2 gl = _gl.getGL2ES2(); final int[] ires = new int[1]; gl.glGetShaderiv(shaderObj, name, ires, 0); final boolean res = ires[0]==1; if(!res && null!=verboseOut) { verboseOut.println("Shader status invalid: "+ getShaderInfoLog(gl, shaderObj)); } return res; }
public static String getShaderInfoLog(final GL _gl, final int shaderObj) { final GL2ES2 gl = _gl.getGL2ES2(); final int[] infoLogLength=new int[1]; gl.glGetShaderiv(shaderObj, GL2ES2.GL_INFO_LOG_LENGTH, infoLogLength, 0); if(infoLogLength[0]==0) { return "(no info log)"; } final int[] charsWritten=new int[1]; final byte[] infoLogBytes = new byte[infoLogLength[0]]; gl.glGetShaderInfoLog(shaderObj, infoLogLength[0], charsWritten, 0, infoLogBytes, 0); return new String(infoLogBytes, 0, charsWritten[0]); }
@Override public final void enableState(final GL gl, final boolean enable, final Object ext) { final GL2ES2 glsl = gl.getGL2ES2(); if( null != ext ) { enableShaderState(glsl, enable, (ShaderState)ext); } else { enableSimple(glsl, enable); } }
private static void updateShaderUniform(final ShaderVariableInt3 shaderUniform) { final GL gl = GLContext.getCurrentGL(); gl.getGL2ES2().glUniform3i(shaderUniform.variableID, shaderUniform.value1, shaderUniform.value2, shaderUniform.value3); }
private static void updateShaderUniform(final ShaderVariableFloat3 shaderUniform) { final GL gl = GLContext.getCurrentGL(); gl.getGL2ES2().glUniform3f(shaderUniform.variableID, shaderUniform.value1, shaderUniform.value2, shaderUniform.value3); }
public void disable() { GL2ES2 gl = gc.getGL().getGL2ES2(); for (AttributConfig ac : configs) { gl.glDisableVertexAttribArray(ac.index); } } }
@Override public void reshape(final GLAutoDrawable drawable, final int x, final int y, final int width, final int height) { if( !drawable.getAutoSwapBufferMode() ) { final GL2ES2 gl = drawable.getGL().getGL2ES2(); gl.glViewport(0, 0, width, height); } } }
private static void updateShaderUniform(final ShaderVariableMatrix2 shaderUniform) { final GL gl = GLContext.getCurrentGL(); shaderUniform.matrixBuffer.rewind(); gl.getGL2ES2().glUniformMatrix2fv(shaderUniform.variableID, 1, shaderUniform.rowMajor, shaderUniform.matrixBuffer); }
private static void updateShaderUniform(final ShaderVariableMatrix3 shaderUniform) { final GL gl = GLContext.getCurrentGL(); shaderUniform.matrixBuffer.rewind(); gl.getGL2ES2().glUniformMatrix3fv(shaderUniform.variableID, 1, shaderUniform.rowMajor, shaderUniform.matrixBuffer); }
@Override protected void doDispose( GlimpseContext context ) { GL2ES2 gl = context.getGL( ).getGL2ES2( ); this.path.dispose( gl ); this.prog.dispose( gl ); } }
@Override public void dispose(final GLAutoDrawable drawable) { final GL2ES2 gl = drawable.getGL().getGL2ES2(); helper.disposeAllGLEventListener(drawable, false); for(int i=0; i<fbos.length; i++) { fbos[i].destroy(gl); fboTexs[i] = null; } if( ownsDevice ) { deviceRenderer.dispose(gl); } }
public void prepare() { buffer.bind(); GL2ES2 gl = gc.getGL().getGL2ES2(); for (AttributConfig ac : configs) { gl.glEnableVertexAttribArray(ac.index); gl.glVertexAttribPointer(ac.index, ac.size, ac.glconst, false, ac.stride, ac.offset); } buffer.disable(); }
@Override public void init(final GLAutoDrawable drawable) { final GL2ES2 gl = drawable.getGL().getGL2ES2(); deviceRenderer.init(gl); // We will do some offscreen rendering, setup FBO... final DimensionImmutable textureSize = deviceRenderer.getTextureCount() > 1 ? deviceRenderer.getSingleSurfaceSize() : deviceRenderer.getTotalSurfaceSize(); initFBOs(gl, textureSize); helper.init(drawable, false); gl.setSwapInterval(1); }