Example usage for org.lwjgl.opengl GL11 glPushMatrix

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

Introduction

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

Prototype

public static native void glPushMatrix();

Source Link

Document

Pushes the current matrix stack down by one, duplicating the current matrix in both the top of the stack and the entry below it.

Usage

From source file:com.dyonovan.tcnodetracker.lib.truetyper.TrueTypeFont.java

License:Open Source License

public void drawString(float x, float y, String whatchars, int startIndex, int endIndex, float scaleX,
        float scaleY, int format, float... rgba) {
    if (rgba.length == 0)
        rgba = new float[] { 1f, 1f, 1f, 1f };
    GL11.glPushMatrix();
    GL11.glScalef(scaleX, scaleY, 1.0f);

    FloatObject floatObject = null;//from  w  w w. j  a va  2 s. c  o  m
    int charCurrent;

    float totalwidth = 0;
    int i = startIndex, d, c;
    float startY = 0;

    switch (format) {
    case ALIGN_RIGHT: {
        d = -1;
        c = correctR;

        while (i < endIndex) {
            if (whatchars.charAt(i) == '\n')
                startY -= fontHeight;
            i++;
        }
        break;
    }
    case ALIGN_CENTER: {
        for (int l = startIndex; l <= endIndex; l++) {
            charCurrent = whatchars.charAt(l);
            if (charCurrent == '\n')
                break;
            if (charCurrent < 256) {
                floatObject = charArray[charCurrent];
            } else {
                floatObject = (FloatObject) customChars.get(new Character((char) charCurrent));
            }
            totalwidth += floatObject.width - correctL;
        }
        totalwidth /= -2;
    }
    case ALIGN_LEFT:
    default: {
        d = 1;
        c = correctL;
        break;
    }

    }
    GL11.glBindTexture(GL11.GL_TEXTURE_2D, fontTextureID);
    Tessellator t = Tessellator.instance;
    t.startDrawingQuads();
    //   GL11.glBegin(GL11.GL_QUADS);
    if (rgba.length == 4)
        t.setColorRGBA_F(rgba[0], rgba[1], rgba[2], rgba[3]);
    while (i >= startIndex && i <= endIndex) {

        charCurrent = whatchars.charAt(i);
        if (charCurrent < 256) {
            floatObject = charArray[charCurrent];
        } else {
            floatObject = (FloatObject) customChars.get(new Character((char) charCurrent));
        }

        if (floatObject != null) {
            if (d < 0)
                totalwidth += (floatObject.width - c) * d;
            if (charCurrent == '\n') {
                startY -= fontHeight * d;
                totalwidth = 0;
                if (format == ALIGN_CENTER) {
                    for (int l = i + 1; l <= endIndex; l++) {
                        charCurrent = whatchars.charAt(l);
                        if (charCurrent == '\n')
                            break;
                        if (charCurrent < 256) {
                            floatObject = charArray[charCurrent];
                        } else {
                            floatObject = (FloatObject) customChars.get(new Character((char) charCurrent));
                        }
                        totalwidth += floatObject.width - correctL;
                    }
                    totalwidth /= -2;
                }
                //if center get next lines total width/2;
            } else {
                drawQuad((totalwidth + floatObject.width) + x / scaleX, startY + y / scaleY,
                        totalwidth + x / scaleX, (startY + floatObject.height) + y / scaleY,
                        floatObject.storedX + floatObject.width, floatObject.storedY + floatObject.height,
                        floatObject.storedX, floatObject.storedY);
                if (d > 0)
                    totalwidth += (floatObject.width - c) * d;
            }
            i += d;

        }
    }
    t.draw();
    //   GL11.glEnd();

    GL11.glPopMatrix();
}

From source file:com.eagle.adventurersalchemy.model.AlchemicalFireModel.java

License:Open Source License

