aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/utils/render
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2024-04-05 03:54:47 -0400
committerAaron <51387595+AzureAaron@users.noreply.github.com>2024-04-05 03:54:47 -0400
commit9d7f6aeb1fa157d4b0ba07c22aec07ea8cfb0ca1 (patch)
tree9668f9eb89a723ccdce7da5e4dab2d9660d8a6eb /src/main/java/de/hysky/skyblocker/utils/render
parent8585afb20fb11d9349a3b9e079e037301c11c602 (diff)
downloadSkyblocker-9d7f6aeb1fa157d4b0ba07c22aec07ea8cfb0ca1.tar.gz
Skyblocker-9d7f6aeb1fa157d4b0ba07c22aec07ea8cfb0ca1.tar.bz2
Skyblocker-9d7f6aeb1fa157d4b0ba07c22aec07ea8cfb0ca1.zip
Fix line rendering & fix colour components
Co-authored-by: olim <bobq4582@gmail.com>
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils/render')
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
index 05514d02..e39b5364 100644
--- a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
+++ b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
@@ -187,6 +187,56 @@ public class RenderHelper {
RenderSystem.depthFunc(GL11.GL_LEQUAL);
}
+ public static void renderLineFromCursor(WorldRenderContext context, Vec3d point, float[] colorComponents, float alpha, float lineWidth) {
+ Vec3d camera = context.camera().getPos();
+ MatrixStack matrices = context.matrixStack();
+
+ matrices.push();
+ matrices.translate(-camera.x, -camera.y, -camera.z);
+
+ Tessellator tessellator = RenderSystem.renderThreadTesselator();
+ BufferBuilder buffer = tessellator.getBuffer();
+ Matrix4f positionMatrix = matrices.peek().getPositionMatrix();
+
+ GL11.glEnable(GL11.GL_LINE_SMOOTH);
+ GL11.glHint(GL11.GL_LINE_SMOOTH_HINT, GL11.GL_NICEST);
+
+ RenderSystem.setShader(GameRenderer::getRenderTypeLinesProgram);
+ RenderSystem.setShaderColor(1f, 1f, 1f, 1f);
+ RenderSystem.lineWidth(lineWidth);
+ RenderSystem.enableBlend();
+ RenderSystem.defaultBlendFunc();
+ RenderSystem.disableCull();
+ RenderSystem.enableDepthTest();
+ RenderSystem.depthFunc(GL11.GL_ALWAYS);
+
+ Vec3d offset = Vec3d.fromPolar(context.camera().getPitch(), context.camera().getYaw());
+ Vec3d cameraPoint = camera.add(offset);
+
+ buffer.begin(DrawMode.LINES, VertexFormats.LINES);
+ Vector3f normal = new Vector3f((float) offset.x, (float) offset.y, (float) offset.z);
+ buffer
+ .vertex(positionMatrix, (float) cameraPoint.x , (float) cameraPoint.y, (float) cameraPoint.z)
+ .color(colorComponents[0], colorComponents[1], colorComponents[2], alpha)
+ .normal(normal.x, normal.y, normal.z)
+ .next();
+
+ buffer
+ .vertex(positionMatrix, (float) point.getX(), (float) point.getY(), (float) point.getZ())
+ .color(colorComponents[0], colorComponents[1], colorComponents[2], alpha)
+ .normal(normal.x, normal.y, normal.z)
+ .next();
+
+
+ tessellator.draw();
+
+ matrices.pop();
+ GL11.glDisable(GL11.GL_LINE_SMOOTH);
+ RenderSystem.lineWidth(1f);
+ RenderSystem.enableCull();
+ RenderSystem.depthFunc(GL11.GL_LEQUAL);
+ }
+
public static void renderQuad(WorldRenderContext context, Vec3d[] points, float[] colorComponents, float alpha, boolean throughWalls) {
Vec3d camera = context.camera().getPos();
MatrixStack matrices = context.matrixStack();