Example usage for org.lwjgl.opengl GL11 glPopAttrib

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

Introduction

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

Prototype

public static native void glPopAttrib();

Source Link

Document

Resets the values of those state variables that were saved with the last #glPushAttrib PushAttrib .

Usage

From source file:me.undergroundminer3.uee4.pipesModded.AdvPipeRenderer.java

License:Minecraft Mod Public

@Deprecated
//please copy this instead
public void pipeGateRender(TileGenericPipe pipe, double x, double y, double z) {
    GL11.glPushMatrix();//  ww  w. j av  a2s  .  co  m
    GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
    //      GL11.glEnable(GL11.GL_LIGHTING);
    GL11.glDisable(GL11.GL_BLEND);
    GL11.glEnable(GL11.GL_CULL_FACE);
    //      GL11.glDisable(GL11.GL_TEXTURE_2D);
    RenderHelper.disableStandardItemLighting();

    GL11.glColor3f(1, 1, 1);
    GL11.glTranslatef((float) x, (float) y, (float) z);

    bindTexture(TextureMap.locationBlocksTexture);

    IIcon iconLogic;
    if (pipe.renderState.isGateLit())
        iconLogic = pipe.pipe.gate.logic.getIconLit();
    else
        iconLogic = pipe.pipe.gate.logic.getIconDark();

    float translateCenter = 0;

    // Render base gate      
    renderGate(pipe, iconLogic, 0, 0.1F, 0, 0);

    float pulseStage = pipe.pipe.gate.getPulseStage() * 2F;

    if (pipe.renderState.isGatePulsing() || pulseStage != 0) {
        // Render pulsing gate
        float amplitude = 0.10F;
        float start = 0.01F;

        if (pulseStage < 1) {
            translateCenter = (pulseStage * amplitude) + start;
        } else {
            translateCenter = amplitude - ((pulseStage - 1F) * amplitude) + start;
        }

        renderGate(pipe, iconLogic, 0, 0.13F, translateCenter, translateCenter);
    }

    IIcon materialIcon = pipe.pipe.gate.material.getIconBlock();
    if (materialIcon != null)
        renderGate(pipe, materialIcon, 1, 0.13F, translateCenter, translateCenter);

    for (IGateExpansion expansion : pipe.pipe.gate.expansions.keySet()) {
        renderGate(pipe, expansion.getOverlayBlock(), 2, 0.13F, translateCenter, translateCenter);
    }

    RenderHelper.enableStandardItemLighting();

    GL11.glPopAttrib();
    GL11.glPopMatrix();
}

From source file:me.undergroundminer3.uee4.pipesModded.AdvPipeRenderer.java

License:Minecraft Mod Public

@Deprecated
//please copy this instead
public void renderPower(Pipe<PipeTransportPower> pipe, double x, double y, double z) {
    initializeDisplayPowerList(pipe.container.getWorldObj());

    PipeTransportPower pow = pipe.transport;

    GL11.glPushMatrix();//from w w  w  .  j  a v  a 2 s .c  o  m
    GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
    GL11.glDisable(GL11.GL_LIGHTING);
    //      GL11.glEnable(GL11.GL_BLEND);

    GL11.glTranslatef((float) x, (float) y, (float) z);

    bindTexture(TextureMap.locationBlocksTexture);

    int[] displayList = pow.overload > 0 ? displayPowerListOverload : displayPowerList;

    for (int side = 0; side < 6; ++side) {
        GL11.glPushMatrix();

        GL11.glTranslatef(0.5F, 0.5F, 0.5F);
        GL11.glRotatef(angleY[side], 0, 1, 0);
        GL11.glRotatef(angleZ[side], 0, 0, 1);
        float scale = 1.0F - side * 0.0001F;
        GL11.glScalef(scale, scale, scale);
        GL11.glTranslatef(-0.5F, -0.5F, -0.5F);

        short stage = pow.clientDisplayPower[side];
        if (stage >= 1) {
            if (stage < displayList.length) {
                GL11.glCallList(displayList[stage]);
            } else {
                GL11.glCallList(displayList[displayList.length - 1]);
            }
        }

        GL11.glPopMatrix();
    }

    GL11.glPopAttrib();
    GL11.glPopMatrix();
}

