List of usage examples for org.lwjgl.opengl ARBDrawInstanced glDrawArraysInstancedARB
public static native void glDrawArraysInstancedARB(@NativeType("GLenum") int mode, @NativeType("GLint") int first, @NativeType("GLsizei") int count, @NativeType("GLsizei") int primcount);
From source file:org.lwjgl.demo.opengl.instancing.GrassDemo.java
License:Open Source License
private void render() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Render ground glUseProgram(groundProgram);//from w w w. ja va2 s . c o m glUniformMatrix4fv(groundVpMatrixUniform, false, vpMatrix.get(mat4Buffer)); ARBVertexArrayObject.glBindVertexArray(groundVao); glDrawArrays(GL_TRIANGLES, 0, 6); ARBVertexArrayObject.glBindVertexArray(0); // Render grass patches glUseProgram(grassProgram); glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, grassTex0); glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, grassTex1); glActiveTexture(GL_TEXTURE2); glBindTexture(GL_TEXTURE_2D, grassTex2); glActiveTexture(GL_TEXTURE3); glBindTexture(GL_TEXTURE_2D, grassTex3); glUniformMatrix4fv(grassVpMatrixUniform, false, vpMatrix.get(mat4Buffer)); ARBVertexArrayObject.glBindVertexArray(grassVao); ARBDrawInstanced.glDrawArraysInstancedARB(GL_TRIANGLES, 0, 6 * NUM_FACES_PER_PATCH, NUM_GRASS_PATCHES); ARBVertexArrayObject.glBindVertexArray(0); glUseProgram(0); glActiveTexture(GL_TEXTURE0); }