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:cn.academy.misc.client.render.RendererRaySimple.java

License:Open Source License

@Override
protected void drawAtOrigin(T ent, double len, boolean firstPerson) {
    double width = firstPerson ? widthFp : widthTp;
    GL11.glPushMatrix();
    {// w  w  w  .j  a v  a2 s  . co m

        RenderUtils.loadTexture(tex);

        GL11.glTranslated(0, -width * 0.5, 0);
        rect.map.set(0, 0, len / width / ratio, 1);
        rect.setSize(len, width);
        drawer.draw();

    }
    GL11.glPopMatrix();
}

From source file:cn.academy.misc.client.render.RendererRayTiling.java

License:Open Source License

@Override
protected void drawAtOrigin(T ent, double len, boolean h) {
    //len = Math.min(len, 20.0);
    double width = h ? widthFp : widthTp;
    double forw = width * ratio; //per billboard forward in distance.
    int i = 0;/*from ww  w .j a  v  a  2s. c  om*/
    //System.out.println("d-" + dist);
    for (double cur = 0.0; cur < len; cur += forw) {
        RenderUtils.loadTexture(nextTexture(ent, i));
        int rotation = i % 2 == 0 ? 30 : 0;
        GL11.glPushMatrix();
        {
            double u0 = 0.0, u1 = Math.min(1.0, (len - cur) / forw), v0 = 0.0, v1 = 1.0;
            double z0 = cur, z1 = Math.min(len, cur + forw);
            sv(verts[0], 0, -0.5 * width, z0);
            sv(verts[1], 0, 0.5 * width, z0);
            sv(verts[2], 0, 0.5 * width, z1);
            sv(verts[3], 0, -0.5 * width, z1);
            drawPerBillboard(ent, i);
            billboard(u0, v0, u1, v1);
            if (crossed) {
                GL11.glRotated(90, 0, 0, 1);
                billboard(u0, v0, u1, v1);
            }
            i++;
        }
        GL11.glPopMatrix();
    }
}

From source file:cn.academy.misc.client.render.RenderMarker.java

License:Open Source License

@Override
public void doRender(Entity ent, double x, double y, double z, float a, float b) {
    EntityMarker marker = (EntityMarker) ent;
    Entity targ = marker.target;/* w  w w .j  a  va 2s . c o  m*/
    double width = targ.width, height = targ.height;
    Tessellator t = Tessellator.instance;
    if (targ != null) {
        GL11.glDisable(GL11.GL_LIGHTING);
        GL11.glDisable(GL11.GL_TEXTURE_2D);
        GL11.glPushMatrix();
        GL11.glTranslated(x - width / 2, y, z - width / 2);
        GL11.glColor4d(marker.r, marker.g, marker.b, marker.a);
        for (int i = 0; i < 8; ++i) {
            GL11.glPushMatrix();
            boolean rev = i < 4;
            double sx = width * mulArray[i][0], sy = height * mulArray[i][1], sz = width * mulArray[i][2];
            final double len = 0.2 * width;
            GL11.glTranslated(sx, sy, sz);
            GL11.glRotated(rotArray[i], 0, 1, 0);
            GL11.glColor4d(marker.r, marker.g, marker.b, marker.a);
            GL11.glLineWidth(3f);
            OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240f, 240f);
            t.startDrawing(GL11.GL_LINES);
            t.setBrightness(15728880);
            t.addVertex(0, 0, 0);
            t.addVertex(0, rev ? len : -len, 0);
            t.addVertex(0, 0, 0);
            t.addVertex(len, 0, 0);
            t.addVertex(0, 0, 0);
            t.addVertex(0, 0, len);
            t.draw();

            GL11.glPushMatrix();
            GL11.glScaled(0.1, 0.1, 0.1);
            //ACModels.MDL_SOLAR.renderAll();
            GL11.glPopMatrix();
            GL11.glPopMatrix();
        }
        GL11.glPopMatrix();
        GL11.glEnable(GL11.GL_TEXTURE_2D);
        GL11.glEnable(GL11.GL_LIGHTING);
    }
}

