Example usage for com.badlogic.gdx.graphics GL10 glPushMatrix

List of usage examples for com.badlogic.gdx.graphics GL10 glPushMatrix

Introduction

In this page you can find the example usage for com.badlogic.gdx.graphics GL10 glPushMatrix.

Prototype

public void glPushMatrix();

Source Link

Usage

From source file:com.digitale.mygdxgame.Renderer.java

License:Open Source License

@SuppressWarnings("unused")
private void renderMoon(GL10 gl, float radius, float x, float y, float z) {
    radius = radius * worldscale;//from   w  w w.  ja va  2 s . co  m
    moonTexture.bind();
    gl.glPushMatrix();
    // move away from origin
    gl.glTranslatef(x, y, z);
    // scale to size of moon
    gl.glScalef(radius, radius, radius);
    moonMesh.render(GL10.GL_TRIANGLES);
    gl.glPopMatrix();

}

From source file:com.digitale.mygdxgame.Renderer.java

License:Open Source License

private void renderActors(GL10 gl) {

    for (int i = 0; i < Stardust3d.actorsList.size(); i++) {
        try {//  w  w  w. jav  a  2 s .  c  o m
            Actor actor = Stardust3d.actorsList.get(i);

            if (actor != null && !(actor.shipname.equals("dead")) && actor.getHitpoints() > 0
                    && actor.getStatus() == 1) {
                // only do for ships in space

                if (actor.getStatus() == 1 && actor.position.dst(Ship.position) < 5000) {
                    if ((actor.visible)) {
                        gl.glPushMatrix();
                        gl.glTranslatef(actor.position.x, actor.position.y, actor.position.z);

                        gl.glScalef(1, 1, 1);
                        String actorName = (actor.get_firstname() + actor.get_surname());

                        if (actorName.equals("Hive AIShield Disruptor")) {

                            gl.glRotatef(actor.yawangle, 0, 1, 0);
                            gl.glRotatef(actor.pitchangle, 1, 0, 0);
                            gl.glRotatef(invaderAngle, 0, 0, 1);
                            shieldDisruptorTexture.bind();
                            shieldDisruptorMesh.render(GL10.GL_TRIANGLES);

                            gl.glEnable(GL10.GL_BLEND);
                            gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE);
                            gl.glScalef(.5f, .5f, .5f);
                            gl.glDisable(GL10.GL_CULL_FACE);
                            gl.glDisable(GL10.GL_LIGHTING);
                            gl.glColor4f(.0f, 1f, 0f, 1);

                            swirlyTexture.bind();
                            // gl.glRotatef(-(invaderAngle * 20), 0, 0, 1);
                            coneMesh.render(GL10.GL_TRIANGLES);
                            gl.glColor4f(1f, 1f, 1f, 1f);
                            gl.glDisable(GL10.GL_BLEND);
                            gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE);
                            gl.glEnable(GL10.GL_LIGHTING);
                            gl.glEnable(GL10.GL_CULL_FACE);
                        } else if (actorName.equals("Hive AIScout")) {

                            gl.glRotatef(actor.yawangle, 0, 1, 0);
                            gl.glRotatef(actor.pitchangle, 1, 0, 0);
                            jetTexture.bind();
                            gl.glScalef(1f, 1f, 1f);
                            shieldDisruptorMesh.render(GL10.GL_TRIANGLES);
                            gl.glScalef(20f, 20f, 20f);
                            gl.glDisable(GL10.GL_CULL_FACE);
                            gl.glEnable(GL10.GL_BLEND);
                            gl.glDisable(GL10.GL_LIGHTING);
                            gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE);
                            gl.glColor4f(.0f, .5f, 1f, 1);
                            gl.glRotatef(-actor.yawangle, 0, 1, 0);
                            gl.glRotatef(-actor.pitchangle, 1, 0, 0);
                            swansongTexture.bind();

                            looking = Util.lookAt(Simulation.camera, actor.position);
                            gl.glRotatef(looking.y, 0, 1, 0);
                            gl.glRotatef(-looking.x, 1, 0, 0);

                            sunMesh.render(GL10.GL_TRIANGLES);
                            gl.glColor4f(1f, 1f, 1f, 1f);
                            gl.glDisable(GL10.GL_BLEND);
                            // gl.glBlendFunc(GL10.GL_SRC_ALPHA,
                            // GL10.GL_ONE);
                            gl.glEnable(GL10.GL_LIGHTING);
                            gl.glEnable(GL10.GL_CULL_FACE);

                        } else {
                            renderActorShip(gl, actor, actor.shipname);
                        }
                        gl.glPopMatrix();
                    }
                }
            }
        } catch (IndexOutOfBoundsException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

From source file:com.digitale.mygdxgame.Renderer.java

License:Open Source License

private void renderShots(GL10 gl, ArrayList<Shot> shots) {
    gl.glColor4f(1, 1, 0, 1);//from ww  w.j av a  2s  . c o m
    gl.glEnable(GL10.GL_BLEND);
    gl.glDisable(GL10.GL_CULL_FACE);
    gl.glDisable(GL10.GL_LIGHTING);
    gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE);
    jetTexture.bind();
    for (int i = 0; i < shots.size(); i++) {
        Shot shot = shots.get(i);
        gl.glPushMatrix();

        gl.glTranslatef(shot.position.x, shot.position.y, shot.position.z);
        gl.glRotatef(shot.yawAngle, 0, 1, 0);
        gl.glRotatef(shot.pitchAngle, 1, 0, 0);
        gl.glScalef(3 + (float) (shot.shotLife) * 1f, (float) (3 + shot.shotLife) * 1f,
                (float) (3 + shot.shotLife) * 1f);
        jetMesh.render(GL10.GL_TRIANGLES);
        gl.glPopMatrix();
    }
    gl.glColor4f(1, 1, 1, 1);
    gl.glEnable(GL10.GL_CULL_FACE);
    gl.glDisable(GL10.GL_BLEND);
    gl.glEnable(GL10.GL_LIGHTING);
}

