我在Java中有一个OpenGL项目,它在屏幕上绘制了一系列圆圈,我希望只要鼠标位于其中一个圆圈上就会出现工具提示。如果工具提示只不过是一个矩形,它可以很好地工作,但是一旦我添加文本渲染代码,一切都停止工作。一旦鼠标移过其中一个圆圈,所有圆圈都会消失,文本后面的矩形同样如此。无论我之后移动鼠标在哪里,它们都不会重新出现。导致我出现问题的代码行是
GraphicsUtil.DEFAULT_FONT.drawString(x, y, info);
其中info是String,x和y是坐标,GraphicsUtil.DEFAULT_FONT声明如下:
@SuppressWarnings("unchecked")
public class GraphicsUtil
{
private GraphicsUtil()
{
}
public static final UnicodeFont DEFAULT_FONT = new UnicodeFont(new Font("",Font.PLAIN,12));
static
{
DEFAULT_FONT.addAsciiGlyphs();
DEFAULT_FONT.addGlyphs(400, 600);
DEFAULT_FONT.getEffects().add(new ColorEffect(java.awt.Color.white));
try
{
DEFAULT_FONT.loadGlyphs();
}
catch (SlickException e)
{
e.printStackTrace();
}
}
}
MISC:
此代码由当前在其渲染功能结束时呈现的圆圈调用。信息是一个多行字符串。 LWJGL版本2.8.3。
更新:这似乎是alpha的问题。根据我输出的文字,图纸的其余部分显示得非常微弱。
答案 0 :(得分:0)
我需要在文本渲染后添加glDisable
。以下代码完美无缺:
GraphicsUtil.DEFAULT_FONT.drawString(x, y, info);
GL11.glDisable(GL11.GL_TEXTURE_2D);