使用slick-util的glCallList

时间:2014-10-18 02:16:09

标签: java opengl lwjgl

每当我绘制显示列表时,我的光滑的util文本都无法正确呈现。

使用glCallList:

不使用glCallList:

渲染显示列表:

    if (dlLocation != -1) {
        GL11.glPushMatrix();

        GL11.glTranslatef(x, y, 0);
        GL11.glCallList(dlLocation);

        GL11.glPopMatrix();
    }

使用此方法创建所有显示列表:

private static int createDisplayList(Texture t, int width, int height) {
    int returnInt = glGenLists(1);

    glNewList(returnInt, GL_COMPILE);
    {
        t.bind();
        glEnable(GL_TEXTURE_2D);
        glColor4f(1, 1, 1, 1);
        glBegin(GL_QUADS);
        {
            glTexCoord2f(0, 0);
            glVertex2f(0, 0);

            glTexCoord2f(1, 0);
            glVertex2f(width, 0);

            glTexCoord2f(1, 1);
            glVertex2f(width, height);

            glTexCoord2f(0, 1);
            glVertex2f(0, height);
        }
        glEnd();
        glDisable(GL_TEXTURE_2D);
    }
    glEndList();

    return returnInt;
}

我使用slick-util的TrueTypeFont渲染文本。

1 个答案:

答案 0 :(得分:0)

glBindTexture 之外放置 t.bind() (在您的情况下为glNewList}可能会有所帮助。

glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, texture)
glCallList(newList)
glBindTexture(GL_TEXTURE_2D, 0)