LWJGL中的简单文本呈现导致其他代码无法呈现

时间:2012-12-11 20:00:32

标签: java fonts rendering lwjgl

我在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的问题。根据我输出的文字,图纸的其余部分显示得非常微弱。

1 个答案:

答案 0 :(得分:0)

我需要在文本渲染后添加glDisable。以下代码完美无缺:

GraphicsUtil.DEFAULT_FONT.drawString(x, y, info);
GL11.glDisable(GL11.GL_TEXTURE_2D);