SDL 2.0 Roadmap
This is a list of features which are in progress for the SDL 2.0 release. The features are organized by subsystem and assigned to developers. Features will move around as the design evolves.
Contents
Video
Complete
Sam: Add support for multiple windows
Sam: Create 3D accelerated texture based rendering API
Sam: Create API for enabling/disabling the screensaver
Sam: Add support for selecting video mode refresh rate
Sam: Create API for clipboard support (check out PyGame)
Sam: Add support for multiple displays
Sam: Add concept of viewport to fullscreen windows
Sam: Add support for synchronizing 2D updates with vblank, using SDL_HINT_RENDER_VSYNC
Mason Wheeler and Gabriel Jacobo: Add support for render targets
Required
- Ryan: Implement landscape mode for iPhone port
- Sam: Add support for OpenGL context profiles
- Sam: Create flags for specifying foreign window event behavior
Andreas: Support shaped windows
Windows
- Mac OS X
Linux
Wishlist
Create desktop video mode change notification
Support always-on-top window styles
Support multiple icon sizes (e.g. for Windows Vista)
Implement NET_WM_PING and NET_WM_PID/WM_CLIENT_MACHINE (http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html#KILLINGWINDOWS)
Support desktop windows
setAttribute(Qt::WA_X11NetWmWindowTypeDesktop); setWindowFlags(Qt::SplashScreen); Qt::WindowFlags flags = 0; flags |= Qt::FramelessWindowHint; flags |= Qt::Tool; flags |= Qt::WindowStaysOnBottomHint;
Audio
Complete
Ryan: Add support for float and 32-bit int audio formats
Ryan: Add support for 7.1 speaker output
Required
Ryan: Create audio recording API
- Windows
- Mac OS X
- Linux
Ryan: Add support for multiple audio devices
- Windows
- Mac OS X
- Linux
- Ryan: Add support for audio device live connect and disconnect
- Ryan: Add support for non-power-of-two audio rate conversion
Wishlist
PCM volume control
Event
Complete
Sam: Add a way to dynamically register for custom event types
Add a timeout parameter for SDL_WaitEvent() (http://lists.libsdl.org/pipermail/sdl-libsdl.org/2008-May/thread.html#65067)
Required
- Sam: Add modifier state to key and button events
- Sam: Resolve question of how to represent iOS events which need to be handled before dispatch returns
Wishlist
Add a timestamp to events
Mouse Input
Complete
Sam: Mousewheel has a separate event
Sam: Support showing / hiding the cursor
Sam: Add support color cursors
Required
- Sam: Reimplement mouse grab support
- Verify cursor location is correct when ungrabbed
- Verify proper behavior with Vista DPI scaling
Wishlist
Ryan: Add support for multiple mice
- Q: What is the mapping of individual mice to pointers? Is there a "master pointer" that multiple mice share and then events for the individual mice? Is there a dual mode, where you have a single pointer that all mice affect, and you can switch to multiple pointers, each affected by a single mouse?
Pressure/tilt support for tablet like devices
Add support animated cursors
Keyboard Input
Complete
Sam: Create new text input event separate from key events
Required
- Q: When you're enabling or disabling text events via keystroke, how do you ignore the text generated by the key that is toggling text input?
- A: Key events are guaranteed to happen first
- Sam/Jiang/Daniel: Create IME API and support system IME interfaces
Windows
Mac OS X
- Linux
- Sam: Add name to keysym and name to scancode lookup functions
Joystick Input
Complete
Edgar: Create Force Feedback API
Required
- Ryan: Add support for joystick device live connect and disconnect
Multi-touch Input
Complete
Jim: Create multi-touch input API
Multi-threading
Complete
Sam: Create API for getting the number of CPUs
Bob: Create API for atomic operations on data
Sam: Remove unsafe SDL_KillThread() API
Sam: Create API for thread priority
Timers
Complete
Sam: Add higher precision timers for profiling
General
Complete
Ryan: Create API for assertions
Sam: Public license for SDL_compat.c, tests, and SDL_main*
Sam: Figure out the best way to support simultaneous SDL 1.2 and SDL 2.0 installations
Sheena: Finish 2.0 API documentation
Required
- Sam: Write introductions for SDL 2.0 API documentation
Wishlist
Create an API for live video capture
Create an API for accelerometer data
Create extended set of (negative) error codes and have the API functions document and return them
Ryan has more information on the SDL 2.0 changes that you can find here:
http://icculus.org/cgi-bin/finger/finger.pl?user=icculus&date=2007-10-07§ion=sdl13