Fix time keyframe lines rendering below timeline

This commit is contained in:
Jonas Herzig
2024-06-25 10:30:43 +02:00
parent d70e41006d
commit 2b2ab2ba8b
3 changed files with 21 additions and 10 deletions

View File

@@ -10,6 +10,7 @@ import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector3f;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.render.BufferBuilder;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.network.NetworkState;
import net.minecraft.util.Identifier;
import net.minecraft.util.Util;
@@ -437,11 +438,11 @@ public class MCVer {
//$$ }
//#endif
public static void emitLine(BufferBuilder buffer, Vector2f p1, Vector2f p2, int color) {
emitLine(buffer, new Vector3f(p1.x, p1.y, 0), new Vector3f(p2.x, p2.y, 0), color);
public static void emitLine(MatrixStack matrixStack, BufferBuilder buffer, Vector2f p1, Vector2f p2, int color) {
emitLine(matrixStack, buffer, new Vector3f(p1.x, p1.y, 0), new Vector3f(p2.x, p2.y, 0), color);
}
public static void emitLine(BufferBuilder buffer, Vector3f p1, Vector3f p2, int color) {
public static void emitLine(MatrixStack matrixStack, BufferBuilder buffer, Vector3f p1, Vector3f p2, int color) {
int r = color >> 24 & 0xff;
int g = color >> 16 & 0xff;
int b = color >> 8 & 0xff;
@@ -449,14 +450,22 @@ public class MCVer {
//#if MC>=11700
//$$ Vector3f n = Vector3f.sub(p2, p1, null);
//#endif
buffer.vertex(p1.x, p1.y, p1.z)
//#if MC>=11600
buffer.vertex(matrixStack.peek().getModel(), p1.x, p1.y, p1.z)
//#else
//$$ buffer.vertex(p1.x, p1.y, p1.z)
//#endif
.color(r, g, b, a)
//#if MC>=11700
//$$ .normal(n.x, n.y, n.z)
//#endif
;
buffer.next();
buffer.vertex(p2.x, p2.y, p2.z)
//#if MC>=11600
buffer.vertex(matrixStack.peek().getModel(), p2.x, p2.y, p2.z)
//#else
//$$ buffer.vertex(p2.x, p2.y, p2.z)
//#endif
.color(r, g, b, a)
//#if MC>=11700
//$$ .normal(n.x, n.y, n.z)

View File

@@ -22,6 +22,7 @@ import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector2f;
import net.minecraft.client.render.BufferBuilder;
import net.minecraft.client.render.Tessellator;
import net.minecraft.client.render.VertexFormats;
import net.minecraft.client.util.math.MatrixStack;
import org.apache.commons.lang3.tuple.Pair;
import de.johni0702.minecraft.gui.utils.lwjgl.Point;
import de.johni0702.minecraft.gui.utils.lwjgl.ReadableDimension;
@@ -169,9 +170,10 @@ public class GuiKeyframeTimeline extends AbstractGuiTimeline<GuiKeyframeTimeline
// And finally another vertical bit (the timeline is already crammed enough, so only the border)
Vector2f p4 = new Vector2f(keyframeTimelineLeft + positionXKeyframeTimeline, keyframeTimelineTop + BORDER_TOP);
emitLine(buffer, p1, p2, color);
emitLine(buffer, p2, p3, color);
emitLine(buffer, p3, p4, color);
MatrixStack matrixStack = renderer.getMatrixStack();
emitLine(matrixStack, buffer, p1, p2, color);
emitLine(matrixStack, buffer, p2, p3, color);
emitLine(matrixStack, buffer, p3, p4, color);
//#if MC>=11700
//$$ RenderSystem.setShader(GameRenderer::getRenderTypeLinesShader);

View File

@@ -254,7 +254,7 @@ public class PathPreviewRenderer extends EventRegistrations {
buffer.begin(GL11.GL_LINES, VertexFormats.POSITION_COLOR);
//#endif
emitLine(buffer, Vector3f.sub(pos1, view, null), Vector3f.sub(pos2, view, null), color);
emitLine(new MatrixStack(), buffer, Vector3f.sub(pos1, view, null), Vector3f.sub(pos2, view, null), color);
//#if MC>=11700
//$$ RenderSystem.setShader(GameRenderer::getRenderTypeLinesShader);
@@ -350,7 +350,7 @@ public class PathPreviewRenderer extends EventRegistrations {
buffer.begin(GL11.GL_LINES, VertexFormats.POSITION_COLOR);
//#endif
emitLine(buffer, new Vector3f(0, 0, 0), new Vector3f(0, 0, 2), 0x00ff00aa);
emitLine(new MatrixStack(), buffer, new Vector3f(0, 0, 0), new Vector3f(0, 0, 2), 0x00ff00aa);
//#if MC>=11700
//$$ RenderSystem.applyModelViewMatrix();