= 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. <> == 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 === Other details === 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