Example usage for org.lwjgl.opengl GL11 glNormal3f

List of usage examples for org.lwjgl.opengl GL11 glNormal3f

Introduction

In this page you can find the example usage for org.lwjgl.opengl GL11 glNormal3f.

Prototype

public static native void glNormal3f(@NativeType("GLfloat") float nx, @NativeType("GLfloat") float ny,
        @NativeType("GLfloat") float nz);

Source Link

Document

Sets the current normal.

Usage

From source file:io.flob.blackheart.WallLiftPanel.java

License:Open Source License

private void render_right() {
    GL11.glNormal3f(1, 0, 0);
    GL11.glTexCoord2f(texture.getU2(), texture.getV2());
    GL11.glVertex3f(size + position.getX(), -size + position.getY(), -size + position.getZ());
    GL11.glTexCoord2f(texture.getU2(), texture.getV());
    GL11.glVertex3f(size + position.getX(), size + position.getY(), -size + position.getZ());
    GL11.glTexCoord2f(texture.getU(), texture.getV());
    GL11.glVertex3f(size + position.getX(), size + position.getY(), size + position.getZ());
    GL11.glTexCoord2f(texture.getU(), texture.getV2());
    GL11.glVertex3f(size + position.getX(), -size + position.getY(), size + position.getZ());
}

From source file:lyonlancer5.pfsteel.client.render.projectile.RenderBullet.java

License:Open Source License

public void renderBullet(EntityBullet entityarrow, double d, double d1, double d2, float f, float f1) {
    bindEntityTexture(entityarrow);//from   ww w .j a v  a2  s  . c o  m
    GL11.glPushMatrix();
    GL11.glTranslatef((float) d, (float) d1, (float) d2);
    Tessellator tessellator = Tessellator.instance;
    float f2 = 0.0F;
    float f3 = 0.3125F;
    float f10 = 0.05625F;
    GL11.glEnable(32826);
    GL11.glScalef(0.07F, 0.07F, 0.07F);
    GL11.glNormal3f(f10, 0.0F, 0.0F);
    tessellator.startDrawingQuads();
    tessellator.addVertexWithUV(0.0D, -1.0D, -1.0D, f2, f2);
    tessellator.addVertexWithUV(0.0D, -1.0D, 1.0D, f3, f2);
    tessellator.addVertexWithUV(0.0D, 1.0D, 1.0D, f3, f3);
    tessellator.addVertexWithUV(0.0D, 1.0D, -1.0D, f2, f3);
    tessellator.draw();
    GL11.glNormal3f(-f10, 0.0F, 0.0F);
    tessellator.startDrawingQuads();
    tessellator.addVertexWithUV(0.0D, 1.0D, -1.0D, f2, f2);
    tessellator.addVertexWithUV(0.0D, 1.0D, 1.0D, f3, f2);
    tessellator.addVertexWithUV(0.0D, -1.0D, 1.0D, f3, f3);
    tessellator.addVertexWithUV(0.0D, -1.0D, -1.0D, f2, f3);
    tessellator.draw();
    for (int j = 0; j < 4; j++) {
        GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
        GL11.glNormal3f(0.0F, 0.0F, f10);
        tessellator.startDrawingQuads();
        tessellator.addVertexWithUV(-1.0D, -1.0D, 0.0D, f2, f2);
        tessellator.addVertexWithUV(1.0D, -1.0D, 0.0D, f3, f2);
        tessellator.addVertexWithUV(1.0D, 1.0D, 0.0D, f3, f3);
        tessellator.addVertexWithUV(-1.0D, 1.0D, 0.0D, f2, f3);
        tessellator.draw();
    }
    GL11.glDisable(32826);
    GL11.glPopMatrix();
}

From source file:lyonlancer5.pfsteel.client.render.projectile.RenderExplosiveArrow.java

License:Open Source License

