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 件のコメント:
コメントを投稿