Java 如何使用版本3.2或更高版本在LWJGL中显示文本
我一直在使用来了解如何使用该库,并且我一直在使用以下内容设置LWJGL(根据): 说明如何绘制文本。然而,TrueTypeFont已被弃用,所以我将其替换为现在的标准UnicodeFont。我初始化并使用它,如下所示:Java 如何使用版本3.2或更高版本在LWJGL中显示文本,java,opengl,lwjgl,slick2d,Java,Opengl,Lwjgl,Slick2d,我一直在使用来了解如何使用该库,并且我一直在使用以下内容设置LWJGL(根据): 说明如何绘制文本。然而,TrueTypeFont已被弃用,所以我将其替换为现在的标准UnicodeFont。我初始化并使用它,如下所示: UnicodeFont font = null; try { font = new UnicodeFont(Font.createFont(Font.TRUETYPE_FONT, new File("path/t
UnicodeFont font = null;
try
{
font = new UnicodeFont(Font.createFont(Font.TRUETYPE_FONT,
new File("path/to/font.ttf")).deriveFont(24)));
}
catch (FontFormatException | IOException e)
{
e.printStackTrace();
}
while(true)
{
glClear(GL_COLOR_BUFFER_BIT);
font.drawString(50.0f, 50.0f, "Hi there.",
new Color(1.0f, 1.0f, 1.0f, 1.0f));
}
这将生成以下错误:
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:881)
at org.newdawn.slick.opengl.renderer.ImmediateModeOGLRenderer.glColor4f(ImmediateModeOGLRenderer.java:119)
at org.newdawn.slick.Color.bind(Color.java:180)
at org.newdawn.slick.TrueTypeFont.drawString(TrueTypeFont.java:367)
at org.newdawn.slick.TrueTypeFont.drawString(TrueTypeFont.java:359)
在调用拉绳的线处。如何修复此问题?您正在创建一个OpenGL 3.2向前兼容的上下文,但字体渲染器显然正在使用即时模式渲染,该模式已从该版本的OpenGL中删除。创建兼容上下文或切换到其他呈现字体的方法
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:881)
at org.newdawn.slick.opengl.renderer.ImmediateModeOGLRenderer.glColor4f(ImmediateModeOGLRenderer.java:119)
at org.newdawn.slick.Color.bind(Color.java:180)
at org.newdawn.slick.TrueTypeFont.drawString(TrueTypeFont.java:367)
at org.newdawn.slick.TrueTypeFont.drawString(TrueTypeFont.java:359)