GLFW

  1. GLFW
    1. API
    2. Example
    3. Author
    4. License

GLFW bindings for Chicken Scheme.

The source for this egg is available at Bitbucket.

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!!!))

Author

Evan Hanson

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 go to me, though.

License

Public Domain