【发布时间】:2016-07-09 21:03:41
【问题描述】:
我无法确定为什么使用UnicodeFont.drawString() 会导致在LWJGL 应用程序中呈现到屏幕上的任何其他内容消失的任何可能原因。在我的例子中,程序应该绘制一个三角形和一些文本,只是为了测试一下,但实际上三角形在消失之前只显示一个帧,只留下要显示的文本。如果删除 drawString() 调用,三角形将正常显示。
我设置字体如下:
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();
}
然后在渲染循环中调用这个:
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();
【问题讨论】:
标签: java opengl rendering lwjgl slick2d