Skip to content

Commit cd0f2e6

Browse files
committed
Update TerrainBuilder
1 parent fc452ad commit cd0f2e6

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

src/main/java/net/vulkanmod/render/chunk/build/thread/ThreadBuilderPack.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
package net.vulkanmod.render.chunk.build.thread;
22

3+
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
4+
import net.vulkanmod.render.PipelineManager;
5+
import net.vulkanmod.render.vertex.CustomVertexFormat;
36
import net.vulkanmod.render.vertex.TerrainBuilder;
47
import net.vulkanmod.render.vertex.TerrainRenderType;
8+
import net.vulkanmod.render.vertex.VertexBuilder;
59

610
import java.util.Arrays;
711
import java.util.EnumMap;
@@ -12,7 +16,14 @@ public class ThreadBuilderPack {
1216
private static Function<TerrainRenderType, TerrainBuilder> terrainBuilderConstructor;
1317

1418
public static void defaultTerrainBuilderConstructor() {
15-
terrainBuilderConstructor = renderType -> new TerrainBuilder(TerrainRenderType.getLayer(renderType).bufferSize());
19+
terrainBuilderConstructor = renderType -> {
20+
int size = TerrainRenderType.getLayer(renderType)
21+
.bufferSize() / DefaultVertexFormat.BLOCK.getVertexSize();
22+
23+
boolean compressedFormat = PipelineManager.terrainVertexFormat == CustomVertexFormat.COMPRESSED_TERRAIN;
24+
VertexBuilder vertexBuilder = compressedFormat ? new VertexBuilder.CompressedVertexBuilder() : new VertexBuilder.DefaultVertexBuilder();
25+
return new TerrainBuilder(size, vertexBuilder);
26+
};
1627
}
1728

1829
public static void setTerrainBuilderConstructor(Function<TerrainRenderType, TerrainBuilder> constructor) {

src/main/java/net/vulkanmod/render/vertex/TerrainBuilder.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import net.vulkanmod.Initializer;
66
import net.vulkanmod.render.PipelineManager;
77
import net.vulkanmod.render.chunk.cull.QuadFacing;
8+
import net.vulkanmod.vulkan.memory.buffer.IndexBuffer;
89
import org.apache.logging.log4j.Logger;
910
import org.lwjgl.system.MemoryUtil;
1011

@@ -31,14 +32,12 @@ public class TerrainBuilder {
3132

3233
private final TerrainBufferBuilder[] bufferBuilders;
3334

34-
public TerrainBuilder(int size) {
35-
// TODO index buffer
35+
public TerrainBuilder(int size, VertexBuilder vertexBuilder) {
36+
this.indexBufferCapacity = size * IndexBuffer.IndexType.UINT32.size;
3637
this.indexBufferPtr = ALLOCATOR.malloc(size);
37-
this.indexBufferCapacity = size;
3838

3939
this.format = PipelineManager.terrainVertexFormat;
40-
this.vertexBuilder = PipelineManager.terrainVertexFormat == CustomVertexFormat.COMPRESSED_TERRAIN
41-
? new VertexBuilder.CompressedVertexBuilder() : new VertexBuilder.DefaultVertexBuilder();
40+
this.vertexBuilder = vertexBuilder;
4241

4342
var bufferBuilders = new TerrainBufferBuilder[QuadFacing.COUNT];
4443
for (int i = 0; i < QuadFacing.COUNT; i++) {

0 commit comments

Comments
 (0)