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:hellfirepvp.astralsorcery.client.render.tile.TESRAttunementAltar.java

License:Open Source License

@Override
public void renderTileEntityAt(TileAttunementAltar te, double x, double y, double z, float partialTicks,
        int destroyStage) {
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
    GL11.glPushMatrix();//from  w  w w . java2 s.c  o m

    GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5);
    GL11.glScaled(0.0625, 0.0625, 0.0625);
    GL11.glRotated(180, 1, 0, 0);

    GlStateManager.pushMatrix();
    GlStateManager.rotate(165.0F, 1.0F, 0.0F, 0.0F);
    RenderHelper.enableStandardItemLighting();
    GlStateManager.popMatrix();

    texModelAttunementAltar.bind();
    modelAttunementAltar.renderBase();
    GL11.glPopMatrix();

    float startY = -1.5F;
    float endY = -0.5F;
    float tickPartY = (endY - startY) / ((float) TileAttunementAltar.MAX_START_ANIMATION_TICK);

    float prevPosY = endY + (te.prevActivationTick * tickPartY);
    float posY = endY + (te.activationTick * tickPartY);
    double framePosY = RenderingUtils.interpolate(prevPosY, posY, partialTicks);

    double generalAnimationTick = ClientScheduler.getClientTick() / 4D;
    if (te.animate) {
        if (te.tesrLocked) {
            te.tesrLocked = false;
        }
    } else {
        if (te.tesrLocked) {
            generalAnimationTick = 7.25D;
        } else {
            if (Math.abs(
                    (generalAnimationTick % TileAttunementAltar.MAX_START_ANIMATION_SPIN) - 7.25D) <= 0.3125) {
                generalAnimationTick = 7.25D;
                te.tesrLocked = true;
            }
        }
    }

    float spinDur = TileAttunementAltar.MAX_START_ANIMATION_SPIN;

    for (int i = 1; i < 9; i++) {
        float incrementer = (spinDur / 8) * i;

        double aFrame = generalAnimationTick + incrementer;
        double prevAFrame = generalAnimationTick + incrementer - 1;
        double renderFrame = RenderingUtils.interpolate(prevAFrame, aFrame, 0);

        double partRenderFrame = (renderFrame % spinDur) / spinDur;
        float normalized = (float) (partRenderFrame * 2F * Math.PI);

        float xOffset = MathHelper.cos(normalized);
        float zOffset = MathHelper.sin(normalized);

        GL11.glPushMatrix();
        GL11.glTranslated(x + 0.5, y + framePosY, z + 0.5);
        GL11.glScaled(0.0625, 0.0625, 0.0625);
        GL11.glRotated(180, 1, 0, 0);

        modelAttunementAltar.renderHovering(xOffset, zOffset,
                (float) RenderingUtils.interpolate(
                        ((float) te.prevActivationTick) / TileAttunementAltar.MAX_START_ANIMATION_TICK,
                        ((float) te.activationTick) / TileAttunementAltar.MAX_START_ANIMATION_TICK,
                        partialTicks));

        GL11.glPopMatrix();
    }

    RenderHelper.disableStandardItemLighting();

    GL11.glPopAttrib();
}

From source file:hellfirepvp.astralsorcery.client.render.tile.TESRCelestialCrystals.java

License:Open Source License

@Override
public void renderTileEntityAt(TileCelestialCrystals te, double x, double y, double z, float partialTicks,
        int destroyStage) {
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
    GL11.glPushMatrix();/*from  ww w  . j  ava 2s . co m*/
    RenderHelper.disableStandardItemLighting();
    GL11.glTranslated(x + 0.5, y + 0.1, z + 0.5);
    float size = 0.2F;
    GL11.glScalef(size, size, size);

    int r = 0x59A51481;
    BlockPos at = te.getPos();
    r ^= at.getX();
    r ^= at.getY();
    r ^= at.getZ();
    r = Math.abs(r);
    r = rotMapping[r % rotMapping.length];
    GL11.glRotated(r, 0, 1, 0);

    renderCelestialCrystals(te.getGrowth());
    RenderHelper.enableStandardItemLighting();
    GL11.glPopMatrix();
    GL11.glPopAttrib();
}

From source file:hellfirepvp.astralsorcery.client.render.tile.TESRCollectorCrystal.java

License:Open Source License

