Skip to content

Commit 1cffdbe

Browse files
committed
Fix VBORenderType.
1 parent f5b0c01 commit 1cffdbe

1 file changed

Lines changed: 33 additions & 7 deletions

File tree

src/main/java/codechicken/lib/render/buffer/VBORenderType.java

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.mojang.blaze3d.systems.RenderSystem;
44
import com.mojang.blaze3d.vertex.*;
5+
import net.minecraft.client.renderer.MultiBufferSource;
56
import net.minecraft.client.renderer.RenderStateShard;
67
import net.minecraft.client.renderer.RenderType;
78

@@ -13,7 +14,7 @@
1314
import static net.covers1624.quack.util.SneakyUtils.none;
1415

1516
/**
16-
* A RenderType that is backed by a VertexBufferObject used for Instanced rendering.
17+
* A RenderType that is backed by a VertexBufferObject used for Cached rendering.
1718
* <p>
1819
* Created by covers1624 on 25/5/20.
1920
*/
@@ -64,6 +65,23 @@ public WithCallbacks withState(RenderStateShard shard) {
6465
return new WithCallbacks().withState(shard);
6566
}
6667

68+
/**
69+
* Called to draw a VBORenderType.
70+
*
71+
* @param buffers The buffers instance.
72+
*/
73+
public void draw(MultiBufferSource buffers) {
74+
draw(buffers, this);
75+
}
76+
77+
private static void draw(MultiBufferSource buffers, RenderType type) {
78+
var cons = buffers.getBuffer(type);
79+
// Add some garbage so a mesh gets generated.
80+
for (int i = 0; i < type.mode().primitiveLength; i++) {
81+
cons.addVertex(0F, 0F, 0F, 0, 0F, 0F, 0, 0, 0F, 0F, 0F);
82+
}
83+
}
84+
6785
private void render() {
6886
rebuild();
6987
vertexBuffer.bind();
@@ -83,9 +101,11 @@ private void rebuild() {
83101

84102
@Override
85103
public void draw(MeshData meshData) {
86-
setupRenderState();
87-
render();
88-
clearRenderState();
104+
try (meshData) {
105+
setupRenderState();
106+
render();
107+
clearRenderState();
108+
}
89109
}
90110

91111
@Override
@@ -137,9 +157,11 @@ public void setupRenderState() {
137157

138158
@Override
139159
public void draw(MeshData meshData) {
140-
setupRenderState();
141-
render();
142-
clearRenderState();
160+
try (meshData) {
161+
setupRenderState();
162+
render();
163+
clearRenderState();
164+
}
143165
}
144166

145167
@Override
@@ -149,5 +171,9 @@ public void clearRenderState() {
149171
}
150172
super.clearRenderState();
151173
}
174+
175+
public void draw(MultiBufferSource buffers) {
176+
VBORenderType.draw(buffers, this);
177+
}
152178
}
153179
}

0 commit comments

Comments
 (0)