我一直在用LWJGL開發一款遊戲,並遇到了一個奇怪的問題。每次我決定隱藏文字時,我的紋理似乎都解開了。這裏是所有的代碼是invlolved當文本未繪製時解除綁定的紋理(LWJGL/Slick-util)
下面是我的Text類中的代碼。
public void draw() {
for (TextData textData : textList) {
drawString(textData.getX(), textData.getY(), textData.getText());
}
}
void drawString(int x, int y, String text) {
for (String line : text.split("\n"))
ttf.drawString(x, y += ttf.getHeight(), line);
}
現在在主類
if (Keyboard.isKeyDown(Keyboard.KEY_H)) {
hideText = !hideText;
}
if (!hideText) {
text.draw();
}
此代碼是結果
http://i.stack.imgur.com/4Y9fk.png
http://i.stack.imgur.com/SUoOf.png
你確定它沒有綁定紋理嗎?我懷疑這可能是使用固定功能管道完成的,並且'drawString(...)'的實現具有啓用(並保持啓用狀態)「GL_TEXTURE_2D」的副作用,該代碼在代碼中的其他地方被禁用。如果不調用'drawString(...)''GL_TEXTURE_2D'可能永遠不能重新啓用。這是所有直覺/猜測,因爲我不知道這個代碼的** ANY **實際上是如何與底層OpenGL API調用相關的。它幾乎可以肯定與綁定紋理無關,但與紋理相關的其他狀態無關。 –