@Override
public void renderTileEntityAt(TileCollectorCrystal te, double x, double y, double z, float partialTicks,
        int destroyStage) {
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
    BlockCollectorCrystalBase.CollectorCrystalType type = te.getType();
    long sBase = 1553015L;
    sBase ^= (long) te.getPos().getX();
    sBase ^= (long) te.getPos().getY();
    sBase ^= (long) te.getPos().getZ();
    Color c = type == null ? BlockCollectorCrystalBase.CollectorCrystalType.ROCK_CRYSTAL.displayColor
            : type.displayColor;//ww w .  ja va2 s .c o  m
    if (te.isEnhanced()) {
        RenderingUtils.renderLightRayEffects(x + 0.5, y + 0.5, z + 0.5, c, sBase,
                ClientScheduler.getClientTick(), 20, 1.4F, 50, 25);
        RenderingUtils.renderLightRayEffects(x + 0.5, y + 0.5, z + 0.5, Color.WHITE, sBase,
                ClientScheduler.getClientTick(), 40, 2, 15, 15);
    } else {
        RenderingUtils.renderLightRayEffects(x + 0.5, y + 0.5, z + 0.5, c, sBase,
                ClientScheduler.getClientTick(), 20, 50, 25);
    }

    GL11.glPushMatrix();
    GL11.glTranslated(x + 0.5, y, z + 0.5);
    renderCrystal(type == BlockCollectorCrystalBase.CollectorCrystalType.CELESTIAL_CRYSTAL, true);
    GL11.glPopMatrix();
    GL11.glPopAttrib();
}

From source file:hellfirepvp.astralsorcery.client.render.tile.TESRGrindstone.java

License:Open Source License

@Override
public void renderTileEntityAt(TileGrindstone te, double x, double y, double z, float partialTicks,
        int destroyStage) {
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
    GlStateManager.pushMatrix();//from   w w  w  . j  a  v  a2 s . c  o m
    GlStateManager.translate(x + 0.5, y + 1.65, z + 0.5);
    GlStateManager.rotate(180, 1, 0, 0);
    GlStateManager.scale(0.067, 0.067, 0.067);

    GlStateManager.pushMatrix();
    GlStateManager.rotate(-30.0F, 0.0F, 1.0F, 0.0F);
    GlStateManager.rotate(165.0F, 1.0F, 0.0F, 0.0F);
    RenderHelper.enableStandardItemLighting();
    GlStateManager.popMatrix();

    renderModel(te, 1);
    GlStateManager.popMatrix();
    GL11.glPopAttrib();

    ItemStack grind = te.getGrindingItem();
    if (!grind.isEmpty()) {
        TextureHelper.refreshTextureBindState();
        TextureHelper.setActiveTextureToAtlasSprite();
        if (grind.getItem() instanceof IGrindable) {
            IGrindable grindable = (IGrindable) grind.getItem();
            GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
            GL11.glPushMatrix();
            GL11.glTranslated(x, y, z);
            grindable.applyClientGrindstoneTransforms();
            RenderHelper.enableStandardItemLighting();
            Minecraft.getMinecraft().getRenderItem().renderItem(grind,
                    ItemCameraTransforms.TransformType.GROUND);
            RenderHelper.disableStandardItemLighting();
            GL11.glPopMatrix();
            GL11.glPopAttrib();
        }
        if (SwordSharpenHelper.isSharpenableItem(grind)) {
            GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
            GL11.glPushMatrix();
            GL11.glTranslated(x, y, z);
            IGrindable.applyDefaultGrindstoneTransforms();
            RenderHelper.enableStandardItemLighting();
            Minecraft.getMinecraft().getRenderItem().renderItem(grind,
                    ItemCameraTransforms.TransformType.GROUND);
            RenderHelper.disableStandardItemLighting();
            GL11.glPopMatrix();
            GL11.glPopAttrib();
        }
    }
}

From source file:hellfirepvp.astralsorcery.client.render.tile.TESRLens.java

License:Open Source License

