diff --git a/src/teavm/java/net/minecraft/client/model/ModelRenderer.java b/src/teavm/java/net/minecraft/client/model/ModelRenderer.java index 3320ae9..68ff2a4 100644 --- a/src/teavm/java/net/minecraft/client/model/ModelRenderer.java +++ b/src/teavm/java/net/minecraft/client/model/ModelRenderer.java @@ -100,16 +100,15 @@ public final class ModelRenderer { var4.startDrawingQuads(); TexturedQuad var10000 = var2.faces[var5]; float var8 = var3; - Tessellator var7 = var4; TexturedQuad var6 = var10000; Vec3D var9 = var6.vertexPositions[1].vector3D.subtract(var6.vertexPositions[0].vector3D).normalize(); Vec3D var10 = var6.vertexPositions[1].vector3D.subtract(var6.vertexPositions[2].vector3D).normalize(); var9 = (new Vec3D(var9.yCoord * var10.zCoord - var9.zCoord * var10.yCoord, var9.zCoord * var10.xCoord - var9.xCoord * var10.zCoord, var9.xCoord * var10.yCoord - var9.yCoord * var10.xCoord)).normalize(); - Tessellator.setNormal(-var9.xCoord, -var9.yCoord, -var9.zCoord); + var4.setNormal(-var9.xCoord, -var9.yCoord, -var9.zCoord); for(int var11 = 0; var11 < 4; ++var11) { PositionTextureVertex var12 = var6.vertexPositions[var11]; - var7.addVertexWithUV(var12.vector3D.xCoord * var8, var12.vector3D.yCoord * var8, var12.vector3D.zCoord * var8, var12.texturePositionX, var12.texturePositionY); + var4.addVertexWithUV(var12.vector3D.xCoord * var8, var12.vector3D.yCoord * var8, var12.vector3D.zCoord * var8, var12.texturePositionX, var12.texturePositionY); } var4.draw(); diff --git a/src/teavm/java/net/minecraft/client/render/ItemRenderer.java b/src/teavm/java/net/minecraft/client/render/ItemRenderer.java index 497d7b1..8a3cfa9 100644 --- a/src/teavm/java/net/minecraft/client/render/ItemRenderer.java +++ b/src/teavm/java/net/minecraft/client/render/ItemRenderer.java @@ -83,21 +83,21 @@ public final class ItemRenderer { GL11.glRotatef(50.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(335.0F, 0.0F, 0.0F, 1.0F); GL11.glTranslatef(-(15.0F / 16.0F), -(1.0F / 16.0F), 0.0F); - Tessellator.setNormal(0.0F, 0.0F, 1.0F); + var11.setNormal(0.0F, 0.0F, 1.0F); var11.startDrawingQuads(); var11.addVertexWithUV(0.0F, 0.0F, 0.0F, var1, var9); var11.addVertexWithUV(1.0F, 0.0F, 0.0F, var5, var9); var11.addVertexWithUV(1.0F, 1.0F, 0.0F, var5, var2); var11.addVertexWithUV(0.0F, 1.0F, 0.0F, var1, var2); var11.draw(); - Tessellator.setNormal(0.0F, 0.0F, -1.0F); + var11.setNormal(0.0F, 0.0F, -1.0F); var11.startDrawingQuads(); var11.addVertexWithUV(0.0F, 1.0F, -(1.0F / 16.0F), var1, var2); var11.addVertexWithUV(1.0F, 1.0F, -(1.0F / 16.0F), var5, var2); var11.addVertexWithUV(1.0F, 0.0F, -(1.0F / 16.0F), var5, var9); var11.addVertexWithUV(0.0F, 0.0F, -(1.0F / 16.0F), var1, var9); var11.draw(); - Tessellator.setNormal(-1.0F, 0.0F, 0.0F); + var11.setNormal(-1.0F, 0.0F, 0.0F); var11.startDrawingQuads(); int var6; @@ -114,7 +114,7 @@ public final class ItemRenderer { } var11.draw(); - Tessellator.setNormal(1.0F, 0.0F, 0.0F); + var11.setNormal(1.0F, 0.0F, 0.0F); var11.startDrawingQuads(); for(var6 = 0; var6 < 16; ++var6) { @@ -128,7 +128,7 @@ public final class ItemRenderer { } var11.draw(); - Tessellator.setNormal(0.0F, 1.0F, 0.0F); + var11.setNormal(0.0F, 1.0F, 0.0F); var11.startDrawingQuads(); for(var6 = 0; var6 < 16; ++var6) { @@ -142,7 +142,7 @@ public final class ItemRenderer { } var11.draw(); - Tessellator.setNormal(0.0F, -1.0F, 0.0F); + var11.setNormal(0.0F, -1.0F, 0.0F); var11.startDrawingQuads(); for(var6 = 0; var6 < 16; ++var6) { diff --git a/src/teavm/java/net/minecraft/client/render/RenderBlocks.java b/src/teavm/java/net/minecraft/client/render/RenderBlocks.java index 4471547..fda3b93 100644 --- a/src/teavm/java/net/minecraft/client/render/RenderBlocks.java +++ b/src/teavm/java/net/minecraft/client/render/RenderBlocks.java @@ -761,44 +761,44 @@ public final class RenderBlocks { if(var3 == 0) { GL11.glTranslatef(-0.5F, -0.5F, -0.5F); var2.startDrawingQuads(); - Tessellator.setNormal(0.0F, -1.0F, 0.0F); + var2.setNormal(0.0F, -1.0F, 0.0F); this.renderBlockBottom(var1, 0.0F, 0.0F, 0.0F, var1.getBlockTextureFromSide(0)); var2.draw(); var2.startDrawingQuads(); - Tessellator.setNormal(0.0F, 1.0F, 0.0F); + var2.setNormal(0.0F, 1.0F, 0.0F); this.renderBlockTop(var1, 0.0F, 0.0F, 0.0F, var1.getBlockTextureFromSide(1)); var2.draw(); var2.startDrawingQuads(); - Tessellator.setNormal(0.0F, 0.0F, -1.0F); + var2.setNormal(0.0F, 0.0F, -1.0F); this.renderBlockNorth(var1, 0, 0, 0, var1.getBlockTextureFromSide(2)); var2.draw(); var2.startDrawingQuads(); - Tessellator.setNormal(0.0F, 0.0F, 1.0F); + var2.setNormal(0.0F, 0.0F, 1.0F); this.renderBlockSouth(var1, 0, 0, 0, var1.getBlockTextureFromSide(3)); var2.draw(); var2.startDrawingQuads(); - Tessellator.setNormal(-1.0F, 0.0F, 0.0F); + var2.setNormal(-1.0F, 0.0F, 0.0F); this.renderBlockWest(var1, 0, 0, 0, var1.getBlockTextureFromSide(4)); var2.draw(); var2.startDrawingQuads(); - Tessellator.setNormal(1.0F, 0.0F, 0.0F); + var2.setNormal(1.0F, 0.0F, 0.0F); this.renderBlockEast(var1, 0, 0, 0, var1.getBlockTextureFromSide(5)); var2.draw(); GL11.glTranslatef(0.5F, 0.5F, 0.5F); } else if(var3 == 1) { var2.startDrawingQuads(); - Tessellator.setNormal(0.0F, -1.0F, 0.0F); + var2.setNormal(0.0F, -1.0F, 0.0F); this.renderBlockPlant(var1, -1, -0.5F, -0.5F, -0.5F); var2.draw(); } else if(var3 == 6) { var2.startDrawingQuads(); - Tessellator.setNormal(0.0F, -1.0F, 0.0F); + var2.setNormal(0.0F, -1.0F, 0.0F); this.renderBlockCrops(var1, -1, -0.5F, -0.5F, -0.5F); var2.draw(); } else { if(var3 == 2) { var2.startDrawingQuads(); - Tessellator.setNormal(0.0F, -1.0F, 0.0F); + var2.setNormal(0.0F, -1.0F, 0.0F); this.renderBlockTorch(var1, -0.5F, -0.5F, -0.5F, 0.0F, 0.0F); var2.draw(); } diff --git a/src/teavm/java/net/minecraft/client/render/Tessellator.java b/src/teavm/java/net/minecraft/client/render/Tessellator.java index 8428905..3696802 100644 --- a/src/teavm/java/net/minecraft/client/render/Tessellator.java +++ b/src/teavm/java/net/minecraft/client/render/Tessellator.java @@ -1,223 +1,349 @@ package net.minecraft.client.render; -import java.nio.ByteBuffer; -import java.nio.FloatBuffer; -import java.nio.IntBuffer; -import org.lwjgl.BufferUtils; -import org.lwjgl.opengl.ARBVertexBufferObject; import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL15; +import org.teavm.jso.typedarrays.ArrayBuffer; +import org.teavm.jso.typedarrays.Float32Array; +import org.teavm.jso.typedarrays.Int32Array; -public final class Tessellator { - private static boolean convertQuadsToTriangles = false; - private static boolean tryVBO = false; - private ByteBuffer byteBuffer = BufferUtils.createByteBuffer(8388608); - private int[] rawBuffer = new int[2097152]; +public class Tessellator { + + /** The byte buffer used for GL allocation. */ + private Int32Array intBuffer; + private Float32Array floatBuffer; + + /** + * The number of vertices to be drawn in the next draw call. Reset to 0 between + * draw calls. + */ private int vertexCount = 0; + + /** The first coordinate to be used for the texture. */ private float textureU; + + /** The second coordinate to be used for the texture. */ private float textureV; + + /** The color (RGBA) value to be used for the following draw call. */ private int color; + + /** + * Whether the current draw object for this tessellator has color values. + */ private boolean hasColor = false; + + /** + * Whether the current draw object for this tessellator has texture coordinates. + */ private boolean hasTexture = false; + + /** + * Whether the current draw object for this tessellator has normal values. + */ + private boolean hasNormals = false; + + /** The index into the raw buffer to be used for the next data. */ private int rawBufferIndex = 0; + + /** + * The number of vertices manually added to the given draw call. This differs + * from vertexCount because it adds extra vertices when converting quads to + * triangles. + */ private int addedVertices = 0; + + /** Disables all color information for the following draw call. */ private boolean isColorDisabled = false; + + /** The draw mode currently being used by the tessellator. */ private int drawMode; - public static Tessellator instance = new Tessellator(); + + /** + * An offset to be applied along the x-axis for all vertices in this draw call. + */ + private double xOffset; + + /** + * An offset to be applied along the y-axis for all vertices in this draw call. + */ + private double yOffset; + + /** + * An offset to be applied along the z-axis for all vertices in this draw call. + */ + private double zOffset; + + /** The normal to be applied to the face being drawn. */ + private int normal; + + /** The static instance of the Tessellator. */ + public static final Tessellator instance = new Tessellator(285000); + + /** Whether this tessellator is currently in draw mode. */ private boolean isDrawing = false; + + /** Whether we are currently using VBO or not. */ private boolean useVBO = false; - private IntBuffer vertexBuffers; - private int vboIndex = 0; - private int vboCount = 10; - private Tessellator() { - this.useVBO = false; - if(this.useVBO) { - this.vertexBuffers = BufferUtils.createIntBuffer(this.vboCount); - ARBVertexBufferObject.glGenBuffersARB(this.vertexBuffers); - } + /** The size of the buffers used (in integers). */ + private int bufferSize; + private Tessellator(int par1) { + this.bufferSize = par1; + ArrayBuffer a = ArrayBuffer.create(par1 * 4); + this.intBuffer = Int32Array.create(a); + this.floatBuffer = Float32Array.create(a); } - public final void draw() { - if(!this.isDrawing) { - throw new IllegalStateException("Not tesselating!"); + /** + * Draws the data set up in this tessellator and resets the state to prepare for + * new drawing. + */ + public int draw() { + if (!this.isDrawing) { + return 0; } else { this.isDrawing = false; - if(this.vertexCount > 0) { - IntBuffer var1 = this.byteBuffer.asIntBuffer(); - FloatBuffer var2 = this.byteBuffer.asFloatBuffer(); - var1.clear(); - var1.put(this.rawBuffer, 0, this.rawBufferIndex); - this.byteBuffer.position(0); - this.byteBuffer.limit(this.rawBufferIndex << 2); - if(this.useVBO) { - this.vboIndex = (this.vboIndex + 1) % this.vboCount; - ARBVertexBufferObject.glBindBufferARB(GL15.GL_ARRAY_BUFFER, this.vertexBuffers.get(this.vboIndex)); - ARBVertexBufferObject.glBufferDataARB(GL15.GL_ARRAY_BUFFER, this.byteBuffer, GL15.GL_STREAM_DRAW); + + if (this.vertexCount > 0) { + + if (this.hasTexture) { + GL11.glEnableVertexAttrib(GL11.GL_TEXTURE_COORD_ARRAY); } - if(this.hasTexture) { - if(this.useVBO) { - GL11.glTexCoordPointer(2, GL11.GL_FLOAT, 32, 12L); - } else { - var2.position(3); - GL11.glTexCoordPointer(2, 32, (FloatBuffer)var2); - } - - GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY); + if (this.hasColor) { + GL11.glEnableVertexAttrib(GL11.GL_COLOR_ARRAY); } - if(this.hasColor) { - if(this.useVBO) { - GL11.glColorPointer(4, GL11.GL_UNSIGNED_BYTE, 32, 20L); - } else { - this.byteBuffer.position(20); - GL11.glColorPointer(4, true, 32, this.byteBuffer); - } - - GL11.glEnableClientState(GL11.GL_COLOR_ARRAY); + if (this.hasNormals) { + GL11.glEnableVertexAttrib(GL11.GL_NORMAL_ARRAY); + } + + GL11.glDrawArrays(this.drawMode, 0, this.vertexCount, Int32Array.create(intBuffer.getBuffer(), 0, this.vertexCount * 7)); + + if (this.hasTexture) { + GL11.glDisableVertexAttrib(GL11.GL_TEXTURE_COORD_ARRAY); } - if(this.useVBO) { - GL11.glVertexPointer(3, GL11.GL_FLOAT, 32, 0L); - } else { - var2.position(0); - GL11.glVertexPointer(3, 32, (FloatBuffer)var2); + if (this.hasColor) { + GL11.glDisableVertexAttrib(GL11.GL_COLOR_ARRAY); } - GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY); - GL11.glDrawArrays(this.drawMode, GL11.GL_POINTS, this.vertexCount); - GL11.glDisableClientState(GL11.GL_VERTEX_ARRAY); - if(this.hasTexture) { - GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY); - } - - if(this.hasColor) { - GL11.glDisableClientState(GL11.GL_COLOR_ARRAY); + if (this.hasNormals) { + GL11.glDisableVertexAttrib(GL11.GL_NORMAL_ARRAY); } } + int var1 = this.rawBufferIndex * 4; this.reset(); + return var1; } } + /** + * Clears the tessellator state in preparation for new drawing. + */ private void reset() { this.vertexCount = 0; - this.byteBuffer.clear(); + //this.byteBuffer.clear(); this.rawBufferIndex = 0; this.addedVertices = 0; } - public final void startDrawingQuads() { - this.startDrawing(7); + /** + * Sets draw mode in the tessellator to draw quads. + */ + public void startDrawingQuads() { + this.startDrawing(GL11.GL_QUADS); } - public final void startDrawing(int var1) { - if(this.isDrawing) { - throw new IllegalStateException("Already tesselating!"); - } else { - this.isDrawing = true; - this.reset(); - this.drawMode = var1; - this.hasColor = false; - this.hasTexture = false; - this.isColorDisabled = false; + /** + * Resets tessellator state and prepares for drawing (with the specified draw + * mode). + */ + public void startDrawing(int par1) { + if (this.isDrawing) { + this.draw(); } + this.isDrawing = true; + this.reset(); + this.drawMode = par1; + this.hasNormals = false; + this.hasColor = false; + this.hasTexture = false; + this.isColorDisabled = false; } - public final void setColorOpaque_F(float var1, float var2, float var3) { - this.setColorOpaque((int)(var1 * 255.0F), (int)(var2 * 255.0F), (int)(var3 * 255.0F)); + /** + * Sets the texture coordinates. + */ + public void setTextureUV(double par1, double par3) { + this.hasTexture = true; + this.textureU = (float) par1; + this.textureV = (float) par3; } - public final void setColorRGBA_F(float var1, float var2, float var3, float var4) { - this.setColorRGBA((int)(var1 * 255.0F), (int)(var2 * 255.0F), (int)(var3 * 255.0F), (int)(var4 * 255.0F)); + /** + * Sets the RGB values as specified, converting from floats between 0 and 1 to + * integers from 0-255. + */ + public void setColorOpaque_F(float par1, float par2, float par3) { + this.setColorOpaque((int) (par1 * 255.0F), (int) (par2 * 255.0F), (int) (par3 * 255.0F)); } - private void setColorOpaque(int var1, int var2, int var3) { - this.setColorRGBA(var1, var2, var3, 255); + /** + * Sets the RGBA values for the color, converting from floats between 0 and 1 to + * integers from 0-255. + */ + public void setColorRGBA_F(float par1, float par2, float par3, float par4) { + this.setColorRGBA((int) (par1 * 255.0F), (int) (par2 * 255.0F), (int) (par3 * 255.0F), (int) (par4 * 255.0F)); } - private void setColorRGBA(int var1, int var2, int var3, int var4) { - if(!this.isColorDisabled) { - if(var1 > 255) { - var1 = 255; + /** + * Sets the RGB values as specified, and sets alpha to opaque. + */ + public void setColorOpaque(int par1, int par2, int par3) { + this.setColorRGBA(par1, par2, par3, 255); + } + + /** + * Sets the RGBA values for the color. Also clamps them to 0-255. + */ + public void setColorRGBA(int par1, int par2, int par3, int par4) { + if (!this.isColorDisabled) { + if (par1 > 255) { + par1 = 255; } - if(var2 > 255) { - var2 = 255; + if (par2 > 255) { + par2 = 255; } - if(var3 > 255) { - var3 = 255; + if (par3 > 255) { + par3 = 255; } - if(var4 > 255) { - var4 = 255; + if (par4 > 255) { + par4 = 255; } - if(var1 < 0) { - var1 = 0; + if (par1 < 0) { + par1 = 0; } - if(var2 < 0) { - var2 = 0; + if (par2 < 0) { + par2 = 0; } - if(var3 < 0) { - var3 = 0; + if (par3 < 0) { + par3 = 0; } - if(var4 < 0) { - var4 = 0; + if (par4 < 0) { + par4 = 0; } this.hasColor = true; - this.color = var4 << 24 | var3 << 16 | var2 << 8 | var1; + this.color = par4 << 24 | par3 << 16 | par2 << 8 | par1; } } - public final void addVertexWithUV(float var1, float var2, float var3, float var4, float var5) { - this.hasTexture = true; - this.textureU = var4; - this.textureV = var5; - this.addVertex(var1, var2, var3); + /** + * Adds a vertex specifying both x,y,z and the texture u,v for it. + */ + public void addVertexWithUV(double par1, double par3, double par5, double par7, double par9) { + this.setTextureUV(par7, par9); + this.addVertex(par1, par3, par5); } - public final void addVertex(float var1, float var2, float var3) { + /** + * Adds a vertex with the specified x,y,z to the current draw call. It will + * trigger a draw() if the buffer gets full. + */ + public void addVertex(double par1, double par3, double par5) { + if(this.addedVertices > 65534) return; ++this.addedVertices; - if(this.hasTexture) { - this.rawBuffer[this.rawBufferIndex + 3] = Float.floatToRawIntBits(this.textureU); - this.rawBuffer[this.rawBufferIndex + 4] = Float.floatToRawIntBits(this.textureV); - } - - if(this.hasColor) { - this.rawBuffer[this.rawBufferIndex + 5] = this.color; - } - - this.rawBuffer[this.rawBufferIndex] = Float.floatToRawIntBits(var1); - this.rawBuffer[this.rawBufferIndex + 1] = Float.floatToRawIntBits(var2); - this.rawBuffer[this.rawBufferIndex + 2] = Float.floatToRawIntBits(var3); - this.rawBufferIndex += 8; ++this.vertexCount; - if(this.vertexCount % 4 == 0 && this.rawBufferIndex >= 2097120) { - this.draw(); + + int bufferIndex = this.rawBufferIndex; + Int32Array intBuffer0 = intBuffer; + Float32Array floatBuffer0 = floatBuffer; + + floatBuffer0.set(bufferIndex + 0, (float) (par1 + this.xOffset)); + floatBuffer0.set(bufferIndex + 1, (float) (par3 + this.yOffset)); + floatBuffer0.set(bufferIndex + 2, (float) (par5 + this.zOffset)); + + if (this.hasTexture) { + floatBuffer0.set(bufferIndex + 3, this.textureU); + floatBuffer0.set(bufferIndex + 4, this.textureV); } + if (this.hasColor) { + intBuffer0.set(bufferIndex + 5, this.color); + } + + if (this.hasNormals) { + intBuffer0.set(bufferIndex + 6, this.normal); + } + + this.rawBufferIndex += 7; } - public final void setColorOpaque_I(int var1) { - int var2 = var1 >> 16 & 255; - int var3 = var1 >> 8 & 255; - var1 &= 255; - this.setColorOpaque(var2, var3, var1); + /** + * Sets the color to the given opaque value (stored as byte values packed in an + * integer). + */ + public void setColorOpaque_I(int par1) { + int var2 = par1 >> 16 & 255; + int var3 = par1 >> 8 & 255; + int var4 = par1 & 255; + this.setColorOpaque(var2, var3, var4); } - public final void disableColor() { + /** + * Sets the color to the given color (packed as bytes in integer) and alpha + * values. + */ + public void setColorRGBA_I(int par1, int par2) { + int var3 = par1 >> 16 & 255; + int var4 = par1 >> 8 & 255; + int var5 = par1 & 255; + this.setColorRGBA(var3, var4, var5, par2); + } + + /** + * Disables colors for the current draw call. + */ + public void disableColor() { this.isColorDisabled = true; } - public static void setNormal(float var0, float var1, float var2) { - GL11.glNormal3f(var0, var1, var2); + /** + * Sets the normal for the current draw call. + */ + public void setNormal(float par1, float par2, float par3) { + this.hasNormals = true; + float len = (float) Math.sqrt(par1 * par1 + par2 * par2 + par3 * par3); + int var4 = (int)((par1 / len) * 125.0F) + 125; + int var5 = (int)((par2 / len) * 125.0F) + 125; + int var6 = (int)((par3 / len) * 125.0F) + 125; + this.normal = var4 & 255 | (var5 & 255) << 8 | (var6 & 255) << 16; } -} + + /** + * Sets the translation for all vertices in the current draw call. + */ + public void setTranslationD(double par1, double par3, double par5) { + this.xOffset = par1; + this.yOffset = par3; + this.zOffset = par5; + } + + /** + * Offsets the translation for all vertices in the current draw call. + */ + public void setTranslationF(float par1, float par2, float par3) { + this.xOffset += (float) par1; + this.yOffset += (float) par2; + this.zOffset += (float) par3; + } +} \ No newline at end of file diff --git a/src/teavm/java/net/minecraft/client/render/entity/Render.java b/src/teavm/java/net/minecraft/client/render/entity/Render.java index 12856c4..d6eac7c 100644 --- a/src/teavm/java/net/minecraft/client/render/entity/Render.java +++ b/src/teavm/java/net/minecraft/client/render/entity/Render.java @@ -39,32 +39,32 @@ public abstract class Render { Tessellator var1 = Tessellator.instance; GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); var1.startDrawingQuads(); - Tessellator.setNormal(0.0F, 0.0F, -1.0F); + var1.setNormal(0.0F, 0.0F, -1.0F); var1.addVertex(var0.minX, var0.maxY, var0.minZ); var1.addVertex(var0.maxX, var0.maxY, var0.minZ); var1.addVertex(var0.maxX, var0.minY, var0.minZ); var1.addVertex(var0.minX, var0.minY, var0.minZ); - Tessellator.setNormal(0.0F, 0.0F, 1.0F); + var1.setNormal(0.0F, 0.0F, 1.0F); var1.addVertex(var0.minX, var0.minY, var0.maxZ); var1.addVertex(var0.maxX, var0.minY, var0.maxZ); var1.addVertex(var0.maxX, var0.maxY, var0.maxZ); var1.addVertex(var0.minX, var0.maxY, var0.maxZ); - Tessellator.setNormal(0.0F, -1.0F, 0.0F); + var1.setNormal(0.0F, -1.0F, 0.0F); var1.addVertex(var0.minX, var0.minY, var0.minZ); var1.addVertex(var0.maxX, var0.minY, var0.minZ); var1.addVertex(var0.maxX, var0.minY, var0.maxZ); var1.addVertex(var0.minX, var0.minY, var0.maxZ); - Tessellator.setNormal(0.0F, 1.0F, 0.0F); + var1.setNormal(0.0F, 1.0F, 0.0F); var1.addVertex(var0.minX, var0.maxY, var0.maxZ); var1.addVertex(var0.maxX, var0.maxY, var0.maxZ); var1.addVertex(var0.maxX, var0.maxY, var0.minZ); var1.addVertex(var0.minX, var0.maxY, var0.minZ); - Tessellator.setNormal(-1.0F, 0.0F, 0.0F); + var1.setNormal(-1.0F, 0.0F, 0.0F); var1.addVertex(var0.minX, var0.minY, var0.maxZ); var1.addVertex(var0.minX, var0.maxY, var0.maxZ); var1.addVertex(var0.minX, var0.maxY, var0.minZ); var1.addVertex(var0.minX, var0.minY, var0.minZ); - Tessellator.setNormal(1.0F, 0.0F, 0.0F); + var1.setNormal(1.0F, 0.0F, 0.0F); var1.addVertex(var0.maxX, var0.minY, var0.minZ); var1.addVertex(var0.maxX, var0.maxY, var0.minZ); var1.addVertex(var0.maxX, var0.maxY, var0.maxZ); diff --git a/src/teavm/java/net/minecraft/client/render/entity/RenderItem.java b/src/teavm/java/net/minecraft/client/render/entity/RenderItem.java index 3266676..cbe7534 100644 --- a/src/teavm/java/net/minecraft/client/render/entity/RenderItem.java +++ b/src/teavm/java/net/minecraft/client/render/entity/RenderItem.java @@ -184,7 +184,7 @@ public final class RenderItem extends Render { GL11.glRotatef(180.0F - var12.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); var15.startDrawingQuads(); - Tessellator.setNormal(0.0F, 1.0F, 0.0F); + var15.setNormal(0.0F, 1.0F, 0.0F); var15.addVertexWithUV(-0.5F, -0.25F, 0.0F, var4, var2); var15.addVertexWithUV(0.5F, -0.25F, 0.0F, var5, var2); var15.addVertexWithUV(0.5F, 12.0F / 16.0F, 0.0F, var5, var6); diff --git a/src/teavm/java/net/minecraft/client/render/entity/RenderPainting.java b/src/teavm/java/net/minecraft/client/render/entity/RenderPainting.java index 729f9a6..1ff51e4 100644 --- a/src/teavm/java/net/minecraft/client/render/entity/RenderPainting.java +++ b/src/teavm/java/net/minecraft/client/render/entity/RenderPainting.java @@ -65,32 +65,32 @@ public final class RenderPainting extends Render { var18 = (float)(var27 + var25 - (var10 + 1 << 4)) / 256.0F; Tessellator var29 = Tessellator.instance; var29.startDrawingQuads(); - Tessellator.setNormal(0.0F, 0.0F, -1.0F); + var29.setNormal(0.0F, 0.0F, -1.0F); var29.addVertexWithUV(var11, var14, -0.5F, var16, var17); var29.addVertexWithUV(var12, var14, -0.5F, var15, var17); var29.addVertexWithUV(var12, var13, -0.5F, var15, var18); var29.addVertexWithUV(var11, var13, -0.5F, var16, var18); - Tessellator.setNormal(0.0F, 0.0F, 1.0F); + var29.setNormal(0.0F, 0.0F, 1.0F); var29.addVertexWithUV(var11, var13, 0.5F, 12.0F / 16.0F, 0.0F); var29.addVertexWithUV(var12, var13, 0.5F, 13.0F / 16.0F, 0.0F); var29.addVertexWithUV(var12, var14, 0.5F, 13.0F / 16.0F, 1.0F / 16.0F); var29.addVertexWithUV(var11, var14, 0.5F, 12.0F / 16.0F, 1.0F / 16.0F); - Tessellator.setNormal(0.0F, -1.0F, 0.0F); + var29.setNormal(0.0F, -1.0F, 0.0F); var29.addVertexWithUV(var11, var13, -0.5F, 12.0F / 16.0F, 0.001953125F); var29.addVertexWithUV(var12, var13, -0.5F, 13.0F / 16.0F, 0.001953125F); var29.addVertexWithUV(var12, var13, 0.5F, 13.0F / 16.0F, 0.001953125F); var29.addVertexWithUV(var11, var13, 0.5F, 12.0F / 16.0F, 0.001953125F); - Tessellator.setNormal(0.0F, 1.0F, 0.0F); + var29.setNormal(0.0F, 1.0F, 0.0F); var29.addVertexWithUV(var11, var14, 0.5F, 12.0F / 16.0F, 0.001953125F); var29.addVertexWithUV(var12, var14, 0.5F, 13.0F / 16.0F, 0.001953125F); var29.addVertexWithUV(var12, var14, -0.5F, 13.0F / 16.0F, 0.001953125F); var29.addVertexWithUV(var11, var14, -0.5F, 12.0F / 16.0F, 0.001953125F); - Tessellator.setNormal(-1.0F, 0.0F, 0.0F); + var29.setNormal(-1.0F, 0.0F, 0.0F); var29.addVertexWithUV(var11, var13, 0.5F, 385.0F / 512.0F, 0.0F); var29.addVertexWithUV(var11, var14, 0.5F, 385.0F / 512.0F, 1.0F / 16.0F); var29.addVertexWithUV(var11, var14, -0.5F, 385.0F / 512.0F, 1.0F / 16.0F); var29.addVertexWithUV(var11, var13, -0.5F, 385.0F / 512.0F, 0.0F); - Tessellator.setNormal(1.0F, 0.0F, 0.0F); + var29.setNormal(1.0F, 0.0F, 0.0F); var29.addVertexWithUV(var12, var13, -0.5F, 385.0F / 512.0F, 0.0F); var29.addVertexWithUV(var12, var14, -0.5F, 385.0F / 512.0F, 1.0F / 16.0F); var29.addVertexWithUV(var12, var14, 0.5F, 385.0F / 512.0F, 1.0F / 16.0F);