Example usage for org.lwjgl.opengl GL11 glPushAttrib

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

Introduction

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

Prototype

public static native void glPushAttrib(@NativeType("GLbitfield") int mask);

Source Link

Document

Takes a bitwise OR of symbolic constants indicating which groups of state variables to push onto the server attribute stack.

Usage

From source file:hellfirepvp.astralsorcery.client.effect.light.EffectLightbeam.java

License:Open Source License

public static void renderFast(List<EffectLightbeam> beams) {
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
    GL11.glPushMatrix();/*from w w w .j  a v a  2  s .  co  m*/
    GL11.glColor4f(1F, 1F, 1F, 1F);
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glDisable(GL11.GL_CULL_FACE);
    GL11.glDepthMask(false);
    GL11.glDisable(GL11.GL_ALPHA_TEST);
    GL11.glBlendFunc(GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA);
    SpriteLibrary.spriteLightbeam.getResource().bind();
    //RenderingUtils.removeStandartTranslationFromTESRMatrix(Minecraft.getMinecraft().getRenderPartialTicks());

    Tessellator t = Tessellator.getInstance();
    VertexBuffer vb = t.getBuffer();
    vb.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR);

    Entity rView = Minecraft.getMinecraft().getRenderViewEntity();
    if (rView == null)
        rView = Minecraft.getMinecraft().player;

    for (EffectLightbeam beam : beams) {
        if (rView.getDistanceSq(beam.from.getX(), beam.from.getY(),
                beam.from.getZ()) > Config.maxEffectRenderDistanceSq)
            return;
        beam.renderFast(vb);
    }

    t.draw();

    GL11.glDisable(GL11.GL_BLEND);
    GL11.glEnable(GL11.GL_ALPHA_TEST);
    GL11.glColor4f(1F, 1F, 1F, 1F);
    GL11.glDepthMask(true);
    GL11.glEnable(GL11.GL_CULL_FACE);
    GL11.glPopMatrix();
    GL11.glPopAttrib();
}

From source file:hellfirepvp.astralsorcery.client.effect.light.EffectLightning.java

License:Open Source License

public static void renderFast(float pTicks, List<EffectLightning> toBeRendered) {
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
    GL11.glPushMatrix();/* w w w .  j  a  v  a  2s  . c om*/
    RenderingUtils.removeStandartTranslationFromTESRMatrix(pTicks);
    GL11.glColor4f(1F, 1F, 1F, 1F);
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glDisable(GL11.GL_CULL_FACE);
    GL11.glDisable(GL11.GL_ALPHA_TEST);
    Blending.ADDITIVE_ALPHA.apply();
    connection.bind();

    Tessellator tes = Tessellator.getInstance();
    VertexBuffer buf = tes.getBuffer();
    buf.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR);

    for (EffectLightning fl : new ArrayList<>(toBeRendered)) {
        fl.renderF(pTicks, buf);
    }

    buf.sortVertexData((float) TileEntityRendererDispatcher.staticPlayerX,
            (float) TileEntityRendererDispatcher.staticPlayerY,
            (float) TileEntityRendererDispatcher.staticPlayerZ);
    tes.draw();

    TextureHelper.refreshTextureBindState();
    Blending.DEFAULT.apply();
    GL11.glDisable(GL11.GL_BLEND);
    GL11.glEnable(GL11.GL_ALPHA_TEST);
    GL11.glColor4f(1F, 1F, 1F, 1F);
    GL11.glEnable(GL11.GL_CULL_FACE);
    GL11.glPopMatrix();
    GL11.glPopAttrib();
}

From source file:hellfirepvp.astralsorcery.client.effect.texture.TexturePlane.java

License:Open Source License

@Override
public void render(float partialTicks) {
    Entity rView = Minecraft.getMinecraft().getRenderViewEntity();
    if (rView == null)
        rView = Minecraft.getMinecraft().player;
    double dst = rView.getDistanceSq(pos.getX(), pos.getY(), pos.getZ());
    if (dst > Config.maxEffectRenderDistanceSq)
        return;//from   ww  w.  j a  v  a 2s .  com

    float alphaMul = alphaFunction.getAlpha(counter, maxAge);
    float alphaGrad = (colorOverlay.getAlpha() / 255F) * alphaMul * this.alphaMultiplier;
    if (alphaGradient) {
        alphaGrad = getAlphaDistanceMultiplier(dst) * alphaMul * this.alphaMultiplier;
    }

    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
    GL11.glPushMatrix();
    //removeOldTranslate(rView, partialTicks);
    GL11.glColor4f(colorOverlay.getRed() / 255F, colorOverlay.getGreen() / 255F, colorOverlay.getBlue() / 255F,
            alphaGrad);
    GL11.glEnable(GL11.GL_BLEND);
    Blending.DEFAULT.apply();
    Vector3 axis = this.axis.clone();
    float deg;
    if (ticksPerFullRot >= 0) {
        float anglePercent = ((float) (counter)) / ((float) ticksPerFullRot);
        deg = anglePercent * 360F;
        deg = RenderingUtils.interpolateRotation(lastRenderDegree, deg, partialTicks);
        this.lastRenderDegree = deg;
    } else {
        deg = fixDegree;
    }

    GL11.glDisable(GL11.GL_ALPHA_TEST);
    GL11.glDisable(GL11.GL_CULL_FACE);

    currRenderAroundAxis(partialTicks, Math.toRadians(deg), axis);

    GL11.glEnable(GL11.GL_CULL_FACE);
    GL11.glEnable(GL11.GL_ALPHA_TEST);
    GL11.glColor4f(1F, 1F, 1F, 1F);
    GL11.glDisable(GL11.GL_BLEND);
    GL11.glPopMatrix();
    GL11.glPopAttrib();
}