public void doRender(EntityExplosiveArrow p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_,
        float p_76986_8_, float p_76986_9_) {
    bindEntityTexture(p_76986_1_);/* www  .  ja v  a  2 s  .  com*/
    GL11.glPushMatrix();
    GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_);
    GL11.glRotatef(p_76986_1_.prevRotationYaw
            + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F);
    GL11.glRotatef(p_76986_1_.prevRotationPitch
            + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F);
    Tessellator tessellator = Tessellator.instance;
    byte b0 = 0;
    float f2 = 0.0F;
    float f3 = 0.5F;
    float f4 = (float) (0 + b0 * 10) / 32.0F;
    float f5 = (float) (5 + b0 * 10) / 32.0F;
    float f6 = 0.0F;
    float f7 = 0.15625F;
    float f8 = (float) (5 + b0 * 10) / 32.0F;
    float f9 = (float) (10 + b0 * 10) / 32.0F;
    float f10 = 0.05625F;
    GL11.glEnable(GL12.GL_RESCALE_NORMAL);
    float f11 = (float) p_76986_1_.arrowShake - p_76986_9_;

    if (f11 > 0.0F) {
        float f12 = -MathHelper.sin(f11 * 3.0F) * f11;
        GL11.glRotatef(f12, 0.0F, 0.0F, 1.0F);
    }

    GL11.glRotatef(45.0F, 1.0F, 0.0F, 0.0F);
    GL11.glScalef(f10, f10, f10);
    GL11.glTranslatef(-4.0F, 0.0F, 0.0F);
    GL11.glNormal3f(f10, 0.0F, 0.0F);
    tessellator.startDrawingQuads();
    tessellator.addVertexWithUV(-7.0D, -2.0D, -2.0D, (double) f6, (double) f8);
    tessellator.addVertexWithUV(-7.0D, -2.0D, 2.0D, (double) f7, (double) f8);
    tessellator.addVertexWithUV(-7.0D, 2.0D, 2.0D, (double) f7, (double) f9);
    tessellator.addVertexWithUV(-7.0D, 2.0D, -2.0D, (double) f6, (double) f9);
    tessellator.draw();
    GL11.glNormal3f(-f10, 0.0F, 0.0F);
    tessellator.startDrawingQuads();
    tessellator.addVertexWithUV(-7.0D, 2.0D, -2.0D, (double) f6, (double) f8);
    tessellator.addVertexWithUV(-7.0D, 2.0D, 2.0D, (double) f7, (double) f8);
    tessellator.addVertexWithUV(-7.0D, -2.0D, 2.0D, (double) f7, (double) f9);
    tessellator.addVertexWithUV(-7.0D, -2.0D, -2.0D, (double) f6, (double) f9);
    tessellator.draw();

    for (int i = 0; i < 4; ++i) {
        GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
        GL11.glNormal3f(0.0F, 0.0F, f10);
        tessellator.startDrawingQuads();
        tessellator.addVertexWithUV(-8.0D, -2.0D, 0.0D, (double) f2, (double) f4);
        tessellator.addVertexWithUV(8.0D, -2.0D, 0.0D, (double) f3, (double) f4);
        tessellator.addVertexWithUV(8.0D, 2.0D, 0.0D, (double) f3, (double) f5);
        tessellator.addVertexWithUV(-8.0D, 2.0D, 0.0D, (double) f2, (double) f5);
        tessellator.draw();
    }

    GL11.glDisable(GL12.GL_RESCALE_NORMAL);
    GL11.glPopMatrix();
}

From source file:lyonlancer5.pfsteel.client.render.projectile.RenderPortalArrow.java

License:Open Source License

