fix some broken shapes and text rendering on background. Still doublesiding doesn't work properly until I got to renderpasses
This commit is contained in:
1 parent
57df043efa
commit
41a7d8df46
1 file changed
+74
-25
@@ -526,7 +526,7 @@ public class ShapesRenderer
|
||||
MultiBufferSource.BufferSource immediate = MultiBufferSource.immediate(new ByteBufferBuilder(RenderType.TRANSIENT_BUFFER_SIZE));
|
||||
// text doesn't appear if backgroud is set
|
||||
///script run draw_shape('label', 100, 'pos', [200, 100, 200], 'text', 'Hewwo World!', 'color', 0xffffffff, 'fill', 0x33333333)
|
||||
textRenderer.drawInBatch(shape.value, text_x, 0.0F, shape.textcolor, false, matrices.last().pose(), immediate, Font.DisplayMode.NORMAL, shape.textbck, 15728880);
|
||||
textRenderer.drawInBatch(shape.value, text_x, 0.0F, shape.textcolor, false, matrices.last().pose(), immediate, Font.DisplayMode.SEE_THROUGH, shape.textbck, 15728880);
|
||||
immediate.endBatch();
|
||||
matrices.popPose();
|
||||
////RenderSystem.enableCull();
|
||||
@@ -629,6 +629,7 @@ public class ShapesRenderer
|
||||
|
||||
public static class RenderedPolyface extends RenderedShape<ShapeDispatcher.Polyface>
|
||||
{
|
||||
// mode now can only be 4, 5, or 6
|
||||
private static final VertexFormat.Mode[] faceIndices = new VertexFormat.Mode[]{
|
||||
Mode.LINES, Mode.LINE_STRIP, Mode.DEBUG_LINES, Mode.DEBUG_LINE_STRIP, Mode.TRIANGLES, Mode.TRIANGLE_STRIP, Mode.TRIANGLE_FAN, Mode.QUADS};
|
||||
|
||||
@@ -637,10 +638,10 @@ public class ShapesRenderer
|
||||
RenderType.debugLineStrip(1),
|
||||
RenderType.debugLineStrip(1),
|
||||
RenderType.debugLineStrip(1),
|
||||
RenderType.debugLineStrip(1), // TODO wrong
|
||||
RenderType.debugLineStrip(1), // TODO wrong
|
||||
RenderType.debugLineStrip(1),
|
||||
RenderType.debugQuads()
|
||||
RenderType.debugTriangleFan(), // TODO wrong
|
||||
RenderType.debugTriangleFan(), // TODO wrong
|
||||
RenderType.debugTriangleFan(),
|
||||
RenderType.debugQuads()
|
||||
};
|
||||
|
||||
public RenderedPolyface(Minecraft client, ShapeDispatcher.ExpiringShape shape)
|
||||
@@ -714,7 +715,7 @@ public class ShapesRenderer
|
||||
drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1));
|
||||
if (shape.inneredges)
|
||||
{
|
||||
BufferBuilder builderr = tesselator.begin(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR);
|
||||
BufferBuilder builderr = tesselator.begin(Mode.DEBUG_LINE_STRIP, DefaultVertexFormat.POSITION_COLOR);
|
||||
for (int i = 1; i < shape.vertexList.size() - 1; i++)
|
||||
{
|
||||
Vec3 vec = shape.vertexList.get(i);
|
||||
@@ -722,7 +723,7 @@ public class ShapesRenderer
|
||||
{
|
||||
vec = shape.relativiseRender(client.level, vec, partialTick);
|
||||
}
|
||||
|
||||
builderr.addVertex((float) (vec0.x() - cx), (float) (vec0.y() - cy), (float) (vec0.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a);
|
||||
builderr.addVertex((float) (vec.x() - cx), (float) (vec.y() - cy), (float) (vec.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a);
|
||||
builderr.addVertex((float) (vec0.x() - cx), (float) (vec0.y() - cy), (float) (vec0.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a);
|
||||
}
|
||||
@@ -776,9 +777,10 @@ public class ShapesRenderer
|
||||
}
|
||||
if (shape.mode == 4)
|
||||
{
|
||||
BufferBuilder builder = tesselator.begin(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR);
|
||||
//
|
||||
for (int i = 0; i < shape.vertexList.size(); i++)
|
||||
{
|
||||
BufferBuilder builder = tesselator.begin(Mode.DEBUG_LINE_STRIP, DefaultVertexFormat.POSITION_COLOR);
|
||||
Vec3 vecA = shape.vertexList.get(i);
|
||||
if (shape.relative.get(i))
|
||||
{
|
||||
@@ -799,13 +801,15 @@ public class ShapesRenderer
|
||||
builder.addVertex((float) (vecA.x() - cx), (float) (vecA.y() - cy), (float) (vecA.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a);
|
||||
builder.addVertex((float) (vecB.x() - cx), (float) (vecB.y() - cy), (float) (vecB.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a);
|
||||
|
||||
builder.addVertex((float) (vecB.x() - cx), (float) (vecB.y() - cy), (float) (vecB.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a);
|
||||
//builder.addVertex((float) (vecB.x() - cx), (float) (vecB.y() - cy), (float) (vecB.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a);
|
||||
builder.addVertex((float) (vecC.x() - cx), (float) (vecC.y() - cy), (float) (vecC.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a);
|
||||
|
||||
builder.addVertex((float) (vecC.x() - cx), (float) (vecC.y() - cy), (float) (vecC.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a);
|
||||
//builder.addVertex((float) (vecC.x() - cx), (float) (vecC.y() - cy), (float) (vecC.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a);
|
||||
builder.addVertex((float) (vecA.x() - cx), (float) (vecA.y() - cy), (float) (vecA.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a);
|
||||
|
||||
drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1));
|
||||
}
|
||||
drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1));
|
||||
//drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -865,7 +869,7 @@ public class ShapesRenderer
|
||||
drawCylinderWireframe(tesselator,
|
||||
(float) (vc.x - cx - dir * renderEpsilon), (float) (vc.y - cy - dir * renderEpsilon), (float) (vc.z - cz - dir * renderEpsilon),
|
||||
(float) (shape.radius + renderEpsilon), (float) (shape.height + 2 * dir * renderEpsilon), shape.axis,
|
||||
shape.subdivisions, shape.radius == 0,
|
||||
shape.subdivisions, shape.height == 0,
|
||||
shape.r, shape.g, shape.b, shape.a);
|
||||
|
||||
}
|
||||
@@ -891,7 +895,7 @@ public class ShapesRenderer
|
||||
|
||||
public static void drawLine(Tesselator tesselator, float x1, float y1, float z1, float x2, float y2, float z2, float red1, float grn1, float blu1, float alpha)
|
||||
{
|
||||
BufferBuilder builder = tesselator.begin(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR);
|
||||
BufferBuilder builder = tesselator.begin(Mode.DEBUG_LINE_STRIP, DefaultVertexFormat.POSITION_COLOR);
|
||||
builder.addVertex(x1, y1, z1).setColor(red1, grn1, blu1, alpha);
|
||||
builder.addVertex(x2, y2, z2).setColor(red1, grn1, blu1, alpha);
|
||||
drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1));
|
||||
@@ -904,7 +908,8 @@ public class ShapesRenderer
|
||||
boolean xthick, boolean ythick, boolean zthick,
|
||||
float red1, float grn1, float blu1, float alpha, float red2, float grn2, float blu2)
|
||||
{
|
||||
BufferBuilder builder = tesselator.begin(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR);
|
||||
BufferBuilder builder = tesselator.begin(Mode.DEBUG_LINE_STRIP, DefaultVertexFormat.POSITION_COLOR);
|
||||
/* old lines not using strip
|
||||
if (xthick)
|
||||
{
|
||||
builder.addVertex(x1, y1, z1).setColor(red1, grn2, blu2, alpha);
|
||||
@@ -946,6 +951,51 @@ public class ShapesRenderer
|
||||
|
||||
builder.addVertex(x2, y2, z1).setColor(red1, grn1, blu1, alpha);
|
||||
builder.addVertex(x2, y2, z2).setColor(red1, grn1, blu1, alpha);
|
||||
}
|
||||
*/
|
||||
|
||||
if (xthick)
|
||||
|
||||
{
|
||||
builder.addVertex(x1, y1, z1).setColor(red1, grn2, blu2, alpha);
|
||||
builder.addVertex(x2, y1, z1).setColor(red1, grn2, blu2, alpha);
|
||||
|
||||
builder.addVertex(x2, y2, z1).setColor(red1, grn1, blu1, alpha);
|
||||
builder.addVertex(x1, y2, z1).setColor(red1, grn1, blu1, alpha);
|
||||
|
||||
builder.addVertex(x1, y2, z2).setColor(red1, grn1, blu1, alpha);
|
||||
builder.addVertex(x2, y2, z2).setColor(red1, grn1, blu1, alpha);
|
||||
|
||||
builder.addVertex(x2, y1, z2).setColor(red1, grn1, blu1, alpha);
|
||||
builder.addVertex(x1, y1, z2).setColor(red1, grn1, blu1, alpha);
|
||||
}
|
||||
if (ythick)
|
||||
{
|
||||
builder.addVertex(x1, y1, z1).setColor(red2, grn1, blu2, alpha);
|
||||
builder.addVertex(x1, y2, z1).setColor(red2, grn1, blu2, alpha);
|
||||
|
||||
builder.addVertex(x2, y2, z1).setColor(red1, grn1, blu1, alpha);
|
||||
builder.addVertex(x2, y1, z1).setColor(red1, grn1, blu1, alpha);
|
||||
|
||||
builder.addVertex(x2, y1, z2).setColor(red1, grn1, blu1, alpha);
|
||||
builder.addVertex(x2, y2, z2).setColor(red1, grn1, blu1, alpha);
|
||||
|
||||
builder.addVertex(x1, y2, z2).setColor(red1, grn1, blu1, alpha);
|
||||
builder.addVertex(x1, y1, z2).setColor(red1, grn1, blu1, alpha);
|
||||
}
|
||||
if (zthick)
|
||||
{
|
||||
builder.addVertex(x1, y1, z1).setColor(red2, grn2, blu1, alpha);
|
||||
builder.addVertex(x1, y1, z2).setColor(red2, grn2, blu1, alpha);
|
||||
|
||||
builder.addVertex(x1, y2, z2).setColor(red1, grn1, blu1, alpha);
|
||||
builder.addVertex(x1, y2, z1).setColor(red1, grn1, blu1, alpha);
|
||||
|
||||
builder.addVertex(x2, y2, z1).setColor(red1, grn1, blu1, alpha);
|
||||
builder.addVertex(x2, y2, z2).setColor(red1, grn1, blu1, alpha);
|
||||
|
||||
builder.addVertex(x2, y1, z2).setColor(red1, grn1, blu1, alpha);
|
||||
builder.addVertex(x2, y1, z1).setColor(red1, grn1, blu1, alpha);
|
||||
}
|
||||
drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1));
|
||||
}
|
||||
@@ -1062,7 +1112,7 @@ public class ShapesRenderer
|
||||
drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1));
|
||||
}
|
||||
}
|
||||
else
|
||||
/* else
|
||||
{
|
||||
BufferBuilder builder = tesselator.begin(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR);
|
||||
for (int i = 0; i <= num_steps180; i++)
|
||||
@@ -1074,7 +1124,7 @@ public class ShapesRenderer
|
||||
builder.addVertex(cx + x, cy, cz - z).setColor(red, grn, blu, alpha);
|
||||
}
|
||||
drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1));
|
||||
}
|
||||
}*/
|
||||
|
||||
}
|
||||
else if (axis == Direction.Axis.X)
|
||||
@@ -1111,19 +1161,19 @@ public class ShapesRenderer
|
||||
drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1));
|
||||
}
|
||||
}
|
||||
else
|
||||
/*else
|
||||
{
|
||||
BufferBuilder builder = tesselator.begin(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR);
|
||||
for (int i = 0; i <= num_steps180; i++)
|
||||
BufferBuilder builder = tesselator.begin(Mode.DEBUG_LINE_STRIP, DefaultVertexFormat.POSITION_COLOR);
|
||||
for (int i = 0; i <= num_steps360+1; i++)
|
||||
{
|
||||
float theta = step * i;
|
||||
float y = r * Mth.cos(theta);
|
||||
float z = r * Mth.sin(theta);
|
||||
builder.addVertex(cx, cy - y, cz + z).setColor(red, grn, blu, alpha);
|
||||
builder.addVertex(cx, cy + y, cz - z).setColor(red, grn, blu, alpha);
|
||||
builder.addVertex(cx, cy + y, cz + z).setColor(red, grn, blu, alpha);
|
||||
//builder.addVertex(cx, cy + y, cz - z).setColor(red, grn, blu, alpha);
|
||||
}
|
||||
drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1));
|
||||
}
|
||||
}*/
|
||||
}
|
||||
else if (axis == Direction.Axis.Z)
|
||||
{
|
||||
@@ -1158,7 +1208,7 @@ public class ShapesRenderer
|
||||
drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1));
|
||||
}
|
||||
}
|
||||
else
|
||||
/*else
|
||||
{
|
||||
BufferBuilder builder = tesselator.begin(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR);
|
||||
for (int i = 0; i <= num_steps180; i++)
|
||||
@@ -1170,8 +1220,7 @@ public class ShapesRenderer
|
||||
builder.addVertex(cx - x, cy + y, cz).setColor(red, grn, blu, alpha);
|
||||
}
|
||||
drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1));
|
||||
}
|
||||
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user