[英]Textures unbinding when text isn't drawn (LWJGL/Slick-util)
我一直在与LWJGL合作开发游戏,但遇到了一个奇怪的问题。 每次我决定隐藏文本时,我的纹理似乎都无法绑定。 这是所有代码
下面是我的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();
}
这是结果
当绘制文本时,图像必定会绘制文本,我猜测通常lwjgl / slick在绘制文本时会保存当前纹理,然后在以后重新绑定。 我猜这可能是一个错误,在隐藏时它不会重新绑定纹理,但仍绑定另一个纹理?
在仔细考虑我的代码之后,我发现我的Entity类正在调用glBindTexture(GL_TEXTURE_2D, 0);
当它被绘制并且绘制文本时再次启用它。 添加glBindTexture(GL_TEXTURE_2D, 1);
在我的实体绘图代码的末尾解决了该问题。 感谢您的评论帮助我解决了这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.