繁体   English   中英

当未绘制文本时,纹理解除绑定(LWJGL / Slick-util)

[英]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();
        }

这是结果

http://i.stack.imgur.com/4Y9fk.png

http://i.stack.imgur.com/SUoOf.png

当绘制文本时,图像必定会绘制文本,我猜测通常lwjgl / slick在绘制文本时会保存当前纹理,然后在以后重新绑定。 我猜这可能是一个错误,在隐藏时它不会重新绑定纹理,但仍绑定另一个纹理?

在仔细考虑我的代码之后,我发现我的Entity类正在调用glBindTexture(GL_TEXTURE_2D, 0); 当它被绘制并且绘制文本时再次启用它。 添加glBindTexture(GL_TEXTURE_2D, 1); 在我的实体绘图代码的末尾解决了该问题。 感谢您的评论帮助我解决了这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM