diff --git a/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/buffer/GLVertexBuffer.java b/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/buffer/GLVertexBuffer.java index 88c84aaba..b74694f9d 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/buffer/GLVertexBuffer.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/buffer/GLVertexBuffer.java @@ -61,9 +61,14 @@ public class GLVertexBuffer extends GLBuffer @Override public int getBufferBindingTarget() { return GL32.GL_ARRAY_BUFFER; } - public void uploadBuffer(ByteBuffer byteBuffer, int vertCount, EDhApiGpuUploadMethod uploadMethod, int maxExpensionSize) + /** + * bufferSize is the number of shared verticies.
+ * This number will be higher when actually rendered since each box's face needs 2 triangles + * with 2 shared verticies. + */ + public void uploadBuffer(ByteBuffer byteBuffer, int bufferSize, EDhApiGpuUploadMethod uploadMethod, int maxExpensionSize) { - if (vertCount < 0) + if (bufferSize < 0) { throw new IllegalArgumentException("VertCount is negative!"); } @@ -74,7 +79,10 @@ public class GLVertexBuffer extends GLBuffer boolean useBuffStorage = uploadMethod.useBufferStorage; super.uploadBuffer(byteBuffer, uploadMethod, maxExpensionSize, useBuffStorage ? 0 : GL32.GL_STATIC_DRAW); } - this.vertexCount = vertCount; + + // /4 to get the number of cubes + // *6 to get the number of verticies (2 triangles, 3 verticies each) + this.vertexCount = (bufferSize / 4) * 6; } public ByteBuffer mapBuffer(int targetSize, EDhApiGpuUploadMethod uploadMethod, int maxExpansionSize)