音ゲーの出来ない雑魚のブログ

LWJGLとかのことをいうブログ

「moreover lwjgl」 1  基本Windowの表示(1)

LWJGL3.0についてです。というか、2.9とOpenGL系は変わってないので、新しい方でやってみたいだけです。

LWJGLの構築方法は、簡単に説明します。詳しいことは他のサイトで見てみてください。ちなみに、WindowsIDEEclipseを使っています。

1.lwjgl公式ページに行って、LWJGL3.0の”Download”へ。”Release”のところの”Download Release”をクリック。

2.ダウンロードしたzipファイルをフォルダ(半角英字系だけがいいらしい)に展開

3.Eclipseのプロジェクトのビルド・パスに新しいライブラリー(ユーザー定義)を追加する。

4.その中に先ほど展開したlwjglの、"jar"フォルダ内にある"lwjgl.jar"を”外部jar追加”で追加する。

5.追加した"lwjgl.jar"の”ネイティブ・ライブラリーのロケーション”に展開したlwjglの"native"フォルダーを指定する。

6.終わり!

追記:2016/7/10
LWJGL3.0が、Java8に対応しました。それどころかJava8を基本にしないと動かなくなりました!
そこで、LWJGLの実行環境はJava8以降にしないといけません。気をつけて下さい。

↓既存のEclipse(Java7まで対応してた)をJava8に対応させる方法↓
javatechnology.net


ということで、新しくプロジェクトを作って、Windowを表示させるプログラムを作りましょう~


LWJGL3.0からGLUTが使えなくなったので、代わりにGLFWを使います。


それでは、それぞれ解説します。

解説 (GLFW系は青色に)

3~5行目 : staticなimportです。OpenGL/GLFW系はたくさん使うのでstaticだと楽で見やすいです。

15行目 : windowのハンドルです。GLFWでは、Windowをハンドル(操る物)で操作します。また、ハンドルにはLong値を使います。

18行目 : mainメソッド内で、runメソッドを呼び出しています。

23,24行目 : 処理は基本的に初期設定のstartメソッドと、実行中のことや描画に関するrenderメソッドに分けます。

25行目 : ハンドル(long window)のWindowを終了します。これは、renderメソッド外に出た時に実行されます。

void glfwDestroyWindow(long window)

28行目 : GLFWを終了させます。

void glfwTerminate()

これは
プログラムが終わる前にかならず実行しなければならないです

31行目 : startメソッドの開始

36~39行目 : GLFWが起動できたかどうかのチェックです。glfwInit()で起動させます。
起動できたかをBoolean値で調べ、出来なかったらIllegalStateException(不正だと思われたクラス/メソッドを呼び出した時に呼ばれるエラー)を出します。Stringの中は適当です…
これらは、次のようにまとめられます。

if(!glfwInit()){
    throw new IllegalStateException("Not enable GLFW Init");
}

(追記:LWJGL3.0.0bまではglfwInit()はint値を返していました。そしてその値が1(GLFW_TRUE)と等しければ起動に成功するようになっていました。)

boolean glfwInit()




とりあえず、いったんこの辺で解説を終えます。残りの解説は次の記事に回します。

P.S. >自分はJavaに関しても、OpenGLに関しても対して詳しくもないので、質問は簡単なことにしか答えられません。すみません…