GSoC/GCI Archive
Google Summer of Code 2013

Simple DirectMedia Layer

Web Page:

Mailing List:

Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of "Civilization: Call To Power."

SDL supports Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX.

SDL is written in C, but works with C++ natively, and has bindings to several other languages, including Ada, C#, D, Eiffel, Erlang, Euphoria, Go, Guile, Haskell, Java, Lisp, Lua, ML, Oberon/Component Pascal, Objective C, Pascal, Perl, PHP, Pike, Pliant, Python, Ruby, Smalltalk, and Tcl


  • Interactive and Visual Test Automation for SDL 2.0 The testsprite2 test in the SDL test suite accepts a large number of parameters (26) and based on the values of those parameters it launches a window and moves some sprites on the screen. Other than ensuring that the rendering is happening correctly, this test is also used to check if the mouse is being handled correctly and the window looks as it should look (with correct title, icon, position, etc). This makes it an important test in the SDL test suite. Unfortunately, since there are many parameters with many valid combinations, it is impossible to manually test all of them. This project attempts to automate running and validating the output of testsprite2.
  • Multi-platform meta-build system for SDL 2.0 Due to the hassle of trying to maintain multiple build systems for a variety of platforms, SDL 2.0 needs a singular build system which can target multiple platforms simultaneously, thus significantly improving maintainability and minimizing potential inconsistencies across multiple build systems.