Example usage for org.lwjgl.opengl GL11 glMatrixMode

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

Introduction

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

Prototype

public static native void glMatrixMode(@NativeType("GLenum") int mode);

Source Link

Document

Set the current matrix mode.

Usage

From source file:src.graphics.common.MeshBuffer.java

License:Open Source License

public static void render(float scale, float rotation, Vec3D offset, FloatBuffer vertBuffer,
        FloatBuffer normBuffer, FloatBuffer textBuffer, int numFacets) {
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
    GL11.glLoadIdentity();/*from   ww w  .j  a  va 2s  .  c  om*/
    if (numFacets < 1)
        numFacets = vertBuffer.capacity() / VFP;
    if (offset != null)
        GL11.glTranslatef(offset.x, offset.y, offset.z);
    else
        GL11.glTranslatef(0, 0, 0);
    GL11.glRotatef(rotation, 0, 0, 1);
    GL11.glScalef(scale, scale, scale);
    //
    //  Only set the texture buffer if one has been provided:
    if (textBuffer == null) {
        GL11.glDisable(GL11.GL_TEXTURE_2D);
        GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY);
    } else {
        GL11.glEnable(GL11.GL_TEXTURE_2D);
        GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY);
        GL11.glTexCoordPointer(2, 0, textBuffer);
    }
    //
    //  And only set the normal buffer if one has been provided:
    if (normBuffer == null)
        GL11.glDisableClientState(GL11.GL_NORMAL_ARRAY);
    else {
        GL11.glEnableClientState(GL11.GL_NORMAL_ARRAY);
        GL11.glNormalPointer(0, normBuffer);
    }
    //
    //  Bind the vertex buffer and render-
    GL11.glVertexPointer(3, 0, vertBuffer);
    GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, numFacets * 3);
}

From source file:src.graphics.common.Rendering.java

License:Open Source License

public void renderDisplay() {

    initSettings();/*from w  w w .j ava  2s.  c  om*/

    final Colour BC = backColour == null ? Colour.DARK_GREY : backColour;
    GL11.glClearColor(BC.r, BC.g, BC.b, BC.a);
    GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);

    port.applyView();
    lighting.bindLight(0);

    for (Client client : clients) {
        GL11.glColor4f(1, 1, 1, 1);
        GL11.glMatrixMode(GL11.GL_MODELVIEW);
        final int disabled[] = client.GL_disables();
        if (disabled != null)
            for (int d : disabled)
                GL11.glDisable(d);
        client.renderTo(this);
        if (disabled != null)
            for (int d : disabled)
                GL11.glEnable(d);
    }
    clients.clear();

    if (HUD != null) {
        HUD.renderHUD(new Box2D().set(0, 0, viewWide, viewHigh));
    }

    //
    //  TODO:  Allow a custom image-tex?
    final Colour FC = foreColour == null ? Colour.NONE : foreColour;
    //final Colour FC = Colour.GREY ;
    FC.bindColour();

    GL11.glDisable(GL11.GL_TEXTURE_2D);
    GL11.glBegin(GL11.GL_QUADS);
    UINode.drawQuad(0, 0, viewWide, viewHigh, 0, 0, 1, 1, 0);
    GL11.glEnd();

    Display.update();
}

From source file:src.graphics.common.Viewport.java

License:Open Source License

/**  Used to render 2D image-based sprites, flat mode disables lighting and
  *  face culling and eliminates rotation transforms.
  *//*w ww  .  j  a  v  a2s  .com*/
public void setFlatMode() {
    if (projectMode == MODE_FLAT)
        return;
    GL11.glDisable(GL11.GL_CULL_FACE);
    doOrtho();
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
    GL11.glLoadIdentity();
    projectMode = MODE_FLAT;
}

From source file:src.graphics.common.Viewport.java

License:Open Source License

/**  Used to render 3D joint-based sprites, static model sprites, etc- Iso
  *  mode applies isometric view transforms and enables lighting and face
  *  culling./*w  w  w  . jav a2s  . c  o m*/
  */
