Рисование строки с использованием Unicodefont в SWJGL - PullRequest
0 голосов
/ 26 декабря 2011

Я пытаюсь отобразить строку в моем OpenGL-окне в Java, используя LWJGL и Slick-Library.

Это мой исходный код

</p>

<code>import static org.lwjgl.opengl.GL11.GL_COLOR_BUFFER_BIT;
import static org.lwjgl.opengl.GL11.GL_DEPTH_BUFFER_BIT;
import static org.lwjgl.opengl.GL11.glClear;

import java.awt.Color;
import java.awt.Font;

import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.UnicodeFont;
import org.newdawn.slick.font.effects.ColorEffect;

public class test extends Thread
{
    UnicodeFont font;
    public static void main(String arg[])
    {
        Thread mainthread = new test();
        mainthread.start();
    }

    //Constructor
    public test()
    {
    }

    public void run()
    {
        try 
        {
            Display.setDisplayMode(new DisplayMode(400,400));
            Display.setVSyncEnabled(true);
            Display.create();
        } 
        catch (LWJGLException e) 
        {
            e.printStackTrace(); //TODO Auto-generated catch block
        }   
        try 
        {
            font = new UnicodeFont("arial.ttf",1, false, false);
        } 
        catch (SlickException e1) 
        {
            e1.printStackTrace();// TODO Auto-generated catch block
        }
        font.addAsciiGlyphs();
        font.addGlyphs(400, 600);
        font.getEffects().add(new ColorEffect(java.awt.Color.ORANGE));
        try 
        {
            font.loadGlyphs();
        } 
        catch (SlickException e) 
        {
            e.printStackTrace();// TODO Auto-generated catch block
        }
        while(!Display.isCloseRequested())
        {
            font.drawString(0.3f, 0.3f, "Testi");
            Display.update();
        }
        Display.destroy();
    }
}
</code>

И вот результат:

http://i.stack.imgur.com/2hBnB.png

Понятия не имею, что могло вызвать это. Помогите, пожалуйста!

1 Ответ

2 голосов
/ 02 июля 2012

Вам необходимо включить GL_TEXTURE_2D и GL_BLEND (с glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)) для правильного отображения текста.

...