我正在尝试使用LWJGL和Slick-Library在我的OpenGL窗口中显示一个字符串。
这是我的源代码
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();
}
}
这就是结果:
http://i.stack.imgur.com/2hBnB.png
我不知道,是什么导致了这一点。 求救!
答案 0 :(得分:2)
您需要启用GL_TEXTURE_2D和GL_BLEND(使用glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA))才能正确呈现文本。