每当我绘制显示列表时,我的光滑的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渲染文本。
答案 0 :(得分:0)
在 glBindTexture
之外放置 t.bind()
(在您的情况下为glNewList
}可能会有所帮助。
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, texture)
glCallList(newList)
glBindTexture(GL_TEXTURE_2D, 0)