Source

chicken-glfw /

Filename Size Date modified Message
1.5 KB
127 B
202 B
18.8 KB
158 B

GLFW

GLFW bindings for Chicken Scheme.

Note that this extension applies to Version 2 of the GLFW library. For an interface to GLFW Version 3, see the glfw3 egg.

Installation

$ git clone git://bitbucket.org/evhan/glfw.git
$ cd glfw
$ chicken-install

API

Constant & function names & signatures match those of GLFW.

Example

(use gl glfw extras data-structures)

(define *width* 640)
(define *height* 480)
(define *colors* '(.2 .4 .6 .8))

(define-external (window_resize (integer width) (integer height)) void
  (gl:Viewport 0 0 *width* *height*))

(define-external (window_charpress (char c) (integer t)) void
  (when (eq? c #\q)
    (exit)))

(glfwInit)
(glfwOpenWindow *width* *height* 8 8 8 8 8 8 GLFW_WINDOW)
(glfwSetWindowSizeCallback (location window_resize))
(glfwSetCharCallback (location window_charpress))
(glfwSetWindowTitle "CHICKEN PARTY!!!")

(let COLORS!!! ()
  (apply gl:ClearColor (shuffle *colors* random))
  (gl:Clear gl:COLOR_BUFFER_BIT)
  (glfwSwapBuffers)
  (glfwWaitEvents)
  (COLORS!!!))

See Also

Author

Evan Hanson evhan@foldling.org

The heavy lifting was done by Felix Winkelman's bind egg, I just fiddled with the header file and fixed up the output a bit. Bug reports should still go to me, though.

License

Public Domain