Remove MemUtil references due to native crashing
This commit is contained in:
+1
-4
@@ -1,7 +1,5 @@
|
|||||||
package com.seibel.distanthorizons.core.dataObjects.render.bufferBuilding;
|
package com.seibel.distanthorizons.core.dataObjects.render.bufferBuilding;
|
||||||
|
|
||||||
import org.lwjgl.system.MemoryUtil;
|
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.nio.ByteOrder;
|
import java.nio.ByteOrder;
|
||||||
|
|
||||||
@@ -14,11 +12,10 @@ public class IndexBufferBuilder
|
|||||||
//==========//
|
//==========//
|
||||||
//region
|
//region
|
||||||
|
|
||||||
/** Buffer should be freed by {@link MemoryUtil#memFree} */
|
|
||||||
public static ByteBuffer createBuffer(int quadCount)
|
public static ByteBuffer createBuffer(int quadCount)
|
||||||
{
|
{
|
||||||
int indexCount = quadCount * 6; // 2 triangles per quad
|
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());
|
buffer.order(ByteOrder.nativeOrder());
|
||||||
buildBufferInt(quadCount, buffer);
|
buildBufferInt(quadCount, buffer);
|
||||||
|
|
||||||
|
|||||||
-32
@@ -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.ILodContainerUniformBufferWrapper;
|
||||||
import com.seibel.distanthorizons.core.wrapperInterfaces.render.objects.IVertexBufferWrapper;
|
import com.seibel.distanthorizons.core.wrapperInterfaces.render.objects.IVertexBufferWrapper;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.lwjgl.system.MemoryUtil;
|
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.util.ArrayList;
|
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;
|
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)
|
private ArrayList<ByteBuffer> createIndexBuffers(ArrayList<ByteBuffer> vertexBuffers)
|
||||||
|
|||||||
+3
-2
@@ -20,6 +20,7 @@
|
|||||||
package com.seibel.distanthorizons.core.dataObjects.render.bufferBuilding;
|
package com.seibel.distanthorizons.core.dataObjects.render.bufferBuilding;
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
import java.nio.ByteOrder;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.enums.config.EDhApiGrassSideRendering;
|
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.coreapi.util.ColorUtil;
|
||||||
import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper;
|
import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper;
|
||||||
import com.seibel.distanthorizons.core.wrapperInterfaces.world.IClientLevelWrapper;
|
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>
|
* 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
|
if (buffer == null
|
||||||
|| buffer.remaining() < BYTES_PER_QUAD)
|
|| buffer.remaining() < BYTES_PER_QUAD)
|
||||||
{
|
{
|
||||||
buffer = MemoryUtil.memAlloc(getMaxBufferByteSize());
|
buffer = ByteBuffer.allocateDirect(getMaxBufferByteSize());
|
||||||
|
buffer.order(ByteOrder.nativeOrder());
|
||||||
byteBufferList.add(buffer);
|
byteBufferList.add(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user