I'm not sure if this will help, but here's some tidbits from the day I spent
toying around with JOGL... I think it was version 1.1.1.
This is part of the Ant file that I used:
...
<java classname="clojure.lang.Compile" fork="true"
failonerror="true">
<classpath>
<pathelement location="${src_dir}" />
<pathelement location="${src_dir}/classes" />
<pathelement location="${clojure_jar}" />
<pathelement location="${contrib_jar}" />
<pathelement location="${jogl_jar}" />
<pathelement location="${gluegen_jar}" />
</classpath>
<sysproperty key="clojure.compile.path"
value="${src_dir}/classes" />
<arg line="${files_to_compile}" />
</java>
...
I can reproduce a similar error by commenting out the line for the jogl_jar.
Exception in thread "main" java.lang.ClassNotFoundException:
javax.media.opengl.GLCanvas (jogltest.clj:1)
Here's the Clojure file I used (be warned - it's very very bad Clojure
code):
(ns jogltest
(:import
(java.io BufferedReader InputStreamReader)
(java.awt Frame)
(java.awt.event WindowListener WindowAdapter KeyListener KeyEvent)
(javax.media.opengl GLCanvas GLEventListener GL GLAutoDrawable)
(javax.media.opengl.glu GLU)
(com.sun.opengl.util Animator))
(:gen-class))
(defn exit [a f]
(.stop a)
(.dispose f))
(defn -main [& args]
(println "works")
(let [
rotateT 0
glu (new GLU)
canvas (new GLCanvas)
frame (new Frame "Jogl 3D Shape/Rotation")
animator (new Animator canvas)]
(.addGLEventListener
canvas
(proxy [GLEventListener] []
(display
[#^GLAutoDrawable drawable]
(doto (.getGL drawable)
(.glClear (. GL GL_COLOR_BUFFER_BIT))
(.glClear (. GL GL_DEPTH_BUFFER_BIT))
(.glLoadIdentity)
(.glTranslatef 0 0 -5)
(.glRotatef rotateT 1 0 0)
(.glRotatef rotateT 0 1 0)
(.glRotatef rotateT 0 0 1)
(.glRotatef rotateT 0 1 0)
(.glBegin (. GL GL_TRIANGLES))
; Front
(.glColor3f 0 1 1) (.glVertex3f 0 1 0) (.glColor3f 0 0 1) (.glVertex3f
-1 -1 1) (.glColor3f 0 0 0) (.glVertex3f 1 -1 1)
; Right Side Facing Front
(.glColor3f 0 1 1) (.glVertex3f 0 1 0) (.glColor3f 0 0 1) (.glVertex3f 1
-1 1) (.glColor3f 0 0 0) (.glVertex3f 0 -1 -1)
; Left Side Facing Front
(.glColor3f 0 1 1) (.glVertex3f 0 1 0) (.glColor3f 0 0 1) (.glVertex3f 0
-1 -1) (.glColor3f 0 0 0) (.glVertex3f -1 -1 1)
;Bottom
(.glColor3f 0 0 0) (.glVertex3f -1 -1 1) (.glColor3f 0.1 0.1 0.1)
(.glVertex3f 1 -1 1) (.glColor3f 0.2 0.2 0.2) (.glVertex3f 0 -1 -1)
(.glEnd))
(def rotateT (+ 0.2 rotateT)))
(displayChanged [drawable m d])
(init
[#^GLAutoDrawable drawable]
(doto (.getGL drawable)
(.glShadeModel (. GL GL_SMOOTH))
(.glClearColor 0 0 0 0)
(.glClearDepth 1)
(.glEnable (. GL GL_DEPTH_TEST))
(.glDepthFunc (. GL GL_LEQUAL))
(.glHint (. GL GL_PERSPECTIVE_CORRECTION_HINT)
(. GL GL_NICEST)))
(.addKeyListener
drawable
(proxy [KeyListener] []
(keyPressed
[e]
(when (= (.getKeyCode e) (. KeyEvent VK_ESCAPE))
(exit animator frame))))))
(reshape
[#^GLAutoDrawable drawable x y w h]
(when (> h 0)
(let [gl (.getGL drawable)]
(.glMatrixMode gl (. GL GL_PROJECTION))
(.glLoadIdentity gl)
(.gluPerspective glu 50 (/ w h) 1 1000)
(.glMatrixMode gl (. GL GL_MODELVIEW))
(.glLoadIdentity gl))))))
(doto frame
(.add canvas)
(.setSize 640 480)
(.setUndecorated true)
(.setExtendedState (. Frame MAXIMIZED_BOTH))
(.addWindowListener
(proxy [WindowAdapter] []
(windowClosing [e] (exit animator frame))))
(.setVisible true))
(.start animator)
(.requestFocus canvas)
;(Thread/sleep (* 1 1000))
)
)
Good luck!!
-Rich
P.s. - I switched to using JME... it had more of the features I was looking
for.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en