Cómo dibujar text en pantalla en LWJGL

Antes de criticar esta pregunta por falta de esfuerzo de investigación, lea toda la descripción, ya que sé que hay otras preguntas similares por ahí.

Estoy haciendo un juego en 3D, y me gustaría poner text en la pantalla (contador de FPS, diferentes statistics para mí mientras estoy diseñando eso no entrará en el producto final). He seguido este tutorial sobre cómo usar TrueTypeFont fonts TrueTypeFont .

Esto está en mi ciclo principal del juego:

 TrueTypeFont font = Text.prepareFont("WasterMaster10"); Color.white.bind(); //this is Line 163 in MainGameLoop.java font.drawString(100, 50, Integer.toString(fps), Color.networking); 

Y este es mi método de preparación en mi class de Text :

 public static TrueTypeFont prepareFont(String fontname) { TrueTypeFont font = null; // load font from a .ttf file try { InputStream inputStream = ResourceLoader.getResourceAsStream("res/" + fontname + ".ttf"); Font awtFont = Font.createFont(Font.TRUETYPE_FONT, inputStream); awtFont = awtFont.deriveFont(24f); // set font size font = new TrueTypeFont(awtFont, false); } catch (Exception e) { e.printStackTrace(); } return font; } 

Sin embargo, sigo recibiendo este error:

 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 engineTester.MainGameLoop.main(MainGameLoop.java:163) 

Me he estado refiriendo a esta pregunta y a esta pregunta , así como a muchas investigaciones en la web, pero todavía no puedo encontrar por qué no funcionará. El juego funciona bien cuando las Color.white.bind() y font.drawString(...) están comentadas. No hay errores de syntax y el proyecto se comstack con éxito. Cuando comente solo la línea Color.white.bind() , el progtwig comstack pero arroja un error en la línea font.drawString(...) durante la ejecución.

¿Alguien sabe una mejor manera de imprimir text en la pantalla? ¿O hay un problema en mi implementación?

Slick-util depende de la API en desuso que ya no está disponible con la última versión de lwjgl2. Podría intentar habilitar las API en desuso al crear el context, pero LWJGL2 es antiguo. Si acaba de comenzar, debe cambiar al LWJGL3 más nuevo y compatible actualmente.

No sé si esta es la mejor solución para LWJGL3, pero aquí hay un tutorial que encontré para LWJGL3: https://github.com/SilverTiger/lwjgl3-tutorial/wiki/Fonts