Skip to content

Commit 81ff1a0

Browse files
committed
Trust the system
- Use the mode/vertex format from the RenderType in MeshEmitter
1 parent 911f1ca commit 81ff1a0

File tree

3 files changed

+8
-7
lines changed

3 files changed

+8
-7
lines changed

common/src/lib/java/dev/engine_room/flywheel/lib/model/baked/MeshEmitter.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@
77
import com.google.common.collect.ImmutableList;
88
import com.mojang.blaze3d.vertex.BufferBuilder;
99
import com.mojang.blaze3d.vertex.ByteBufferBuilder;
10-
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
11-
import com.mojang.blaze3d.vertex.VertexFormat;
1210

1311
import dev.engine_room.flywheel.api.material.Material;
1412
import dev.engine_room.flywheel.api.model.Mesh;
1513
import dev.engine_room.flywheel.api.model.Model;
14+
import net.minecraft.client.renderer.RenderType;
1615

1716
class MeshEmitter {
1817
private static final int INITIAL_CAPACITY = 1;
1918

2019
private final ByteBufferBuilderStack byteBufferBuilderStack;
20+
private final RenderType renderType;
2121

2222
private Material @UnknownNullability [] materials = new Material[INITIAL_CAPACITY];
2323
private BufferBuilder @UnknownNullability [] bufferBuilders = new BufferBuilder[INITIAL_CAPACITY];
@@ -30,8 +30,9 @@ class MeshEmitter {
3030

3131
private int currentIndex = 0;
3232

33-
MeshEmitter(ByteBufferBuilderStack byteBufferBuilderStack) {
33+
MeshEmitter(ByteBufferBuilderStack byteBufferBuilderStack, RenderType renderType) {
3434
this.byteBufferBuilderStack = byteBufferBuilderStack;
35+
this.renderType = renderType;
3536
}
3637

3738
public void prepare(BlockMaterialFunction blockMaterialFunction) {
@@ -88,8 +89,8 @@ public BufferBuilder getBuffer(Material material) {
8889

8990
ByteBufferBuilder byteBufferBuilder = byteBufferBuilderStack.nextOrCreate();
9091

91-
// This is only used for block models in the 5 chunk render types, so we can hard-code the mode and format.
92-
BufferBuilder bufferBuilder = new BufferBuilder(byteBufferBuilder, VertexFormat.Mode.TRIANGLES, DefaultVertexFormat.BLOCK);
92+
// Trust that the RenderType mode/format don't change out from underneath us.
93+
BufferBuilder bufferBuilder = new BufferBuilder(byteBufferBuilder, renderType.mode(), renderType.format());
9394

9495
// currentIndex == numBufferBuildersPopulated here.
9596
materials[currentIndex] = material;

fabric/src/lib/java/dev/engine_room/flywheel/lib/model/baked/FabricMeshEmitterManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class FabricMeshEmitterManager extends MeshEmitterManager<MeshEmitter> implement
3434
private BufferBuilder currentDelegate;
3535

3636
FabricMeshEmitterManager() {
37-
super((bufferBuilderStack, $) -> new MeshEmitter(bufferBuilderStack));
37+
super(MeshEmitter::new);
3838
}
3939

4040
public BakedModel prepareForModel(BakedModel model, RenderType defaultLayer, boolean useAo, boolean defaultAo) {

neoforge/src/lib/java/dev/engine_room/flywheel/lib/model/baked/NeoforgeMeshEmitter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class NeoforgeMeshEmitter extends MeshEmitter implements VertexConsumer {
1919
private boolean defaultAo;
2020

2121
NeoforgeMeshEmitter(ByteBufferBuilderStack byteBufferBuilderStack, RenderType renderType) {
22-
super(byteBufferBuilderStack);
22+
super(byteBufferBuilderStack, renderType);
2323
this.renderType = renderType;
2424
}
2525

0 commit comments

Comments
 (0)