/** * @param sfactor * @param dfactor * @see com.jogamp.opengl.GL#glBlendFunc(int, int) */ public void glBlendFunc(int sfactor, int dfactor) { try{delegate.glBlendFunc(sfactor, dfactor);} catch(GLException e){glException(e); throw e;} } /**
@Override public void apply(GL3 gl, Collection<SoundEvent> events, double bufferStartTimeSeconds) { gl.glLineWidth(1); gl.glDisable(GL3.GL_LINE_SMOOTH); gl.glDisable(GL3.GL_CULL_FACE); gl.glEnable(GL3.GL_BLEND); gl.glDepthFunc(GL3.GL_ALWAYS); //gl.glProvokingVertex(GL3.GL_FIRST_VERTEX_CONVENTION); gl.glDepthMask(false); gl.glBlendFunc(GL3.GL_ONE, GL3.GL_ONE); soundProgram.use(); //assert vertexIDAttribLocation != -1:"VertexIDAttribLocation failed to init!"; //gl.glBindBuffer(GL3.GL_ARRAY_BUFFER, vertexBufferID); // gl.glEnableVertexAttribArray(vertexIDAttribLocation); //gl.glVertexAttribPointer(vertexIDAttribLocation, 1, GL3.GL_FLOAT, false, 0, 0); soundTextureU.set((int)0); for(SoundEvent ev:events) ev.apply(gl, bufferStartTimeSeconds); //Cleanup //gl.glDisableVertexAttribArray(vertexIDAttribLocation); gl.glBindBuffer(GL3.GL_ARRAY_BUFFER, 0); gl.glBlendFunc(GL2.GL_SRC_ALPHA, GL2.GL_ONE_MINUS_SRC_ALPHA); gl.glDisable(GL3.GL_BLEND); gl.glUseProgram(0); }//end apply(...)
gl.glBlendFunc(GL2.GL_SRC_ALPHA, GL2.GL_ONE_MINUS_SRC_ALPHA); gl.glClear(GL3.GL_COLOR_BUFFER_BIT); gl.glDepthRange(0, 1);
gl.glBlendFunc(GL3.GL_ONE, GL3.GL_CONSTANT_COLOR); gl.glBlendEquation(GL3.GL_FUNC_ADD); gl.glBlendColor(4f, 4f, 4f, 4f);// upshift 2 bits