public void setIsoMode() {
    if (projectMode == MODE_ISOMETRIC)
        return;
    GL11.glEnable(GL11.GL_CULL_FACE);
    GL11.glEnable(GL11.GL_LIGHTING);
    doOrtho();
    GL11.glRotatef((float) (0 - cameraElevated * 180 / Math.PI), 1, 0, 0);
    GL11.glRotatef((float) (0 - cameraRotation * 180 / Math.PI), 0, 0, 1);
    GL11.glTranslatef(0 - cameraPosition.x, 0 - cameraPosition.y, 0 - cameraPosition.z);
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
    GL11.glLoadIdentity();
    projectMode = MODE_ISOMETRIC;
}

From source file:src.graphics.common.Viewport.java

License:Open Source License

/**  Similar to flat mode, but the coordinates used correspond directly with
  *  screen-pixel coordinates.//from w w w  . jav  a 2s .  c o  m
  */
public void setScreenMode() {
    if (projectMode == MODE_SCREEN)
        return;
    GL11.glDisable(GL11.GL_LIGHTING);
    GL11.glDisable(GL11.GL_CULL_FACE);
    GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glLoadIdentity();
    GL11.glOrtho(0, viewBounds.xdim(), 0, viewBounds.ydim(), -100 * screenS, 100 * screenS);
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
    GL11.glLoadIdentity();
    projectMode = MODE_SCREEN;
}

From source file:src.graphics.common.Viewport.java

License:Open Source License

/**  Sets the OpenGL projection matrix to the correct height and width.
 *//*  w w  w  . ja v  a  2 s .  c o  m*/
private void doOrtho() {
    final float wide = viewBounds.xdim() * 0.5f / screenS, high = viewBounds.ydim() * 0.5f / screenS;
    GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glLoadIdentity();
    GL11.glOrtho(0 - wide, wide, 0 - high, high, -100 / cameraZoom, 100 / cameraZoom);
}

From source file:src.graphics.cutout.ImageSprite.java

License:Open Source License

public void renderTo(Rendering rendering) {
    //// ww  w  .  ja  va2 s  .c o m
    //  Since we've disabled normal lighting, we have to 'fake it' using colour
    //  parameters:
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
    GL11.glLoadIdentity();
    final Colour c = colour == null ? Colour.WHITE : colour;
    if (c.a < 0) {
        GL11.glColor4f(c.r, c.g, c.b, 0 - c.a);
    } else {
        final Lighting l = rendering.lighting;
        GL11.glColor4f(c.r * fog * l.r(), c.g * fog * l.g(), c.b * fog * l.b(), c.a);
    }
    //
    //  Obtain the correct set of UV coordinates for the current frame-
    model.texture.bindTex();
    final float framesUV[][] = model.framesUV();
    final float texUV[] = framesUV[(int) animProgress];
    //
    //  TODO:  Consider replacing this with an aggregate method within the
    //  MeshBuffer class?  Re-implement RenderPass, in other words.
    GL11.glBegin(GL11.GL_TRIANGLES);
    int tI = 0;
    for (Vec3D vert : model.coords) {
        GL11.glTexCoord2f(texUV[tI++], texUV[tI++]);
        GL11.glVertex3f(position.x + (vert.x * scale), position.y + (vert.y * scale),
                position.z + (vert.z * scale));
    }
    GL11.glEnd();
}

From source file:src.graphics.sfx.SFX.java

License:Open Source License

protected void renderTex(Vec3D[] verts, Texture tex) {
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
    GL11.glLoadIdentity();/*from w  w w . j a  va  2s.  co m*/
    tex.bindTex();
    Vec3D v;
    GL11.glDepthMask(false);
    GL11.glBegin(GL11.GL_QUADS);
    GL11.glTexCoord2f(0, 0);
    v = verts[0];
    GL11.glVertex3f(v.x, v.y, v.z);
    GL11.glTexCoord2f(0, 1);
    v = verts[1];
    GL11.glVertex3f(v.x, v.y, v.z);
    GL11.glTexCoord2f(1, 1);
    v = verts[2];
    GL11.glVertex3f(v.x, v.y, v.z);
    GL11.glTexCoord2f(1, 0);
    v = verts[3];
    GL11.glVertex3f(v.x, v.y, v.z);
    GL11.glEnd();
    GL11.glDepthMask(true);
}

From source file:src.graphics.widgets.HUD.java