@Override
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {
    GL11.glPushMatrix();
    GL11.glTranslatef(this.frontBorder.offsetX, this.frontBorder.offsetY, this.frontBorder.offsetZ);
    GL11.glTranslatef(this.frontBorder.rotationPointX * f5, this.frontBorder.rotationPointY * f5,
            this.frontBorder.rotationPointZ * f5);
    GL11.glScaled(1.0D, 0.8D, 1.0D);//  w  w w  . jav  a2s.  c  o m
    GL11.glTranslatef(-this.frontBorder.offsetX, -this.frontBorder.offsetY, -this.frontBorder.offsetZ);
    GL11.glTranslatef(-this.frontBorder.rotationPointX * f5, -this.frontBorder.rotationPointY * f5,
            -this.frontBorder.rotationPointZ * f5);
    this.frontBorder.render(f5);
    GL11.glPopMatrix();
    GL11.glPushMatrix();
    GL11.glTranslatef(this.rightBorder.offsetX, this.rightBorder.offsetY, this.rightBorder.offsetZ);
    GL11.glTranslatef(this.rightBorder.rotationPointX * f5, this.rightBorder.rotationPointY * f5,
            this.rightBorder.rotationPointZ * f5);
    GL11.glScaled(1.0D, 0.8D, 1.0D);
    GL11.glTranslatef(-this.rightBorder.offsetX, -this.rightBorder.offsetY, -this.rightBorder.offsetZ);
    GL11.glTranslatef(-this.rightBorder.rotationPointX * f5, -this.rightBorder.rotationPointY * f5,
            -this.rightBorder.rotationPointZ * f5);
    this.rightBorder.render(f5);
    GL11.glPopMatrix();
    GL11.glPushMatrix();
    GL11.glTranslatef(this.backBorder.offsetX, this.backBorder.offsetY, this.backBorder.offsetZ);
    GL11.glTranslatef(this.backBorder.rotationPointX * f5, this.backBorder.rotationPointY * f5,
            this.backBorder.rotationPointZ * f5);
    GL11.glScaled(1.0D, 0.8D, 1.0D);
    GL11.glTranslatef(-this.backBorder.offsetX, -this.backBorder.offsetY, -this.backBorder.offsetZ);
    GL11.glTranslatef(-this.backBorder.rotationPointX * f5, -this.backBorder.rotationPointY * f5,
            -this.backBorder.rotationPointZ * f5);
    this.backBorder.render(f5);
    GL11.glPopMatrix();
    GL11.glPushMatrix();
    GL11.glTranslatef(this.leftBorder.offsetX, this.leftBorder.offsetY, this.leftBorder.offsetZ);
    GL11.glTranslatef(this.leftBorder.rotationPointX * f5, this.leftBorder.rotationPointY * f5,
            this.leftBorder.rotationPointZ * f5);
    GL11.glScaled(1.0D, 0.8D, 1.0D);
    GL11.glTranslatef(-this.leftBorder.offsetX, -this.leftBorder.offsetY, -this.leftBorder.offsetZ);
    GL11.glTranslatef(-this.leftBorder.rotationPointX * f5, -this.leftBorder.rotationPointY * f5,
            -this.leftBorder.rotationPointZ * f5);
    this.leftBorder.render(f5);
    GL11.glPopMatrix();
    GL11.glPushMatrix();
    GL11.glTranslatef(this.pit.offsetX, this.pit.offsetY, this.pit.offsetZ);
    GL11.glTranslatef(this.pit.rotationPointX * f5, this.pit.rotationPointY * f5, this.pit.rotationPointZ * f5);
    GL11.glScaled(1.0D, 0.5D, 1.0D);
    GL11.glTranslatef(-this.pit.offsetX, -this.pit.offsetY, -this.pit.offsetZ);
    GL11.glTranslatef(-this.pit.rotationPointX * f5, -this.pit.rotationPointY * f5,
            -this.pit.rotationPointZ * f5);
    this.pit.render(f5);
    GL11.glPopMatrix();
}

