@Override public void glActiveTexture(int param1) { GLContext.getCurrentGL().glActiveTexture(param1); }
@Override protected void activeTextureImpl(int texture) { gl.glActiveTexture(texture); }
public static void specifyTextureUnit(GL gl, int unitNumber) { gl.glActiveTexture(GL3.GL_TEXTURE0 + unitNumber); }
@Override public void glActiveTexture(int param1) { GLContext.getCurrentGL().glActiveTexture(param1); }
@Override protected void preNextTextureImpl(final GL gl) { psm.setUnpackAlignment(gl, 1); // RGBA ? 4 : 1 gl.glActiveTexture(GL.GL_TEXTURE0+getTextureUnit()); }
private boolean validateTexID(final GL gl, final boolean throwException) { gl.glActiveTexture(GL.GL_TEXTURE0); gl.glEnable(GL2.GL_TEXTURE_3D); int id = gl.getGL2().glGetUniformLocation(shaderProgram.getProgramId(), "volumeTexture"); if ( id >= 0) { texID = id; } return 0 != texID; }
/** * Restores the texture-unit's texture-target state. * <p> * First the texture-unit is activated, then all states are restored. * </p> * @param gl current GL context's GL object */ public final void restore(final GL gl) { gl.glActiveTexture(state[0]); gl.glBindTexture(target, state[1]); gl.glTexParameteri(target, GL.GL_TEXTURE_MAG_FILTER, state[2]); gl.glTexParameteri(target, GL.GL_TEXTURE_MIN_FILTER, state[3]); gl.glTexParameteri(target, GL.GL_TEXTURE_WRAP_S, state[4]); gl.glTexParameteri(target, GL.GL_TEXTURE_WRAP_T, state[5]); }
private final void swapFBOImpl(final GLContext glc) { final GL gl = glc.getGL(); fbos[fboIBack].markUnbound(); // fast path, use(gl,..) is called below if(DEBUG) { final int _fboIFront = ( fboIFront + 1 ) % fbos.length; if(_fboIFront != fboIBack) { throw new InternalError("XXX: "+_fboIFront+"!="+fboIBack); } } fboIFront = fboIBack; fboIBack = ( fboIBack + 1 ) % fbos.length; final Colorbuffer colorbuffer = samples > 0 ? fbos[fboIFront].getSamplingSink() : fbos[fboIFront].getColorbuffer(0); if(null == colorbuffer) { throw new GLException("Front colorbuffer is null: samples "+samples+", "+this); } final TextureAttachment texAttachment; if( colorbuffer.isTextureAttachment() ) { texAttachment = colorbuffer.getTextureAttachment(); gl.glActiveTexture(GL.GL_TEXTURE0 + texUnit); } else { texAttachment = null; } fbos[fboIFront].use(gl, texAttachment); /* Included in above use command: gl.glBindFramebuffer(GL2GL3.GL_DRAW_FRAMEBUFFER, fbos[fboIBack].getDrawFramebuffer()); gl.glBindFramebuffer(GL2GL3.GL_READ_FRAMEBUFFER, fbos[fboIFront].getReadFramebuffer()); } */ if(DEBUG_SWAP) { System.err.println("Post FBO swap(X): fboI back "+fboIBack+", front "+fboIFront+", num "+fbos.length); } }
private boolean validateTexID(final GL gl, final boolean throwException) { if (name != null) { gl.glActiveTexture(GL.GL_TEXTURE1); gl.glEnable(GL2.GL_TEXTURE_1D); int id = gl.getGL2().glGetUniformLocation(this.id, name); if ( id >= 0) { texID = id; } } else if( 0 == texID ) { if( null != gl ) { final int[] tmp = new int[1]; gl.glGenTextures(1, tmp, 0); texID = tmp[0]; if ( 0 == texID && throwException ) { throw new GLException("Create texture ID invalid: texID "+texID+", glerr 0x"+Integer.toHexString(gl.glGetError())); } } else if ( throwException ) { throw new GLException("No GL context given, can't create texture ID"); } } return 0 != texID; }
private final void swapFBOImpl(final GLContext glc) { final GL gl = glc.getGL(); fbos[fboIBack].markUnbound(); // fast path, use(gl,..) is called below if(DEBUG) { final int _fboIFront = ( fboIFront + 1 ) % fbos.length; if(_fboIFront != fboIBack) { throw new InternalError("XXX: "+_fboIFront+"!="+fboIBack); } } fboIFront = fboIBack; fboIBack = ( fboIBack + 1 ) % fbos.length; final Colorbuffer colorbuffer = samples > 0 ? fbos[fboIFront].getSamplingSink() : fbos[fboIFront].getColorbuffer(0); if(null == colorbuffer) { throw new GLException("Front colorbuffer is null: samples "+samples+", "+this); } final TextureAttachment texAttachment; if( colorbuffer.isTextureAttachment() ) { texAttachment = colorbuffer.getTextureAttachment(); gl.glActiveTexture(GL.GL_TEXTURE0 + texUnit); } else { texAttachment = null; } fbos[fboIFront].use(gl, texAttachment); /* Included in above use command: gl.glBindFramebuffer(GL2GL3.GL_DRAW_FRAMEBUFFER, fbos[fboIBack].getDrawFramebuffer()); gl.glBindFramebuffer(GL2GL3.GL_READ_FRAMEBUFFER, fbos[fboIFront].getReadFramebuffer()); } */ if(DEBUG_SWAP) { System.err.println("Post FBO swap(X): fboI back "+fboIBack+", front "+fboIFront+", num "+fbos.length); } }
@Override public final void ppBegin(final GL gl) { if( null == sp ) { throw new IllegalStateException("Not initialized"); } if( 0 == frameStart ) { throw new IllegalStateException("beginFrame not called"); } final GL2ES2 gl2es2 = gl.getGL2ES2(); gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); gl.glClear(GL.GL_COLOR_BUFFER_BIT); gl.glActiveTexture(GL.GL_TEXTURE0 + getTextureUnit()); gl2es2.glDisable(GL.GL_CULL_FACE); gl2es2.glDisable(GL.GL_DEPTH_TEST); gl2es2.glDisable(GL.GL_BLEND); if( !gl2es2.isGLcore() ) { gl2es2.glEnable(GL.GL_TEXTURE_2D); } sp.useProgram(gl2es2, true); gl2es2.glUniform(texUnit0); }
public void bind(final GL gl) throws GLException { gl.glEnable(GL2.GL_TEXTURE_1D); validateTexID(gl, true); gl.glBindTexture(GL2.GL_TEXTURE_1D, texID); if (name != null) { gl.glActiveTexture(GL.GL_TEXTURE1); } gl.glTexParameteri(GL2.GL_TEXTURE_1D, GL2.GL_TEXTURE_WRAP_S, GL2.GL_CLAMP_TO_EDGE); // gl.glTexParameteri(GL2.GL_TEXTURE_3D, GL2.GL_TEXTURE_WRAP_T, GL2.GL_CLAMP); // gl.glTexParameteri(GL2.GL_TEXTURE_3D, GL2.GL_TEXTURE_WRAP_R, GL2.GL_CLAMP); gl.glTexParameteri(GL2.GL_TEXTURE_1D, GL2.GL_TEXTURE_MAG_FILTER, GL.GL_NEAREST); gl.glTexParameteri(GL2.GL_TEXTURE_1D, GL2.GL_TEXTURE_MIN_FILTER, GL.GL_NEAREST); setTextureData(gl,image,shape); }
public void bind(final GL gl) throws GLException { gl.glEnable(GL2.GL_TEXTURE_3D); validateTexID(gl, true); gl.glBindTexture(GL2.GL_TEXTURE_3D, texID); gl.glActiveTexture(GL.GL_TEXTURE0); gl.glTexParameteri(GL2.GL_TEXTURE_3D, GL2.GL_TEXTURE_WRAP_S, GL2.GL_CLAMP); gl.glTexParameteri(GL2.GL_TEXTURE_3D, GL2.GL_TEXTURE_WRAP_T, GL2.GL_CLAMP); gl.glTexParameteri(GL2.GL_TEXTURE_3D, GL2.GL_TEXTURE_WRAP_R, GL2.GL_CLAMP); gl.glTexParameteri(GL2.GL_TEXTURE_3D, GL2.GL_TEXTURE_MAG_FILTER, GL.GL_LINEAR); gl.glTexParameteri(GL2.GL_TEXTURE_3D, GL2.GL_TEXTURE_MIN_FILTER, GL.GL_LINEAR); setTextureData(gl,buffer,shape); }
.glVertexAttribPointer(2, 2, GL.GL_FLOAT, false, 0, 0); mGL.glActiveTexture(GL.GL_TEXTURE1); mGL.glGenTextures(1, uiTexture, 0); mGL.glBindTexture(GL.GL_TEXTURE_2D, uiTexture[0]);
throw new RuntimeException("TextureName "+toHexString(texName)+" invalid."); gl.glActiveTexture(GL.GL_TEXTURE0+getTextureUnit()); gl.glBindTexture(textureTarget, texName);