From source file:me.undergroundminer3.uee4.pipesModded.AdvPipeRenderer.java

License:Minecraft Mod Public

@Deprecated
//please copy this instead
public void renderFluids(Pipe<PipeTransportFluids> pipe, double x, double y, double z) {
    PipeTransportFluids trans = pipe.transport;

    boolean needsRender = false;
    for (int i = 0; i < 7; ++i) {
        FluidStack fluidStack = trans.renderCache[i];
        if (fluidStack != null && fluidStack.amount > 0) {
            needsRender = true;/*from w w w  . j a  va2  s .  co m*/
            break;
        }
    }

    if (!needsRender)
        return;

    GL11.glPushMatrix();
    GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
    GL11.glEnable(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);

    GL11.glTranslatef((float) x, (float) y, (float) z);

    // sides

    boolean sides = false, above = false;

    for (ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) {
        int i = side.ordinal();

        FluidStack fluidStack = trans.renderCache[i];

        if (fluidStack == null || fluidStack.amount <= 0)
            continue;

        if (!pipe.container.isPipeConnected(side))
            continue;

        DisplayFluidList d = getListFromBuffer(fluidStack, pipe.container.getWorldObj());

        if (d == null)
            continue;

        int stage = (int) ((float) fluidStack.amount / (float) (trans.getCapacity()) * (LIQUID_STAGES - 1));

        GL11.glPushMatrix();
        int list = 0;

        switch (ForgeDirection.VALID_DIRECTIONS[i]) {
        case UP:
            above = true;
            list = d.sideVertical[stage];
            break;
        case DOWN:
            GL11.glTranslatef(0, -0.75F, 0);
            list = d.sideVertical[stage];
            break;
        case EAST:
        case WEST:
        case SOUTH:
        case NORTH:
            sides = true;
            // Yes, this is kind of ugly, but was easier than transform the coordinates above.
            GL11.glTranslatef(0.5F, 0.0F, 0.5F);
            GL11.glRotatef(angleY[i], 0, 1, 0);
            GL11.glRotatef(angleZ[i], 0, 0, 1);
            GL11.glTranslatef(-0.5F, 0.0F, -0.5F);
            list = d.sideHorizontal[stage];
            break;
        default:
        }
        bindTexture(TextureMap.locationBlocksTexture);
        RenderUtils.setGLColorFromInt(trans.colorRenderCache[i]);
        GL11.glCallList(list);
        GL11.glPopMatrix();
    }
    // CENTER
    FluidStack fluidStack = trans.renderCache[ForgeDirection.UNKNOWN.ordinal()];

    if (fluidStack != null && fluidStack.amount > 0) {
        DisplayFluidList d = getListFromBuffer(fluidStack, pipe.container.getWorldObj());

        if (d != null) {
            int stage = (int) ((float) fluidStack.amount / (float) (trans.getCapacity()) * (LIQUID_STAGES - 1));

            bindTexture(TextureMap.locationBlocksTexture);
            RenderUtils.setGLColorFromInt(trans.colorRenderCache[ForgeDirection.UNKNOWN.ordinal()]);

            if (above) {
                GL11.glCallList(d.centerVertical[stage]);
            }

            if (!above || sides) {
                GL11.glCallList(d.centerHorizontal[stage]);
            }
        }

    }

    GL11.glPopAttrib();
    GL11.glPopMatrix();
}

From source file:mods.railcraft.client.gui.GuiTools.java

License:Open Source License

