Lispbuilder-SDL provides Common Lisp bindings for the SDL graphics library.

Lispbuilder-SDL runs on a number of platforms:

  • ACL: Linux, win32, OS X
  • CCL: Linux, win32, OS X (CCL on OS X requires a single-threaded build in order to avoid thread safety issues with Cocoa)
  • CLISP: Linux, win32, OS X, BSD
  • CMUCL: Linux
  • ECL: Linux, win32
  • LispWorks: Linux, win32, OS X
  • SBCL: Linux, win32, OS X, BSD (Win32 version is single threaded.)
  • See the download page for a complete list of supported platforms.

The project page is at LISPBUILDER-SDL Wiki.

Additional functionality:

  • Lispbuilder-SDL can be used as a rendering back-end for cl-vectors. Lisp native TTF font support is provided by zpb-ttf.
  • VECTO can be used to provide vector drawing and font rendering capabilities (By copying VECTO image data to a Lispbuilder-SDL surface.)
  • CL-OpenGL can be used for OpenGL 3D rendering (though note that the examples bundled with CL-OpenGL use the GLUT binding that CL-OpenGL includes and thus won't work without modification).
    • If you're using cl-opengl and want to use advanced opengl functionality, at time of writing it helps to know to do:
   ; N.B. don't use any ext. functions which go through GetProcAddress
   ; until AFTER an opengl sdl surface exists, presumably there's late binding going on...
   (setf cl-opengl-bindings:*gl-get-proc-address* #'sdl-cffi::sdl-gl-get-proc-address)

See also: lispbuilder-sdl-image, lispbuilder-sdl-gfx, lispbuilder-sdl-ttf, lispbuilder-sdl-mixer, CFFI.