@Override public void flush () { super.flush(); if (vertPos > 0) { bindTexture(); if (delayedBinding) { bindAttribsBufs(); // see comments in activate() gl.checkError("TriangleBatch.flush bind"); } gl.bufs.setFloatBuffer(vertices, 0, vertPos); gl.glBufferData(GL_ARRAY_BUFFER, vertPos*4, gl.bufs.floatBuffer, GL_STREAM_DRAW); gl.bufs.setShortBuffer(elements, 0, elemPos); gl.glBufferData(GL_ELEMENT_ARRAY_BUFFER, elemPos*2, gl.bufs.shortBuffer, GL_STREAM_DRAW); gl.checkError("TriangleBatch.flush BufferData"); gl.glDrawElements(GL_TRIANGLES, elemPos, GL_UNSIGNED_SHORT, 0); gl.checkError("TriangleBatch.flush DrawElements"); vertPos = 0; elemPos = 0; } }
@Override public void flush () { super.flush(); if (vertPos > 0) { bindTexture(); if (delayedBinding) { bindAttribsBufs(); // see comments in activate() gl.checkError("TriangleBatch.flush bind"); } gl.bufs.setFloatBuffer(vertices, 0, vertPos); gl.glBufferData(GL_ARRAY_BUFFER, vertPos*4, gl.bufs.floatBuffer, GL_STREAM_DRAW); gl.bufs.setShortBuffer(elements, 0, elemPos); gl.glBufferData(GL_ELEMENT_ARRAY_BUFFER, elemPos*2, gl.bufs.shortBuffer, GL_STREAM_DRAW); gl.checkError("TriangleBatch.flush BufferData"); gl.glDrawElements(GL_TRIANGLES, elemPos, GL_UNSIGNED_SHORT, 0); gl.checkError("TriangleBatch.flush DrawElements"); vertPos = 0; elemPos = 0; } }
gl.glBufferData(GL_ARRAY_BUFFER, verts.length*2, gl.bufs.shortBuffer, GL_STATIC_DRAW); gl.glBufferData(GL_ELEMENT_ARRAY_BUFFER, elems.length*2, gl.bufs.shortBuffer, GL_STATIC_DRAW);
gl.glBufferData(GL_ARRAY_BUFFER, verts.length*2, gl.bufs.shortBuffer, GL_STATIC_DRAW); gl.glBufferData(GL_ELEMENT_ARRAY_BUFFER, elems.length*2, gl.bufs.shortBuffer, GL_STATIC_DRAW);