From ab607ff7b71929bd8ac4a61d20003929e16124d6 Mon Sep 17 00:00:00 2001 From: ZtereoHYPE <57519662+ZtereoHYPE@users.noreply.github.com> Date: Wed, 27 Jul 2022 00:17:46 +0200 Subject: [PATCH] change: reuse same buffer to work around mem leaks in 1.19 --- .../java/codes/ztereohype/example/sky/StarManager.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/codes/ztereohype/example/sky/StarManager.java b/src/main/java/codes/ztereohype/example/sky/StarManager.java index 8871007..847d15d 100644 --- a/src/main/java/codes/ztereohype/example/sky/StarManager.java +++ b/src/main/java/codes/ztereohype/example/sky/StarManager.java @@ -8,6 +8,8 @@ import java.util.ArrayList; //todo: redo all of the star rendering to be able to use the same vertex buffer object with a uniform or with the posestack public class StarManager { + private static final BufferBuilder starBufferBuilder = Tesselator.getInstance().getBuilder(); + private static final int STAR_ATTEMPTS = 1500; public static ArrayList starList = new ArrayList<>(); @@ -34,16 +36,15 @@ public class StarManager { public static void updateStars(int ticks, VertexBuffer starBuffer) { if (!ExampleMod.toggle) return; - BufferBuilder bufferBuilder = Tesselator.getInstance().getBuilder(); - bufferBuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION); + starBufferBuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION); for (Star star : starList) { star.tick(ticks); - star.setVertices(bufferBuilder); + star.setVertices(starBufferBuilder); } starBuffer.bind(); - starBuffer.upload(bufferBuilder.end()); + starBuffer.upload(starBufferBuilder.end()); VertexBuffer.unbind(); } }