Example usage for org.lwjgl.opengl GL11 glPopMatrix

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

Introduction

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

Prototype

public static native void glPopMatrix();

Source Link

Document

Pops the top entry off the current matrix stack, replacing the current matrix with the matrix that was the second entry in the stack.

Usage

From source file:cn.lambdacraft.crafting.client.renderer.RenderWire.java

License:Open Source License

@Override
public void renderTileEntityAt(TileEntity tileentity, double d0, double d1, double d2, float f) {
    TileWire wire = (TileWire) tileentity;
    Tessellator t = Tessellator.instance;
    GL11.glPushMatrix();//from   w  w w  .  j  a  va  2  s . c  o  m
    GL11.glTranslated(d0 + 0.5, d1 + 0.5, d2 + 0.5);
    renderWireBox(t, -1, wire.renderSides);
    for (int i = 0; i < 6; i++) {
        if (wire.renderSides[i])
            renderWireBox(t, i, wire.renderSides);
    }
    GL11.glPopMatrix();
}

From source file:cn.lambdacraft.crafting.client.renderer.RenderWire.java

License:Open Source License

private void renderWireBox(Tessellator t, int side, boolean[] theArray) {
    ForgeDirection[] dirs = ForgeDirection.values();
    Vec3 v1 = RenderUtils.newV3(-WIDTH, -WIDTH, -WIDTH), v2 = RenderUtils.newV3(WIDTH, -WIDTH, -WIDTH),
            v3 = RenderUtils.newV3(WIDTH, -WIDTH, WIDTH), v4 = RenderUtils.newV3(-WIDTH, -WIDTH, WIDTH),
            v5 = RenderUtils.newV3(-WIDTH, WIDTH, -WIDTH), v6 = RenderUtils.newV3(WIDTH, WIDTH, -WIDTH),
            v7 = RenderUtils.newV3(WIDTH, WIDTH, WIDTH), v8 = RenderUtils.newV3(-WIDTH, WIDTH, WIDTH);
    GL11.glPushMatrix();//www.j a  va 2 s .c  om
    GL11.glEnable(GL12.GL_RESCALE_NORMAL);
    float dx = 0.0F, dy = 0.0F, dz = 0.0F;
    switch (side) {
    case 0:
        dy = -1;
        break;
    case 1:
        dy = 1;
        break;
    case 4:
        dx = -1;
        break;
    case 5:
        dx = 1;
        break;
    case 2:
        dz = -1;
        break;
    case 3:
        dz = 1;
        break;
    }
    float offset = (0.5F + WIDTH) / 2F;
    GL11.glTranslatef(dx * offset, dy * offset, dz * offset);
    if (side != -1) {
        float scale = 2F;
        GL11.glScalef(Math.abs(dx == 0.0F ? 1 : dx * scale), Math.abs(dy == 0.0F ? 1 : dy * scale),
                Math.abs(dz == 0.0F ? 1 : dz * scale));
    }
    int a = 0;
    for (int i = 0; i < theArray.length; i++)
        if (theArray[i])
            a++;
    for (int i = 0; i < 6; i++) {
        if (!doesRenderSide(side, i, theArray))
            continue;
        Vec3 vec1 = null, vec2 = null, vec3 = null, vec4 = null;
        dx = 0.0F;
        dy = 0.0F;
        dz = 0.0F;
        switch (i) {
        case 0:
            vec1 = v4;
            vec2 = v3;
            vec3 = v2;
            vec4 = v1;
            dy = -1.0F;
            break;
        case 1:
            vec1 = v5;
            vec2 = v6;
            vec3 = v7;
            vec4 = v8;
            dy = 1.0F;
            break;
        case 4:
            vec1 = v1;
            vec2 = v5;
            vec3 = v8;
            vec4 = v4;
            dx = -1.0F;
            break;
        case 5:
            vec1 = v2;
            vec2 = v3;
            vec3 = v7;
            vec4 = v6;
            dx = 1.0F;
            break;
        case 2:
            vec1 = v1;
            vec2 = v2;
            vec3 = v6;
            vec4 = v5;
            dz = -1.0F;
            break;
        case 3:
            vec1 = v4;
            vec2 = v8;
            vec3 = v7;
            vec4 = v3;
            dz = 1.0F;
            break;
        }
        GL11.glPushMatrix();
        if (side == -1) {
            if (a == 1 && theArray[dirs[i].getOpposite().ordinal()])
                RenderUtils.loadTexture(ClientProps.WIRE_MAIN_PATH);
            else
                RenderUtils.loadTexture(ClientProps.WIRE_SIDE_PATH);
        } else {
            RenderUtils.loadTexture(ClientProps.WIRE_SIDE_PATH2);
        }

        t.startDrawingQuads();
        t.setNormal(dx, dy, dz);
        RenderUtils.addVertex(vec4, 0.0, 1.0);
        RenderUtils.addVertex(vec3, 1.0, 1.0);
        RenderUtils.addVertex(vec2, 1.0, 0.0);
        RenderUtils.addVertex(vec1, 0.0, 0.0);
        t.draw();
        GL11.glPopMatrix();
    }
    GL11.glDisable(GL12.GL_RESCALE_NORMAL);
    GL11.glPopMatrix();
}