From source file:cn.academy.terminal.client.TerminalUI.java

License:GNU General Public License

@Override
public void draw(ScaledResolution sr) {
    //Frame update
    selection = (int) ((mouseY - 0.01) / MAX_MY * 3) * 3 + (int) ((mouseX - 0.01) / MAX_MX * 3);

    if (mouseY == 0) {
        mouseY = 1;/*from www .j  a v a2  s.com*/
        if (scroll > 0)
            scroll--;
    }
    if (mouseY == MAX_MY) {
        mouseY -= 1;
        if (scroll < getMaxScroll())
            scroll++;
    }

    //Draw
    Minecraft mc = Minecraft.getMinecraft();
    long time = GameTimer.getTime();
    if (lastFrameTime == 0)
        lastFrameTime = time;
    long dt = time - lastFrameTime;

    mouseX += helper.dx * SENSITIVITY;
    mouseY -= helper.dy * SENSITIVITY;
    mouseX = Math.max(0, Math.min(MAX_MX, mouseX));
    mouseY = Math.max(0, Math.min(MAX_MY, mouseY));

    buffX = balance(dt, buffX, mouseX);
    buffY = balance(dt, buffY, mouseY);

    helper.dx = helper.dy = 0;

    GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glPushMatrix();
    GL11.glLoadIdentity();

    float aspect = (float) mc.displayWidth / mc.displayHeight;
    GLU.gluPerspective(50, aspect, 1f, 100);

    GL11.glMatrixMode(GL11.GL_MODELVIEW);
    GL11.glPushMatrix();
    GL11.glLoadIdentity();

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

    double scale = 1.0 / 310;
    GL11.glTranslated(.35 * aspect, 1.2, -4);

    GL11.glTranslated(1, -1.8, 0);

    GL11.glRotated(-1.6, 0, 0, 1);
    GL11.glRotated(-18 - 4 * (buffX / MAX_MX - 0.5) + 1 * Math.sin(time / 1000.0), 0, 1, 0);
    GL11.glRotated(7 + 4 * (buffY / MAX_MY - 0.5), 1, 0, 0);

    //DEBUG CODE
    //        GL11.glPointSize(20);
    //        GL11.glColor4d(1, 1, 1, 1);
    //        GL11.glDisable(GL11.GL_TEXTURE_2D);
    //        GL11.glBegin(GL11.GL_POINTS);
    //        GL11.glVertex3f(0, 0, 0);
    //        GL11.glEnd();
    //        GL11.glEnable(GL11.GL_TEXTURE_2D);

    GL11.glTranslated(-1, 1.8, 0);

    GL11.glScaled(scale, -scale, scale);

    gui.draw(mouseX, mouseY);

    {
        GL11.glPushMatrix();
        double csize = (getSelectedApp() == null ? 1 : 1.3) * (20 + Math.sin(time / 300.0) * 2);
        RenderUtils.loadTexture(CURSOR);

        GL11.glColor4d(1, 1, 1, .4);
        GL11.glTranslated(0, 0, -2);
        GL11.glDisable(GL11.GL_ALPHA_TEST);
        GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
        HudUtils.rect(-csize / 2 + buffX, -csize / 2 + buffY + 120, csize, csize);
        GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
        GL11.glPopMatrix();
    }

    GL11.glPopMatrix();

    GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glPopMatrix();

    GL11.glMatrixMode(GL11.GL_MODELVIEW);

    GL11.glEnable(GL11.GL_DEPTH_TEST);
    GL11.glEnable(GL11.GL_ALPHA_TEST);
    GL11.glCullFace(GL11.GL_BACK);
}

From source file:cn.academy.vanilla.electromaster.client.effect.CurrentChargingHUD.java

License:GNU General Public License