From source file:com.eagle.adventurersalchemy.render.AlchemicalFireItemRender.java

License:Open Source License

@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
    AlchemicalFireModel model = new AlchemicalFireModel();

    GL11.glPushMatrix();
    if (type == ItemRenderType.EQUIPPED_FIRST_PERSON) {
        GL11.glTranslatef(0.5F, 2.0F, 0.5F);
    } else if (RenderItem.renderInFrame) {
        GL11.glTranslatef(0.0F, 2.4F, 0.0F);
    } else if (type == ItemRenderType.EQUIPPED) {
        GL11.glTranslatef(0.5F, 1.9F, 0.5F);
        GL11.glEnable(GL11.GL_CULL_FACE);
    } else if (type == ItemRenderType.INVENTORY) {
        GL11.glTranslatef(0.5F, 1.7F, 0.5F);
    } else if (type == ItemRenderType.ENTITY) {
        GL11.glTranslatef(0.0F, 1.2F, 0.0F);
    } else {/* ww w.j a v  a  2s  .  co m*/
        GL11.glTranslatef(0.5F, 1.2F, 0.5F);
    }

    Minecraft.getMinecraft().getTextureManager()
            .bindTexture(new ResourceLocation(Dictionary.TEXTURE_ALCHEMICAL_FIRE));

    GL11.glPushMatrix();
    GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);

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

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

From source file:com.eagle.adventurersalchemy.render.AlchemicalFireRender.java

License:Open Source License

@Override
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float scale) {
    GL11.glPushMatrix();
    GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F);
    this.bindTexture(modelTexture);

    GL11.glPushMatrix();//from   ww  w.  ja  va  2  s.  com
    GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
    this.model.render(null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
    GL11.glPopMatrix();
    GL11.glPopMatrix();
}

From source file:com.enderville.mod.client.gui.mainmenu.MenuBaseEnderVille.java

License:LGPL

private void drawPanorama(int par1, int par2, float par3) {
    Tessellator tessellator = Tessellator.instance;
    GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glPushMatrix();
    GL11.glLoadIdentity();//from  w w  w.j ava 2  s.c  om
    Project.gluPerspective(120.0F, 1.0F, 0.05F, 10.0F);
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
    GL11.glPushMatrix();
    GL11.glLoadIdentity();
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F);
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glDisable(GL11.GL_ALPHA_TEST);
    GL11.glDisable(GL11.GL_CULL_FACE);
    GL11.glDepthMask(false);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    byte b0 = 8;

    for (int k = 0; k < b0 * b0; ++k) {
        GL11.glPushMatrix();
        float f1 = ((float) (k % b0) / (float) b0 - 0.5F) / 64.0F;
        float f2 = ((float) (k / b0) / (float) b0 - 0.5F) / 64.0F;
        float f3 = 0.0F;
        GL11.glTranslatef(f1, f2, f3);
        GL11.glRotatef(MathHelper.sin(((float) this.panoramaTimer + par3) / 400.0F) * 25.0F + 20.0F, 1.0F, 0.0F,
                0.0F);
        GL11.glRotatef(-((float) this.panoramaTimer + par3) * 0.1F, 0.0F, 1.0F, 0.0F);

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

            if (l == 1) {
                GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
            }

            if (l == 2) {
                GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F);
            }

            if (l == 3) {
                GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
            }

            if (l == 4) {
                GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
            }

            if (l == 5) {
                GL11.glRotatef(-90.0F, 1.0F, 0.0F, 0.0F);
            }

            this.mc.getTextureManager().bindTexture(titlePanoramaPaths[l]);
            tessellator.startDrawingQuads();
            tessellator.setColorRGBA_I(16777215, 255 / (k + 1));
            float f4 = 0.0F;
            tessellator.addVertexWithUV(-1.0D, -1.0D, 1.0D, (double) (0.0F + f4), (double) (0.0F + f4));
            tessellator.addVertexWithUV(1.0D, -1.0D, 1.0D, (double) (1.0F - f4), (double) (0.0F + f4));
            tessellator.addVertexWithUV(1.0D, 1.0D, 1.0D, (double) (1.0F - f4), (double) (1.0F - f4));
            tessellator.addVertexWithUV(-1.0D, 1.0D, 1.0D, (double) (0.0F + f4), (double) (1.0F - f4));
            tessellator.draw();
            GL11.glPopMatrix();
        }

        GL11.glPopMatrix();
        GL11.glColorMask(true, true, true, false);
    }

    tessellator.setTranslation(0.0D, 0.0D, 0.0D);
    GL11.glColorMask(true, true, true, true);
    GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glPopMatrix();
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
    GL11.glPopMatrix();
    GL11.glDepthMask(true);
    GL11.glEnable(GL11.GL_CULL_FACE);
    GL11.glEnable(GL11.GL_ALPHA_TEST);
    GL11.glEnable(GL11.GL_DEPTH_TEST);
}

