2012-12-11 60 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);