JRuby+LWJGLでOpenGLしてみる

JavaのライブラリにLWJGLというのがあって、OpenGLOpenALOpenCLが使えるようで最近気になっています。あと、コントローラも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


感想

LWJGLはなかなか情報がなくて、さらにJRubyとなるともっとなくて、調査に時間がかかりそうだが感触はかなりよいです。

とりあえず、ここまで。