From source file:com.enderville.mod.client.gui.mainmenu.MenuBaseEnderVille.java

License:LGPL

/**
 * Draws the screen and all the components in it.
 *//*from w w w. ja v  a  2 s .c  o  m*/
public void drawScreen(int par1, int par2, float par3) {
    this.renderSkybox(par1, par2, par3);
    Tessellator tessellator = Tessellator.instance;
    short short1 = 274;
    int k = this.width / 2 - short1 / 2;
    byte b0 = 30;
    this.drawGradientRect(0, 0, this.width, this.height, -2130706433, 16777215);
    this.drawGradientRect(0, 0, this.width, this.height, 0, Integer.MIN_VALUE);
    this.mc.getTextureManager().bindTexture(minecraftTitleTextures);
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

    if ((double) this.updateCounter < 1.0E-4D) {
        this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 99, 44);
        this.drawTexturedModalRect(k + 99, b0 + 0, 129, 0, 27, 44);
        this.drawTexturedModalRect(k + 99 + 26, b0 + 0, 126, 0, 3, 44);
        this.drawTexturedModalRect(k + 99 + 26 + 3, b0 + 0, 99, 0, 26, 44);
        this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
    } else {
        this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 155, 44);
        this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
    }

    tessellator.setColorOpaque_I(16777215);
    GL11.glPushMatrix();
    GL11.glTranslatef((float) (this.width / 2 + 90), 70.0F, 0.0F);
    GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F);
    float f1 = 1.8F - MathHelper
            .abs(MathHelper.sin((float) (Minecraft.getSystemTime() % 1000L) / 1000.0F * (float) Math.PI * 2.0F)
                    * 0.1F);
    f1 = f1 * 100.0F / (float) (this.fontRenderer.getStringWidth(this.splashText) + 32);
    GL11.glScalef(f1, f1, f1);
    this.drawCenteredString(this.fontRenderer, this.splashText, 0, -8, 0x8A0868);
    GL11.glPopMatrix();
    String s = "Minecraft 1.6.4";
    this.drawString(this.fontRenderer, s, 2, this.height - (10 + 0 * (this.fontRenderer.FONT_HEIGHT + 1)),
            Color.YELLOW.getRGB());

    if (this.mc.isDemo()) {
        s = s + " Demo";
    }

    String s1 = this.getVersion();
    drawString(this.fontRenderer, s1, this.width - this.fontRenderer.getStringWidth(s1) - 2, this.height - 10,
            0x8A0868);

    if ((this.field_92025_p != null) && (this.field_92025_p.length() > 0)) {
        drawRect(this.field_92022_t - 2, this.field_92021_u - 2, this.field_92020_v + 2, this.field_92019_w - 1,
                1428160512);
        drawString(this.fontRenderer, this.field_92025_p, this.field_92022_t, this.field_92021_u, 16777215);
    }

    super.drawScreen(par1, par2, par3);
}

