Skip to content

Commit f981f72

Browse files
MCRcortexme4502
authored andcommitted
Merge pull request #134 from MCRcortex/mc/1.21.5
Hacked together working graphics
1 parent 94cb836 commit f981f72

File tree

6 files changed

+44
-34
lines changed

6 files changed

+44
-34
lines changed

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ indra = "3.1.3"
66
minecraft = "1.21.5"
77
fabricLoader = "0.16.14"
88
fabricApi = "0.124.0+1.21.5"
9-
modmenu = "13.0.0-beta.1"
9+
modmenu = "14.0.0-rc.2"
1010
viafabricplus = "3.3.0"
1111
vineflower = "1.10.1"
1212
cuiProtocol = "4.0.0"

worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/event/listeners/CUIListenerWorldRender.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@
99
*/
1010
package org.enginehub.worldeditcui.event.listeners;
1111

12+
import com.mojang.blaze3d.opengl.GlConst;
13+
import com.mojang.blaze3d.opengl.GlStateManager;
1214
import com.mojang.blaze3d.platform.DestFactor;
1315
import com.mojang.blaze3d.platform.SourceFactor;
1416
import com.mojang.blaze3d.systems.RenderSystem;
1517
import net.minecraft.client.Minecraft;
16-
import net.minecraft.client.renderer.CompiledShaderProgram;
1718
import net.minecraft.client.renderer.FogParameters;
1819
import net.minecraft.util.profiling.Profiler;
1920
import net.minecraft.util.profiling.ProfilerFiller;
@@ -101,15 +102,18 @@ public void onRender(final float partialTicks) {
101102
RenderSystem.setShaderFog(FogParameters.NO_FOG);
102103
final Matrix4fStack poseStack = RenderSystem.getModelViewStack();
103104
poseStack.pushMatrix();
104-
RenderSystem.disableCull();
105-
RenderSystem.enableBlend();
105+
GlStateManager._disableCull();
106+
GlStateManager._enableBlend();
106107
// RenderSystem.disableTexture();
107-
RenderSystem.enableDepthTest();
108-
RenderSystem.blendFunc(SourceFactor.SRC_ALPHA, DestFactor.ONE_MINUS_SRC_ALPHA);
109-
RenderSystem.depthMask(true);
108+
GlStateManager._enableDepthTest();
109+
GlStateManager._blendFuncSeparate(
110+
GlConst.toGl(SourceFactor.SRC_ALPHA),
111+
GlConst.toGl(DestFactor.ONE_MINUS_SRC_ALPHA),
112+
GlConst.toGl(SourceFactor.SRC_ALPHA),
113+
GlConst.toGl(DestFactor.ONE_MINUS_SRC_ALPHA));
114+
GlStateManager._depthMask(true);
110115
RenderSystem.lineWidth(LineStyle.DEFAULT_WIDTH);
111116

112-
final CompiledShaderProgram oldShader = RenderSystem.getShader();
113117
try {
114118
this.controller.renderSelections(this.ctx);
115119
this.sink.flush();
@@ -118,11 +122,10 @@ public void onRender(final float partialTicks) {
118122
this.invalidatePipeline();
119123
}
120124

121-
RenderSystem.depthFunc(GL32.GL_LEQUAL);
122-
RenderSystem.setShader(oldShader);
125+
GlStateManager._depthFunc(GL32.GL_LEQUAL);
123126
// RenderSystem.enableTexture();
124-
RenderSystem.disableBlend();
125-
RenderSystem.enableCull();
127+
GlStateManager._disableBlend();
128+
GlStateManager._enableCull();
126129
poseStack.popMatrix();
127130
RenderSystem.setShaderFog(fogStart);
128131
profiler.pop();

worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/fabric/FabricModWorldEditCUI.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,10 @@ public void onInitialize() {
100100
RenderSystem.getModelViewStack().pushMatrix();
101101
RenderSystem.getModelViewStack().mul(ctx.matrixStack().last().pose());
102102
// RenderSystem.applyModelViewMatrix();
103-
ctx.worldRenderer().getTranslucentTarget().bindWrite(false);
103+
//ctx.worldRenderer().getTranslucentTarget().bindWrite(false);
104104
this.onPostRenderEntities(ctx);
105105
} finally {
106-
Minecraft.getInstance().getMainRenderTarget().bindWrite(false);
106+
//Minecraft.getInstance().getMainRenderTarget().bindWrite(false);
107107
RenderSystem.getModelViewStack().popMatrix();
108108
}
109109
}

worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/render/BufferBuilderRenderSink.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,12 @@
99
*/
1010
package org.enginehub.worldeditcui.render;
1111

12+
import com.mojang.blaze3d.opengl.GlStateManager;
1213
import com.mojang.blaze3d.pipeline.RenderPipeline;
1314
import com.mojang.blaze3d.systems.RenderSystem;
1415
import com.mojang.blaze3d.vertex.BufferBuilder;
15-
import com.mojang.blaze3d.vertex.BufferUploader;
1616
import com.mojang.blaze3d.vertex.Tesselator;
1717
import com.mojang.blaze3d.vertex.VertexFormat;
18-
import net.minecraft.client.renderer.MultiBufferSource;
1918
import org.jetbrains.annotations.Nullable;
2019
import org.joml.Vector3f;
2120
import org.lwjgl.opengl.GL11;
@@ -92,7 +91,7 @@ public boolean apply(final LineStyle line, final RenderStyle.RenderType type) {
9291
this.builder = Tesselator.getInstance().begin(this.activeRenderType.mode, this.activeRenderType.format);
9392
}
9493
LineWidth.set(this.lastLineWidth = line.lineWidth);
95-
RenderSystem.depthFunc(this.lastDepthFunc = line.renderType.depthFunc());
94+
GlStateManager._depthFunc(this.lastDepthFunc = line.renderType.depthFunc());
9695
}
9796
return true;
9897
}
@@ -228,10 +227,10 @@ public void flush() {
228227
this.canFlush = false;
229228
this.preFlush.run();
230229
try {
231-
if (this.activeRenderType != null) {
232-
RenderSystem.setShader(this.activeRenderType.renderPipeline);
230+
if (this.activeRenderType == null) {
231+
throw new IllegalStateException("Active type cannot be null");
233232
}
234-
BufferUploader.drawWithShader(this.builder.buildOrThrow());
233+
this.activeRenderType.type.draw(this.builder.buildOrThrow());
235234
} finally {
236235
this.postFlush.run();
237236
this.builder = null;
@@ -270,13 +269,13 @@ public static class RenderType {
270269
private final VertexFormat.Mode mode;
271270
private final VertexFormat format;
272271
private final boolean hasNormals;
273-
private final RenderPipeline renderPipeline;
272+
private final net.minecraft.client.renderer.RenderType type;
274273

275-
public RenderType(final VertexFormat.Mode mode, final VertexFormat format, @Nullable final RenderPipeline renderPipeline) {
274+
public RenderType(final VertexFormat.Mode mode, final VertexFormat format, @Nullable final net.minecraft.client.renderer.RenderType renderPipeline) {
276275
this.mode = mode;
277276
this.format = format;
278277
this.hasNormals = format.getElementAttributeNames().contains("Normal");
279-
this.renderPipeline = renderPipeline;
278+
this.type = renderPipeline;
280279
}
281280

282281
VertexFormat.Mode mode() {
@@ -291,11 +290,6 @@ boolean hasNormals() {
291290
return this.hasNormals;
292291
}
293292

294-
@Nullable
295-
RenderPipeline shader() {
296-
return this.renderPipeline;
297-
}
298-
299293
boolean mustFlushAfter(final RenderType previous) {
300294
return previous.mode != this.mode || !Objects.equals(previous.format, this.format);
301295
}

worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/render/VanillaPipelineProvider.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,30 @@
99
*/
1010
package org.enginehub.worldeditcui.render;
1111

12+
import com.mojang.blaze3d.pipeline.BlendFunction;
13+
import com.mojang.blaze3d.pipeline.RenderPipeline;
1214
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
1315
import com.mojang.blaze3d.vertex.VertexFormat;
1416
import net.minecraft.client.renderer.RenderPipelines;
17+
import net.minecraft.client.renderer.RenderType;
1518

1619
public final class VanillaPipelineProvider implements PipelineProvider {
1720

1821
public static class DefaultTypeFactory implements BufferBuilderRenderSink.TypeFactory {
1922
public static final DefaultTypeFactory INSTANCE = new DefaultTypeFactory();
20-
21-
private static final BufferBuilderRenderSink.RenderType QUADS = new BufferBuilderRenderSink.RenderType(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR, null);
22-
private static final BufferBuilderRenderSink.RenderType LINES = new BufferBuilderRenderSink.RenderType(VertexFormat.Mode.LINES, DefaultVertexFormat.POSITION_COLOR_NORMAL, RenderPipelines.LINES);
23-
private static final BufferBuilderRenderSink.RenderType LINES_LOOP = new BufferBuilderRenderSink.RenderType(VertexFormat.Mode.LINES, DefaultVertexFormat.POSITION_COLOR_NORMAL, RenderPipelines.LINES);
23+
private static final BufferBuilderRenderSink.RenderType QUADS = new BufferBuilderRenderSink.RenderType(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR,
24+
RenderType.create("quads", 1536, false, true,
25+
RenderPipeline.builder(RenderPipeline.builder(RenderPipelines.MATRICES_COLOR_SNIPPET)
26+
.withVertexShader("core/position_color")
27+
.withFragmentShader("core/position_color")
28+
.withBlend(BlendFunction.TRANSLUCENT)
29+
.withVertexFormat(DefaultVertexFormat.POSITION_COLOR, VertexFormat.Mode.QUADS)
30+
.buildSnippet())
31+
.withLocation("pipeline/wecui_quads").withCull(false).build(),
32+
RenderType.CompositeState.builder().createCompositeState(false)
33+
));
34+
private static final BufferBuilderRenderSink.RenderType LINES = new BufferBuilderRenderSink.RenderType(VertexFormat.Mode.LINES, DefaultVertexFormat.POSITION_COLOR_NORMAL, RenderType.LINES);
35+
private static final BufferBuilderRenderSink.RenderType LINES_LOOP = new BufferBuilderRenderSink.RenderType(VertexFormat.Mode.LINES, DefaultVertexFormat.POSITION_COLOR_NORMAL, RenderType.LINES);
2436

2537
private DefaultTypeFactory() {}
2638

worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/render/shapes/Render3DGrid.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
*/
1010
package org.enginehub.worldeditcui.render.shapes;
1111

12+
import com.mojang.blaze3d.opengl.GlStateManager;
1213
import com.mojang.blaze3d.systems.RenderSystem;
1314
import net.minecraft.util.Mth;
1415
import org.enginehub.worldeditcui.event.listeners.CUIRenderContext;
@@ -87,7 +88,7 @@ public void render(CUIRenderContext ctx)
8788

8889
if (this.spacing != 1.0)
8990
{
90-
RenderSystem.disableCull();
91+
GlStateManager._disableCull();
9192

9293
double[] vertices = {
9394
x1, y1, z1, x2, y1, z1, x2, y1, z2, x1, y1, z2, // bottom
@@ -113,7 +114,7 @@ public void render(CUIRenderContext ctx)
113114
}
114115

115116
ctx.flush(); // todo: only needed because of disable/enable cull
116-
RenderSystem.enableCull();
117+
GlStateManager._enableCull();
117118
}
118119

119120
if (this.spacing < Render3DGrid.MIN_SPACING)

0 commit comments

Comments
 (0)