java - 不支持 TrueTypeFont.drawString()

标签 java opengl fonts lwjgl slick2d

我正在尝试在我的 LWJGL 游戏中实现 2D 文本渲染,并且到处搜索可行的解决方案,但总是遇到同样的错误。我目前正在尝试关注 this tutorial .这是错误:

Exception in thread "main" java.lang.IllegalStateException: Function is not supported
    at org.lwjgl.BufferChecks.checkFunctionAddress(BufferChecks.java:58)
    at org.lwjgl.opengl.GL11.glColor4f(GL11.java:893)
    at org.newdawn.slick.opengl.renderer.ImmediateModeOGLRenderer.glColor4f(ImmediateModeOGLRenderer.java:124)
    at org.newdawn.slick.Color.bind(Color.java:182)
    at org.newdawn.slick.TrueTypeFont.drawString(TrueTypeFont.java:363)
    at org.newdawn.slick.TrueTypeFont.drawString(TrueTypeFont.java:355)
    at guis.Gui.drawString(Gui.java:23)
    at engineTester.MainGameLoop.main(MainGameLoop.java:110)

这是我的 Gui 类:

package guis;

import java.awt.Font;

import org.newdawn.slick.TrueTypeFont;

public class Gui {

    private TrueTypeFont font;
    private Font awtFont;

    public Gui() {
        this.awtFont = new Font("Times New Roman", Font.BOLD, 24);
        this.font = new TrueTypeFont(awtFont, false);
    }

    public void drawString(int x, int y, String text) {
        font.drawString(x, y, text);
    }

}

为什么会出现这个错误?

编辑:关于另一个问题的答案:https://stackoverflow.com/a/26319508/5838494我已经这样做了,但它不起作用。

最佳答案

您需要将 opengl 版本设置为低于 3.0,因为 TrueTypeFont 使用的功能已在 3.x 中删除。 或者你可以看看 opengl 3.x/4.x Opengl3.3 如果您不必支持旧的 opengl 版本。

关于java - 不支持 TrueTypeFont.drawString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47841717/

相关文章:

java - 如何在java小程序中重绘paint方法?

c - 在 OpenGL 中使用箭头键移动一些形状 - 它会缩小而不是移动

pdf - SSRS 在挪威语字母上使用 Identity-H 编码字体使 PDF 文本搜索不起作用

java - 知道安装了哪些字体

css - Firefox 不在一个网站中加载我的字体,而是在另一个网站中加载我的字体,而 Chrome 在两个网站中都加载

java - 死你threadpoolexecutor

java - 除非出现两次,否则如何匹配字符的任何出现?

java - 查找集合的所有子集 (PowerSet)

c++ - OpenGL:如何使用深度排序的顶点数组设计高效的渲染系统?

opengl - 如何解释 GL_DEBUG_OUTPUT 消息?