From source file:com.endreman0.souleater.client.gui.GuiInfoBook.java

License:Creative Commons License

@Override
public void drawScreen(int mouseX, int mouseY, float f) {
    drawDefaultBackground();//Dark filter over world, like in inventory and options

    GL11.glPushMatrix();//This starts GL drawing.
    mc.renderEngine.bindTexture(texture);
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    GL11.glScaled(scale, scale, scale);/*from  ww w  . j av  a  2  s. c  om*/
    drawTexturedModalRect((int) ((width / 2 - (128 * scale)) * 2 / 3), (int) (height / 2 - (67 * scale)), 0, 0,
            256, 135);
    GL11.glPopMatrix();//Pushing and popping prevents you having to undo all of the translates, rotates and scales

    String[] thisPage = text[2 * page];
    for (int i = 0; i < thisPage.length; i++) {
        fontRendererObj.drawString(thisPage[i],
                x1 + guiWidth / 4 - fontRendererObj.getStringWidth(thisPage[i]) / 2,
                (int) (height * 0.23 + fontRendererObj.FONT_HEIGHT * i), 0x000000, false);
    }
    if (2 * page < lengthPages - 1) {
        thisPage = text[2 * page + 1];
        for (int i = 0; i < thisPage.length; i++) {
            fontRendererObj.drawString(thisPage[i],
                    x1 + guiWidth * 3 / 4 - fontRendererObj.getStringWidth(thisPage[i]) / 2,
                    (int) (height * 0.23 + fontRendererObj.FONT_HEIGHT * i), 0x000000, false);
        }
    }

    super.drawScreen(mouseX, mouseY, f);//Draws buttons and labels
}

From source file:com.ethylamine.fsynthesis.client.renderer.item.DisintegraterItemRenderer.java

License:Open Source License

private void renderCupola(ImmutableTriple<Float, Float, Float> offset) {
    GL11.glPushMatrix();
    GL11.glScalef(SCALE.left, SCALE.middle, SCALE.right);
    GL11.glTranslatef(offset.left, offset.middle, offset.right);

    FMLClientHandler.instance().getClient().renderEngine.bindTexture(DisintegraterTESR.TEXTURE);

    model.render();//from   www .j ava  2 s .c om

    GL11.glPopMatrix();
}

From source file:com.ethylamine.fsynthesis.client.renderer.item.TungstenChestItemRenderer.java

License:Open Source License

private void renderPlotoniumChest(ImmutableTriple<Float, Float, Float> offset) {
    GL11.glPushMatrix();

    GL11.glScalef(SCALE.left, SCALE.middle, SCALE.right);
    GL11.glTranslatef(offset.left, offset.middle, offset.right);
    GL11.glRotatef(180.0f, 1.0f, 0.0f, 0.0f);
    GL11.glRotatef(90.0f, 0.0f, -1.0f, 0.0f);

    FMLClientHandler.instance().getClient().renderEngine.bindTexture(TungstenChestTESR.TEXTURE);

    vanillaChest.renderAll();/*from  www  .  j  a v  a2 s.  c om*/

    GL11.glPopMatrix();
}

From source file:com.ethylamine.fsynthesis.client.renderer.tileentity.DisintegraterTESR.java

License:Open Source License

@SuppressWarnings("NumericCastThatLosesPrecision")
@Override//from www  .  j ava2  s .  c  om
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) {
    if (tileEntity instanceof TileEntityDisintegrater) {
        final TileEntityDisintegrater te = (TileEntityDisintegrater) tileEntity;

        // Open Render buffer
        GL11.glPushMatrix();

        // Position Renderer
        GL11.glTranslatef((float) x, (float) y, (float) z);

        renderDisintegrater(te);

        // Close Render Buffer
        GL11.glPopMatrix();
    }
}