From f6e5bdbd2f95efce8d8138010329d29a3fc3794c Mon Sep 17 00:00:00 2001 From: TomTheFurry Date: Thu, 4 Aug 2022 20:03:43 +0800 Subject: [PATCH] Fixed block color & improve close --- .../datatype/column/ColumnRenderSource.java | 2 +- .../column/render/ColumnRenderBuffer.java | 3 +++ .../core/a7/level/DhClientServerLevel.java | 4 +++- .../lod/core/a7/render/LodQuadTree.java | 12 ++++++++++- src/main/java/module-info.java | 21 ------------------- 5 files changed, 18 insertions(+), 24 deletions(-) delete mode 100644 src/main/java/module-info.java diff --git a/src/main/java/com/seibel/lod/core/a7/datatype/column/ColumnRenderSource.java b/src/main/java/com/seibel/lod/core/a7/datatype/column/ColumnRenderSource.java index e3b45b397..12a294b10 100644 --- a/src/main/java/com/seibel/lod/core/a7/datatype/column/ColumnRenderSource.java +++ b/src/main/java/com/seibel/lod/core/a7/datatype/column/ColumnRenderSource.java @@ -266,7 +266,7 @@ public class ColumnRenderSource implements LodRenderSource, IColumnDatatype { } private void cancelBuildBuffer() { if (inBuildRenderBuffer != null) { - inBuildRenderBuffer.cancel(false); + inBuildRenderBuffer.cancel(true); inBuildRenderBuffer = null; } } diff --git a/src/main/java/com/seibel/lod/core/a7/datatype/column/render/ColumnRenderBuffer.java b/src/main/java/com/seibel/lod/core/a7/datatype/column/render/ColumnRenderBuffer.java index f975e4926..46a39b5e6 100644 --- a/src/main/java/com/seibel/lod/core/a7/datatype/column/render/ColumnRenderBuffer.java +++ b/src/main/java/com/seibel/lod/core/a7/datatype/column/render/ColumnRenderBuffer.java @@ -167,8 +167,11 @@ public class ColumnRenderBuffer extends RenderBuffer { } } + private boolean closed = false; @Override public void close() { + if (closed) return; + closed = true; GLProxy.getInstance().recordOpenGlCall(() -> { for (GLVertexBuffer b : vbos) { if (b == null) continue; diff --git a/src/main/java/com/seibel/lod/core/a7/level/DhClientServerLevel.java b/src/main/java/com/seibel/lod/core/a7/level/DhClientServerLevel.java index 97a02e1ce..db96cc1af 100644 --- a/src/main/java/com/seibel/lod/core/a7/level/DhClientServerLevel.java +++ b/src/main/java/com/seibel/lod/core/a7/level/DhClientServerLevel.java @@ -100,9 +100,10 @@ public class DhClientServerLevel implements IClientLevel, IServerLevel { LOGGER.warn("Tried to call stopRenderer() on {} when renderer is already closed!", this); return; } + tree.close(); + tree = null; renderBufferHandler.close(); renderBufferHandler = null; - tree = null; //TODO Close the tree generationQueue = null; renderFileHandler.flushAndSave(); //Ignore the completion feature so that this action is async renderFileHandler.close(); @@ -145,6 +146,7 @@ public class DhClientServerLevel implements IClientLevel, IServerLevel { public void close() { if (batchGenerator != null) batchGenerator.close(); if (renderer != null) renderer.close(); + if (tree != null) tree.close(); if (renderBufferHandler != null) renderBufferHandler.close(); if (renderFileHandler != null) renderFileHandler.close(); dataFileHandler.close(); diff --git a/src/main/java/com/seibel/lod/core/a7/render/LodQuadTree.java b/src/main/java/com/seibel/lod/core/a7/render/LodQuadTree.java index 6bc8c55ff..935961cfe 100644 --- a/src/main/java/com/seibel/lod/core/a7/render/LodQuadTree.java +++ b/src/main/java/com/seibel/lod/core/a7/render/LodQuadTree.java @@ -24,7 +24,7 @@ import org.apache.logging.log4j.Logger; * -by loading from file * -by adding data with the lodBuilder */ -public class LodQuadTree { +public class LodQuadTree implements AutoCloseable { /** * Note: all config value should be via the class that extends this class, and @@ -455,4 +455,14 @@ public class LodQuadTree { } return sb.toString(); } + + @Override + public void close() { + for (MovableGridRingList ringList : ringLists) { + ringList.forEach((section) -> { + if (section != null) section.dispose(); + }); + } + + } } diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java deleted file mode 100644 index e98973c9e..000000000 --- a/src/main/java/module-info.java +++ /dev/null @@ -1,21 +0,0 @@ -//module dhApi -//{ -// requires org.apache.logging.log4j; -// requires org.lwjgl.opengl; -// requires java.datatransfer; -// requires com.google.common; -// requires java.desktop; -// requires org.lwjgl.glfw; -// requires com.formdev.flatlaf; -// requires json.simple; // not found -// requires core; // electronwill.nightconfig -// requires com.formdev.flatlaf.extras; -// -// // annotations -// requires org.jetbrains.annotations; // not found -// requires jsr305; // not found -// -// -// // Distant Horizons' API exports -// exports com.seibel.lod.core.api.external; -//} \ No newline at end of file