From source file:cn.lambdacraft.deathmatch.client.HEVRenderingUtils.java

License:Open Source License

public static void drawPlayerHud(EntityPlayer player, ScaledResolution resolution, float partialTickTime) {

    int k = resolution.getScaledWidth();
    int l = resolution.getScaledHeight();
    int i2 = k / 2 - 91;
    int k2 = l - 32 + 3;
    Minecraft mc = Minecraft.getMinecraft();
    TextureManager engine = mc.renderEngine;
    GL11.glEnable(GL11.GL_BLEND);/*  ww w .ja va 2  s .c o m*/
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    GL11.glColor4f(1.0F, 0.5F, 0.0F, 0.6F);
    engine.bindTexture(ClientProps.HEV_HUD_PATH);

    GL11.glPushMatrix();

    double scale = 0.00026 * mc.displayWidth + 0.3;

    float xOffset, yOffset;
    xOffset = 10;
    yOffset = l - 20;
    GL11.glTranslatef(xOffset, yOffset, 0.0F);

    GL11.glScaled(scale, scale, 1.0);
    //Health Section
    HudUtils.setTextureResolution(TEX_WIDTH, TEX_HEIGHT);

    GL11.glColor4f(0.7F, 0.7F, 0.7F, 0.6F);
    HudUtils.drawTexturedModalRect(0, 0, 64, 64, 24, 24, 64, 64);
    GL11.glColor4f(1.0F, 0.5F, 0.0F, 0.6F);
    int h = (int) (player.getHealth() * 16 / 20);
    HudUtils.drawTexturedModalRect(0, 24 - (int) (h * 1.5), 192, 128 - 4 * h, 24, (int) (1.5 * h), 64, 4 * h);
    if (player.getHealth() <= 5)
        GL11.glColor4f(0.9F, 0.1F, 0.1F, 0.6F);
    drawNumberAt((byte) (player.getHealth() * 5), 18, 0);
    GL11.glColor4f(1.0F, 0.5F, 0.0F, 0.9F);

    //Armor Section
    GL11.glColor4f(0.7F, 0.7F, 0.7F, 0.6F);
    HudUtils.drawTexturedModalRect(70, 0, 0, 64, 24, 24, 64, 64);
    GL11.glColor4f(1.0F, 0.5F, 0.0F, 0.6F);
    h = player.getTotalArmorValue() * 16 / 20;
    if (h > 16)
        h = 16;
    HudUtils.drawTexturedModalRect(70, 24 - (int) (h * 1.5), 128, 128 - 4 * h, 24, (int) (h * 1.5), 64, 4 * h);

    drawNumberAt(player.getTotalArmorValue() * 5, 70 + 12, 0);

    GL11.glPopMatrix();

    //Other section
    drawArmorTip(player, engine, k, l);
    if (LCClientPlayer.drawArmorTip)
        drawWeaponTip(player, engine, k, l);

    engine.bindTexture(engine.getResourceLocation(1));
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    GL11.glColor4f(1.0F, 0.5F, 0.0F, 0.7F);
}

From source file:cn.lambdacraft.deathmatch.client.HEVRenderingUtils.java

License:Open Source License