@Override
public void draw(ScaledResolution sr) {
    double width = sr.getScaledWidth_double(), height = sr.getScaledHeight_double();
    GL11.glDisable(GL11.GL_ALPHA_TEST);/*from w  w  w .j a v a  2 s  .c  o  m*/

    arcHandler.xScale = width / 2;
    arcHandler.yScale = height / 2;

    double mAlpha;
    if (isBlendingOut()) {
        mAlpha = 1 - (double) (GameTimer.getTime() - blendTime) / BLEND_OUT_TIME;
        if (mAlpha < 0)
            mAlpha = 0;
    } else {
        mAlpha = Math.min((double) this.getTimeActive() / BLEND_TIME, 1.0);
    }

    /* Black Mask */ {
        GL11.glColor4d(0, 0, 0, 0.1 * mAlpha);
        HudUtils.colorRect(0, 0, width, height);
        GL11.glColor4d(1, 1, 1, 1);
    }

    /* Blue Mask */ {
        GL11.glColor4d(1, 1, 1, 1 * mAlpha);
        RenderUtils.loadTexture(mask);
        HudUtils.rect(0, 0, width, height);
    }

    /* SubArc */ {
        GL11.glColor4d(1, 1, 1, isBlendingOut() ? 0.4 : 0.3);
        GL11.glPushMatrix();
        GL11.glTranslated(width / 2, height / 2, 0);
        arcHandler.drawAll();
        GL11.glPopMatrix();
    }

    if (isBlendingOut() && GameTimer.getTime() - blendTime > 1000)
        dispose();
}

From source file:cn.academy.vanilla.electromaster.client.effect.SubArcHandler.java

License:GNU General Public License

public void drawAll() {
    Iterator<SubArc> iter = list.iterator();

    GL11.glDepthMask(false);//  w w w. j av a  2 s  . co  m
    while (iter.hasNext()) {
        SubArc arc = iter.next();
        if (!arc.dead && arc.draw) {

            GL11.glPushMatrix();
            RenderUtils.glTranslate(arc.pos);
            GL11.glRotated(arc.rotZ, 0, 0, 1);
            GL11.glRotated(arc.rotY, 0, 1, 0);
            GL11.glRotated(arc.rotX, 1, 0, 0);

            final double scale = 0.3;
            GL11.glScaled(scale, scale, scale);
            GL11.glTranslated(-arcs[arc.texID].length / 2, 0, 0);
            arcs[arc.texID].draw();
            GL11.glPopMatrix();
        }
    }
    GL11.glDepthMask(true);
}

From source file:cn.academy.vanilla.electromaster.client.effect.SubArcHandler2D.java

License:GNU General Public License

public void drawAll() {
    Iterator<SubArc2D> iter = list.iterator();

    GL11.glDepthMask(false);// w w  w.  j  a va  2  s .c o m
    GL11.glPushMatrix();

    while (iter.hasNext()) {
        SubArc2D arc = iter.next();
        if (!arc.dead && arc.draw) {

            GL11.glPushMatrix();

            GL11.glTranslated(xScale * arc.x - arc.size / 2, yScale * arc.y - arc.size / 2, 0);

            RenderUtils.loadTexture(arcs[arc.texID]);
            HudUtils.rect(0, 0, arc.size, arc.size);

            GL11.glPopMatrix();
        }
    }

    GL11.glPopMatrix();
    GL11.glDepthMask(true);
}

From source file:cn.academy.vanilla.electromaster.client.renderer.RendererCoinThrowing.java

License:GNU General Public License