From source file:com.digitale.mygdxgame.Renderer.java

License:Open Source License

private void renderMissiles(GL10 gl, ArrayList<Missile> missiles) {
    gl.glColor4f(1, 0, 0, 1);/*  ww w .j  a v a 2  s  . c  om*/
    gl.glEnable(GL10.GL_BLEND);
    gl.glDisable(GL10.GL_CULL_FACE);
    gl.glDisable(GL10.GL_LIGHTING);
    gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE);
    jetTexture.bind();
    for (int i = 0; i < missiles.size(); i++) {
        Missile missile = missiles.get(i);
        gl.glPushMatrix();

        gl.glTranslatef(missile.position.x, missile.position.y, missile.position.z);
        gl.glRotatef(missile.yawAngle, 0, 1, 0);
        gl.glRotatef(missile.pitchAngle, 1, 0, 0);
        gl.glScalef(10f, 10f, 10f);
        jetMesh.render(GL10.GL_TRIANGLES);
        gl.glPopMatrix();
    }
    gl.glColor4f(1, 1, 1, 1);
    gl.glEnable(GL10.GL_CULL_FACE);
    gl.glDisable(GL10.GL_BLEND);
    gl.glEnable(GL10.GL_LIGHTING);
}

From source file:com.digitale.mygdxgame.Renderer.java

License:Open Source License

private void renderDusts(GL10 gl, ArrayList<Dust> dusts) {

    gl.glEnable(GL10.GL_BLEND);/*  w w w.  j  a v  a2s . c  om*/
    // gl.glDisable(GL10.GL_CULL_FACE);
    gl.glDisable(GL10.GL_LIGHTING);
    gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);

    dustTexture.bind();
    for (int i = 0; i < dusts.size(); i++) {
        Dust dust = dusts.get(i);
        if (camera.frustum.pointInFrustum(dust.position)) {
            gl.glPushMatrix();
            gl.glColor4f(dust.colour, dust.colour, dust.colour, 1);
            gl.glTranslatef(dust.position.x, dust.position.y, dust.position.z);
            gl.glRotatef(dust.yawAngle + 180, 0, 1, 0);
            gl.glRotatef(dust.pitchAngle, 1, 0, 0);
            gl.glScalef(dust.size, dust.size, dust.size);
            sunMesh.render(GL10.GL_TRIANGLES);
            gl.glPopMatrix();
        }
    }
    gl.glColor4f(1, 1, 1, 1);
    gl.glEnable(GL10.GL_CULL_FACE);
    gl.glDisable(GL10.GL_BLEND);
    gl.glEnable(GL10.GL_LIGHTING);
}