From source file:hellfirepvp.astralsorcery.client.event.ClientRenderEventHandler.java

License:Open Source License

@SideOnly(Side.CLIENT)
private void renderAlignmentChargeOverlay(float partialTicks) {
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
    GL11.glPushMatrix();//w w  w  .  ja v a 2 s  . c  om
    GL11.glDisable(GL11.GL_ALPHA_TEST);
    GL11.glEnable(GL11.GL_BLEND);
    Blending.DEFAULT.apply();

    float height = 128F;
    float width = 32F;
    float offsetX = 0F;
    float offsetY = 5F;

    texChargeFrame.bind();
    GL11.glColor4f(1F, 1F, 1F, visibilityPermCharge * 0.9F);

    //Draw hud itself
    Tessellator tes = Tessellator.getInstance();
    VertexBuffer vb = tes.getBuffer();
    vb.begin(7, DefaultVertexFormats.POSITION_TEX);
    vb.pos(offsetX, offsetY + height, 10).tex(0, 1).endVertex();
    vb.pos(offsetX + width, offsetY + height, 10).tex(1, 1).endVertex();
    vb.pos(offsetX + width, offsetY, 10).tex(1, 0).endVertex();
    vb.pos(offsetX, offsetY, 10).tex(0, 0).endVertex();
    tes.draw();

    //Draw charge
    float filled = ConstellationPerkLevelManager.getPercToNextLevel(ResearchManager.clientProgress);
    height = 78F;
    offsetY = 27.5F + (1F - filled) * height;
    GL11.glColor4f(255F / 255F, 230F / 255F, 0F / 255F, visibilityPermCharge * 0.9F);
    texChargeCharge.bind();
    height *= filled;

    vb.begin(7, DefaultVertexFormats.POSITION_TEX);
    vb.pos(offsetX, offsetY + height, 10).tex(0, 1).endVertex();
    vb.pos(offsetX + width, offsetY + height, 10).tex(1, 1).endVertex();
    vb.pos(offsetX + width, offsetY, 10).tex(1, 1F - filled).endVertex();
    vb.pos(offsetX, offsetY, 10).tex(0, 1F - filled).endVertex();
    tes.draw();

    GL11.glEnable(GL11.GL_ALPHA_TEST);
    TextureHelper.refreshTextureBindState();
    //Draw level
    int level = ResearchManager.clientProgress.getAlignmentLevel();
    GL11.glColor4f(0.86F, 0.86F, 0.86F, visibilityPermCharge);
    GL11.glDisable(GL11.GL_DEPTH_TEST);
    GL11.glPushMatrix();
    GL11.glTranslated(offsetX + 13, 94, 0);
    GL11.glScaled(1.2, 1.2, 1.2);
    int c = 0x00DDDDDD;
    c |= ((int) (255F * visibilityPermCharge)) << 24;
    if (visibilityPermCharge > 0.1E-4) {
        Minecraft.getMinecraft().fontRenderer.drawStringWithShadow(String.valueOf(level + 1), 0, 0, c);
    }
    GL11.glPopMatrix();
    GL11.glEnable(GL11.GL_DEPTH_TEST);
    GL11.glEnable(GL11.GL_ALPHA_TEST);
    TextureHelper.refreshTextureBindState();
    Blending.DEFAULT.apply();
    GL11.glColor4f(1F, 1F, 1F, 1F);
    GlStateManager.color(1F, 1F, 1F, 1F);
    GL11.glPopMatrix();
    GL11.glPopAttrib();
}

From source file:hellfirepvp.astralsorcery.client.gui.container.GuiAltarAttunement.java

License:Open Source License

