object ACT3D
@throws(classOf[LWJGLException])
def init {
val mode = Display.getAvailableDisplayModes.find(m => m.getWidth == width && m.getHeight == height) match {
case Some(m) => m
case None => {
println("ウィンドウサイズが正しくありません。")
throw new Exception
}
}
Display.setDisplayMode(mode)
Display.setTitle(title)
Display.setVSyncEnabled(true)
Display.setSwapInterval(1)
Display.create
}
setDisplayModeのところですが、利用可能なディスプレイモードから指定した横幅、縦幅のディスプレイモードを取得し、それを設定をしています。
ディスプレイモードの設定以外はやらなくても動きます。垂直同期は有効にするとちらつきがなくなるそうです。
次にディスプレイの更新をします。
object ACT3D
@throws(classOf[LWJGLException])
def run {
while (running) {
Display.update
if (Display.isCloseRequested) {
running = false
} else {
Display.sync(fps)
}
}
}
これでクローズがリクエストされるまで指定のFPSでディスプレイが更新されます。
最後に後処理です。ACT3Dのcleanupにこの一行を加えます。
Display.destroy
これでディスプレイが表示できるはずです。
実行するときの注意ですが、VM引数に-Djava.library.path="ネイティブライブラリへのパス"を忘れないようにしましょう。
次回は、ディスプレイに何か表示しようと思います。
0 件のコメント:
コメントを投稿