public static void drawCrosshair(ItemStack stack, int k, int l) {
    String xhairPath = null;/*from  ww w  . j av  a 2  s  .  c  om*/
    TextureManager engine = Minecraft.getMinecraft().renderEngine;
    int h = 12;
    if (stack != null) {
        if (stack.getItem() instanceof ISpecialCrosshair) {
            h = ((ISpecialCrosshair) stack.getItem()).getHalfWidth();
            int i = ((ISpecialCrosshair) stack.getItem()).getCrosshairID(stack);
            if (i >= 0)
                xhairPath = ClientProps.xhair_path + "xhair" + i + ".png";
        } else
            xhairPath = ClientProps.getCrosshairPath(stack.getItem().getUnlocalizedName(stack));

        if (xhairPath == null)
            xhairPath = ClientProps.DEFAULT_XHAIR_PATH;
    } else {
        xhairPath = ClientProps.DEFAULT_XHAIR_PATH;
    }
    GL11.glPushMatrix();
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    int par1 = k / 2 - h, par2 = l / 2 - h;
    RenderUtils.loadTexture(xhairPath);
    Tessellator t = Tessellator.instance;
    t.startDrawingQuads();
    t.setColorRGBA(ClientProps.xHairR, ClientProps.xHairG, ClientProps.xHairB, 255);
    t.addVertexWithUV(par1 + 0, par2 + 2 * h, -90, 0, 1);
    t.addVertexWithUV(par1 + 2 * h, par2 + 2 * h, -90, 1, 1);
    t.addVertexWithUV(par1 + 2 * h, par2 + 0, -90, 1, 0);
    t.addVertexWithUV(par1 + 0, par2 + 0, -90, 0, 0);
    t.draw();

    //TODO: maybe buggy here
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    GL11.glColor4f(1.0F, 0.5F, 0.0F, 0.7F);
    GL11.glPopMatrix();
    engine.bindTexture(Gui.icons);
}

From source file:cn.lambdacraft.mob.client.renderer.RenderAlienSlave.java

License:Open Source License

@Override
public void doRender(Entity entity, double x, double y, double z, float par8, float par9) {
    GL11.glPushMatrix();//from  w  w w  .j a  v a2  s  . co m
    EntityAlienSlave slave = (EntityAlienSlave) entity;
    Tessellator t = Tessellator.instance;
    if (slave.isCharging) {
        for (Vec3 vec : slave.electrolyze_left) {
            renderElectro(slave, vec, t, x, y, z, true);
        }

        for (Vec3 vec : slave.electrolyze_right) {
            renderElectro(slave, vec, t, x, y, z, false);
        }
    }
    if (entity.hurtResistantTime > 10)
        GL11.glColor4f(1.0F, 0.3F, 0.3F, 1.0F);
    super.doRender(entity, x, y, z, par8, par9);
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    GL11.glPopMatrix();
}

From source file:cn.lambdacraft.mob.client.renderer.RenderAlienSlave.java

License:Open Source License

private void renderElectro(EntityAlienSlave ent, Vec3 vec3, Tessellator t, double x, double y, double z,
        boolean isLeft) {
    double dx = vec3.xCoord, dy = vec3.yCoord, dz = vec3.zCoord;
    double tx = 0.0, ty = 1.2, tz = 0.0;
    GL11.glPushMatrix();/*from w w  w  .j  av  a2  s .  co m*/
    GL11.glDisable(GL11.GL_CULL_FACE);
    GL11.glDisable(GL11.GL_LIGHTING);
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    RenderUtils.loadTexture(ClientProps.VORTIGAUNT_RAY_PATH[rand.nextInt(3)]);

    Vec3 v1 = RenderUtils.newV3(tx - WIDTH, ty, tz), v2 = RenderUtils.newV3(tx + WIDTH, ty, tz),
            v3 = RenderUtils.newV3(tx, ty - WIDTH, tz), v4 = RenderUtils.newV3(tx, ty + WIDTH, tz);
    double d = Math.sqrt(dx * dx + dy * dy + dz * dz) * 1.3;

    GL11.glTranslated(x, y, z);

    OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240f, 240f);
    t.startDrawingQuads();
    t.setBrightness(15728880);
    t.setColorRGBA_F(0.1F, 0.9F, 0.1F, 0.7F);
    RenderUtils.addVertex(v1, 0, 0);
    RenderUtils.addVertex(v2, 1, 0);
    RenderUtils.addVertex(v2.addVector(dx, dy, dz), 1, d);
    RenderUtils.addVertex(v1.addVector(dx, dy, dz), 0, d);

    RenderUtils.addVertex(v3, 0, 0);
    RenderUtils.addVertex(v4, 1, 0);
    RenderUtils.addVertex(v4.addVector(dx, dy, dz), 1, d);
    RenderUtils.addVertex(v3.addVector(dx, dy, dz), 0, d);
    t.draw();

    GL11.glEnable(GL11.GL_CULL_FACE);
    GL11.glEnable(GL11.GL_LIGHTING);
    GL11.glPopMatrix();

}