License:Open Source License

public void renderHUD(Box2D bounds) {
    relBound.set(0, 0, 1, 1);//from  w ww .ja  v a  2 s  .co  m
    absBound.set(0, 0, 0, 0);
    updateAsBase(bounds);

    final UINode oldSelect = selected;
    if ((selected == null) || (mouseState != DRAGGED)) {
        selected = selectionAt(mousePos);
    }
    if (mouseState != HOVERED) {
        //hoverStart = System.currentTimeMillis() ;
    } else if (selected != null && selected != oldSelect) {
        hoverStart = System.currentTimeMillis();
    }
    if (selected != null)
        switch (mouseState) {
        case (HOVERED):
            selected.whenHovered();
            break;
        case (CLICKED):
            selected.whenClicked();
            break;
        case (PRESSED):
            selected.whenPressed();
            break;
        case (DRAGGED):
            selected.whenDragged();
            break;
        }

    GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glLoadIdentity();
    GL11.glOrtho(0, bounds.xdim(), 0, bounds.ydim(), -100, 100);
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
    GL11.glLoadIdentity();
    GL11.glDisable(GL11.GL_LIGHTING);
    GL11.glDisable(GL11.GL_CULL_FACE);
    GL11.glDisable(GL11.GL_DEPTH_TEST);
    super.render();
}

From source file:stevekung.mods.moreplanets.planets.diona.render.entities.RenderDionaCreeperBoss.java

License:Creative Commons License

protected int func_27006_a(EntityDionaCreeperBoss par1EntityCreeper, int par2, float par3) {
    if (par1EntityCreeper.isArmored()) {
        if (par2 == 1) {
            final float f1 = par1EntityCreeper.ticksExisted + par3;
            this.bindTexture(RenderDionaCreeperBoss.invulnerableCreeperTexture);
            GL11.glMatrixMode(GL11.GL_TEXTURE);
            GL11.glLoadIdentity();/*from w w w . j a v a 2 s .c om*/
            final float f2 = f1 * 0.01F;
            final float f3 = f1 * 0.01F;
            GL11.glTranslatef(f2, f3, 0.0F);
            this.setRenderPassModel(this.mainModel);
            GL11.glMatrixMode(GL11.GL_MODELVIEW);
            GL11.glEnable(GL11.GL_BLEND);
            GL11.glColor4f(0.5F, 0.5F, 0.5F, 1.0F);
            GL11.glDisable(GL11.GL_LIGHTING);
            GL11.glBlendFunc(GL11.GL_ONE, GL11.GL_ONE);
            return 1;
        }
        if (par2 == 2) {
            GL11.glMatrixMode(GL11.GL_TEXTURE);
            GL11.glLoadIdentity();
            GL11.glMatrixMode(GL11.GL_MODELVIEW);
            GL11.glEnable(GL11.GL_LIGHTING);
            GL11.glDisable(GL11.GL_BLEND);
        }
    } else if (!par1EntityCreeper.isArmored()) {
        if (par2 == 1) {
            final float f1 = par1EntityCreeper.ticksExisted + par3;
            this.bindTexture(RenderDionaCreeperBoss.powerTexture);
            GL11.glMatrixMode(GL11.GL_TEXTURE);
            GL11.glLoadIdentity();
            final float f2 = f1 * 0.01F;
            final float f3 = f1 * 0.01F;
            GL11.glTranslatef(f2, f3, 0.0F);
            this.setRenderPassModel(this.mainModel);
            GL11.glMatrixMode(GL11.GL_MODELVIEW);
            GL11.glEnable(GL11.GL_BLEND);
            GL11.glColor4f(0.5F, 0.5F, 0.5F, 1.0F);
            GL11.glDisable(GL11.GL_LIGHTING);
            GL11.glBlendFunc(GL11.GL_ONE, GL11.GL_ONE);
            return 1;
        }
        if (par2 == 2) {
            GL11.glMatrixMode(GL11.GL_TEXTURE);
            GL11.glLoadIdentity();
            GL11.glMatrixMode(GL11.GL_MODELVIEW);
            GL11.glEnable(GL11.GL_LIGHTING);
            GL11.glDisable(GL11.GL_BLEND);
        }
    }
    return -1;
}