From source file:com.digitale.mygdxgame.Renderer.java

License:Open Source License

@SuppressWarnings("unused")
private void renderTrails(GL10 gl, ArrayList<Trail> trails) {
    gl.glColor4f(0, 1, 1, 1);//from w  ww . j  a va 2s .co m
    jetTexture.bind();
    gl.glEnable(GL10.GL_BLEND);
    gl.glDisable(GL10.GL_CULL_FACE);
    gl.glDisable(GL10.GL_LIGHTING);
    gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE);
    jetTexture.bind();
    for (int i = 0; i < trails.size(); i++) {
        Trail trail = trails.get(i);
        gl.glPushMatrix();
        gl.glRotatef(trail.yawAngle, 0, 1, 0);
        gl.glRotatef(trail.pitchAngle, 1, 0, 0);
        gl.glTranslatef(trail.position.x, trail.position.y, trail.position.z);

        float scale = (Trail.TRAIL_LIFE - trail.life) / 4;
        gl.glScalef(scale, scale, scale * 2.5f);
        jetMesh.render(GL10.GL_TRIANGLES);
        gl.glPopMatrix();
    }
    gl.glColor4f(1, 1, 1, 1);
    gl.glEnable(GL10.GL_CULL_FACE);
    gl.glDisable(GL10.GL_BLEND);
    gl.glEnable(GL10.GL_LIGHTING);
}

From source file:com.digitale.mygdxgame.Renderer.java

License:Open Source License

private void renderExplosions(GL10 gl, ArrayList<Explosion> explosions) {
    gl.glDisable(GL10.GL_CULL_FACE);//  w w w .  j  a va2s .  co  m
    gl.glEnable(GL10.GL_BLEND);
    // gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
    gl.glDisable(GL10.GL_LIGHTING);
    for (int i = 0; i < explosions.size(); i++) {
        Explosion explosion = explosions.get(i);
        gl.glPushMatrix();
        if (explosion.type == Explosion.NORMAL) {
            gl.glTranslatef(explosion.position.x, explosion.position.y, explosion.position.z);
            explosionTexture.bind();
            gl.glScalef(10, 10, 10);
            gl.glRotatef(explosion.yawAngle, 0, 1, 0);
            gl.glRotatef(explosion.pitchAngle, 1, 0, 0);
            explosionMesh.render(GL10.GL_TRIANGLE_FAN,
                    (int) ((explosion.aliveTime / explosion.explosionLiveTime) * 15) * 4, 4);

        } else if (explosion.type == Explosion.SWANSONG) {
            gl.glTranslatef(explosion.position.x, explosion.position.y, explosion.position.z);
            swansongTexture.bind();
            gl.glColor4f(1 - (explosion.aliveTime / 2), 1 - (explosion.aliveTime / 2),
                    1 - (explosion.aliveTime / 2), 1 - (explosion.aliveTime / 2));
            gl.glRotatef(explosion.yawAngle, 0, 1, 0);
            gl.glRotatef(explosion.pitchAngle, 1, 0, 0);
            gl.glScalef(explosion.scale * 10, explosion.scale * 10, explosion.scale * 10);
            sunMesh.render(GL10.GL_TRIANGLES);
            gl.glScalef(1, 1, 1);
            gl.glColor4f(1f, 1f, 1f, 1f);
        } else if (explosion.type == Explosion.RANKUP) {
            gl.glTranslatef(explosion.position.x, explosion.position.y, explosion.position.z);
            lvlupTexture.bind();
            gl.glColor4f(1 - (explosion.aliveTime / 2), 1 - (explosion.aliveTime / 2),
                    1 - (explosion.aliveTime / 2), 1 - (explosion.aliveTime / 2));
            gl.glRotatef(explosion.yawAngle, 0, 1, 0);
            gl.glRotatef(explosion.pitchAngle, 1, 0, 0);
            gl.glRotatef(explosion.aliveTime * 360f, 0, 0, 1);
            gl.glScalef(explosion.scale, explosion.scale, explosion.scale);
            sunMesh.render(GL10.GL_TRIANGLES);
            gl.glScalef(1, 1, 1);
            gl.glColor4f(1f, 1f, 1f, 1f);

        } else if (explosion.type == Explosion.LEVELUP) {
            gl.glTranslatef(explosion.position.x, explosion.position.y, explosion.position.z);
            lvlupTexture.bind();
            gl.glColor4f(1 - (explosion.aliveTime / 4), .5f, //1 - (explosion.aliveTime / 2),
                    .5f - (explosion.aliveTime / 2), 1 - (explosion.aliveTime / 2));
            gl.glRotatef(explosion.yawAngle, 0, 1, 0);
            gl.glRotatef(explosion.pitchAngle, 1, 0, 0);
            gl.glRotatef(explosion.aliveTime * 360f, 0, 0, 1);
            gl.glScalef(explosion.scale, explosion.scale, explosion.scale);
            sunMesh.render(GL10.GL_TRIANGLES);
            gl.glScalef(1, 1, 1);
            gl.glColor4f(1f, 1f, 1f, 1f);
        }
        gl.glPopMatrix();
    }
    gl.glDisable(GL10.GL_BLEND);
    gl.glEnable(GL10.GL_CULL_FACE);
    gl.glEnable(GL10.GL_LIGHTING);
}

