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:buildcraft.core.render.RenderEntityBlock.java

License:Minecraft Mod Public

public void doRenderBlock(EntityBlock entity, double i, double j, double k) {
    if (entity.isDead) {
        return;/*from  w  w w.  j  a va2 s. co m*/
    }

    shadowSize = entity.shadowSize;
    World world = entity.worldObj;
    RenderInfo util = new RenderInfo();
    util.texture = entity.texture;
    bindTexture(TextureMap.locationBlocksTexture);

    for (int iBase = 0; iBase < entity.iSize; ++iBase) {
        for (int jBase = 0; jBase < entity.jSize; ++jBase) {
            for (int kBase = 0; kBase < entity.kSize; ++kBase) {

                util.minX = 0;
                util.minY = 0;
                util.minZ = 0;

                double remainX = entity.iSize - iBase;
                double remainY = entity.jSize - jBase;
                double remainZ = entity.kSize - kBase;

                util.maxX = remainX > 1.0 ? 1.0 : remainX;
                util.maxY = remainY > 1.0 ? 1.0 : remainY;
                util.maxZ = remainZ > 1.0 ? 1.0 : remainZ;

                GL11.glPushMatrix();
                GL11.glTranslatef((float) i, (float) j, (float) k);
                GL11.glRotatef(entity.rotationX, 1, 0, 0);
                GL11.glRotatef(entity.rotationY, 0, 1, 0);
                GL11.glRotatef(entity.rotationZ, 0, 0, 1);
                GL11.glTranslatef(iBase, jBase, kBase);

                int lightX, lightY, lightZ;

                lightX = (int) (Math.floor(entity.posX) + iBase);
                lightY = (int) (Math.floor(entity.posY) + jBase);
                lightZ = (int) (Math.floor(entity.posZ) + kBase);

                GL11.glDisable(2896 /* GL_LIGHTING */);
                renderBlock(util, world, 0, 0, 0, lightX, lightY, lightZ, false, true);
                GL11.glEnable(2896 /* GL_LIGHTING */);
                GL11.glPopMatrix();

            }
        }
    }
}

From source file:buildcraft.core.render.RenderLaser.java

License:Minecraft Mod Public

