JRuby+LWJGLでOpenGLしてみる
JavaのライブラリにLWJGLというのがあって、OpenGL、OpenAL、OpenCLが使えるようで最近気になっています。あと、コントローラもOSに依存せず使えるようになるらしいので勉強がてら触ってみようと思います。
Download
以下にアクセスしてファイルを入手します。
http://www.newdawnsoftware.com/jenkins/view/LWJGL/
http://sourceforge.net/projects/java-game-lib/files/
lwjgl-2.9.0.zip
準備
ここでは、Windows上で動かすための準備を記載します。
ダウンロードしてきたファイルの中から以下を取り出します。(とりあえず最小限で)
- lwjgl.jar
- lwjgl.dll (Windows 32bit用)
jarだけ(DLLがない)だとrequireしてもクラスがないと怒られるので注意です。
サンプルコード
- sample.rb
$:.unshift File.dirname(__FILE__) require 'java' require 'lwjgl.jar' import org.lwjgl.opengl.Display import org.lwjgl.opengl.DisplayMode GL = org.lwjgl.opengl.GL11 Display.setDisplayMode DisplayMode.new(300, 200) Display.setTitle "sample" Display.create GL.glClearColor 0.8,0.8,0.5,1 while !Display.isCloseRequested GL.glClear GL::GL_COLOR_BUFFER_BIT GL.glColor3d(1,0,0) GL.glBegin GL::GL_POLYGON GL.glVertex2d(-0.5,-0.5) GL.glVertex2d( 0.5,-0.5) GL.glVertex2d( 0.5, 0.5) GL.glVertex2d(-0.5, 0.5) GL.glEnd Display.update end
実行
ファイル構成は、以下のようになっていることを確認してください。
./sample |-- lwjgl.jar |-- lwjgl.dll (Windows 32bit用) `-- sample.rb
実行は、以下のとおりです。
% jruby sample.rb もしくは、 % jruby -J-Djava.library.path=./ sample.rb