2012-12-11 1 views
0

Java에서 OpenGL 프로젝트를 사용하여 화면에 일련의 원을 그리는 데 마우스가 원 중 하나 위에 올 때마다 툴팁을 표시하려고합니다. 툴팁이 사각형 이상이면 완벽하게 작동하지만 일단 텍스트 렌더링 코드를 추가하면 모든 작업이 중단됩니다. 마우스를 움직이면 모든 원이 사라지고 텍스트 뒤에있는 사각형도 마찬가지로 사라집니다. 나중에 마우스를 어디로 옮기더라도 다시 나타나지 않습니다. 내 문제를 일으키는 코드 줄 정보는 문자열, x와 y는 좌표입니다LWJGL의 간단한 텍스트 렌더링으로 인해 다른 코드가 렌더링되지 않습니다.

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

이며, 다음과 같이 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 :

이 코드는 현재 렌더링 함수의 끝에서 렌더링중인 원에 의해 호출됩니다. Info는 여러 줄의 문자열입니다. LWJGL 버전 2.8.3.

업데이트 : 이것은 알파의 문제인 것으로 보입니다. 내가 출력하는 텍스트에 따라 그림의 나머지 부분이 매우 희미하게 나타납니다.

답변

0

텍스트 렌더링 후 glDisable을 추가해야했습니다. 다음 코드는 완벽하게 작동합니다.

GraphicsUtil.DEFAULT_FONT.drawString(x, y, info); 
GL11.glDisable(GL11.GL_TEXTURE_2D); 
관련 문제