private void doRender(EntityLaser laser, double x, double y, double z, float f, float f1) {
    if (!laser.isVisible() || laser.getTexture() == null) {
        return;//w  ww.  j  a  va 2 s  .  c  o  m
    }

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

    Position offset = laser.renderOffset();
    GL11.glTranslated(x + offset.x, y + offset.y, z + offset.z);

    // FIXME: WARNING! not using getBox (laser) will kill laser movement.
    // we can use some other method for the animation though.
    doRenderLaser(renderManager.renderEngine, laser.data, laser.getTexture());

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

From source file:buildcraft.core.render.RenderLaser.java

License:Minecraft Mod Public

public static void doRenderLaserWave(TextureManager textureManager, LaserData laser, ResourceLocation texture) {
    if (!laser.isVisible || texture == null) {
        return;//from   w  ww . java2s . co m
    }

    GL11.glPushMatrix();

    laser.update();

    GL11.glRotatef((float) laser.angleZ, 0, 1, 0);
    GL11.glRotatef((float) laser.angleY, 0, 0, 1);

    textureManager.bindTexture(texture);

    float factor = (float) (1.0 / 16.0);

    int indexList = 0;

    initScaledBoxes();

    double x0 = 0;
    double x1 = laser.wavePosition;
    double x2 = x1 + scaledBoxes[0].length * STEP;
    double x3 = laser.renderSize;

    doRenderLaserLine(x1, laser.laserTexAnimation);

    for (double i = x1; i <= x2 && i <= laser.renderSize; i += STEP) {
        GL11.glCallList(scaledBoxes[(int) (laser.waveSize * 99F)][indexList]);
        indexList = (indexList + 1) % scaledBoxes[0].length;
        GL11.glTranslated(STEP, 0, 0);
    }

    if (x2 < x3) {
        doRenderLaserLine(x3 - x2, laser.laserTexAnimation);
    }

    GL11.glPopMatrix();
}

From source file:buildcraft.core.render.RenderLaser.java

License:Minecraft Mod Public

public static void doRenderLaser(TextureManager textureManager, LaserData laser, ResourceLocation texture) {
    if (!laser.isVisible || texture == null) {
        return;/*from ww  w .j ava  2 s .  c o  m*/
    }

    GL11.glPushMatrix();

    GL11.glTranslated(laser.head.x, laser.head.y, laser.head.z);
    laser.update();

    GL11.glRotatef((float) laser.angleZ, 0, 1, 0);
    GL11.glRotatef((float) laser.angleY, 0, 0, 1);

    textureManager.bindTexture(texture);

    float factor = (float) (1.0 / 16.0);

    float lasti = 0;

    int indexList = (int) ((new Date().getTime() / 100) % 20);

    initScaledBoxes();

    doRenderLaserLine(laser.renderSize, laser.laserTexAnimation);

    GL11.glPopMatrix();
}

From source file:buildcraft.core.render.RenderLaser.java

License:Minecraft Mod Public

private static void doRenderLaserLine(double len, int texId) {
    float lasti = 0;

    if (len - 1 > 0) {
        for (float i = 0; i <= len - 1; i += 1) {
            getBox(texId).render(1F / 16F);
            GL11.glTranslated(1, 0, 0);// w  w  w  .  jav  a2s . c  o  m
            lasti = i;
        }
        lasti++;
    }

    GL11.glPushMatrix();
    GL11.glScalef((float) len - lasti, 1, 1);
    getBox(texId).render(1F / 16F);
    GL11.glPopMatrix();

    GL11.glTranslated((float) (len - lasti), 0, 0);
}

From source file:buildcraft.core.render.RenderPathMarker.java

License:Minecraft Mod Public

@Override
public void renderTileEntityAt(TilePathMarker marker, double x, double y, double z, float f, int arg) {
    if (marker != null) {
        GL11.glPushMatrix();//from   ww w.  j a  va 2s  .c o m
        GL11.glPushAttrib(GL11.GL_ENABLE_BIT);

        GL11.glTranslated(x, y, z);
        GL11.glTranslated(-marker.getPos().getX(), -marker.getPos().getY(), -marker.getPos().getZ());

        for (LaserData laser : marker.lasers) {
            if (laser != null) {
                GL11.glPushMatrix();
                RenderLaser.doRenderLaser(TileEntityRendererDispatcher.instance.worldObj,
                        Minecraft.getMinecraft().renderEngine, laser, EntityLaser.LASER_BLUE);
                GL11.glPopMatrix();
            }
        }

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

From source file:buildcraft.core.render.RenderRobot.java

License:Minecraft Mod Public

private void doRender(EntityRobot robot, double x, double y, double z, float f, float f1) {
    GL11.glPushMatrix();//  w ww .j  a  va 2  s  .co m
    GL11.glDisable(GL11.GL_LIGHTING);
    GL11.glTranslated(x, y, z);

    renderManager.renderEngine.bindTexture(robot.getTexture());

    float factor = (float) (1.0 / 16.0);

    box.render(factor);

    if (robot.laser.isVisible) {
        robot.laser.head.x = robot.posX;
        robot.laser.head.y = robot.posY;
        robot.laser.head.z = robot.posZ;

        RenderLaser.doRenderLaser(renderManager.renderEngine, robot.laser, EntityLaser.LASER_TEXTURES[1]);
    }

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

}

From source file:buildcraft.core.render.RenderRobot.java

License:Minecraft Mod Public

@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
    if (RenderManager.instance == null || RenderManager.instance.renderEngine == null) {
        return;//ww w.j av  a 2s .  co  m
    }

    RenderBlocks renderBlocks = (RenderBlocks) data[0];

    GL11.glPushMatrix();
    GL11.glDisable(GL11.GL_LIGHTING);

    // FIXME: Texture localisation should be factorized between items and
    // entities.
    if (item.getItem() == BuildCraftCore.robotBaseItem) {
        RenderManager.instance.renderEngine.bindTexture(TEXTURE_BASE);
    } else if (item.getItem() == BuildCraftCore.robotBuilderItem) {
        RenderManager.instance.renderEngine.bindTexture(TEXTURE_BUILDER);
    } else if (item.getItem() == BuildCraftCore.robotPickerItem) {
        RenderManager.instance.renderEngine.bindTexture(TEXTURE_PICKER);
    }

    float factor = (float) (1.0 / 16.0);

    if (type == ItemRenderType.EQUIPPED_FIRST_PERSON) {
        GL11.glTranslated(0.25F, 0.5F, 0);
    }

    box.render(1F / 16F);

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

From source file:buildcraft.core.RenderEntityBlock.java

License:Minecraft Mod Public

public void doRenderBlock(EntityBlock entity, double i, double j, double k) {
    if (entity.isDead)
        return;/*w w w. j ava2  s . co m*/

    shadowSize = entity.shadowSize;
    World world = entity.worldObj;
    BlockInterface util = new BlockInterface();
    util.texture = entity.texture;

    for (int iBase = 0; iBase < entity.iSize; ++iBase)
        for (int jBase = 0; jBase < entity.jSize; ++jBase)
            for (int kBase = 0; kBase < entity.kSize; ++kBase) {

                util.minX = 0;
                util.minY = 0;
                util.minZ = 0;

                double remainX = entity.iSize - iBase;
                double remainY = entity.jSize - jBase;
                double remainZ = entity.kSize - kBase;

                util.maxX = (remainX > 1.0 ? 1.0 : remainX);
                util.maxY = (remainY > 1.0 ? 1.0 : remainY);
                util.maxZ = (remainZ > 1.0 ? 1.0 : remainZ);

                GL11.glPushMatrix();
                GL11.glTranslatef((float) i + 0.5F, (float) j + 0.5F, (float) k + 0.5F);
                GL11.glRotatef(entity.rotationX, 1, 0, 0);
                GL11.glRotatef(entity.rotationY, 0, 1, 0);
                GL11.glRotatef(entity.rotationZ, 0, 0, 1);
                GL11.glTranslatef(iBase, jBase, kBase);

                MinecraftForgeClient.bindTexture(DefaultProps.TEXTURE_BLOCKS);

                int lightX, lightY, lightZ;

                lightX = (int) (Math.floor(entity.posX) + iBase);
                lightY = (int) (Math.floor(entity.posY) + jBase);
                lightZ = (int) (Math.floor(entity.posZ) + kBase);

                GL11.glDisable(2896 /* GL_LIGHTING */);
                renderBlock(util, world, lightX, lightY, lightZ, false, true);
                GL11.glEnable(2896 /* GL_LIGHTING */);
                GL11.glPopMatrix();

            }
}

From source file:buildcraft.energy.render.RenderEnergyEmitter.java

License:Minecraft Mod Public

public void renderTileEntityAt2(TileEntity tileentity, double x, double y, double z, float f) {

    if (BuildCraftCore.render == RenderMode.NoDynamic) {
        return;//from   www. ja  v  a  2 s.c om
    }

    GL11.glPushMatrix();
    GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
    GL11.glEnable(GL11.GL_LIGHTING);
    GL11.glDisable(GL11.GL_BLEND);
    GL11.glEnable(GL11.GL_CULL_FACE);
    GL11.glColor3f(1, 1, 1);

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

    float step;

    float[] angle = { 0, 0, 0 };

    box.rotateAngleX = angle[0];
    box.rotateAngleY = angle[1];
    box.rotateAngleZ = angle[2];

    float factor = (float) (1.0 / 16.0);

    //bindTexture(EntityLaser.LASER_TEXTURES[3]);
    bindTexture(CHAMBER_TEXTURE);

    box.render(factor);

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