Ich kann keinen möglichen Grund feststellen, warum die Verwendung von UnicodeFont.drawString()
bewirkt, dass alles andere, das auf dem Bildschirm in einer LWJGL-Anwendung gerendert wurde, verschwindet. In meinem Fall sollte das Programm ein Dreieck und etwas Text zeichnen, nur um Dinge zu testen, aber was stattdessen passiert ist, dass das Dreieck für ein einzelnes Bild vor dem Verschwinden angezeigt wird und nur der anzuzeigende Text übrig bleibt. Das Dreieck erscheint als normal, wenn der Anruf drawString()
entfernt wird.Slick2D UnicodeFont Drawstring beseitigt den Rest des Bildschirms
ich die Schriftart wie folgt festgelegt:
UnicodeFont font = new UnicodeFont(new java.awt.Font("Times New Roman", java.awt.Font.PLAIN, 24));
font.getEffects().add(new ColorEffect(java.awt.Color.WHITE));
font.addAsciiGlyphs();
try {
font.loadGlyphs();
} catch (SlickException e) {
e.printStackTrace();
}
Dann ist diese in der Render Schleife aufrufen:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glClearColor(0, 0, 0, 0);
glColor3f(1, 1, 1);
glEnableClientState(GL_VERTEX_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, fbid);
glVertexPointer(2, GL_FLOAT, 0, 0);
glEnableClientState(GL_COLOR_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, fbid2);
glColorPointer(3, GL_FLOAT, 0, 0);
glDrawArrays(GL_TRIANGLES, 0, 4);
font.drawString(100, 300, "Test");
glBindBuffer(GL_ARRAY_BUFFER, 0);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);
DisplayManager.update();