List of usage examples for org.lwjgl.opengl GL20 glUseProgram
public static void glUseProgram(@NativeType("GLuint") int program)
From source file:vertigo.graphics.lwjgl.LWJGL_Renderer.java
License:Open Source License
private void drawShape(Shape obj) { // Geometry: VBO and IBO if (obj.isDirty(Node.VBO)) { processBO(obj);// ww w . ja v a 2 s . c o m obj.setDirty(Node.VBO, false); } ShaderProg glshader = obj.getMaterial().getShaderMaterial(); GL20.glUseProgram(glshader.getHandle()); updateUniform(); VBO vbo = null; for (Attribute attrib : attribute) { if (vbo.getType().equals(attrib.getType())) { int alocation = GL20.glGetAttribLocation(glshader.getHandle(), attrib.getName()); GL20.glEnableVertexAttribArray(alocation); GL20.glVertexAttribPointer(alocation, attrib.getSize(), GL11.GL_FLOAT, false, vbo.getStride() << 2, 0L); } } if (isIndexed) { // draw with index GL11.glDrawElements(getOpenGLStyle(obj.getDrawingStyle()), /* elements */ ibo.getSize(), GL_UNSIGNED_INT, 0L); GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0); GL11.glDisableClientState(GL11.GL_VERTEX_ARRAY); GL20.glDisableVertexAttribArray(0); } else { // draw without index GL11.glDrawArrays(getOpenGLStyle(obj.getDrawingStyle()), 0, capacity / vbo3f.getStride()); GL20.glDisableVertexAttribArray(0); GL30.glBindVertexArray(0); } GL20.glUseProgram(0); }
From source file:vertigo.graphics.lwjgl.ShaderUtils.java
License:Open Source License
public static void useShader(int shaderprogram) { GL20.glUseProgram(shaderprogram); }
From source file:vertigo.graphics.lwjgl.ShaderUtils.java
License:Open Source License
public void dontUseShader() { GL20.glUseProgram(0); }
From source file:vertigo.graphics.lwjgl.ShaderUtils.java
License:Open Source License
public static ShaderProg updateShader(ShaderProg prog) { int progID = -1; System.out.println("updateShader:\n" + prog.getVertexSource() + "\n------\n" + prog.getFragmentSource()); if (prog.isDirty()) { try {//from w w w .j ava 2s.c o m progID = attachVFShaders(prog); } catch (Exception ex) { System.out.println("Exception attachShaders"); Logger.getLogger(LWJGL_Renderer.class.getName()).log(Level.SEVERE, null, ex); // Renderer or LWJGL_Renderer ? } prog.setHandle(progID); GL20.glUseProgram(progID); for (Uniform uniform : prog.getAllUniforms()) { System.out.println("uniform " + uniform.getName()); prog.setUniformLocation(uniform.getName(), GL20.glGetUniformLocation(progID, uniform.getName())); } for (Attribute attribute : prog.getAllAttributes()) { System.out.println("attr " + attribute.getName()); prog.setAttributeLocation(attribute.getName(), GL20.glGetAttribLocation(progID, attribute.getName())); } GL20.glUseProgram(0); } return prog; }
From source file:view.util.ShaderProgram.java
public void use() { GL20.glUseProgram(program); }
From source file:view.util.ShaderProgram.java
public static void useZero() { GL20.glUseProgram(0); }
From source file:voxicity.ChunkNode.java
License:Open Source License
public void render(Frustum camera) { if (empty)//from w w w. j a v a 2 s . co m return; AABB chunk_box = new AABB(Constants.Chunk.side_length, Constants.Chunk.side_length, Constants.Chunk.side_length); chunk_box.center_on(chunk.get_x() + chunk_box.dimensions().x, chunk.get_y() + chunk_box.dimensions().y, chunk.get_z() + chunk_box.dimensions().z); if (!camera.collides(chunk_box)) return; Renderer.draw_calls++; if (shader_prog != 0) GL20.glUseProgram(shader_prog); // Bind VBO to vertex pointer GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vert_buf); GL11.glVertexPointer(3, GL11.GL_FLOAT, 0, 0); // Bind the texture coord VBO to texture pointer GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, tex_buf); GL11.glTexCoordPointer(2, GL11.GL_FLOAT, 0, 0); int tex_bak = GL11.glGetInteger(GL11.GL_TEXTURE_BINDING_2D); for (Batch batch : batches) { // Bind the texture for this batch GL11.glBindTexture(GL11.GL_TEXTURE_2D, batch.tex); // Bind index array GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, batch.indices); // Draw the block GL12.glDrawRangeElements(GL11.GL_QUADS, 0, Constants.Chunk.block_number * 24 - 1, batch.num_elements, GL11.GL_UNSIGNED_INT, 0); Renderer.batch_draw_calls++; Renderer.quads += batch.num_elements; } // Unbind the texture GL11.glBindTexture(GL11.GL_TEXTURE_2D, tex_bak); // Unbind all buffers GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); // Disable the shader once more if (shader_prog != 0) GL20.glUseProgram(0); }
From source file:voxicity.ChunkNode.java
License:Open Source License
void create_shader_prog() { shader_prog = GL20.glCreateProgram(); int vert_shader = create_vert_shader("shader/block.vert"); int frag_shader = create_frag_shader("shader/block.frag"); GL20.glAttachShader(shader_prog, vert_shader); GL20.glAttachShader(shader_prog, frag_shader); GL20.glLinkProgram(shader_prog);/*from www . ja v a2s.c o m*/ if (check_shader_error(shader_prog)) { GL20.glDeleteProgram(shader_prog); shader_prog = 0; } GL20.glUseProgram(shader_prog); int uniform; if ((uniform = GL20.glGetUniformLocation(shader_prog, "textures")) != -1) { GL20.glUniform1i(uniform, 0); } System.out.println("Textures at: " + GL20.glGetUniformLocation(shader_prog, "textures")); GL20.glUseProgram(0); }
From source file:voxicity.Renderer.java
License:Open Source License
private void render_batch(ChunkNode.Batch batch) { if (!camera.collides(batch.box)) return;// w w w . j a v a 2 s . co m Renderer.draw_calls++; // Use the shader the batch needs GL20.glUseProgram(batch.shader); // Bind VBO to vertex pointer GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, batch.vert_buf); GL11.glVertexPointer(3, GL11.GL_FLOAT, 0, 0); // Bind the texture coord VBO to texture pointer GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, batch.tex_buf); GL11.glTexCoordPointer(2, GL11.GL_FLOAT, 0, 0); // Bind the texture for this batch GL11.glBindTexture(GL11.GL_TEXTURE_2D, batch.tex); // Bind index array GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, batch.indices); // Draw the block GL12.glDrawRangeElements(GL11.GL_QUADS, 0, Constants.Chunk.block_number * 24 - 1, batch.num_elements, GL11.GL_UNSIGNED_INT, 0); Renderer.batch_draw_calls++; Renderer.quads += batch.num_elements; // Unbind the texture GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0); // Unbind all buffers GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); GL20.glUseProgram(0); }
From source file:wrath.client.graphics.Camera.java
License:Open Source License
/** * Is called automatically, this method is used to update the specified shader's View Matrix, if need be. * @param shader The {@link wrath.client.graphics.ShaderProgram} to update. *///from w w w .j ava 2s . c o m public void updateViewMatrix(ShaderProgram shader) { GL20.glUseProgram(shader.getProgramID()); if (updateMat) { ClientUtils.createViewMatrix(this).store(matrixBuf); matrixBuf.flip(); updateMat = false; } GL20.glUniformMatrix4fv(shader.getUniformVariableLocation("viewMatrix"), false, matrixBuf); }