@Override public void setDepthMask(boolean mask) { gl.glDepthMask(mask); }
/** * @param flag * @see com.jogamp.opengl.GL#glDepthMask(boolean) */ public void glDepthMask(boolean flag) { try{delegate.glDepthMask(flag);} catch(GLException e){glException(e); throw e;} } /**
@Override protected void render() { // Enable the color and depth mask explicitly before calling glClear. // When they are not enabled, they will not be cleared! gl.glColorMask(true, true, true, true); gl.glDepthMask(true); gl.glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); renderGltfModels(); }
@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(...)
public void process(GL3 gl, int renderListLogicalVec4Offset, int numPrimitives){ final int relevantVertexBufferWidth = ((int)(VERTEX_BUFFER_WIDTH/3))*3; vertexProgram.use(); vertexFrameBuffer.bindToDraw(); vertexProgram.getUniform("logicalVec4Offset").setui(renderListLogicalVec4Offset); gpu.memoryManager.get().bindToUniform(0, vertexProgram, vertexProgram.getUniform("rootBuffer")); objectProcessingStage.getCamMatrixTexture() .bindToTextureUnit(1, gl); objectProcessingStage.getNoCamMatrixTexture().bindToTextureUnit(2, gl); gl.glDepthMask(false); gl.glDisable(GL3.GL_BLEND); gl.glDisable(GL3.GL_DEPTH_TEST); gl.glDisable(GL3.GL_CULL_FACE); gl.glDisable(GL3.GL_MULTISAMPLE); gl.glViewport(0, 0, relevantVertexBufferWidth, (int)Math.ceil((double)(numPrimitives*3)/(double)relevantVertexBufferWidth));//256*256 = 65536, max we can handle. gl.glDrawArrays(GL3.GL_TRIANGLES, 0, 3); //Cleanup gpu.defaultFrameBuffers(); gpu.defaultProgram(); gpu.defaultTIU(); gpu.defaultTexture(); }
gpu.memoryManager.get().bindToUniform(0, objectProgram, objectProgram.getUniform("rootBuffer")); gl.glDepthMask(false); gl.glDisable(GL3.GL_BLEND); gl.glDisable(GL3.GL_LINE_SMOOTH);
RendererFactory.PRIMITIVE_BUFFER_HEIGHT*RendererFactory.PRIMITIVE_BUFFER_OVERSAMPLING); gl.glDepthMask(false); gl.glDisable(GL3.GL_BLEND); gl.glDisable(GL3.GL_DEPTH_TEST); gl.glDepthMask(true); depthQueueProgram.use(); rFactory.getDepthQueueFrameBuffer().bindToDraw(); gl.glDepthMask(false); gl.glDisable(GL3.GL_CULL_FACE); gl.glEnable(GL3.GL_DEPTH_TEST); final GLProgram deferredProgram = rFactory.getDeferredProgram(); deferredProgram.use(); gl.glDepthMask(false); gl.glDisable(GL3.GL_DEPTH_TEST); gl.glDisable(GL3.GL_BLEND); gpu.defaultFrameBuffers(); gl.glDepthMask(true); gpu.defaultProgram(); gpu.defaultTIU();