public void doRender(EntityPortalArrow p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_,
        float p_76986_8_, float p_76986_9_) {
    bindEntityTexture(p_76986_1_);//from w w  w .  ja  v a  2 s  . c o  m
    GL11.glPushMatrix();
    GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_);
    GL11.glRotatef(p_76986_1_.prevRotationYaw
            + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F);
    GL11.glRotatef(p_76986_1_.prevRotationPitch
            + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F);
    Tessellator tessellator = Tessellator.instance;
    byte b0 = 0;
    float f2 = 0.0F;
    float f3 = 0.5F;
    float f4 = (float) (0 + b0 * 10) / 32.0F;
    float f5 = (float) (5 + b0 * 10) / 32.0F;
    float f6 = 0.0F;
    float f7 = 0.15625F;
    float f8 = (float) (5 + b0 * 10) / 32.0F;
    float f9 = (float) (10 + b0 * 10) / 32.0F;
    float f10 = 0.05625F;
    GL11.glEnable(GL12.GL_RESCALE_NORMAL);

    GL11.glRotatef(45.0F, 1.0F, 0.0F, 0.0F);
    GL11.glScalef(f10, f10, f10);
    GL11.glTranslatef(-4.0F, 0.0F, 0.0F);
    GL11.glNormal3f(f10, 0.0F, 0.0F);
    tessellator.startDrawingQuads();
    tessellator.addVertexWithUV(-7.0D, -2.0D, -2.0D, (double) f6, (double) f8);
    tessellator.addVertexWithUV(-7.0D, -2.0D, 2.0D, (double) f7, (double) f8);
    tessellator.addVertexWithUV(-7.0D, 2.0D, 2.0D, (double) f7, (double) f9);
    tessellator.addVertexWithUV(-7.0D, 2.0D, -2.0D, (double) f6, (double) f9);
    tessellator.draw();
    GL11.glNormal3f(-f10, 0.0F, 0.0F);
    tessellator.startDrawingQuads();
    tessellator.addVertexWithUV(-7.0D, 2.0D, -2.0D, (double) f6, (double) f8);
    tessellator.addVertexWithUV(-7.0D, 2.0D, 2.0D, (double) f7, (double) f8);
    tessellator.addVertexWithUV(-7.0D, -2.0D, 2.0D, (double) f7, (double) f9);
    tessellator.addVertexWithUV(-7.0D, -2.0D, -2.0D, (double) f6, (double) f9);
    tessellator.draw();

    for (int i = 0; i < 4; ++i) {
        GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
        GL11.glNormal3f(0.0F, 0.0F, f10);
        tessellator.startDrawingQuads();
        tessellator.addVertexWithUV(-8.0D, -2.0D, 0.0D, (double) f2, (double) f4);
        tessellator.addVertexWithUV(8.0D, -2.0D, 0.0D, (double) f3, (double) f4);
        tessellator.addVertexWithUV(8.0D, 2.0D, 0.0D, (double) f3, (double) f5);
        tessellator.addVertexWithUV(-8.0D, 2.0D, 0.0D, (double) f2, (double) f5);
        tessellator.draw();
    }

    GL11.glDisable(GL12.GL_RESCALE_NORMAL);
    GL11.glPopMatrix();
}

From source file:lyonlancer5.pfsteel.client.render.projectile.RenderRedBullet.java

License:Open Source License

