public void render(float delta) {
glClear(GL_COLOR_BUFFER_BIT);
shaderProgram.bindProgram();
glBindVertexArray(vaoID);
glEnableVertexAttribArray(0);
glDrawArrays(GL_TRIANGLES, 0, 3);
glDisableVertexAttribArray(0);
glBindVertexArray(0);
shaderProgram.unbindProgram();
}
public void dispose() {
// Dispose the program
shaderProgram.cleanup();
// Dispose the vertex array
glBindVertexArray(0);
glDeleteVertexArrays(vaoID);
// Dispose the buffer object
glBindBuffer(GL_ARRAY_BUFFER, 0);
glDeleteBuffers(vboID);
}
public void init()
{
shaderProgram = new ShaderClass();
// Generate and bind a Vertex Array
vaoID = glGenVertexArrays();
glBindVertexArray(vaoID);
vboID = glGenBuffers();
// The vertices of our Triangle
float[] vertices = new float[]
{
+0.0f, +0.8f,
-0.8f, -0.8f,
+0.8f, -0.8f
};
// Create a FloatBuffer of vertices
FloatBuffer verticesBuffer = BufferUtils.createFloatBuffer(vertices.length);
verticesBuffer.put(vertices).flip();
// Create a Buffer Object and upload the vertices buffer
glBindBuffer(GL_ARRAY_BUFFER, vboID);
glBufferData(GL_ARRAY_BUFFER, verticesBuffer, GL_STATIC_DRAW);
// Point the buffer at location 0, the location we set
// inside the vertex shader. You can use any location
// but the locations should match
glVertexAttribPointer(0, 2, GL_FLOAT, false, 0, 0);
glBindVertexArray(0);
}