From source file:com.digitale.mygdxgame.SplashRenderer.java

License:Open Source License

private void renderStaticShip(GL10 gl, Application app) {

    shipTexture.bind();/*from  w  w  w.j  a va  2 s . c  om*/
    gl.glPushMatrix();
    gl.glTranslatef(0, 0, 0);
    shipMesh.render(GL10.GL_TRIANGLES);
    gl.glPopMatrix();
    float noise = (float) Math.random() / 2;
    renderJet(gl, 2.3f, 1f + noise, 1.1f, -.5f, 1.8f, app);
    noise = (float) Math.random() / 2;
    renderJet(gl, 2.3f, 1f + noise, -1.1f, -.5f, 1.8f, app);

}

From source file:com.digitale.mygdxgame.SplashRenderer.java

License:Open Source License

private void renderSky(GL10 gl) {

    gl.glDisable(GL10.GL_LIGHTING);/*from  www. ja va2  s .c o  m*/
    skyTexture.bind();
    gl.glColor4f(1, 1, 1, 1);

    gl.glPushMatrix();
    gl.glTranslatef(0, 0, 0);
    gl.glScalef(100f, 100f, 100f);
    skyMesh.render(GL10.GL_TRIANGLES);
    gl.glPopMatrix();
    gl.glEnable(GL10.GL_LIGHTING);
}

From source file:com.digitale.mygdxgame.SplashRenderer.java

License:Open Source License

private void renderPlanet(GL10 gl, String texture, boolean uvtype, float radius, float x, float y, float z,
        Application app) {//www .  j a  v a  2 s  . c  o m
    radius = radius * worldscale;

    if (texture.equals("earth")) {
        //render earth/jupiter  texture
        planetTexture.bind();
    } else if (texture.equals("sun")) {
        //render mars/sun  texture
        planetTexture.bind();
    }

    gl.glPushMatrix();
    //move away from origin
    gl.glTranslatef(x, y, z);
    //scale to 10% size of earth
    gl.glScalef(radius, radius, radius);
    gl.glRotatef((Splash.planetmove / 10) - 180, 0, 1, 0);
    if (uvtype == true) {
        //render lower planet texture
        planetMesh.render(GL10.GL_TRIANGLES);
    } else {
        //render upper planet texture
        planetMesh02.render(GL10.GL_TRIANGLES);
    }
    gl.glPopMatrix();

}