|
@@ -26,6 +26,7 @@ public final class FontRenderer {
|
|
|
private int color = 0;
|
|
|
private int scale = 1;
|
|
|
private ByteBuffer buffer;
|
|
|
+ private int previousOffset = 0;
|
|
|
private int offset = BUFFER_BYTE_LENGTH;
|
|
|
private int width = 0;
|
|
|
private int height = 0;
|
|
@@ -83,12 +84,14 @@ public final class FontRenderer {
|
|
|
|
|
|
private ByteBuffer getNextBuffer(int byteLength) {
|
|
|
GLHelper.glBindBuffer(vertexBuffer);
|
|
|
+ previousOffset = offset;
|
|
|
offset += byteLength;
|
|
|
if(offset + byteLength >= BUFFER_BYTE_LENGTH) {
|
|
|
- offset = 0;
|
|
|
+ previousOffset = 0;
|
|
|
+ offset = byteLength;
|
|
|
glBufferData(GL_ARRAY_BUFFER, BUFFER_BYTE_LENGTH, GL_STREAM_DRAW);
|
|
|
}
|
|
|
- return glMapBufferRange(GL_ARRAY_BUFFER, offset, byteLength, GL_MAP_WRITE_BIT | GL_MAP_UNSYNCHRONIZED_BIT, buffer);
|
|
|
+ return glMapBufferRange(GL_ARRAY_BUFFER, previousOffset, byteLength, GL_MAP_WRITE_BIT | GL_MAP_UNSYNCHRONIZED_BIT, buffer);
|
|
|
}
|
|
|
|
|
|
private float addStringToBuffer(float x, float y, boolean shadow, String text) {
|
|
@@ -191,7 +194,7 @@ public final class FontRenderer {
|
|
|
private void drawBuffer() {
|
|
|
GLHelper.glBindVertexArray(vertexArray);
|
|
|
FONT_TEXTURE[Math.min(scale - 1, FONT_TEXTURE.length - 1)].bind();
|
|
|
- glDrawArrays(GL_TRIANGLES, offset / 20, buffer.limit() / 20);
|
|
|
+ glDrawArrays(GL_TRIANGLES, previousOffset / 20, buffer.limit() / 20);
|
|
|
}
|
|
|
|
|
|
public FontRenderer getSize(String text) {
|