@Override public void disable(Iterable<? extends Number> states) { if (states != null) { for (Number state : states) { if (state != null) { gl.glDisable(state.intValue()); } } } }
vps.getVertexNormXYTexture().bindToTextureUnit(4, gl); vps.getVertexNormZTexture().bindToTextureUnit(5, gl); gl.glDisable(GL3.GL_PROGRAM_POINT_SIZE);//Asserts that point size is set only from CPU gl.glPointSize(2*RendererFactory.PRIMITIVE_BUFFER_OVERSAMPLING);//2x2 frags gl.glViewport(0, 0, gl.glDisable(GL3.GL_BLEND); gl.glDisable(GL3.GL_DEPTH_TEST); gl.glDisable(GL3.GL_CULL_FACE); gl.glDisable(GL3.GL_BLEND); gl.glDepthFunc(GL3.GL_LESS); gl.glEnable(GL3.GL_DEPTH_TEST); gl.glEnable(GL3.GL_STENCIL_TEST); gl.glStencilFunc(GL3.GL_EQUAL, stencilID, 0xFF); }else gl.glDisable(GL3.GL_STENCIL_TEST); gl.glDisable(GL3.GL_DEPTH_TEST); gl.glDisable(GL3.GL_DEPTH_CLAMP); gl.glDisable(GL3.GL_CULL_FACE); gl.glDepthRange(0, 1); gl.glDepthFunc(GL3.GL_LEQUAL); rFactory.getDepthQueueFrameBuffer().bindToDraw(); gl.glDepthMask(false); gl.glDisable(GL3.GL_CULL_FACE); gl.glEnable(GL3.GL_DEPTH_TEST); gl.glDisable(GL3.GL_DEPTH_CLAMP);
/** * @param cap * @see com.jogamp.opengl.GL#glDisable(int) */ public void glDisable(int cap) { try{delegate.glDisable(cap);} 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(...)
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(); }
@Override public void draw( final JCameraReadableSnapshotType s, final Optional<Vector3D> target) { final GL3 g = this.gl; if (g != null) { this.view = s.cameraMakeViewMatrix(); g.glClearDepth(1.0); g.glClearColor(0.0f, 0.0f, 0.2f, 1.0f); g.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT | GL.GL_STENCIL_BUFFER_BIT); g.glEnable(GL.GL_DEPTH_TEST); g.glDepthFunc(GL.GL_LEQUAL); g.glDisable(GL.GL_CULL_FACE); this.drawGround(g); this.drawSceneQuads(g); target.ifPresent(pos -> this.drawSceneTarget(g, pos)); } if (this.want_warp.get()) { final Window w = this.window; if (w != null) { w.warpPointer(w.getWidth() / 2, w.getHeight() / 2); this.want_warp.set(false); } } }