public static void drawVillager(EntityVillager villager, int x, int y, int scale, float yaw, float pitch) {
    GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
    GL11.glEnable(GL11.GL_LIGHTING);//from  w w  w.j ava  2 s  .  c o  m
    GL11.glEnable(GL11.GL_DEPTH_TEST);
    GL11.glEnable(GL11.GL_COLOR_MATERIAL);
    GL11.glPushMatrix();
    GL11.glTranslatef((float) x, (float) y, 50.0F);
    GL11.glScalef((float) (-scale), (float) scale, (float) scale);
    GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F);
    GL11.glRotatef(135.0F, 0.0F, 1.0F, 0.0F);
    RenderHelper.enableStandardItemLighting();
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    GL11.glRotatef(-135.0F, 0.0F, 1.0F, 0.0F);
    GL11.glRotatef(-((float) Math.atan((double) (pitch / 40.0F))) * 20.0F, 1.0F, 0.0F, 0.0F);
    villager.renderYawOffset = (float) Math.atan((double) (yaw / 40.0F)) * 20.0F;
    villager.rotationYaw = (float) Math.atan((double) (yaw / 40.0F)) * 40.0F;
    villager.rotationPitch = -((float) Math.atan((double) (pitch / 40.0F))) * 20.0F;
    villager.rotationYawHead = villager.rotationYaw;
    GL11.glTranslatef(0.0F, villager.yOffset, 0.0F);
    RenderManager.instance.playerViewY = 180.0F;
    RenderManager.instance.renderEntityWithPosYaw(villager, 0.0D, 0.0D, 0.0D, 0.0F, 1.0F);
    GL11.glPopMatrix();
    RenderHelper.disableStandardItemLighting();
    GL11.glDisable(GL12.GL_RESCALE_NORMAL);
    OpenGlHelper.setActiveTexture(OpenGlHelper.lightmapTexUnit);
    GL11.glDisable(GL11.GL_TEXTURE_2D);
    OpenGlHelper.setActiveTexture(OpenGlHelper.defaultTexUnit);
    GL11.glPopAttrib();
}

From source file:mods.railcraft.client.render.carts.CartContentRenderer.java

License:Open Source License

