Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java glCallList和slick util_Java_Opengl_Lwjgl - Fatal编程技术网

Java glCallList和slick util

Java glCallList和slick util,java,opengl,lwjgl,Java,Opengl,Lwjgl,每当我绘制我的显示列表时,我的光滑的util文本都无法正确渲染 使用glCallList时: 不使用glCallList: 呈现显示列表: if (dlLocation != -1) { GL11.glPushMatrix(); GL11.glTranslatef(x, y, 0); GL11.glCallList(dlLocation); GL11.glPopMatrix(); } 所有显示列表都是使用此

每当我绘制我的显示列表时,我的光滑的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渲染文本。

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

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

当我用这种方式绑定纹理时,它怎么知道把纹理放在哪里?有没有感觉到没有GLT?抱歉,我是openGl新手,除了模仿模式之外,我不太了解:-)准确地说,没关系,我只是不在displaylist创建方法中使用t.bind()?请在这里帮助我。使用glBindTexture,纹理是一个整数。我该如何在Slick Util中使用它呢?虽然不是一个很熟练的用户,但看起来你做得不错。要绑定纹理-
texture.bind()和解除绑定-
TextureImpl.bindNone()棒极了,很乐意帮忙:D