File tree Expand file tree Collapse file tree 2 files changed +16
-6
lines changed
src/main/java/net/vulkanmod/render Expand file tree Collapse file tree 2 files changed +16
-6
lines changed Original file line number Diff line number Diff line change 11package 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 ;
36import net .vulkanmod .render .vertex .TerrainBuilder ;
47import net .vulkanmod .render .vertex .TerrainRenderType ;
8+ import net .vulkanmod .render .vertex .VertexBuilder ;
59
610import java .util .Arrays ;
711import 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 ) {
Original file line number Diff line number Diff line change 55import net .vulkanmod .Initializer ;
66import net .vulkanmod .render .PipelineManager ;
77import net .vulkanmod .render .chunk .cull .QuadFacing ;
8+ import net .vulkanmod .vulkan .memory .buffer .IndexBuffer ;
89import org .apache .logging .log4j .Logger ;
910import 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 ++) {
You can’t perform that action at this time.
0 commit comments