gpt4 book ai didi

java - lwjgl:必须在每个游戏循环中重新创建 `True Type Font`,否则 Slick-Util 将不会渲染文本

转载 作者:行者123 更新时间:2023-12-01 12:04:16 25 4
gpt4 key购买 nike

我用它来启动 openGL:

GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(0, width, height, 0, -1, 1);
GL11.glViewport(0, 0, width, height);
GL11.glMatrixMode(GL11.GL_MODELVIEW);

我创建了一个 True Type 字体,如下所示:

Font awtFont = new Font(font, i, size);
return new TrueTypeFont(awtFont, false);

然而,绑定(bind)/取消绑定(bind)纹理会弄乱字体,迫使我每次想要绘制一些文本时都重新创建字体。我不能这样做,因为它会导致严重的滞后峰值。

这是我用来绘制纹理的方法:

public static void drawImage(image i, int x, int y) {
i.bind();
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glBegin(7);
{
glTexCoord2f(0, 0);
glVertex2f(x, y);

glTexCoord2f(0, 1);
glVertex2f(x, y + i.height);

glTexCoord2f(1, 1);
glVertex2f(x + i.width, y + i.height);

glTexCoord2f(1, 0);
glVertex2f(x + i.width, y);
}
glEnd();
i.unBind();
}

当我删除 i.bind()i.unbind() 时,文本绘制开始完美工作,但随后我没有绘制纹理。那么我怎样才能绘制我的纹理和文本呢?

PS:

我启用了 Alpha 混合:

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

并且不要禁用它,因为我想要渲染的纹理需要它。

最佳答案

在每次调用渲染文本缝合之前插入 TextureImpl.bindNone() 来解决该问题。我仍然不确定问题来自哪里,因为我之前使用过 slick util text render,而没有使用 TextureImpl.bindNone() 没有问题。

关于java - lwjgl:必须在每个游戏循环中重新创建 `True Type Font`,否则 Slick-Util 将不会渲染文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27748564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com