public void doRender(EntityRedBullet p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_,
        float p_76986_8_, float p_76986_9_) {
    bindEntityTexture(p_76986_1_);//from   w w w  .  j a  v  a2s . com
    GL11.glPushMatrix();
    GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_);
    GL11.glRotatef(p_76986_1_.prevRotationYaw
            + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F);
    GL11.glRotatef(p_76986_1_.prevRotationPitch
            + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F);
    Tessellator tessellator = Tessellator.instance;
    byte b0 = 0;
    float f2 = 0.0F;
    float f3 = 0.5F;
    float f4 = (float) (0 + b0 * 10) / 32.0F;
    float f5 = (float) (5 + b0 * 10) / 32.0F;
    float f6 = 0.0F;
    float f7 = 0.15625F;
    float f8 = (float) (5 + b0 * 10) / 32.0F;
    float f9 = (float) (10 + b0 * 10) / 32.0F;
    float f10 = 0.05625F;
    GL11.glEnable(GL12.GL_RESCALE_NORMAL);
    float f11 = (float) p_76986_1_.arrowShake - p_76986_9_;

    if (f11 > 0.0F) {
        float f12 = -MathHelper.sin(f11 * 3.0F) * f11;
        GL11.glRotatef(f12, 0.0F, 0.0F, 1.0F);
    }

    GL11.glRotatef(45.0F, 1.0F, 0.0F, 0.0F);
    GL11.glScalef(f10, f10, f10);
    GL11.glTranslatef(-4.0F, 0.0F, 0.0F);
    GL11.glNormal3f(f10, 0.0F, 0.0F);
    tessellator.startDrawingQuads();
    tessellator.addVertexWithUV(-7.0D, -2.0D, -2.0D, (double) f6, (double) f8);
    tessellator.addVertexWithUV(-7.0D, -2.0D, 2.0D, (double) f7, (double) f8);
    tessellator.addVertexWithUV(-7.0D, 2.0D, 2.0D, (double) f7, (double) f9);
    tessellator.addVertexWithUV(-7.0D, 2.0D, -2.0D, (double) f6, (double) f9);
    tessellator.draw();
    GL11.glNormal3f(-f10, 0.0F, 0.0F);
    tessellator.startDrawingQuads();
    tessellator.addVertexWithUV(-7.0D, 2.0D, -2.0D, (double) f6, (double) f8);
    tessellator.addVertexWithUV(-7.0D, 2.0D, 2.0D, (double) f7, (double) f8);
    tessellator.addVertexWithUV(-7.0D, -2.0D, 2.0D, (double) f7, (double) f9);
    tessellator.addVertexWithUV(-7.0D, -2.0D, -2.0D, (double) f6, (double) f9);
    tessellator.draw();

    for (int i = 0; i < 4; ++i) {
        GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
        GL11.glNormal3f(0.0F, 0.0F, f10);
        tessellator.startDrawingQuads();
        tessellator.addVertexWithUV(-8.0D, -2.0D, 0.0D, (double) f2, (double) f4);
        tessellator.addVertexWithUV(8.0D, -2.0D, 0.0D, (double) f3, (double) f4);
        tessellator.addVertexWithUV(8.0D, 2.0D, 0.0D, (double) f3, (double) f5);
        tessellator.addVertexWithUV(-8.0D, 2.0D, 0.0D, (double) f2, (double) f5);
        tessellator.draw();
    }

    GL11.glDisable(GL12.GL_RESCALE_NORMAL);
    GL11.glPopMatrix();
}

From source file:map.GameMap.java

License:Open Source License

public void drawWater() {
    GL11.glEnable(GL11.GL_BLEND);/*from  w  ww  . ja  va 2 s.  co  m*/
    GL11.glDepthMask(false);
    waterMaterial.bind();
    GL11.glBegin(GL11.GL_QUADS);
    GL11.glNormal3f(0, 0, 1.0f);
    GL11.glTexCoord2f(0, 0);
    GL11.glVertex3f(0, 0, WATER_HEIGHT);
    GL11.glTexCoord2f(size, 0);
    GL11.glVertex3f(size, 0, WATER_HEIGHT);
    GL11.glTexCoord2f(size, size);
    GL11.glVertex3f(size, size, WATER_HEIGHT);
    GL11.glTexCoord2f(0, size);
    GL11.glVertex3f(0, size, WATER_HEIGHT);
    GL11.glEnd();
    GL11.glDepthMask(true);
    GL11.glDisable(GL11.GL_BLEND);
}

From source file:map.MapVertex.java

License:Open Source License

public void draw(float texScale) {
    GL11.glNormal3f(norm.x, norm.y, norm.z);
    GL13.glMultiTexCoord2f(GL13.GL_TEXTURE0, pos.x * texScale, pos.y * texScale);
    GL13.glMultiTexCoord2f(GL13.GL_TEXTURE1, pos.x, pos.y);
    GL11.glVertex3f(pos.x, pos.y, pos.z);
}

From source file:matteroverdrive.client.render.entity.EntityRendererPhaserFire.java

License:Open Source License

/**
 * Actually renders the given argument. This is a synthetic bridge method, always casting down its argument and then
 * handing it off to a worker function which does the actual work. In all probabilty, the class Render is generic
 * (Render<T extends Entity>) and this method has signature public void func_76986_a(T entity, double d, double d1,
 * double d2, float f, float f1). But JAD is pre 1.5 so doesn't do that.
 *///from   w  ww .ja  v a 2  s  .  co m
