2016-07-09 6 views
0

UnicodeFont.drawString()を使用すると、LWJGLアプリケーションの画面にレンダリングされたものが消える原因が何であるかはわかりません。私の場合、プログラムは三角形といくつかのテキストを描画してテストするだけですが、その代わりに、表示されるテキストのみを残して消える前に、1つのフレームの三角形が表示されます。 drawString()コールが削除された場合、三角形は通常のように表示されます。Slick2D UnicodeFont drawstringが画面の残りを取り除く

次のように私は、フォントを設定します。

 UnicodeFont font = new UnicodeFont(new java.awt.Font("Times New Roman", java.awt.Font.PLAIN, 24)); 
     font.getEffects().add(new ColorEffect(java.awt.Color.WHITE)); 
     font.addAsciiGlyphs(); 
     try { 
      font.loadGlyphs(); 
     } catch (SlickException e) { 
      e.printStackTrace(); 
     } 

を次にレンダリングループ内でこれを呼び出す:私の問題は、無効/有効にすると混乱アップから茎のような

 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
     glClearColor(0, 0, 0, 0); 

     glColor3f(1, 1, 1); 

     glEnableClientState(GL_VERTEX_ARRAY); 
     glBindBuffer(GL_ARRAY_BUFFER, fbid); 
     glVertexPointer(2, GL_FLOAT, 0, 0); 

     glEnableClientState(GL_COLOR_ARRAY); 
     glBindBuffer(GL_ARRAY_BUFFER, fbid2); 
     glColorPointer(3, GL_FLOAT, 0, 0); 

     glDrawArrays(GL_TRIANGLES, 0, 4); 
     font.drawString(100, 300, "Test"); 

     glBindBuffer(GL_ARRAY_BUFFER, 0); 
     glDisableClientState(GL_VERTEX_ARRAY); 
     glDisableClientState(GL_COLOR_ARRAY); 

     DisplayManager.update(); 

答えて

0

だからそれが見えますテクスチャ。

glDisable(GL_BLEND); 

drawString(...)への呼び出し前にこれを追加する:私は私のレンダリングループの最初に次を追加して、それを解決し

glEnable(GL_BLEND); 
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA): 
関連する問題