@Override
public void renderTileEntityAt(TileCrystalLens te, double x, double y, double z, float partialTicks,
        int destroyStage) {
    List<BlockPos> linked = te.getLinkedPositions();
    float yaw = 0; //Degree
    float pitch = 0; //Degree
    if (!linked.isEmpty() && linked.size() == 1) {
        BlockPos to = linked.get(0);//w  ww.  ja  va 2 s. co m
        BlockPos from = te.getTrPos();
        Vector3 dir = new Vector3(to).subtract(new Vector3(from));

        pitch = (float) Math.atan2(dir.getY(), Math.sqrt(dir.getX() * dir.getX() + dir.getZ() * dir.getZ()));

        yaw = (float) Math.atan2(dir.getX(), dir.getZ());

        yaw = 180F + (float) Math.toDegrees(-yaw);
        pitch = (float) Math.toDegrees(pitch);
    }
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);

    GL11.glEnable(GL11.GL_BLEND);
    Blending.DEFAULT.apply();

    GL11.glPushMatrix();
    GL11.glTranslated(x + 0.5, y + 1.335, z + 0.5);
    GL11.glScaled(0.055, 0.055, 0.055);
    GL11.glRotated(180, 1, 0, 0);
    GL11.glRotated(yaw % 360, 0, 1, 0);
    renderHandle(yaw, pitch);
    if (te.getLensColor() != null) {
        GL11.glRotated(180, 0, 1, 0);
        Color c = te.getLensColor().wrappedColor;
        GL11.glColor4f(c.getRed() / 255F, c.getGreen() / 255F, c.getBlue() / 255F, 1F);
        renderColoredLens(yaw, -pitch);
        GL11.glColor4f(1F, 1F, 1F, 1F);
    }
    TextureHelper.refreshTextureBindState();
    GL11.glPopMatrix();
    GL11.glPopAttrib();
}

From source file:hellfirepvp.astralsorcery.client.render.tile.TESRPrismLens.java

License:Open Source License