@Override
public void doRender(Entity var1, double x, double y, double z, float var8, float var9) {
    EntityCoinThrowing etc = (EntityCoinThrowing) var1;
    EntityPlayer player = etc.player;//from   w w w  .  ja  v  a 2 s  . c  om
    boolean fp = player == Minecraft.getMinecraft().thePlayer
            && Minecraft.getMinecraft().gameSettings.thirdPersonView == 0;

    double dt = GameTimer.getTime() % 150;

    if (etc.player == null)
        return;
    //If syncedSingle and in client computer, do not render
    if (etc.isSync && player == Minecraft.getMinecraft().thePlayer)
        return;
    if (etc.posY < player.posY)
        return;
    GL11.glPushMatrix();
    {
        //x = player.posX - RenderManager.renderPosX;
        //y = etc.posY - RenderManager.renderPosY;
        //z = player.posZ - RenderManager.renderPosZ;
        if (player == Minecraft.getMinecraft().thePlayer) {
            x = z = 0;
        }

        GL11.glTranslated(x, y, z);
        if (fp) {
            GL11.glRotated(player.rotationYaw, 0, -1, 0);
        } else
            GL11.glRotated(player.renderYawOffset, 0, -1, 0);
        GL11.glTranslated(-0.63, -0.60, 0.30);
        float scale = 0.3F;
        GL11.glScalef(scale, scale, scale);
        GL11.glTranslated(0.5, 0.5, 0);
        GL11.glRotated((dt * 360.0 / 300.0), etc.axis.xCoord, etc.axis.yCoord, etc.axis.zCoord);
        GL11.glTranslated(-0.5, -0.5, 0);
        RenderUtils.drawEquippedItem(0.0625, Resources.TEX_COIN_FRONT, Resources.TEX_COIN_BACK);
    }
    GL11.glPopMatrix();
}

From source file:cn.academy.vanilla.electromaster.client.renderer.RendererMagHook.java

License:GNU General Public License

@Override
public void doRender(Entity ent, double x, double y, double z, float a, float b) {
    EntityMagHook hook = (EntityMagHook) ent;
    IModelCustom realModel = model;//from   w w  w.j a va 2  s .com
    if (hook.isHit) {
        realModel = model_open;
        hook.preRender();
        x = hook.posX - RenderManager.renderPosX;
        y = hook.posY - RenderManager.renderPosY;
        z = hook.posZ - RenderManager.renderPosZ;
    }

    GL11.glPushMatrix();
    RenderUtils.loadTexture(texture);
    GL11.glTranslated(x, y, z);
    GL11.glRotated(-hook.rotationYaw + 90, 0, 1, 0);
    GL11.glRotated(hook.rotationPitch - 90, 0, 0, 1);
    double scale = 0.0054;
    GL11.glScaled(scale, scale, scale);
    realModel.renderAll();
    GL11.glPopMatrix();
}

From source file:cn.academy.vanilla.generic.client.render.RippleMarkRender.java

License:GNU General Public License

@Override
public void doRender(Entity entity, double x, double y, double z, float a, float b) {
    EntityRippleMark mark = (EntityRippleMark) entity;
    long dt = GameTimer.getTime() - mark.creationTime;

    GL11.glDisable(GL11.GL_CULL_FACE);/* ww w . j  av a 2 s.  c o  m*/
    GL11.glDisable(GL11.GL_DEPTH_TEST);
    GL11.glAlphaFunc(GL11.GL_GREATER, 0);
    GL11.glDepthMask(false);
    GL11.glPushMatrix();

    GL11.glTranslated(x, y, z);

    for (int i = 0; i < timeOffsets.length; ++i) {
        GL11.glPushMatrix();

        long mod = (dt - timeOffsets[i]) % CYCLE;
        float size = getSize(mod);

        GL11.glTranslatef(0, getHeight(mod), 0);
        GL11.glScalef(size, 1, size);
        material.color = mark.color.copy();
        material.color.a *= getAlpha(mod);
        mesh.draw(material);

        GL11.glPopMatrix();
    }

    GL11.glPopMatrix();
    GL11.glDepthMask(true);
    GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.1f);
    GL11.glEnable(GL11.GL_ALPHA_TEST);
    GL11.glEnable(GL11.GL_CULL_FACE);
    GL11.glEnable(GL11.GL_DEPTH_TEST);
}