public void render(RenderCart renderer, EntityMinecart cart, float light, float time) {
    int blockOffset = cart.getDisplayTileOffset();

    if (cart instanceof ICartContentsTextureProvider) {
        ICartContentsTextureProvider texInterface = (ICartContentsTextureProvider) cart;
        renderer.bindTex(TextureMap.locationBlocksTexture);
        for (int side = 0; side < 6; side++) {
            info.texture[side] = texInterface.getBlockTextureOnSide(side);
        }//w  w  w.j a  v a  2  s.co m
        GL11.glPushMatrix();
        GL11.glTranslatef(0.0F, (float) blockOffset / 16.0F, 0.0F);
        RenderFakeBlock.renderBlockOnInventory(renderer.renderBlocks(), info, 1);
        GL11.glPopMatrix();
        return;
    }

    Block block = cart.func_145820_n();
    if (block != null && block != Blocks.air) {
        int blockMeta = cart.getDisplayTileData();
        renderer.bindTex(TextureMap.locationBlocksTexture);
        GL11.glPushMatrix();
        GL11.glTranslatef(0.0F, (float) blockOffset / 16.0F, 0.0F);
        renderer.renderBlocks().renderBlockAsItem(block, blockMeta, 1);
        GL11.glPopMatrix();
        return;
    }

    ModelTextured contents = CartModelManager.getContentModel(cart.getClass());
    if (contents == CartModelManager.emptyModel)
        return;

    ResourceLocation texture = contents.getTexture();
    if (texture == null)
        return;
    renderer.bindTex(texture);

    GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
    if (!contents.cullBackFaces())
        GL11.glDisable(GL11.GL_CULL_FACE);
    GL11.glPushMatrix();
    GL11.glTranslatef(-0.5F, blockOffset / 16.0F - 0.5F, -0.5F);
    contents.render(cart, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
    GL11.glEnable(GL11.GL_CULL_FACE);
    GL11.glPopMatrix();
    GL11.glPopAttrib();
}

From source file:mods.railcraft.client.render.carts.CartContentRendererCargo.java

License:Open Source License

public void renderCargo(RenderCart renderer, EntityCartCargo cart, float light, float time, int x, int y,
        int z) {/*w w  w  . j  av  a2 s. co m*/
    if (!cart.hasFilter())
        return;

    GL11.glPushMatrix();
    GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
    GL11.glEnable(GL11.GL_LIGHTING);
    GL11.glDisable(GL11.GL_BLEND);

    EntityItem item = new EntityItem(null, 0.0D, 0.0D, 0.0D, cart.getFilterItem().copy());
    item.getEntityItem().stackSize = 1;
    item.hoverStart = 0.0F;

    boolean renderIn3D = RenderBlocks
            .renderItemIn3d(Block.getBlockFromItem(item.getEntityItem().getItem()).getRenderType());

    RenderItem.renderInFrame = true;

    if (!renderIn3D) {
        if (!RenderManager.instance.options.fancyGraphics)
            GL11.glDisable(GL11.GL_CULL_FACE);
        GL11.glTranslatef(0.0F, -0.44F, 0.0F);
        float scale = 1.5F;
        GL11.glScalef(scale, scale, scale);
        GL11.glRotatef(90.F, 0.0F, 1.0F, 0.0F);
        int numIterations = cart.getSlotsFilled();
        rand.setSeed(738);
        for (int i = 0; i < numIterations; i++) {
            GL11.glPushMatrix();
            float tx = (float) rand.nextGaussian() * 0.1F;
            float ty = (float) rand.nextGaussian() * 0.01F;
            float tz = (float) rand.nextGaussian() * 0.2F;
            GL11.glTranslatef(tx, ty, tz);
            renderEntityItem(item);
            GL11.glPopMatrix();
        }
    } else {
        GL11.glTranslatef(-0.08F, -0.44F, -0.18F);
        float scale = 1.8F;
        GL11.glScalef(scale, scale, scale);
        GL11.glRotatef(90.F, 0.0F, 1.0F, 0.0F);
        int slotsFilled = cart.getSlotsFilled();
        int numIterations;
        if (slotsFilled <= 0) {
            numIterations = 0;
        } else {
            numIterations = (int) Math.ceil(slotsFilled / 3.2);
            numIterations = MathHelper.clamp_int(numIterations, 1, 5);
        }
        rand.setSeed(1983);
        for (int i = 0; i < numIterations; i++) {
            GL11.glPushMatrix();
            float tx = (float) rand.nextGaussian() * 0.2F;
            float ty = (float) rand.nextGaussian() * 0.06F;
            float tz = (float) rand.nextGaussian() * 0.15F;
            GL11.glTranslatef(tx, ty, tz);
            renderEntityItem(item);
            GL11.glPopMatrix();
        }
    }

    RenderItem.renderInFrame = false;

    GL11.glPopAttrib();
    GL11.glPopMatrix();
}

From source file:mods.railcraft.client.render.carts.CartContentRendererCargo.java

License:Open Source License

@Override
public void render(RenderCart renderer, EntityMinecart cart, float light, float time) {
    super.render(renderer, cart, light, time);
    GL11.glPushMatrix();//from w  w  w  . java  2 s.  c  o m
    GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
    GL11.glTranslatef(0.0F, 0.3125F, 0.0F);
    GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
    GL11.glDisable(GL11.GL_LIGHTING);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

    int x = (int) (Math.floor(cart.posX));
    int y = (int) (Math.floor(cart.posY));
    int z = (int) (Math.floor(cart.posZ));

    EntityCartCargo cartCargo = (EntityCartCargo) cart;
    renderCargo(renderer, cartCargo, light, time, x, y, z);

    GL11.glPopAttrib();
    GL11.glPopMatrix();
}

From source file:mods.railcraft.client.render.carts.CartContentRendererRedstoneFlux.java

License:Open Source License

@Override
public void render(RenderCart renderer, EntityMinecart cart, float light, float time) {
    super.render(renderer, cart, light, time);
    GL11.glPushMatrix();/*from www  .  j  a  v  a 2s  .c o m*/
    GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
    GL11.glTranslatef(0.0F, 0.3125F, 0.0F);
    GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
    GL11.glDisable(GL11.GL_LIGHTING);
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

    int x = (int) (Math.floor(cart.posX));
    int y = (int) (Math.floor(cart.posY));
    int z = (int) (Math.floor(cart.posZ));

    EntityCartRF cartRF = (EntityCartRF) cart;
    renderer.bindTex(TextureMap.locationBlocksTexture);

    GL11.glTranslatef(0, 0.0625f, 0);

    GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
    RenderFakeBlock.renderBlockForEntity(leadFrame, cart.worldObj, x, y, z, false, true);

    float scale = 0.99F;
    GL11.glScalef(scale, scale, scale);

    float bright = 0.5F + 0.5F * (float) ((double) cartRF.getRF() / (double) cartRF.getMaxRF());
    GL11.glColor4f(bright, bright, bright, 1.0f);

    RenderFakeBlock.renderBlockForEntity(redBlock, cart.worldObj, x, y, z, false, true);

    GL11.glPopAttrib();
    GL11.glPopMatrix();
}

From source file:mods.railcraft.client.render.carts.CartContentRendererTank.java

License:Open Source License

private void renderTank(RenderCart renderer, EntityMinecart cart, float light, float time, int x, int y,
        int z) {//from  w w w .  j  a  v  a2 s .c  o  m
    EntityCartTank cartTank = (EntityCartTank) cart;
    StandardTank tank = cartTank.getTankManager().get(0);
    if (tank.renderData.fluid != null && tank.renderData.amount > 0) {
        int[] displayLists = FluidRenderer.getLiquidDisplayLists(tank.renderData.fluid);
        if (displayLists != null) {
            GL11.glPushMatrix();

            GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
            GL11.glEnable(GL11.GL_BLEND);
            GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);

            GL11.glTranslatef(0, 0.0625f, 0);

            float cap = tank.getCapacity();
            float level = Math.min(tank.renderData.amount, cap) / cap;

            renderer.bindTex(FluidRenderer.getFluidSheet(tank.renderData.fluid));
            FluidRenderer.setColorForTank(tank);
            GL11.glCallList(displayLists[(int) (level * (float) (FluidRenderer.DISPLAY_STAGES - 1))]);

            if (cartTank.isFilling()) {
                ResourceLocation texSheet = FluidRenderer.setupFlowingLiquidTexture(tank.renderData.fluid,
                        fillBlock.texture);
                if (texSheet != null) {
                    renderer.bindTex(texSheet);
                    RenderFakeBlock.renderBlockForEntity(fillBlock, cart.worldObj, x, y, z, false, true);
                }
            }

            GL11.glPopAttrib();
            GL11.glPopMatrix();
        }
    }
}

