Remove MemUtil references due to native crashing

This commit is contained in:
James Seibel
2026-06-06 18:10:59 -05:00
parent b46f10755e
commit 679f871788
3 changed files with 4 additions and 38 deletions
@@ -1,7 +1,5 @@
package com.seibel.distanthorizons.core.dataObjects.render.bufferBuilding;
import org.lwjgl.system.MemoryUtil;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
@@ -14,11 +12,10 @@ public class IndexBufferBuilder
//==========//
//region
/** Buffer should be freed by {@link MemoryUtil#memFree} */
public static ByteBuffer createBuffer(int quadCount)
{
int indexCount = quadCount * 6; // 2 triangles per quad
ByteBuffer buffer = MemoryUtil.memAlloc(indexCount * Integer.BYTES);
ByteBuffer buffer = ByteBuffer.allocateDirect(indexCount * Integer.BYTES);
buffer.order(ByteOrder.nativeOrder());
buildBufferInt(quadCount, buffer);
@@ -32,7 +32,6 @@ import com.seibel.distanthorizons.core.wrapperInterfaces.render.AbstractDhRender
import com.seibel.distanthorizons.core.wrapperInterfaces.render.objects.ILodContainerUniformBufferWrapper;
import com.seibel.distanthorizons.core.wrapperInterfaces.render.objects.IVertexBufferWrapper;
import org.jetbrains.annotations.Nullable;
import org.lwjgl.system.MemoryUtil;
import java.nio.ByteBuffer;
import java.util.ArrayList;
@@ -208,39 +207,8 @@ public class LodBufferContainer implements AutoCloseable
//====================//
// CPU Buffer cleanup //
//====================//
//region
future.whenComplete((LodBufferContainer lodBufferContainer, Throwable throwable) ->
{
// all the buffers must be manually freed to prevent memory leaks
tryFreeByteBufferList(opaqueBuffers);
tryFreeByteBufferList(transparentBuffers);
tryFreeByteBufferList(opaqueIndexBuffers);
tryFreeByteBufferList(transparentIndexBuffers);
});
//endregion
return future;
}
private static void tryFreeByteBufferList(@Nullable ArrayList<ByteBuffer> list)
{
if (list != null)
{
for (ByteBuffer buffer : list)
{
MemoryUtil.memFree(buffer);
}
}
}
private ArrayList<ByteBuffer> createIndexBuffers(ArrayList<ByteBuffer> vertexBuffers)
@@ -20,6 +20,7 @@
package com.seibel.distanthorizons.core.dataObjects.render.bufferBuilding;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.util.*;
import com.seibel.distanthorizons.api.enums.config.EDhApiGrassSideRendering;
@@ -33,7 +34,6 @@ import com.seibel.distanthorizons.core.logging.DhLoggerBuilder;
import com.seibel.distanthorizons.coreapi.util.ColorUtil;
import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper;
import com.seibel.distanthorizons.core.wrapperInterfaces.world.IClientLevelWrapper;
import org.lwjgl.system.MemoryUtil;
/**
* Used to create the quads before they are converted to render-able buffers. <br><br>
@@ -337,7 +337,8 @@ public class LodQuadBuilder implements AutoCloseable
if (buffer == null
|| buffer.remaining() < BYTES_PER_QUAD)
{
buffer = MemoryUtil.memAlloc(getMaxBufferByteSize());
buffer = ByteBuffer.allocateDirect(getMaxBufferByteSize());
buffer.order(ByteOrder.nativeOrder());
byteBufferList.add(buffer);
}