0

画面上に一連の円を描画する Java の OpenGL プロジェクトがあり、マウスが円の 1 つの上にあるときはいつでもツールチップが表示されるようにします。ツールチップが長方形に過ぎない場合は完全に機能しますが、テキスト レンダリング コードを追加すると、すべてが機能しなくなります。マウスがいずれかの上に移動すると、すべての円が消え、テキストの背後にある長方形も同様に消えます。その後、マウスをどこに移動しても、それらは再表示されません。私の問題を引き起こしているコード行は

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

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

その他:

このコードは、render 関数の最後で現在レンダリング中の円によって呼び出されます。Info は複数行の文字列です。LWJGL バージョン 2.8.3。

更新: これはアルファの問題のようです。出力するテキストによっては、残りの描画が非常にかすかに表示されます。

4

1 に答える 1

0

glDisableテキストのレンダリング後に追加する必要がありました。次のコードは完全に機能します。

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