From source file:cn.lambdacraft.mob.client.renderer.RenderBarnacle.java

License:Open Source License

@Override
public void doRender(Entity entity, double par2, double par4, double par6, float par8, float par9) {
    EntityBarnacle barnacle = (EntityBarnacle) entity;
    Tessellator t = Tessellator.instance;
    GL11.glPushMatrix();/*from   w w  w. j a v  a  2s.com*/
    Minecraft.getMinecraft().renderEngine.bindTexture(ClientProps.BARNACLE_PATH);
    GL11.glTranslatef((float) par2, (float) par4 + 2 * entity.height, (float) par6);
    GL11.glScalef(-1.0F, -1.0F, 1.0F);
    GL11.glTranslatef(0.0F, 1.5F, 0.0F);
    if (barnacle.getHealth() <= 0)
        GL11.glRotatef(barnacle.deathTime * 6.5F, 1.0F, 0.0F, -1.0F);
    GL11.glTranslatef(0.0F, -1.5F, 0.0F);
    if (barnacle.hurtResistantTime > 10)
        GL11.glColor3f(1.0F, 0.5F, 0.5F);

    this.model.render(entity, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);

    if (barnacle.getHealth() > 0) {
        //Barnacle Tentacle Render
        double length = barnacle.tentacleLength;
        double h1 = 0.5, h2 = length + 1.0;
        Vec3 v1 = RenderUtils.newV3(-WIDTH, h1, -WIDTH), v2 = RenderUtils.newV3(-WIDTH, h1, WIDTH),
                v3 = RenderUtils.newV3(WIDTH, h1, WIDTH), v4 = RenderUtils.newV3(WIDTH, h1, -WIDTH);
        Vec3 v5 = RenderUtils.newV3(-WIDTH, h1, -WIDTH), v6 = RenderUtils.newV3(-WIDTH, h2, WIDTH),
                v7 = RenderUtils.newV3(WIDTH, h2, WIDTH), v8 = RenderUtils.newV3(WIDTH, h2, -WIDTH);
        Minecraft.getMinecraft().renderEngine.bindTexture(ClientProps.BARNACLE_TENTACLE_PATH);

        t.startDrawingQuads();
        RenderUtils.addVertex(v1, 0.0, 0.0);
        RenderUtils.addVertex(v5, 0.0, length);
        RenderUtils.addVertex(v6, 1.0, length);
        RenderUtils.addVertex(v2, 1.0, 0.0);

        RenderUtils.addVertex(v2, 0.0, 0.0);
        RenderUtils.addVertex(v6, 0.0, length);
        RenderUtils.addVertex(v7, 1.0, length);
        RenderUtils.addVertex(v3, 1.0, 0.0);

        RenderUtils.addVertex(v3, 0.0, 0.0);
        RenderUtils.addVertex(v7, 0.0, length);
        RenderUtils.addVertex(v8, 1.0, length);
        RenderUtils.addVertex(v4, 1.0, 0.0);

        RenderUtils.addVertex(v4, 0.0, 0.0);
        RenderUtils.addVertex(v8, 0.0, length);
        RenderUtils.addVertex(v5, 1.0, length);
        RenderUtils.addVertex(v1, 1.0, 0.0);

        RenderUtils.addVertex(v8, 0.0, 0.0);
        RenderUtils.addVertex(v7, 0.0, 0.1);
        RenderUtils.addVertex(v6, 0.1, 0.1);
        RenderUtils.addVertex(v5, 0.1, 0.0);
        t.draw();
    }
    GL11.glColor3f(1.0F, 1.0F, 1.0F);
    GL11.glPopMatrix();
}

From source file:cn.lambdacraft.mob.client.renderer.RenderHoundeye.java

License:Open Source License

@Override
public void func_110827_b(EntityLiving ent, double par2, double par4, double par6, float par8, float par9) {
    GL11.glPushMatrix();//from w  w  w.j  av  a  2s.  c o  m
    float yOffset = ent.prevLimbSwingAmount + (ent.limbSwingAmount - ent.prevLimbSwingAmount) * par9;
    float xOffset = 0.0F, zOffset = 0.0F;
    if (((EntityHoundeye) ent).isCharging) {
        xOffset = rand.nextFloat() * 0.3F;
        zOffset = rand.nextFloat() * 0.3F;
        yOffset += rand.nextFloat() * 0.3F;
    }
    if (yOffset > 1.0F)
        yOffset = 1.0F;
    yOffset *= 0.2F;
    GL11.glTranslatef(xOffset, yOffset, zOffset);
    super.func_110827_b(ent, par2, par4, par6, par8, par9);
    GL11.glPopMatrix();
}