From source file:mods.railcraft.client.render.carts.CartContentRendererTank.java

License:Open Source License

private void renderFilterItem(RenderCart renderer, EntityCartTank cart, float light, float time, int x, int y,
        int z) {/*w w  w  . jav a 2 s.c o m*/
    if (!cart.hasFilter())
        return;

    GL11.glPushMatrix();
    GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
    GL11.glDisable(GL11.GL_LIGHTING);
    GL11.glDisable(GL11.GL_BLEND);
    //        GL11.glEnable(GL11.GL_CULL_FACE);

    EntityItem item = new EntityItem(null, 0.0D, 0.0D, 0.0D, cart.getFilterItem().copy());
    item.getEntityItem().stackSize = 1;
    item.hoverStart = 0.0F;

    float scale = 1.2F;

    GL11.glPushMatrix();
    GL11.glRotatef(90.F, 0.0F, 1.0F, 0.0F);
    GL11.glTranslatef(0.0F, -0.6F, 0.68F);
    GL11.glScalef(scale, scale, scale);
    renderItem(item);
    GL11.glPopMatrix();

    GL11.glRotatef(-90.F, 0.0F, 1.0F, 0.0F);
    GL11.glTranslatef(0.0F, -0.6F, 0.68F);
    GL11.glScalef(scale, scale, scale);
    renderItem(item);

    GL11.glPopAttrib();
    GL11.glPopMatrix();
}