Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Common Lisp bindings for SDL2 using C2FFI.
Common Lisp Other
branch: master

Merge pull request #43 from bogosortist/master

Added an accessor function to get a pointer to an sdl-surface's raw pixel data
latest commit 6179a5ffac
@rpav rpav authored


sdl2: A Common Lisp Wrapper for the SDL 2.0 C Library.

Written by

    Chip Collier <>
    Ryan Pavlik <>
    Peter Keller <>



Installation Instructions when using Quicklisp, SBCL, and Linux

    sdl2 is not yet in Quicklisp, but it is very easy to integrate with an
    existing Quicklisp install in one's home directory.

    SDL 2.0 C Library Install

    The official version of the C SDL 2.0 library was recently released and
    might not yet be available in the package repositories of your Linux
    distribution. The source release can be found here:

    If you need to compile from source for your Linux platform:

    1. Download the source tar-ball.
    2. tar zxf SDL2-2.0.3.tar.gz
    3. ./configure
    4. make
    5. sudo make install

    This will install the SDL-2.0.3 C Library into your /usr/local location.

    It's generally a good idea to install at a minimum the version of
    SDL2 that was wrapped; however, sub revisions should not introduce
    binary incompatibility and should be fine.  If you install a
    different version, certain features may not be available or may
    not work correctly.

    Quicklisp Install

    sdl2 requires a Quicklisp install that distributes cl-autowrap such as
    Quicklisp distributions of August 2013 or later.

    If you don't have Quicklisp, then follow the directions here:

    to install it. We assume you placed the Quicklisp repository in the default
    place as indicated by the directions and have added it to your lisp init

    sdl2 Install

        1. cd $HOME/quicklisp/local-projects
        2. git clone

    Then, use quicklisp to install the libraries required by cl-sdl2:

    Start your lisp. You will only have to do this once for Quicklisp to
    download the required libraries.

    (ql:quickload "alexandria")
    (ql:quickload "cl-autowrap")
    (ql:quickload "cl-ppcre")
    (ql:quickload "trivial-garbage")
    (ql:quickload "trivial-channels")
    (ql:quickload "cl-opengl")

    Then, to load the sdl2 system into the REPL:

    (asdf:load-system :sdl2)

Running the sdl2 examples

    Start your lisp:

    (asdf:load-system :sdl2)
    (asdf:load-system :sdl2-examples)


    This example will open a window with an opengl primitive in it. Any mouse
    movements or keystrokes are recorded in the terminal (or emacs SLIME output
    buffer). Hitting the ESCAPE key will terminate the example.

Thank you for using sdl2!
Something went wrong with that request. Please try again.