From source file:cn.lambdacraft.mob.client.renderer.RenderSentryRay.java

License:Open Source License

@Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float f) {
    this.doRender(tile, x, y, z, f);
    TileSentryRay ray = (TileSentryRay) tile, ray2 = ray.linkedBlock;
    double width = 0.015;
    if (ray2 != null) {
        Vec3 v = ray2.getRayOffset();//from  www  . j  a  va2 s .c o m
        Vec3 va = ray.getRayOffset();
        double x1 = x + ray2.xCoord + v.xCoord - ray.xCoord, y1 = y + ray2.yCoord + v.yCoord - ray.yCoord,
                z1 = z + ray2.zCoord + v.zCoord - ray.zCoord;
        x += va.xCoord;
        y += va.yCoord;
        z += va.zCoord;
        Vec3 v1 = getVec3(0, 0, -width).addVector(x, y, z), v2 = getVec3(0, 0, width).addVector(x, y, z),
                v3 = getVec3(0, 0, width).addVector(x1, y1, z1),
                v4 = getVec3(0, 0, -width).addVector(x1, y1, z1);

        Vec3 v5 = getVec3(-width, 0, 0).addVector(x, y, z), v6 = getVec3(width, 0, 0).addVector(x, y, z),
                v7 = getVec3(width, 0, 0).addVector(x1, y1, z1),
                v8 = getVec3(-width, 0, 0).addVector(x1, y1, z1);

        Vec3 v9 = getVec3(0, -width, 0).addVector(x, y, z), v10 = getVec3(0, width, 0).addVector(x, y, z),
                v11 = getVec3(0, width, 0).addVector(x1, y1, z1),
                v12 = getVec3(0, -width, 0).addVector(x1, y1, z1);
        double dist = ray.getDistanceFrom(ray2.xCoord, ray2.yCoord, ray2.zCoord);
        GL11.glPushMatrix();
        GL11.glDisable(GL11.GL_CULL_FACE);
        GL11.glEnable(GL11.GL_BLEND);
        GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
        GL11.glDisable(GL11.GL_TEXTURE_2D);
        GL11.glDisable(GL11.GL_LIGHTING);
        Tessellator t = Tessellator.instance;

        t.startDrawingQuads();
        t.setColorRGBA_F(1.0F, 0.2F, 0.2F, 0.65F);
        t.setBrightness(512);
        RenderUtils.addVertex(v1, 0, 0);
        RenderUtils.addVertex(v2, 0, 1);
        RenderUtils.addVertex(v3, dist, 1);
        RenderUtils.addVertex(v4, dist, 0);

        RenderUtils.addVertex(v5, 0, 0);
        RenderUtils.addVertex(v6, 0, 1);
        RenderUtils.addVertex(v7, dist, 1);
        RenderUtils.addVertex(v8, dist, 0);
        RenderUtils.addVertex(v9, 0, 0);
        RenderUtils.addVertex(v10, 0, 1);
        RenderUtils.addVertex(v11, dist, 1);
        RenderUtils.addVertex(v12, dist, 0);

        t.draw();
        GL11.glEnable(GL11.GL_TEXTURE_2D);
        GL11.glEnable(GL11.GL_LIGHTING);
        GL11.glPopMatrix();
    }
}

From source file:cn.lambdacraft.mob.client.renderer.RenderShockwave.java

License:Open Source License

protected void renderWave(Tessellator t, double x, double y, double z, float radius) {
    GL11.glPushMatrix();//w w w  .  j  a  v  a  2 s . com

    GL11.glTranslated(x, y, z);
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glDisable(GL11.GL_CULL_FACE);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240f, 240f);
    t.startDrawingQuads();
    t.setColorRGBA(255, 255, 255, 128);
    t.setBrightness(15728880);

    t.addVertexWithUV(-radius, 0.0, -radius, 0.0, 0.0);
    t.addVertexWithUV(-radius, 0.0, radius, 0.0, 1.0);
    t.addVertexWithUV(radius, 0.0, radius, 1.0, 1.0);
    t.addVertexWithUV(radius, 0.0, -radius, 1.0, 0.0);

    t.draw();

    GL11.glEnable(GL11.GL_CULL_FACE);
    GL11.glPopMatrix();
}