chickadee » glfw

Outdated egg!

This is an egg for CHICKEN 4, the unsupported old release. You're almost certainly looking for the CHICKEN 5 version of this egg, if it exists.

If it does not exist, there may be equivalent functionality provided by another egg; have a look at the egg index. Otherwise, please consider porting this egg to the current version of CHICKEN.

GLFW

GLFW bindings for Chicken Scheme.

The source for this extension is available here.

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

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

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