---------------------------------------------------------------------------
This is the public TODO list for the Allegro Game/Multimedia Library.
---------------------------------------------------------------------------

Updates or comments can be sent to the TODO list maintainer Peter Wang
<tjaden@alphalink.com.au> or to the Allegro developer's mailinglist
<conductors@canvaslink.com>, preferrably with the text [TODO] in the subject.


General (Platform independant) todos:
---------------------------------------------------------------------------

- Add caching system to speed up filename#object and load_datafile_object()
- New example to test P3D scene rendering
- merge Angelo's menu auto popup patch
- rewrite set_gfx_mode, or at least have dynamic driver lists
- find solution or API to timer/multithread problem

DOS todos:
---------------------------------------------------------------------------

- Fix the mouse bug under Win2k

Win32 todos:
---------------------------------------------------------------------------

- Add backward playing to the DirectSound driver

Linux todos:
---------------------------------------------------------------------------

- Enable autodetection for SVGAlib driver.
- keyboard set_rate
- Find out more about sched_yield
- svgalib leaves crap on screen at exit
  maybe svgalib problem
  work around it if necessary (it's really annoying)
- vt switching in BACKAMNESIA mode only causes font weirdity in text
  mode on a Voodoo Banshee (using SVGAlib VESA and BANSHEE drivers), even
  if I cheat and use vga_flip.  Font returns after program quits.
- dynamically linked wrappers for drivers
- switch to SRPMs instead of weird RPMs

X11 todos:
---------------------------------------------------------------------------

- remove `dga_mouse' config var when appropriate (newer servers have fixed
  the bug this works around).  Wait until XF86 4.0 propagated..
- speed up X11 driver
- key[] should not be internationalised (e.g. KEY_S should always be set
  for the key two to the right of CapsLock)
- video mode switching crashes some X servers (mine)

Unix todos:
---------------------------------------------------------------------------

- check which parts of makefiles break with non-GNU make
- update ALSA drivers to latest stable version

Macintosh todos:
---------------------------------------------------------------------------

- allegro_message truncates message to 254 chars.
- low resolutions like 320x200 doesn't fill the entire screen.
- some speed-ups would be nice.
- missing features include: hardware accelleration, virtual screens,
  scrolling, midi, joystick, switching, windowed modes, true 16 & 32 bpp
  colordepths.
- Update the docs.
- Window close button?
- fix script must write #define ALLEGRO_MPW into include/allegro/alplatf.h

BeOS todos:
---------------------------------------------------------------------------

- Add display switching support to fullscreen driver
- Write a safe windowed driver using BBitmap
- shared library support
- code cleanup

QNX todos:
---------------------------------------------------------------------------

- Make windowed gfx driver to support color conversion
- set_window_title(), window close hook
- Video bitmaps and acceleration support in fullscreen mode
- Terminal switching
- Improve stability
- Fix the makefile
- Update the docs

Wishlist
---------------------------------------------------------------------------

- Unified color conversion routines for all windowed gfx drivers (now
  that we have a Mac port, it's a total of 4 possible windowed drivers,
  and the need of an unified set of window updating routines is stronger)
- More hardware accelerated functions? Trans/lit sprites come to mind.
- framebuffer hardware accel via XFB or DirectFB (?) library/driver
- Better get_config_text support, with multiple fallback configuration
  files (you can have lot's of them under linux), which is not supported at
  the moment (IIRC two at most).
- Split setup in two: user program and configuration library. This would
  allow easier merge process of configuration program into real user
  programs, as well as modifying the interface and "look'n'feel". The lib
  should be written in such a way to support future additions without the
  need of rewritting the user setup ui.
- Play with switch_in/out X events, just for the sake of it :-)
- OSS MIDI pitch bend.
- function to get a list of supported video modes
- hook function to handle window resizing
- uvsnprintf
- DirectInput 5 joystick driver
- DirectMusic 6 MIDI driver
- [WIN] Do not export functions and variables that are not a part of the API.

---------------------------------------------------------------------------
