/examples/opengl_101.scm
http://github.com/digego/extempore · Scheme · 33 lines · 24 code · 3 blank · 6 comment · 0 complexity · ac6e57dd108b2d627d44967067889730 MD5 · raw file
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;
- ; Simplest possible OpenGL example
- ;
- ;; a trivial opengl draw loop
- (definec my-gl-loop
- (let ((size 0.01))
- (lambda (degree)
- (glClear (+ GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT))
- (glLoadIdentity)
- (glTranslated 0.0 -1.0 0.0)
- (let ((i:double 0.0))
- (dotimes (i 1000.0)
- (glTranslated (/ i 2000.0) 0.0 0.0)
- (glColor3d (/ i 1500.0) 0.0 1.0)
- (glRotated degree (/ i 200000.0) 0.5 0.0)
- (glBegin GL_QUADS)
- (glVertex2d 0.0 0.0)
- (glVertex2d size 0.0)
- (glVertex2d size size)
- (glVertex2d 0.0 size)
- (glEnd))))))
- ;; standard impromptu callback
- (define opengl-test
- (lambda (degree)
- (my-gl-loop degree)
- (gl:swap-buffers glctx)
- (callback (+ (now) 500) 'opengl-test (+ degree .005))))
- (define glctx (gl:make-ctx ":0.0" #f 0.0 0.0 1024.0 768.0))
- (opengl-test 70.0)