Example usage for org.lwjgl.opengl GL11 glGenLists

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

Introduction

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

Prototype

@NativeType("GLuint")
public static native int glGenLists(@NativeType("GLsizei") int s);

Source Link

Document

Returns an integer n such that the indices n,..., n + s - 1 are previously unused (i.e.

Usage

From source file:net.kubin.rendering.GLFont.java

License:Apache License

/**
 * Build the character set display list from the given texture. Creates one
 * quad for each character, with one letter textured onto each quad. Assumes
 * the texture is a 256x256 image containing every character of the charset
 * arranged in a 16x16 grid. Each character is 16x16 pixels. Call
 * destroyFont() to release the display list memory.
 *
 * Should be in ORTHO (2D) mode to render text (see setOrtho()).
 *
 * Special thanks to NeHe and Giuseppe D'Agata for the "2D Texture Font"
 * tutorial (http://nehe.gamedev.net)./*  www  .j a v  a 2  s .  c o m*/
 *
 * @param charSetImage
 *            texture image containing 100 characters in a 10x10 grid
 * @param fontWidth
 *            how many pixels to allow per character on screen
 *
 * @see destroyFont()
 */
public void buildFont(int fontTxtrHandle, int textureSize, int fontSize) {
    int unitSize = fontSize; // pixel size of one block in 10x10 grid
    float usize = (float) unitSize / (float) (textureSize); // UV size of
    // one block in
    // grid
    float chU, chV; // character UV position

    // Create 100 Display Lists
    fontListBase = GL11.glGenLists(100);

    // make a quad for each character in texture
    for (int i = 0; i < 100; i++) {
        int x = (i % 10); // column
        int y = (i / 10); // row

        // make character UV coordinate
        // the character V position is tricky because we have to invert the
        // V coord
        // (char # 0 is at top of texture image, but V 0 is at bottom)
        chU = (float) (x * unitSize) / (float) textureSize;
        chV = (float) (y * unitSize) / (float) textureSize;
        // chV = (float) (textureSize - (y * unitSize) - unitSize) / (float)
        // textureSize;

        GL11.glNewList(fontListBase + i, GL11.GL_COMPILE); // start display
        // list
        {
            GL11.glBegin(GL11.GL_QUADS); // Make A unitSize square quad
            {
                GL11.glTexCoord2f(chU, chV); // Texture Coord (Bottom Left)
                GL11.glVertex2i(0, unitSize);

                GL11.glTexCoord2f(chU + usize, chV); // Texture Coord
                // (Bottom Right)
                GL11.glVertex2i(unitSize, unitSize);

                GL11.glTexCoord2f(chU + usize, chV + usize); // Texture
                // Coord
                // (Top
                // Right)
                GL11.glVertex2i(unitSize, 0);

                GL11.glTexCoord2f(chU, chV + usize); // Texture Coord (Top
                // Left)
                GL11.glVertex2i(0, 0);

            }
            GL11.glEnd();
            GL11.glTranslatef(charwidths[i], 0, 0); // shift right the width
            // of the character
        }
        GL11.glEndList(); // done display list
    }
}

From source file:net.kubin.world.Sky.java

License:Apache License

private void drawShpere(float x, float y, float z) {
    GL11.glPushMatrix();/*  w  ww .j a v  a  2s .c o m*/
    GL11.glTranslatef(x, y, z);
    GL11.glColor3f(_color.x(), _color.y(), _color.z());

    if (_sphereCallList == 0) {
        _sphereCallList = GL11.glGenLists(1);
        GL11.glNewList(_sphereCallList, GL11.GL_COMPILE_AND_EXECUTE);
        GL11.glBegin(GL11.GL_TRIANGLE_FAN);
        GL11.glVertex3f(0, 0, 0);

        for (int i = 0; i <= _vertices; ++i) {
            float angle = MathHelper.f_2PI / _vertices * i;
            float xx = MathHelper.cos(angle) * _radius;
            float zz = MathHelper.sin(angle) * _radius;
            GL11.glVertex3f(xx, -_bend, zz);
        }

        GL11.glEnd();
        GL11.glEndList();
    } else {
        GL11.glCallList(_sphereCallList);
    }

    GL11.glPopMatrix();
}

From source file:net.kubin.world.Sky.java

License:Apache License

private void drawClouds(float x, float y, float z) {
    GL11.glPushMatrix();/*w w  w  .j a  va2s  .  com*/
    GL11.glTranslatef(x, y, z);

    if (_cloudsCallList == 0) {
        _cloudsCallList = GL11.glGenLists(1);
        GL11.glNewList(_cloudsCallList, GL11.GL_COMPILE_AND_EXECUTE);
        float hw = _cloudsTexWidth / 2.0f;
        float hh = _cloudsTexHeight / 2.0f;

        hw *= _cloudsScale;
        hh *= _cloudsScale;

        GL11.glBegin(GL11.GL_QUADS);

        GL11.glTexCoord2f(0, 0);
        GL11.glVertex3f(-hw, 0, -hh);

        GL11.glTexCoord2f(1, 0);
        GL11.glVertex3f(+hw, 0, -hh);

        GL11.glTexCoord2f(1, 1);
        GL11.glVertex3f(+hw, 0, +hh);

        GL11.glTexCoord2f(0, 1);
        GL11.glVertex3f(-hw, 0, +hh);

        GL11.glEnd();

        GL11.glEndList();
    } else {
        GL11.glCallList(_cloudsCallList);
    }

    GL11.glPopMatrix();
}

From source file:net.kubin.world.World.java

License:Apache License

private void renderOverlay() {
    Configuration conf = Kubin.getConfiguration();

    Game.getInstance().initOverlayRendering();

    GL11.glColor3f(1, 1, 1);/*  w  w  w  .ja va2 s.  co  m*/

    if (Game.RENDER_INFORMATION_OVERLAY) {
        GLFont infoFont = FontStorage.getFont("Monospaced_20");

        /* Down Left Info */
        infoFont.print(4, 30, _player.coordinatesToString());
        infoFont.print(4, 45, "Visible Chunks:      " + _visibleChunks.size());
        infoFont.print(4, 60, "Updading Blocks:     " + _updatingBlocks);
        infoFont.print(4, 75, "Total Chunks in RAM: " + _chunkManager.getTotalChunkCount());
        infoFont.print(4, 90, "Local Chunks:        " + _localChunks.size());
        infoFont.print(4, 105, "Total Local Blocks:  " + _localBlockCount);
        infoFont.print(4, 120, "Time:  " + _time);
        infoFont.print(4, 135, "Sunlight:  " + _sunlight);

    }

    /** RENDER **/
    if (_activatedInventory != null) {
        Game.getInstance().renderTransculentOverlayLayer();
        _activatedInventory.renderInventory();
    } else {
        int width = conf.getWidth();
        int height = conf.getHeight();
        // Center Cross
        GL11.glDisable(GL11.GL_TEXTURE_2D);

        if (CENTER_CROSS_CALL_LIST == 0) {
            CENTER_CROSS_CALL_LIST = GL11.glGenLists(1);
            GL11.glNewList(CENTER_CROSS_CALL_LIST, GL11.GL_COMPILE_AND_EXECUTE);

            int crossSize = 7;
            int crossHole = 4;

            GL11.glLineWidth(2.5f);

            GL11.glColor3f(255, 255, 255);
            GL11.glBegin(GL11.GL_LINES);
            GL11.glVertex3f(width / 2f - crossSize - crossHole, height / 2f, 0);
            GL11.glVertex3f(width / 2f - crossHole, height / 2f, 0);

            GL11.glVertex3f(width / 2f + crossSize + crossHole, height / 2f, 0);
            GL11.glVertex3f(width / 2f + crossHole, height / 2f, 0);

            GL11.glVertex3f(width / 2f, height / 2f - crossSize - crossHole, 0);
            GL11.glVertex3f(width / 2f, height / 2f - crossHole, 0);

            GL11.glVertex3f(width / 2f, height / 2f + crossSize + crossHole, 0);
            GL11.glVertex3f(width / 2f, height / 2f + crossHole, 0);

            GL11.glEnd();
            GL11.glEndList();
        } else {
            GL11.glCallList(CENTER_CROSS_CALL_LIST);
        }

        GL11.glEnable(GL11.GL_TEXTURE_2D);

        // Inventory bar
        GL11.glPushMatrix();
        Texture texGui = TextureStorage.getTexture("gui.gui");
        texGui.bind();
        float tileSize = 20.0f / texGui.getImageWidth();

        if (INVENTORY_BAR_CALL_LIST == 0) {
            INVENTORY_BAR_CALL_LIST = GL11.glGenLists(2);

            /* Bar */
            GL11.glNewList(INVENTORY_BAR_CALL_LIST, GL11.GL_COMPILE_AND_EXECUTE);

            GL11.glTranslatef(width / 2.0f - 9 * 20, 0, 0);
            GL11.glColor3f(1.0f, 1.0f, 1.0f);
            GL11.glBegin(GL11.GL_QUADS);

            GL11.glTexCoord2f(0, 0);
            GL11.glVertex2f(0, 40);

            GL11.glTexCoord2f(tileSize * 9, 0);
            GL11.glVertex2f(9 * 40, 40);

            GL11.glTexCoord2f(tileSize * 9, tileSize);
            GL11.glVertex2f(9 * 40, 0);

            GL11.glTexCoord2f(0, tileSize);
            GL11.glVertex2f(0, 0);

            GL11.glEnd();
            GL11.glEndList();

            /* Little frame around selected item */
            float frameTileSize = 24.0f / texGui.getImageWidth();
            float frameTileY = 22.0f / texGui.getImageHeight();

            GL11.glNewList(INVENTORY_BAR_CALL_LIST + 1, GL11.GL_COMPILE);
            GL11.glBegin(GL11.GL_QUADS);

            GL11.glTexCoord2f(0, frameTileY);
            GL11.glVertex2f(0, 48);

            GL11.glTexCoord2f(frameTileSize, frameTileY);
            GL11.glVertex2f(48, 48);

            GL11.glTexCoord2f(frameTileSize, frameTileY + frameTileSize);
            GL11.glVertex2f(48, 0);

            GL11.glTexCoord2f(0, frameTileY + frameTileSize);
            GL11.glVertex2f(0, 0);

            GL11.glEnd();
            GL11.glEndList();
        } else {
            GL11.glCallList(INVENTORY_BAR_CALL_LIST);
        }

        /* Content */
        GL11.glPushMatrix();
        GL11.glTranslatef(20, 20, 0);

        for (int i = 0; i < 9; ++i) {
            InventoryPlace place = getActivePlayer().getInventory().getInventoryPlace(i);

            if (place != null) {
                place.render();
            }

            GL11.glTranslatef(40, 0, 0);
        }

        texGui.bind();
        GL11.glPopMatrix();
        GL11.glTranslatef(getActivePlayer().getSelectedInventoryItemIndex() * 40.0f - 4, -4, 0);
        GL11.glCallList(INVENTORY_BAR_CALL_LIST + 1);

        GL11.glPopMatrix();
    }
}

From source file:net.mechanicalcat.pycode.obj.Model.java

License:Open Source License

public void genList() {
    this.glList = GL11.glGenLists(1);
    GL11.glNewList(this.glList, GL11.GL_COMPILE);
    //        if use_texture: glEnable(GL_TEXTURE_2D)
    GL11.glFrontFace(GL11.GL_CCW);/*from  www . j  a  va 2 s.  c om*/
    GL11.glEnable(GL11.GL_CULL_FACE);

    GL11.glPolygonMode(GL11.GL_FRONT, GL11.GL_FILL);
    GL11.glDepthFunc(GL11.GL_LESS);
    GL11.glCullFace(GL11.GL_BACK);
    String currentMaterial = "";
    Material mtl;
    for (Face face : this.faces) {
        if (!face.material.equals(currentMaterial)) {
            currentMaterial = face.material;
            mtl = this.materials.get(face.material);
            if (mtl == null) {
                GL11.glColor3f(1, 1, 1);
            } else {
                //                    if 'texture_Kd' in mtl:
                //                    # use diffuse texmap
                //                    glBindTexture(GL_TEXTURE_2D, mtl['texture_Kd'])
                GL11.glColor3f(mtl.diffuse.x, mtl.diffuse.y, mtl.diffuse.z);
            }
        }

        GL11.glBegin(GL11.GL_POLYGON);
        for (int i = 0; i < face.vertexes.size(); i++) {
            if (face.normals.get(i) != 0) {
                Vector3f n = this.normals.get(face.normals.get(i));
                GL11.glNormal3f(n.x, n.y, n.z);
            }
            //                if texture_coords[i]:
            //                    glTexCoord2fv(self.texcoords[texture_coords[i] - 1])
            Vector3f v = this.vertices.get(face.vertexes.get(i));
            GL11.glVertex3f(v.x, v.y, v.z);
        }
        GL11.glEnd();
    }

    GL11.glCullFace(GL11.GL_BACK);
    GL11.glPolygonMode(GL11.GL_FRONT, GL11.GL_FILL);

    GL11.glDisable(GL11.GL_CULL_FACE);

    //      if use_texture: glDisable(GL11.GL_TEXTURE_2D);
    GL11.glEndList();
}

From source file:net.quetzi.bluepower.compat.fmp.MultipartBPPart.java

License:Open Source License

@Override
public void renderDynamic(Vector3 pos, float frame, int pass) {

    getPart().renderDynamic(new net.quetzi.bluepower.api.vec.Vector3(pos.x, pos.y, pos.z), pass, frame);

    if (emptyStaticRender == -1) {
        emptyStaticRender = GL11.glGenLists(1);
        GL11.glNewList(emptyStaticRender, GL11.GL_COMPILE);
        GL11.glEndList();/* w w w. j av a  2s.  c om*/
    }
    if (staticRender0 == -1 || getPart().shouldReRender())
        reRenderStatic(new Vector3(0, 0, 0), 0);
    if (staticRender1 == -1 || getPart().shouldReRender())
        reRenderStatic(new Vector3(0, 0, 0), 1);
    if (getPart().shouldReRender())
        getPart().resetRenderUpdate();

    if (getPart().shouldRenderStaticOnPass(pass)) {
        GL11.glPushMatrix();
        {
            GL11.glTranslated(pos.x, pos.y, pos.z);
            if (pass == 0) {
                GL11.glCallList(staticRender0);
            } else {
                GL11.glCallList(staticRender1);
            }
        }
        GL11.glPopMatrix();
    }

}

From source file:net.quetzi.bluepower.compat.fmp.MultipartBPPart.java

License:Open Source License

protected void reRenderStatic(Vector3 pos, int pass) {

    if (pass == 0) {
        if (staticRender0 == -1 || staticRender0 == emptyStaticRender)
            staticRender0 = GL11.glGenLists(1);
        GL11.glNewList(staticRender0, GL11.GL_COMPILE);
    } else {/* www  .j  av a  2  s. c om*/
        if (staticRender1 == -1 || staticRender1 == emptyStaticRender)
            staticRender1 = GL11.glGenLists(1);
        GL11.glNewList(staticRender1, GL11.GL_COMPILE);
    }
    GL11.glPushMatrix();

    boolean result = getPart().shouldRenderStaticOnPass(pass);

    if (result) {
        Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture);
        Tessellator t = Tessellator.instance;
        t.setTranslation(0, 0, 0);
        t.startDrawingQuads();
        result = getPart().renderStatic(new net.quetzi.bluepower.api.vec.Vector3(pos.x, pos.y, pos.z), pass);
        t.draw();
        t.setTranslation(0, 0, 0);
    }

    GL11.glPopMatrix();
    GL11.glEndList();
    if (!result) {
        if (pass == 0) {
            staticRender0 = emptyStaticRender;
        } else {
            staticRender1 = emptyStaticRender;
        }
    }
}

From source file:net.shadowmage.ancientwarfare.core.model.ModelPiece.java

License:Open Source License

protected void renderPrimitives(float tw, float th) {
    if (!compiled) {
        compiled = true;/*from  w  w w  .  j  a va2  s  .  com*/
        if (displayList < 0) {
            displayList = GL11.glGenLists(1);
        }
        GL11.glNewList(displayList, GL11.GL_COMPILE);
        for (Primitive p : primitives) {
            p.render(tw, th);
        }
        GL11.glEndList();
        GL11.glCallList(displayList);
    } else {
        GL11.glCallList(displayList);
    }
}

From source file:net.smert.frameworkgl.opengl.helpers.DisplayListHelper.java

License:Apache License

public int create() {
    return GL11.glGenLists(1);
}

From source file:org.ajgl.graphics.DisplayList.java

License:Open Source License

/**
 * Creates a display list handler based on the number
 * of display lists.//from  w w w  .  j a  v a  2s  .c  om
 * @param number - The number of display lists to create
 * @return The display list handler.
 */
@OpenGLInfo(fwdCompatible = false, openGLVersion = "1.1", status = "Deprecated")
public static int createDisplayListHandler(int number) {
    return GL11.glGenLists(number);
}