GSoC/GCI Archive
Google Summer of Code 2010

Simple DirectMedia Layer

Web Page:

Mailing List:

Simple DirectMedia Layer is a popular open source library for multimedia and game development.


  • Addition of Multi-touch and Gesture Recognition support to SDL The goal will be to add support for generic multi-touch devices, and to provide a general gesture recognition framework. Multi-touch support will subscribe to OS level touch events, process the data into standardized SDL touch events, and pass the events to the application. Gesture support will be added as a seperate layer between all input devices and the user. This will give support for mouse gestures and combination mouse/keyboard/multi-touch gestures as well as standard multitouch gestures.
  • Android Port In 2008, one of the SDL Summer of Code projects was to port the SDL library to the iPhone. This year, I would like to accomplish a similar project: porting SDL1.3 to the Android platform. This will greatly benefit mobile developers wishing to target both Android and iPhone, while primarily developing on PC - a scenario that the increasing numbers of Android devices means will become more common. It will also ease the workload on regular developers wanting to port existing SDL apps.
  • International Input in SDL - Windows Implementation I wish to further SDLs support of international end-users. This feature will add support for Windows input methods. This will allow the input of CJK and other complex scripts in SDL programs in Windows, using the IME. It may also provide a framework to support more exotic input methods such as handwriting and speech recognition.
  • Shaped Windows under Linux, OSX, and Windows It is written that SDL Video 1.3 should support rendering into non-rectangular windows. I propose to add support for those, along with support for rendering into such windows via OpenGL or Direct3D, on Linux, Windows, and Mac OS X.
  • XRender Support SDL still uses the Core X11 protocol for rendering which is slow and cumbersome. The Ideas page suggests that XRender support is required. I plan to implement this support along with the current method as a fallback.