1212import buildcraft .lib .expression .node .value .NodeVariableDouble ;
1313
1414public class BakedImageRender extends BakedRenderPositioned {
15+
16+ /** We only ever render 4 x (3 pos, 2 uv) ints each time then reset for the next face.
17+ * <p>
18+ * So this 64 is overkill. */
19+ private static final int TESS_INT_COUNT = 0x40 ;
20+
21+ private final Tessellator tess = new Tessellator (TESS_INT_COUNT );
22+
1523 protected final ResourceLocation res ;
1624 private final BakedArea pos , tex ;
1725
18- public BakedImageRender (NodeVariableDouble varWidth , NodeVariableDouble varHeight , String res , BakedArea pos , BakedArea tex ) {
26+ public BakedImageRender (NodeVariableDouble varWidth , NodeVariableDouble varHeight , String res , BakedArea pos ,
27+ BakedArea tex ) {
1928 super (varWidth , varHeight );
2029 this .res = new ResourceLocation (res );
2130 this .pos = pos ;
@@ -33,14 +42,13 @@ public void evaluateVariables(MinecraftDisplayerRenderer renderer) {
3342 @ Override
3443 public void render (MinecraftDisplayerRenderer renderer ) {
3544 bindTexture (renderer );
36- Tessellator tessellator = Tessellator .getInstance ();
37- BufferBuilder vb = tessellator .getBuffer ();
45+ BufferBuilder vb = tess .getBuffer ();
3846 vb .begin (GL11 .GL_QUADS , DefaultVertexFormats .POSITION_TEX );
3947 vb .pos (pos ._x , pos ._y + pos ._h , 0 ).tex (tex ._x , tex ._y + tex ._h ).endVertex ();
4048 vb .pos (pos ._x + pos ._w , pos ._y + pos ._h , 0 ).tex (tex ._x + tex ._w , tex ._y + tex ._h ).endVertex ();
4149 vb .pos (pos ._x + pos ._w , pos ._y , 0 ).tex (tex ._x + tex ._w , tex ._y ).endVertex ();
4250 vb .pos (pos ._x , pos ._y , 0 ).tex (tex ._x , tex ._y ).endVertex ();
43- tessellator .draw ();
51+ tess .draw ();
4452 }
4553
4654 public void bindTexture (MinecraftDisplayerRenderer renderer ) {
0 commit comments