Wiki Page Content

Differences between revisions 15 and 36 (spanning 21 versions)
Revision 15 as of 2010-02-01 07:18:44
Size: 5653
Editor: Sam Lantinga
Comment: null
Revision 36 as of 2015-01-09 22:36:44
Size: 6701
Comment: Fixed TableOfContents macro arguments.
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= SDL 1.3 Roadmap = #pragma camelcase off
Line 3: Line 3:
This is a list of features which are in progress for the SDL 1.3 release. The features are organized by subsystem and assigned to developers. Features will move around as the design evolves. = SDL 2.0 Roadmap =
Line 5: Line 5:
<<TableOfContents(2, 2)>> 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.

<<TableOfContents(2)>>
Line 10: Line 12:
 * <<Color2(green, Sam: Add support for multiple windows)>>
 * <<Color2(green, Sam: Create 3D accelerated texture based rendering API)>>
 * <<Color2(green, Sam: Create API for enabling/disabling the screensaver)>>
 * <<Color2(col=green, text="Sam: Add support for multiple windows")>>
 * <<Color2(col=green, text="Sam: Create 3D accelerated texture based rendering API")>>
 * <<Color2(col=green, text="Sam: Create API for enabling/disabling the screensaver")>>
 * <<Color2(col=green, text="Sam: Add support for selecting video mode refresh rate")>>
 * <<Color2(col=green, text="Sam: Create API for clipboard support (check out !PyGame)")>>
 * <<Color2(col=green, text="Sam: Add support for multiple displays")>>
 * <<Color2(col=green, text="Sam: Add concept of viewport to fullscreen windows")>>
 * <<Color2(col=green, text="Sam: Add support for synchronizing 2D updates with vblank, using SDL_HINT_RENDER_VSYNC")>>
 * <<Color2(col=green, text="Mason Wheeler and Gabriel Jacobo: Add support for render targets")>>
Line 15: Line 24:
 * ???: Implement landscape mode for iPhone port
 * Sam: Add support for multiple displays
   * <<Color2(green, Windows)>>
   * <<Color2(green, Mac OS X)>>
   * Linux
 * Sam: Add support for selecting video mode refresh rate
   * <<Color2(green, Windows)>>
   * <<Color2(green, Mac OS X)>>
   * Linux
 * ???: Add OpenGL 3.0 context support
 * Sam: Create API for clipboard support (check out !PyGame)
 * Ryan: Implement landscape mode for iPhone port
 * Sam: Add support for OpenGL context profiles
Line 27: Line 27:
 * <<Color2(col=green, text="Andreas: Support shaped windows")>>
   * <<Color2(col=green, text="Windows")>>
   * Mac OS X
   * <<Color2(col=green, text="Linux")>>
Line 29: Line 33:
 * Create desktop video mode change notification
 * Add concept of viewport to fullscreen windows
 * Add support for synchronizing
2D updates with vblank (bug #406)
 *
Support video modes with alpha channels
 * Support shaped windows
 * Support always-on-top window styles
 *
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
 * <<Color2(col=gray, text="Create desktop video mode change notification")>>
 * <<Color2(col=gray, text="Support always-on-top window styles")>>
 * <<Color2(col=gray, text="Support multiple icon sizes (e.g. for Windows Vista)")>>
 * <<Color2(col=gray, text="Implement NET_WM_PING and NET_WM_PID/WM_CLIENT_MACHINE (http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html#KILLINGWINDOWS)")>>
 * <<Color2(col=gray, text="Support desktop windows")>>
Line 46: Line 47:
 * Support multiple icon sizes (e.g. for Windows Vista)
Line 51: Line 51:
 * <<Color2(green, Ryan: Add support for float and 32-bit int audio formats)>>
 * <<Color2(green, Ryan: Add support for 7.1 speaker output)>>
 * <<Color2(col=green, text="Ryan: Add support for float and 32-bit int audio formats")>>
 * <<Color2(col=green, text="Ryan: Add support for 7.1 speaker output")>>
Line 55: Line 55:
 * <<Color2(green, Ryan: Create audio recording API)>>  * <<Color2(col=green, text="Ryan: Create audio recording API")>>
Line 59: Line 59:
 * <<Color2(green, Ryan: Add support for multiple audio devices)>>  * <<Color2(col=green, text="Ryan: Add support for multiple audio devices")>>
Line 67: Line 67:
 * PCM volume control  * <<Color2(col=gray, text="PCM volume control")>>
Line 71: Line 71:
=== Complete ===
 * <<Color2(col=green, text="Sam: Add a way to dynamically register for custom event types")>>
 * <<Color2(col=green, text="Add a timeout parameter for [[SDL_WaitEvent]]() (http://lists.libsdl.org/pipermail/sdl-libsdl.org/2008-May/thread.html#65067)")>>
Line 72: Line 76:
 * Sam: Add a timestamp to events
Line 74: Line 77:
 * Sam: Resolve question of how to represent iOS events which need to be handled before dispatch returns
Line 76: Line 80:
 * 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)
 * <<Color2(col=gray, text="Add a timestamp to events")>>