public static void renderColoredPrismsLast() {
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
    GL11.glPushMatrix();/*from ww w  .  ja  va  2 s. co m*/
    RenderingUtils.removeStandartTranslationFromTESRMatrix(Minecraft.getMinecraft().getRenderPartialTicks());

    GL11.glEnable(GL11.GL_BLEND);
    Blending.DEFAULT.apply();

    for (TileCrystalPrismLens prism : coloredPositions) {
        Color c = prism.getLensColor().wrappedColor;
        GL11.glPushMatrix();
        BlockPos pos = prism.getPos();

        GL11.glTranslated(pos.getX() + 0.5, pos.getY() + 1.5, pos.getZ() + 0.5);
        GL11.glScaled(0.0625, 0.0625, 0.0625);
        GL11.glRotated(180, 1, 0, 0);

        GL11.glColor4f(c.getRed() / 255F, c.getGreen() / 255F, c.getBlue() / 255F, 1F);
        renderColoredPrism();
        GL11.glColor4f(1F, 1F, 1F, 1F);

        GL11.glPopMatrix();
    }

    coloredPositions.clear();

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

From source file:hellfirepvp.astralsorcery.client.render.tile.TESRPrismLens.java

License:Open Source License

@Override
public void renderTileEntityAt(TileCrystalPrismLens te, double x, double y, double z, float partialTicks,
        int destroyStage) {
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
    GL11.glPushMatrix();/*from w w  w  .  j a va2s .c  om*/

    if (te.getLinkedPositions().size() > 0) {
        long sBase = 0x5911539513145924L;
        sBase ^= (long) te.getPos().getX();
        sBase ^= (long) te.getPos().getY();
        sBase ^= (long) te.getPos().getZ();
        RenderingUtils.renderLightRayEffects(x + 0.5, y + 0.6, z + 0.5,
                BlockCollectorCrystal.CollectorCrystalType.ROCK_CRYSTAL.displayColor, sBase,
                ClientScheduler.getClientTick(), 9, 50, 25);
    }

    GL11.glTranslated(x + 0.5, y + 0.20, z + 0.5);

    GL11.glScaled(0.6, 0.6, 0.6);
    GL11.glEnable(GL11.GL_BLEND);
    Blending.DEFAULT.apply();
    TESRCollectorCrystal.renderCrystal(false, true);
    RenderHelper.disableStandardItemLighting();
    if (te.getLensColor() != null) {
        coloredPositions.add(te);
        /*GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslated(x + 0.5, y + 1.5, z + 0.5);
        GL11.glScaled(0.0625, 0.0625, 0.0625);
        GL11.glRotated(180, 1, 0, 0);
        GL11.glEnable(GL11.GL_BLEND);
        Blending.DEFAULT.applyServer();
        Color c = te.getLensColor().wrappedColor;
        GL11.glColor4f(c.getRed() / 255F, c.getGreen() / 255F, c.getBlue() / 255F, 1F);
        renderColoredPrism();
        GL11.glColor4f(1F, 1F, 1F, 1F);*/
    }
    TextureHelper.refreshTextureBindState();
    GL11.glPopMatrix();
    GL11.glPopAttrib();
}

From source file:hellfirepvp.astralsorcery.client.render.tile.TESRRitualPedestal.java

License:Open Source License

@Override
public void renderTileEntityAt(TileRitualPedestal te, double x, double y, double z, float partialTicks,
        int destroyStage) {
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
    renderCrystalStack(te, x, y, z);//ww w  . j a va  2s  .  c  o  m

    if (te.shouldDoAdditionalEffects()) {
        renderEffects(te);

        GL11.glPushMatrix();
        GL11.glDisable(GL11.GL_ALPHA_TEST);

        IConstellation c = te.getDisplayConstellation();
        if (c != null) {
            float alphaDaytime = ConstellationSkyHandler.getInstance()
                    .getCurrentDaytimeDistribution(te.getWorld());
            alphaDaytime *= 0.8F;

            int max = 5000;
            int t = (int) (ClientScheduler.getClientTick() % max);
            float halfAge = max / 2F;
            float tr = 1F - (Math.abs(halfAge - t) / halfAge);
            tr *= 2;

            int tick = te.getEffectWorkTick();
            float percRunning = ((float) tick / (float) TileRitualPedestal.MAX_EFFECT_TICK);

            RenderingUtils.removeStandartTranslationFromTESRMatrix(partialTicks);

            float br = 0.6F * (alphaDaytime * percRunning);

            RenderConstellation.renderConstellationIntoWorldFlat(c, c.getRenderColor(),
                    new Vector3(te).add(0.5, 0.04, 0.5), 3 + tr, 2, 0.1F + br);
        }

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

From source file:hellfirepvp.astralsorcery.client.render.tile.TESRRitualPedestal.java

License:Open Source License

private void renderCrystalStack(TileRitualPedestal te, double x, double y, double z) {
    ItemStack i = te.getInventoryHandler().getStackInSlot(0);
    if (!i.isEmpty()) {
        Item it = i.getItem();/*from   ww w  .  j  a  va  2 s . c o m*/
        if (it instanceof ItemTunedCrystalBase) {
            GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
            GL11.glPushMatrix();
            boolean celestial = it instanceof ItemTunedCelestialCrystal;
            Color c = celestial ? BlockCollectorCrystalBase.CollectorCrystalType.CELESTIAL_CRYSTAL.displayColor
                    : BlockCollectorCrystalBase.CollectorCrystalType.ROCK_CRYSTAL.displayColor;
            long sBase = 1553015L;
            sBase ^= (long) te.getPos().getX();
            sBase ^= (long) te.getPos().getY();
            sBase ^= (long) te.getPos().getZ();
            RenderingUtils.renderLightRayEffects(x + 0.5, y + 1.3, z + 0.5, c, sBase,
                    ClientScheduler.getClientTick(), 20, 50, 25);

            GL11.glTranslated(x + 0.5, y + 1, z + 0.5);
            GL11.glScaled(0.6, 0.6, 0.6);
            GL11.glEnable(GL11.GL_BLEND);
            GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
            TESRCollectorCrystal.renderCrystal(celestial, true);

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

From source file:hellfirepvp.astralsorcery.client.render.tile.TESRTelescope.java

License:Open Source License

@Override
public void renderTileEntityAt(TileTelescope te, double x, double y, double z, float partialTicks,
        int destroyStage) {
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
    GlStateManager.pushMatrix();/*  ww  w . j  a  va2  s.  c  o m*/
    GlStateManager.translate(x + 0.5, y + 1.28, z + 0.5);
    GlStateManager.rotate(180, 1, 0, 0);
    GlStateManager.rotate(180, 0, 1, 0);
    GlStateManager.rotate(te.getRotation().ordinal() * 45, 0, 1, 0);
    GlStateManager.scale(0.053, 0.053, 0.053);

    GlStateManager.pushMatrix();
    GlStateManager.rotate((te.getRotation().ordinal()) * 45 + 152.0F, 0.0F, 1.0F, 0.0F);
    GlStateManager.rotate(165.0F, 1.0F, 0.0F, 0.0F);
    RenderHelper.enableStandardItemLighting();
    GlStateManager.popMatrix();

    renderModel(te, 1);
    GlStateManager.popMatrix();
    GL11.glPopAttrib();
}