2013年3月5日火曜日

[Clojure]LWJGLをでOpenGL

LWJGLでOpenGLの画面を表示してみます。 Javaで書くのと大差無いです。多分。

;; dependenciesに追加
[org.lwjgl/lwjgl "2.7.1"]
[org.lwjgl/lwjgl-util "2.7.1"]
[org.lwjgl/lwjgl-native-platform "2.7.1"]
(import '[org.lwjgl.opengl DisplayMode Display GL11])

(def width 640)
(def height 480)
(def display-mode (DisplayMode. width height))

(defn draw []
  (GL11/glClear GL11/GL_COLOR_BUFFER_BIT)
  (GL11/glBegin GL11/GL_LINES)
  (GL11/glColor3d 1.0 0.0 0.0)
  (GL11/glVertex3d 1.0 1.0 0.0)
  (GL11/glVertex3d (- width 1) (- height 1) 0.0)
  (GL11/glEnd)
  (GL11/glFlush))

(defn start []
  (Display/setDisplayMode display-mode)
  (Display/setTitle "Hello")
  (Display/create)
  (GL11/glEnable GL11/GL_CULL_FACE)
  (GL11/glCullFace GL11/GL_BACK)
  (GL11/glMatrixMode GL11/GL_PROJECTION)
  (GL11/glLoadIdentity)
  (GL11/glOrtho 0 width 0 height 0 1)
  (GL11/glMatrixMode GL11/GL_MODELVIEW)
  (while (not (Display/isCloseRequested))
    (draw)
    (Display/update))
  (Display/destroy))

; (start)

CやC++でOpenGLを書く必要に迫られたら、プロトタイプをClojureで書いてみることもできそうです。

0 件のコメント:

コメントを投稿