@Override
public void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
    AbstractAltarRecipe rec = findCraftableRecipe();
    if (rec != null) {
        ItemStack out = rec.getOutputForRender();
        zLevel = 10F;/*from  w w w.j  ava2  s  .c  om*/
        itemRender.zLevel = 10F;

        RenderHelper.enableGUIStandardItemLighting();

        GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
        GL11.glPushMatrix();
        GL11.glTranslated(190, 35, 0);
        GL11.glScaled(2.5, 2.5, 2.5);

        itemRender.renderItemAndEffectIntoGUI(mc.player, out, 0, 0);
        itemRender.renderItemOverlayIntoGUI(fontRenderer, out, 0, 0, null);

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

        //RenderHelper.disableStandardItemLighting();

        zLevel = 0F;
        itemRender.zLevel = 0F;

        TextureHelper.refreshTextureBindState();
    }
}

From source file:hellfirepvp.astralsorcery.client.gui.container.GuiAltarAttunement.java

License:Open Source License

@Override
public void renderGuiBackground(float partialTicks, int mouseX, int mouseY) {
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
    GL11.glPushMatrix();//from   w w w  .j  a v  a2 s . c o  m

    GL11.glDisable(GL11.GL_ALPHA_TEST);
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

    float percFilled;
    if (containerAltarBase.tileAltar.getMultiblockState()) {
        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        percFilled = containerAltarBase.tileAltar.getAmbientStarlightPercent();
    } else {
        GL11.glColor4f(1.0F, 0F, 0F, 1.0F);
        percFilled = 1.0F;
    }

    texBlack.bind();
    drawRect(guiLeft + 11, guiTop + 104, 232, 10);

    if (percFilled > 0) {
        SpriteSheetResource spriteStarlight = SpriteLibrary.spriteStarlight;
        spriteStarlight.getResource().bind();
        int t = containerAltarBase.tileAltar.getTicksExisted();
        Tuple<Double, Double> uvOffset = spriteStarlight.getUVOffset(t);
        drawRect(guiLeft + 11, guiTop + 104, (int) (232 * percFilled), 10, uvOffset.key, uvOffset.value,
                spriteStarlight.getULength() * percFilled, spriteStarlight.getVLength());

        AbstractAltarRecipe aar = findCraftableRecipe(true);
        if (aar != null) {
            int req = aar.getPassiveStarlightRequired();
            int has = containerAltarBase.tileAltar.getStarlightStored();
            if (has < req) {
                int max = containerAltarBase.tileAltar.getMaxStarlightStorage();
                float percReq = (float) (req - has) / (float) max;
                int from = (int) (232 * percFilled);
                int to = (int) (232 * percReq);
                GL11.glColor4f(0.2F, 0.5F, 1.0F, 0.4F);

                drawRect(guiLeft + 11 + from, guiTop + 104, to, 10,
                        uvOffset.key + spriteStarlight.getULength() * percFilled, uvOffset.value,
                        spriteStarlight.getULength() * percReq, spriteStarlight.getVLength());
            }
        }
    }

    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

    texAltarAttenuation.bind();
    drawRect(guiLeft, guiTop, xSize, ySize);

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

From source file:hellfirepvp.astralsorcery.client.gui.container.GuiAltarConstellation.java

License:Open Source License

@Override
public void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
    AbstractAltarRecipe rec = findCraftableRecipe();
    if (rec != null) {
        ItemStack out = rec.getOutputForRender();
        zLevel = 10F;/*from   ww w  .j a  v  a2s.  c o m*/
        itemRender.zLevel = 10F;

        RenderHelper.enableGUIStandardItemLighting();

        GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
        GL11.glPushMatrix();
        GL11.glTranslated(190, 35, 0);
        GL11.glScaled(2.5, 2.5, 2.5);

        itemRender.renderItemAndEffectIntoGUI(mc.player, out, 0, 0);
        itemRender.renderItemOverlayIntoGUI(fontRenderer, out, 0, 0, null);

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

        zLevel = 0F;
        itemRender.zLevel = 0F;

        TextureHelper.refreshTextureBindState();
    }
}

From source file:hellfirepvp.astralsorcery.client.gui.container.GuiAltarConstellation.java

License:Open Source License

