每当我绘制显示列表时,我光滑的实用程序文本都无法正确呈现。
使用 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)
关于java - glCallList 与 slick-util,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26435672/