0

我在 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();
        }
     }
  }

杂项:

此代码由当前在其渲染函数末尾渲染的圆圈调用。Info 是一个多行字符串。LWJGL 版本 2.8.3。

更新:这似乎是 alpha 的问题。根据我输出的文本,绘图的其余部分显示得很微弱。

4

1 回答 1

0

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

GraphicsUtil.DEFAULT_FONT.drawString(x, y, info);
GL11.glDisable(GL11.GL_TEXTURE_2D);
于 2012-12-12T20:20:56.140 回答