@Override
public void renderGuiBackground(float partialTicks, int mouseX, int mouseY) {
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
    GL11.glPushMatrix();//from  ww  w .  ja va 2 s.  co  m

    GL11.glDisable(GL11.GL_ALPHA_TEST);
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

    float percFilled;
    if (containerAltarBase.tileAltar.getMultiblockState()) {
        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        percFilled = containerAltarBase.tileAltar.getAmbientStarlightPercent();
    } else {
        GL11.glColor4f(1.0F, 0F, 0F, 1.0F);
        percFilled = 1.0F;
    }

    texBlack.bind();
    drawRect(guiLeft + 11, guiTop + 104, 232, 10);

    if (percFilled > 0) {
        SpriteSheetResource spriteStarlight = SpriteLibrary.spriteStarlight;
        spriteStarlight.getResource().bind();
        int t = containerAltarBase.tileAltar.getTicksExisted();
        Tuple<Double, Double> uvOffset = spriteStarlight.getUVOffset(t);
        drawRect(guiLeft + 11, guiTop + 104, (int) (232 * percFilled), 10, uvOffset.key, uvOffset.value,
                spriteStarlight.getULength() * percFilled, spriteStarlight.getVLength());

        AbstractAltarRecipe aar = findCraftableRecipe(true);
        if (aar != null) {
            int req = aar.getPassiveStarlightRequired();
            int has = containerAltarBase.tileAltar.getStarlightStored();
            if (has < req) {
                int max = containerAltarBase.tileAltar.getMaxStarlightStorage();
                float percReq = (float) (req - has) / (float) max;
                int from = (int) (232 * percFilled);
                int to = (int) (232 * percReq);
                GL11.glColor4f(0.2F, 0.5F, 1.0F, 0.4F);

                drawRect(guiLeft + 11 + from, guiTop + 104, to, 10,
                        uvOffset.key + spriteStarlight.getULength() * percFilled, uvOffset.value,
                        spriteStarlight.getULength() * percReq, spriteStarlight.getVLength());
            }
        }
    }

    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

    texAltarConstellation.bind();
    drawRect(guiLeft, guiTop, xSize, ySize);

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

From source file:hellfirepvp.astralsorcery.client.gui.container.GuiAltarDiscovery.java

License:Open Source License

@Override
public void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
    AbstractAltarRecipe rec = findCraftableRecipe();
    if (rec != null) {
        ItemStack out = rec.getOutputForRender();
        zLevel = 10F;// w ww  . j a  va2  s .c  om
        itemRender.zLevel = 10F;

        RenderHelper.enableGUIStandardItemLighting();

        GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
        GL11.glPushMatrix();
        GL11.glTranslated(130, 20, 0);
        GL11.glScaled(1.7, 1.7, 1.7);

        itemRender.renderItemAndEffectIntoGUI(mc.player, out, 0, 0);
        itemRender.renderItemOverlayIntoGUI(fontRenderer, out, 0, 0, null);

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

        RenderHelper.disableStandardItemLighting();

        zLevel = 0F;
        itemRender.zLevel = 0F;

        TextureHelper.refreshTextureBindState();
    }
}

From source file:hellfirepvp.astralsorcery.client.gui.container.GuiAltarDiscovery.java

License:Open Source License

@Override
public void renderGuiBackground(float partialTicks, int mouseX, int mouseY) {
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
    GL11.glPushMatrix();/*www .  j ava 2s  .c o  m*/

    GL11.glDisable(GL11.GL_ALPHA_TEST);
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

    texBlack.bind();
    drawRect(guiLeft + 6, guiTop + 69, 165, 10);

    float percFilled;
    if (containerAltarBase.tileAltar.getMultiblockState()) {
        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        percFilled = containerAltarBase.tileAltar.getAmbientStarlightPercent();
    } else {
        GL11.glColor4f(1.0F, 0F, 0F, 1.0F);
        percFilled = 1.0F;
    }

    if (percFilled > 0) {
        SpriteSheetResource spriteStarlight = SpriteLibrary.spriteStarlight;
        spriteStarlight.getResource().bind();
        int t = containerAltarBase.tileAltar.getTicksExisted();
        Tuple<Double, Double> uvOffset = spriteStarlight.getUVOffset(t);
        drawRect(guiLeft + 6, guiTop + 69, (int) (165 * percFilled), 10, uvOffset.key, uvOffset.value,
                spriteStarlight.getULength() * percFilled, spriteStarlight.getVLength());

        AbstractAltarRecipe aar = findCraftableRecipe(true);
        if (aar != null) {
            int req = aar.getPassiveStarlightRequired();
            int has = containerAltarBase.tileAltar.getStarlightStored();
            if (has < req) {
                int max = containerAltarBase.tileAltar.getMaxStarlightStorage();
                float percReq = (float) (req - has) / (float) max;
                int from = (int) (165 * percFilled);
                int to = (int) (165 * percReq);
                GL11.glColor4f(0.2F, 0.5F, 1.0F, 0.4F);

                drawRect(guiLeft + 6 + from, guiTop + 69, to, 10,
                        uvOffset.key + spriteStarlight.getULength() * percFilled, uvOffset.value,
                        spriteStarlight.getULength() * percReq, spriteStarlight.getVLength());
            }
        }
    }

    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

    texAltarDiscovery.bind();
    drawRect(guiLeft, guiTop, xSize, ySize);

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