Line 82: Line 85:
 * <<Color2(green, Sam: Mousewheel has a separate event)>>  * <<Color2(col=green, text="Sam: Mousewheel has a separate event")>>
 * <<Color2(col=green, text="Sam: Support showing / hiding the cursor")>>
 * <<Color2(col=green, text="Sam: Add support color cursors")>>
Line 85: Line 90:
 * 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?
 * Sam: Support showing / hiding the cursor
Line 89: Line 91:
  * Verify cursor location is correct when ungrabbed
  * Verify proper behavior with Vista DPI scaling
 * Verify cursor location is correct when ungrabbed
 * Verify proper behavior with Vista DPI scaling
Line 93: Line 95:
 * ???: Pressure/tilt support for tablet like devices
 * Sam: Add support color cursors
 * Sam: Add support animated cursors
 * <<Color2(col=gray, text="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?
 * <<Color2(col=gray, text="Pressure/tilt support for tablet like devices")>>
 * <<Color2(col=gray, text="Add support animated cursors")>>
Line 99: Line 102:
=== Complete ===
 * <<Color2(col=green, text="Sam: Create new text input event separate from key events")>>
Line 100: Line 106:
 * ???: Add support for multiple keyboards (wishlist?)
 * <<Color2(green, Sam: Create new text input event separate from key events)>>
Line 104: Line 108:
  * Q: How do you handle key repeat?
* Sam/Jiang: Create IME API and support system IME interfaces
   * Windows
   * <<Color2(green, Mac OS X)>>
 * Sam/Jiang/Daniel: Create IME API and support system IME interfaces
   * <<Color2(col=green, text="Windows")>>
   * <<Color2(col=green, text="Mac OS X")>>
Line 113: Line 116:
=== Complete ===
 * <<Color2(col=green, text="Edgar: Create Force Feedback API")>>
Line 114: Line 120:
 * <<Color2(green, Edgar: Create Force Feedback API)>>
   * <<Color2(green, Windows)>> - need to fix building on cygwin32
   * <<Color2(green, Mac OS X)>>
   * <<Color2(green, Linux)>>
 * ???: Add support for joystick device live connect and disconnect
 * Ryan: Add support for joystick device live connect and disconnect
Line 122: Line 124:
=== Required ===
 * ???: Create multi-touch input API
=== Complete ===
 * <<Color2(col=green, text="Jim: Create multi-touch input API")>>
Line 128: Line 130:
 * <<Color2(green, Sam: Create API for getting the number of CPUs)>>
   * <<Color2(green, Windows)>>
   * <<Color2(green, Mac OS X)>>
   * <<Color2(green, Linu
x)>>
 * <<Color2(green,
Bob: Create API for atomic operations on data)>>
 * <<Color2(green, Sam: Remove unsafe SDL_!KillThread() API)>>

=== Require
d ===
 * Sam: Create API for thread
priority
 * Sam: Create API for thread processor affinity
 * <<Color2(col=green, text="Sam: Create API for getting the number of CPUs")>>
 * <<Color2(col=green, text="Bob: Create API for atomic operations on data")>>
 * <<Color2(col=green, text="Sam: Remove unsafe SDL_!KillThread() API")>>
 * <<Color2(col=green, text="Sam: Create API for thread priority")>>
Line 141: Line 137:
=== Required ===
 * ???: Add higher precision timers for profiling
=== Complete ===
 * <<Color2(col=green, text="Sam: Add higher precision timers for profiling")>>
Line 146: Line 142:
=== Complete ===
 * <<Color2(col=green, text="Ryan: Create API for assertions")>>
 * <<Color2(col=green, text="Sam: Public license for SDL_compat.c, tests, and SDL_main*")>>
 * <<Color2(col=green, text="Sam: Figure out the best way to support simultaneous SDL 1.2 and SDL 2.0 installations")>>
 * <<Color2(col=green, text="Sheena: Finish 2.0 API documentation")>>
Line 147: Line 149:
 * Sam: Public license for SDL_compat.c, tests, and SDL_main*
 * Sam: Create extended set of (negative) error codes and have the API functions document and return them
 * Sam: Figure out the best way to support simultaneous SDL 1.2 and SDL 1.3 installations
 * Sam: Write introductions for SDL 2.0 API documentation
Line 152: Line 152:
 * ???: Create an API for live video capture
 * ???: Create an API for accelerometer data
 * <<Color2(col=gray, text="Create an API for live video capture")>>
 * <<Color2(col=gray, text="Create an API for accelerometer data")>>
 * <<Color2(col=gray, text="Create extended set of (negative) error codes and have the API functions document and return them")>>
Line 156: Line 157:
Ryan has more information on the SDL 1.3 changes that you can find here: <<BR>> Ryan has more information on the SDL 2.0 changes that you can find here: <<BR>>

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

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&section=sdl13

None: Roadmap (last edited 2015-01-09 22:36:44 by PhilippWiesemann)

(Page Info.)
Feedback
Please include your contact information if you'd like to receive a reply.
Submit