@@ -524,6 +524,8 @@ else if (shape.align == 1)
524
524
text_x = (float ) (-textRenderer .width (shape .value .getString ()));
525
525
}
526
526
MultiBufferSource .BufferSource immediate = MultiBufferSource .immediate (new ByteBufferBuilder (RenderType .TRANSIENT_BUFFER_SIZE ));
527
+ // text doesn't appear if backgroud is set
528
+ ///script run draw_shape('label', 100, 'pos', [200, 100, 200], 'text', 'Hewwo World!', 'color', 0xffffffff, 'fill', 0x33333333)
527
529
textRenderer .drawInBatch (shape .value , text_x , 0.0F , shape .textcolor , false , matrices .last ().pose (), immediate , Font .DisplayMode .NORMAL , shape .textbck , 15728880 );
528
530
immediate .endBatch ();
529
531
matrices .popPose ();
@@ -616,8 +618,8 @@ public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, do
616
618
}
617
619
}
618
620
619
- private static void drawWithShader (MeshData mesh ) {
620
- RenderType . debugLineStrip ( 1.0 ) .draw (mesh );
621
+ private static void drawWithShader (MeshData mesh , RenderType type ) {
622
+ type .draw (mesh );
621
623
//VertexBuffer buffre = mesh.drawState().format().getImmediateDrawVertexBuffer();
622
624
//buffre.bind();
623
625
//buffre.upload(mesh);
@@ -630,6 +632,17 @@ public static class RenderedPolyface extends RenderedShape<ShapeDispatcher.Polyf
630
632
private static final VertexFormat .Mode [] faceIndices = new VertexFormat .Mode []{
631
633
Mode .LINES , Mode .LINE_STRIP , Mode .DEBUG_LINES , Mode .DEBUG_LINE_STRIP , Mode .TRIANGLES , Mode .TRIANGLE_STRIP , Mode .TRIANGLE_FAN , Mode .QUADS };
632
634
635
+ private static final RenderType [] renderTypes = new RenderType [] {
636
+ RenderType .debugLineStrip (1 ),
637
+ RenderType .debugLineStrip (1 ),
638
+ RenderType .debugLineStrip (1 ),
639
+ RenderType .debugLineStrip (1 ),
640
+ RenderType .debugLineStrip (1 ), // TODO wrong
641
+ RenderType .debugLineStrip (1 ), // TODO wrong
642
+ RenderType .debugLineStrip (1 ),
643
+ RenderType .debugQuads ()
644
+ };
645
+
633
646
public RenderedPolyface (Minecraft client , ShapeDispatcher .ExpiringShape shape )
634
647
{
635
648
super (client , (ShapeDispatcher .Polyface ) shape );
@@ -662,7 +675,7 @@ public void renderFaces(Tesselator tesselator, double cx, double cy, double cz,
662
675
}
663
676
builder .addVertex ((float ) (vec .x () - cx ), (float ) (vec .y () - cy ), (float ) (vec .z () - cz )).setColor (shape .fr , shape .fg , shape .fb , shape .fa );
664
677
}
665
- drawWithShader (builder .buildOrThrow ());
678
+ drawWithShader (builder .buildOrThrow (), renderTypes [ shape . mode ] );
666
679
667
680
////RenderSystem.disableCull();
668
681
////RenderSystem.depthMask(false);
@@ -698,7 +711,7 @@ public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, do
698
711
builder .addVertex ((float ) (vec .x () - cx ), (float ) (vec .y () - cy ), (float ) (vec .z () - cz )).setColor (shape .r , shape .g , shape .b , shape .a );
699
712
}
700
713
builder .addVertex ((float ) (vec0 .x () - cx ), (float ) (vec0 .y () - cy ), (float ) (vec0 .z () - cz )).setColor (shape .r , shape .g , shape .b , shape .a );
701
- drawWithShader (builder .buildOrThrow ());
714
+ drawWithShader (builder .buildOrThrow (), RenderType . debugLineStrip ( 1 ) );
702
715
if (shape .inneredges )
703
716
{
704
717
BufferBuilder builderr = tesselator .begin (VertexFormat .Mode .DEBUG_LINES , DefaultVertexFormat .POSITION_COLOR );
@@ -713,7 +726,7 @@ public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, do
713
726
builderr .addVertex ((float ) (vec .x () - cx ), (float ) (vec .y () - cy ), (float ) (vec .z () - cz )).setColor (shape .r , shape .g , shape .b , shape .a );
714
727
builderr .addVertex ((float ) (vec0 .x () - cx ), (float ) (vec0 .y () - cy ), (float ) (vec0 .z () - cz )).setColor (shape .r , shape .g , shape .b , shape .a );
715
728
}
716
- drawWithShader (builderr .buildOrThrow ());
729
+ drawWithShader (builderr .buildOrThrow (), RenderType . debugLineStrip ( 1 ) );
717
730
}
718
731
return ;
719
732
}
@@ -758,7 +771,7 @@ public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, do
758
771
builder .addVertex ((float ) (vec .x () - cx ), (float ) (vec .y () - cy ), (float ) (vec .z () - cz )).setColor (shape .r , shape .g , shape .b , shape .a );
759
772
}
760
773
}
761
- drawWithShader (builder .buildOrThrow ());
774
+ drawWithShader (builder .buildOrThrow (), RenderType . debugLineStrip ( 1 ) );
762
775
return ;
763
776
}
764
777
if (shape .mode == 4 )
@@ -792,7 +805,7 @@ public void renderLines(PoseStack matrices, Tesselator tesselator, double cx, do
792
805
builder .addVertex ((float ) (vecC .x () - cx ), (float ) (vecC .y () - cy ), (float ) (vecC .z () - cz )).setColor (shape .r , shape .g , shape .b , shape .a );
793
806
builder .addVertex ((float ) (vecA .x () - cx ), (float ) (vecA .y () - cy ), (float ) (vecA .z () - cz )).setColor (shape .r , shape .g , shape .b , shape .a );
794
807
}
795
- drawWithShader (builder .buildOrThrow ());
808
+ drawWithShader (builder .buildOrThrow (), RenderType . debugLineStrip ( 1 ) );
796
809
}
797
810
}
798
811
}
@@ -881,7 +894,7 @@ public static void drawLine(Tesselator tesselator, float x1, float y1, float z1,
881
894
BufferBuilder builder = tesselator .begin (VertexFormat .Mode .DEBUG_LINES , DefaultVertexFormat .POSITION_COLOR );
882
895
builder .addVertex (x1 , y1 , z1 ).setColor (red1 , grn1 , blu1 , alpha );
883
896
builder .addVertex (x2 , y2 , z2 ).setColor (red1 , grn1 , blu1 , alpha );
884
- drawWithShader (builder .buildOrThrow ());
897
+ drawWithShader (builder .buildOrThrow (), RenderType . debugLineStrip ( 1 ) );
885
898
}
886
899
887
900
public static void drawBoxWireGLLines (
@@ -934,7 +947,7 @@ public static void drawBoxWireGLLines(
934
947
builder .addVertex (x2 , y2 , z1 ).setColor (red1 , grn1 , blu1 , alpha );
935
948
builder .addVertex (x2 , y2 , z2 ).setColor (red1 , grn1 , blu1 , alpha );
936
949
}
937
- drawWithShader (builder .buildOrThrow ());
950
+ drawWithShader (builder .buildOrThrow (), RenderType . debugLineStrip ( 1 ) );
938
951
}
939
952
940
953
public static void drawBoxFaces (
@@ -995,7 +1008,7 @@ public static void drawBoxFaces(
995
1008
builder .addVertex (x1 , y2 , z2 ).setColor (red1 , grn1 , blu1 , alpha );
996
1009
}
997
1010
}
998
- drawWithShader (builder .buildOrThrow ());
1011
+ drawWithShader (builder .buildOrThrow (), RenderType . debugQuads () );
999
1012
}
1000
1013
1001
1014
public static void drawCylinderWireframe (Tesselator tesselator ,
@@ -1028,7 +1041,7 @@ public static void drawCylinderWireframe(Tesselator tesselator,
1028
1041
float z = r * Mth .sin (theta );
1029
1042
builder .addVertex (x + cx , y + cy , z + cz ).setColor (red , grn , blu , alpha );
1030
1043
}
1031
- drawWithShader (builder .buildOrThrow ());
1044
+ drawWithShader (builder .buildOrThrow (), RenderType . debugLineStrip ( 1 ) );
1032
1045
}
1033
1046
1034
1047
if (!isFlat )
@@ -1046,7 +1059,7 @@ public static void drawCylinderWireframe(Tesselator tesselator,
1046
1059
builder .addVertex (cx + x , cy + h , cz - z ).setColor (red , grn , blu , alpha );
1047
1060
builder .addVertex (cx - x , cy + h , cz + z ).setColor (red , grn , blu , alpha );
1048
1061
builder .addVertex (cx - x , cy + 0 , cz + z ).setColor (red , grn , blu , alpha );
1049
- drawWithShader (builder .buildOrThrow ());
1062
+ drawWithShader (builder .buildOrThrow (), RenderType . debugLineStrip ( 1 ) );
1050
1063
}
1051
1064
}
1052
1065
else
@@ -1060,7 +1073,7 @@ public static void drawCylinderWireframe(Tesselator tesselator,
1060
1073
builder .addVertex (cx - x , cy , cz + z ).setColor (red , grn , blu , alpha );
1061
1074
builder .addVertex (cx + x , cy , cz - z ).setColor (red , grn , blu , alpha );
1062
1075
}
1063
- drawWithShader (builder .buildOrThrow ());
1076
+ drawWithShader (builder .buildOrThrow (), RenderType . debugLineStrip ( 1 ) );
1064
1077
}
1065
1078
1066
1079
}
@@ -1078,7 +1091,7 @@ else if (axis == Direction.Axis.X)
1078
1091
float y = r * Mth .sin (theta );
1079
1092
builder .addVertex (x + cx , y + cy , z + cz ).setColor (red , grn , blu , alpha );
1080
1093
}
1081
- drawWithShader (builder .buildOrThrow ());
1094
+ drawWithShader (builder .buildOrThrow (), RenderType . debugLineStrip ( 1 ) );
1082
1095
}
1083
1096
1084
1097
if (!isFlat )
@@ -1095,7 +1108,7 @@ else if (axis == Direction.Axis.X)
1095
1108
builder .addVertex (cx + 0 , cy + y , cz - z ).setColor (red , grn , blu , alpha );
1096
1109
builder .addVertex (cx + h , cy + y , cz - z ).setColor (red , grn , blu , alpha );
1097
1110
builder .addVertex (cx + h , cy - y , cz + z ).setColor (red , grn , blu , alpha );
1098
- drawWithShader (builder .buildOrThrow ());
1111
+ drawWithShader (builder .buildOrThrow (), RenderType . debugLineStrip ( 1 ) );
1099
1112
}
1100
1113
}
1101
1114
else
@@ -1109,7 +1122,7 @@ else if (axis == Direction.Axis.X)
1109
1122
builder .addVertex (cx , cy - y , cz + z ).setColor (red , grn , blu , alpha );
1110
1123
builder .addVertex (cx , cy + y , cz - z ).setColor (red , grn , blu , alpha );
1111
1124
}
1112
- drawWithShader (builder .buildOrThrow ());
1125
+ drawWithShader (builder .buildOrThrow (), RenderType . debugLineStrip ( 1 ) );
1113
1126
}
1114
1127
}
1115
1128
else if (axis == Direction .Axis .Z )
@@ -1126,7 +1139,7 @@ else if (axis == Direction.Axis.Z)
1126
1139
float x = r * Mth .sin (theta );
1127
1140
builder .addVertex (x + cx , y + cy , z + cz ).setColor (red , grn , blu , alpha );
1128
1141
}
1129
- drawWithShader (builder .buildOrThrow ());
1142
+ drawWithShader (builder .buildOrThrow (), RenderType . debugLineStrip ( 1 ) );
1130
1143
}
1131
1144
if (!isFlat )
1132
1145
{
@@ -1142,7 +1155,7 @@ else if (axis == Direction.Axis.Z)
1142
1155
builder .addVertex (cx - x , cy + y , cz + 0 ).setColor (red , grn , blu , alpha );
1143
1156
builder .addVertex (cx - x , cy + y , cz + h ).setColor (red , grn , blu , alpha );
1144
1157
builder .addVertex (cx + x , cy - y , cz + h ).setColor (red , grn , blu , alpha );
1145
- drawWithShader (builder .buildOrThrow ());
1158
+ drawWithShader (builder .buildOrThrow (), RenderType . debugLineStrip ( 1 ) );
1146
1159
}
1147
1160
}
1148
1161
else
@@ -1156,7 +1169,7 @@ else if (axis == Direction.Axis.Z)
1156
1169
builder .addVertex (cx + x , cy - y , cz ).setColor (red , grn , blu , alpha );
1157
1170
builder .addVertex (cx - x , cy + y , cz ).setColor (red , grn , blu , alpha );
1158
1171
}
1159
- drawWithShader (builder .buildOrThrow ());
1172
+ drawWithShader (builder .buildOrThrow (), RenderType . debugLineStrip ( 1 ) );
1160
1173
}
1161
1174
1162
1175
}
@@ -1183,7 +1196,7 @@ public static void drawCylinderFaces(Tesselator tesselator,
1183
1196
float z = r * Mth .sin (theta );
1184
1197
builder .addVertex (x + cx , cy , z + cz ).setColor (red , grn , blu , alpha );
1185
1198
}
1186
- drawWithShader (builder .buildOrThrow ());
1199
+ drawWithShader (builder .buildOrThrow (), RenderType . debugTriangleFan () );
1187
1200
if (!isFlat )
1188
1201
{
1189
1202
BufferBuilder builderr = tesselator .begin (VertexFormat .Mode .TRIANGLE_FAN , DefaultVertexFormat .POSITION_COLOR );
@@ -1195,7 +1208,7 @@ public static void drawCylinderFaces(Tesselator tesselator,
1195
1208
float z = r * Mth .sin (theta );
1196
1209
builderr .addVertex (x + cx , cy + h , z + cz ).setColor (red , grn , blu , alpha );
1197
1210
}
1198
- drawWithShader (builderr .buildOrThrow ());
1211
+ drawWithShader (builderr .buildOrThrow (), RenderType . debugTriangleFan () );
1199
1212
1200
1213
BufferBuilder builderrr = tesselator .begin (VertexFormat .Mode .QUADS , DefaultVertexFormat .POSITION_COLOR ); // quad strip to quads
1201
1214
float xp = r * 1 ;
@@ -1212,7 +1225,7 @@ public static void drawCylinderFaces(Tesselator tesselator,
1212
1225
xp = x ;
1213
1226
zp = z ;
1214
1227
}
1215
- drawWithShader (builderrr .buildOrThrow ());
1228
+ drawWithShader (builderrr .buildOrThrow (), RenderType . debugQuads () );
1216
1229
}
1217
1230
1218
1231
}
@@ -1227,7 +1240,7 @@ else if (axis == Direction.Axis.X)
1227
1240
float z = r * Mth .sin (theta );
1228
1241
builder .addVertex (cx , cy + y , z + cz ).setColor (red , grn , blu , alpha );
1229
1242
}
1230
- drawWithShader (builder .buildOrThrow ());
1243
+ drawWithShader (builder .buildOrThrow (), RenderType . debugTriangleFan () );
1231
1244
if (!isFlat )
1232
1245
{
1233
1246
BufferBuilder builderr = tesselator .begin (VertexFormat .Mode .TRIANGLE_FAN , DefaultVertexFormat .POSITION_COLOR );
@@ -1239,7 +1252,7 @@ else if (axis == Direction.Axis.X)
1239
1252
float z = r * Mth .sin (theta );
1240
1253
builderr .addVertex (cx + h , cy + y , cz + z ).setColor (red , grn , blu , alpha );
1241
1254
}
1242
- drawWithShader (builderr .buildOrThrow ());
1255
+ drawWithShader (builderr .buildOrThrow (), RenderType . debugTriangleFan () );
1243
1256
1244
1257
BufferBuilder builderrr = tesselator .begin (VertexFormat .Mode .QUADS , DefaultVertexFormat .POSITION_COLOR ); // quad strip to quads
1245
1258
float yp = r * 1 ;
@@ -1256,7 +1269,7 @@ else if (axis == Direction.Axis.X)
1256
1269
yp = y ;
1257
1270
zp = z ;
1258
1271
}
1259
- drawWithShader (builderrr .buildOrThrow ());
1272
+ drawWithShader (builderrr .buildOrThrow (), RenderType . debugQuads () );
1260
1273
}
1261
1274
}
1262
1275
else if (axis == Direction .Axis .Z )
@@ -1270,7 +1283,7 @@ else if (axis == Direction.Axis.Z)
1270
1283
float y = r * Mth .sin (theta );
1271
1284
builder .addVertex (x + cx , cy + y , cz ).setColor (red , grn , blu , alpha );
1272
1285
}
1273
- drawWithShader (builder .buildOrThrow ());
1286
+ drawWithShader (builder .buildOrThrow (), RenderType . debugTriangleFan () );
1274
1287
if (!isFlat )
1275
1288
{
1276
1289
BufferBuilder builderr = tesselator .begin (VertexFormat .Mode .TRIANGLE_FAN , DefaultVertexFormat .POSITION_COLOR );
@@ -1282,7 +1295,7 @@ else if (axis == Direction.Axis.Z)
1282
1295
float y = r * Mth .sin (theta );
1283
1296
builderr .addVertex (x + cx , cy + y , cz + h ).setColor (red , grn , blu , alpha );
1284
1297
}
1285
- drawWithShader (builderr .buildOrThrow ());
1298
+ drawWithShader (builderr .buildOrThrow (), RenderType . debugTriangleFan () );
1286
1299
1287
1300
BufferBuilder builderrr = tesselator .begin (VertexFormat .Mode .QUADS , DefaultVertexFormat .POSITION_COLOR ); // quad strip to quads
1288
1301
float xp = r ;
@@ -1299,7 +1312,7 @@ else if (axis == Direction.Axis.Z)
1299
1312
xp = x ;
1300
1313
yp = y ;
1301
1314
}
1302
- drawWithShader (builderrr .buildOrThrow ());
1315
+ drawWithShader (builderrr .buildOrThrow (), RenderType . debugQuads () );
1303
1316
}
1304
1317
}
1305
1318
}
@@ -1324,7 +1337,7 @@ public static void drawSphereWireframe(Tesselator tesselator,
1324
1337
float y = r * Mth .cos (phi );
1325
1338
builder .addVertex (x + cx , y + cy , z + cz ).setColor (red , grn , blu , alpha );
1326
1339
}
1327
- drawWithShader (builder .buildOrThrow ());
1340
+ drawWithShader (builder .buildOrThrow (), RenderType . debugLineStrip ( 1 ) );
1328
1341
}
1329
1342
for (int j = 0 ; j <= num_steps180 ; j ++)
1330
1343
{
@@ -1339,7 +1352,7 @@ public static void drawSphereWireframe(Tesselator tesselator,
1339
1352
float y = r * Mth .cos (phi );
1340
1353
builder .addVertex (x + cx , y + cy , z + cz ).setColor (red , grn , blu , alpha );
1341
1354
}
1342
- drawWithShader (builder .buildOrThrow ());
1355
+ drawWithShader (builder .buildOrThrow (), RenderType . debugLineStrip ( 1 ) );
1343
1356
}
1344
1357
1345
1358
}
@@ -1381,7 +1394,7 @@ public static void drawSphereFaces(Tesselator tesselator,
1381
1394
zbp = zp ;
1382
1395
yp = y ;
1383
1396
}
1384
- drawWithShader (builder .buildOrThrow ());
1397
+ drawWithShader (builder .buildOrThrow (), RenderType . debugQuads () );
1385
1398
}
1386
1399
}
1387
1400
}
0 commit comments