2012-12-11 58 views
0

我有一个Java中的OpenGL项目,它在屏幕上绘制了一系列圆圈,并且我希望只要鼠标位于其中一个圆圈上方就会出现工具提示。如果工具提示仅仅是一个矩形,它就可以完美工作,但是一旦我添加了文本渲染代码,一切都停止了。一旦鼠标移过其中一个圆圈,所有的圆圈都会消失,同样,文本后面的矩形也会消失。无论我之后移动鼠标的位置如何,它们都不会再出现。的代码导致我的问题,该生产线是简单LWJGL中的文本渲染导致其他代码无法渲染

GraphicsUtil.DEFAULT_FONT.drawString(x, y, info); 

如果信息是字符串,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

我需要在文本渲染后添加glDisable。以下代码完美地起作用:

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