public void doRender(PlasmaBolt plasmaBolt, double x, double y, double z, float p_76986_8_, float p_76986_9_) {
    this.bindEntityTexture(plasmaBolt);
    RenderUtils.disableLightmap();
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glBlendFunc(GL11.GL_ONE, GL11.GL_ONE);
    RenderUtils.applyColorWithMultipy(plasmaBolt.getColor(),
            MOEasing.Quad.easeOut(plasmaBolt.getLife(), 0, 1, 0.7f));
    GL11.glDisable(GL11.GL_LIGHTING);
    GL11.glPushMatrix();
    GL11.glTranslated(x, y, z);
    GL11.glRotatef(plasmaBolt.prevRotationYaw
            + (plasmaBolt.rotationYaw - plasmaBolt.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F);
    GL11.glRotatef(plasmaBolt.prevRotationPitch
            + (plasmaBolt.rotationPitch - plasmaBolt.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F);
    Tessellator tessellator = Tessellator.instance;
    byte b0 = 0;
    float f2 = 0.0F;
    float f3 = 0.5F;
    float f4 = (float) (b0 * 10) / 32.0F;
    float f5 = (float) (5 + b0 * 10) / 32.0F;
    float f6 = 0.0F;
    float f7 = 0.15625F;
    float f8 = (float) (5 + b0 * 10) / 32.0F;
    float f9 = (float) (10 + b0 * 10) / 32.0F;
    float f10 = 0.05625F;
    float renderSize = plasmaBolt.getRenderSize();
    double length = 6
            * Vec3.createVectorHelper(plasmaBolt.motionX, plasmaBolt.motionY, plasmaBolt.motionZ).lengthVector()
            + 10;
    GL11.glEnable(GL12.GL_RESCALE_NORMAL);
    GL11.glDisable(GL11.GL_CULL_FACE);

    GL11.glRotatef(45.0F, 1.0F, 0.0F, 0.0F);
    GL11.glScalef(f10, f10, f10);
    GL11.glTranslatef(-4.0F, 0.0F, 0.0F);
    GL11.glNormal3f(f10, 0.0F, 0.0F);
    tessellator.startDrawingQuads();
    tessellator.addVertexWithUV(1, -renderSize, -renderSize, (double) f6, (double) f8);
    tessellator.addVertexWithUV(1, -renderSize, renderSize, (double) f7, (double) f8);
    tessellator.addVertexWithUV(1, renderSize, renderSize, (double) f7, (double) f9);
    tessellator.addVertexWithUV(1, renderSize, -renderSize, (double) f6, (double) f9);
    tessellator.draw();

    tessellator.startDrawingQuads();
    tessellator.addVertexWithUV(length - 1, -renderSize, renderSize, (double) f7, (double) f8);
    tessellator.addVertexWithUV(length - 1, renderSize, renderSize, (double) f7, (double) f9);
    tessellator.addVertexWithUV(length - 1, renderSize, -renderSize, (double) f6, (double) f9);
    tessellator.addVertexWithUV(length - 1, -renderSize, -renderSize, (double) f6, (double) f8);
    tessellator.draw();

    for (int i = 0; i < 2; ++i) {
        GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
        GL11.glNormal3f(0.0F, 0.0F, f10);
        tessellator.startDrawingQuads();
        tessellator.addVertexWithUV(0, -renderSize, 0.0D, (double) f2, (double) f4);
        tessellator.addVertexWithUV(length, -renderSize, 0.0D, (double) f3, (double) f4);
        tessellator.addVertexWithUV(length, renderSize, 0.0D, (double) f3, (double) f5);
        tessellator.addVertexWithUV(0, renderSize, 0.0D, (double) f2, (double) f5);
        tessellator.draw();
    }

    GL11.glDisable(GL11.GL_BLEND);
    GL11.glEnable(GL11.GL_LIGHTING);
    GL11.glDisable(GL12.GL_RESCALE_NORMAL);
    GL11.glPopMatrix();
    RenderUtils.enableLightmap();
}

From source file:mca.client.render.RenderHuman.java

License:Open Source License

/**
 * Renders a label above an entity's head.
 * /*  w  w w.j a v a  2 s  . c  o m*/
 * @param human The entity that the label should be rendered on.
 * @param labelText The text that should appear on the label.
 */
private void renderLabel(EntityHuman human, double posX, double posY, double posZ, String labelText) {
    if (human.isSneaking()) {
        final Tessellator tessellator = Tessellator.instance;
        final FontRenderer fontRendererObj = getFontRendererFromRenderManager();
        final int stringWidth = fontRendererObj.getStringWidth(labelText) / 2;

        GL11.glPushMatrix();
        {
            GL11.glTranslatef((float) posX + 0.0F, (float) posY + 2.3F, (float) posZ);
            GL11.glNormal3f(0.0F, 1.0F, 0.0F);
            GL11.glRotatef(-renderManager.playerViewY, 0.0F, 1.0F, 0.0F);
            GL11.glRotatef(renderManager.playerViewX, 1.0F, 0.0F, 0.0F);
            GL11.glScalef(-LABEL_SCALE, -LABEL_SCALE, LABEL_SCALE);
            GL11.glDisable(GL11.GL_LIGHTING);
            GL11.glTranslatef(0.0F, 0.25F / LABEL_SCALE, 0.0F);
            GL11.glDepthMask(false);
            GL11.glEnable(GL11.GL_BLEND);
            GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

            GL11.glDisable(GL11.GL_TEXTURE_2D);

            tessellator.startDrawingQuads();
            tessellator.setColorRGBA_F(0.0F, 0.0F, 0.0F, 0.25F);
            tessellator.addVertex(-stringWidth - 1, -1D, 0.0D);
            tessellator.addVertex(-stringWidth - 1, 8D, 0.0D);
            tessellator.addVertex(stringWidth + 1, 8D, 0.0D);
            tessellator.addVertex(stringWidth + 1, -1D, 0.0D);
            tessellator.draw();

            GL11.glEnable(GL11.GL_TEXTURE_2D);

            GL11.glDepthMask(true);
            fontRendererObj.drawString(labelText, -fontRendererObj.getStringWidth(labelText) / 2, 0,
                    0x20ffffff);
            GL11.glEnable(GL11.GL_LIGHTING);
            GL11.glDisable(GL11.GL_BLEND);
            GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        }
        GL11.glPopMatrix();
    }

    else {
        //RenderLivingLabel
        func_147906_a(human, labelText, posX, posY, posZ, 64);
    }
}

From source file:mca.client.render.RenderTombstone.java

License:Open Source License

public void renderTombstoneAt(TileTombstone tombstoneEntity, double posX, double posY, double posZ,
        float partialTickTime) {
    final StringBuilder stringBuilder = new StringBuilder();
    final FontRenderer fontRendererObj = func_147498_b();

    final int meta = tombstoneEntity.getBlockMetadata();
    final float rotation = setRotationByMeta(meta);

    GL11.glPushMatrix();/*from   ww w.  j a  v  a 2s .c o  m*/

    GL11.glTranslated(posX + 0.50F, posY + 1.59F, posZ + 0.53F);
    GL11.glRotatef(-rotation, 0.0F, 1.0F, 0.0F);
    GL11.glTranslatef(0, 0.5F, 0);
    GL11.glScalef(1.4F, 1.4F, 1.4F);

    bindResource(TEXTURE);

    GL11.glPushMatrix();
    {
        GL11.glScalef(1F, -1F, -1F);
        tombstoneModel.renderTombstone();
    }
    GL11.glPopMatrix();

    //Text size is 0.017F.
    GL11.glTranslatef(0.0F, -1.15F, 0.07F);
    GL11.glScalef(0.017F / 2, -0.017F / 2, 0.017F / 2);
    GL11.glNormal3f(0.0F, 0.0F, -1F * 0.017F);
    GL11.glDepthMask(false);

    for (int line = 0; line < tombstoneEntity.signText.length; line++) {
        String lineText = tombstoneEntity.signText[line];

        if (line == tombstoneEntity.lineBeingEdited) {
            lineText = stringBuilder.append("> ").append(lineText).append(" <").toString();
        }

        fontRendererObj.drawString(lineText, -fontRendererObj.getStringWidth(lineText) / 2,
                line * 10 - tombstoneEntity.signText.length * 5, 0x000000);
    }

    GL11.glDepthMask(true);
    GL11.glPopMatrix();
}