声明: 本博客文章原创均为个人原创 , 翻译类文章均为个人业余时间翻译,版权所有。转载请注明出处:http://www.wjfxgame.com,另外本人的优快云博客:http://blog.youkuaiyun.com/ml3947
LWJGL,大家应该都听说过。这是Java界两大对OpenGL绑定的Java库之一。另外一个就是大名鼎鼎的JOGL了,以前曾是被SUN所支持的“官方”的OpenGL绑定库。
虽然本人目前工作转移到Unity3D,而使用Unity3D确实是很方便。但是,它毕竟是一个商业性质的引擎,很多方面不尽人意,无法满足自己的需求。而且由于封装度比较高,也不利于自己的学习。而由于本人从大学以来,使用Java居多,最近又在玩大名鼎鼎的Minecraft(使用LWJGL开发),所以决定使用LWJGL来看看。
LWJGL库使用了它自己的轻量级本地窗口,而且也有它自己的输入系统。音效使用的Java对OpenAL的绑定库。同时也提供对操作控制器等的API。
在LWJGL中,Display是一个很重要的类。它用来创建和控制渲染所有图形元素的本地窗口。在Display中,有三个方法需要被注意。
- create()
- update()
- destroy()
Display.create()这个方法用来创建本地窗口。我们需要设置它的DisplayMode,用来指定显示窗口的大小。DisplayMode需要在create之前设置。类似如下:
Display.setDisplayMode(new DisplayMode(width,height));
Display.create();
LWJGL使用双缓冲,任何图形都将被绘制到屏幕外的缓存里。当调用Display.update()的时候,将会交换缓存,然后让图形显示在窗口中。通常这个方法在渲染的循环中,每一帧的时候调用。
当LWJGL销毁的时候,将会调用Display.destroy()方法来进行清理和释放资源。
另外,当我们点击关闭本地窗口的按钮的时候,Display.isCloseRequested()方法将会返回true,所以我们通常将它使用在渲染循环中,如下所示:
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
public class DisplayExample {
public void start() {
try {
Display.setDisplayMode(new DisplayMode(800,600));
Display.create();
} catch (LWJGLException e) {
e.printStackTrace();
System.exit(0);
}
// init OpenGL here
while (!Display.isCloseRequested()) {
// render OpenGL here
Display.update();
}
Display.destroy();
}
public static void main(String[] argv) {
DisplayExample displayExample = new DisplayExample();
displayExample.start();
}
}
运行将会显示一个800 x 600 的窗口。
转载请注明出处: http://blog.youkuaiyun.com/ml3947。