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

Updates or comments can be sent to the Allegro developer's mailing list
<alleg-developers@lists.sourceforge.net>, preferrably with the text [TODO]
in the subject.


General (Platform independent) todos:
---------------------------------------------------------------------------

- make the library thread-safe
- fix use of 32-bit 'long' on 64-bit platforms
- don't use BITMAPs for zbuffers

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

- Write a unified Sidewinder driver

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

- Add a configuration option to specify the monitor on multi-monitor systems
- Re-enable docs build with a MinGW cross-compiler
- Investigate Alt+Tab pop-up window being overdrawn in windowed mode
- Investigate problem with keyboard in the dxwindow test
- Modify convert_hbitmap_to_bitmap() behaviour with 8-bit DDBs

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

- fix fb 24-bit scrolling (allegro presuming padding?)
- make spec file work with older rpms, e.g. from RedHat 6.0
  They don't like lines in %files section starting with non-`/'.
- awaiting svgalib folks to provide an atexit-free vga_init
- some problems with display switching
  [see AD thread "fbcon backgrounding" 2001-11-28 for symptoms]
- ALSA driver should try different parameters when it cannot set the
  parameters it wants the first time, ie. because the sound card is crap

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 (use asm colour conversion routines, for one)
- key[] should not be internationalised (e.g. KEY_S should always be set
  for the key two to the right of CapsLock).  If we can't solve this in
  time, include bukinm's xkeymap program.
- problem with mouse and keyboard events [fixed?]
- add an option to use the current palette in 8-bit mode

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

- tidy up the configure machinery
- implement load-on-demand for modules
- fix modules support on IRIX (export-dynamic is ignored)

MacOS X todos
---------------------------------------------------------------------------

- PPC CPU detection routines would be nice
- asm routines (altivec?) to speed things up

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

- Launching programs from the Be menu still doesn't work (Tracker works though)

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

- Display switching in fullscreen mode
- Overlay gfx driver

Wishlist:
---------------------------------------------------------------------------

- OSS MIDI pitch bend is wrong
- size_t where appropriate (get more opinions first)
- keyboard set_rate
- More hardware accelerated functions? Trans/lit sprites come to mind.
- framebuffer hardware accel via XFB or DirectFB (?) library/driver
- implementation of request_refresh_rate for fbdev, since apparently you can
  set video modes with a great detail (scanlines, memory, etc).
- 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.
- hook function to handle window resizing
- DirectMusic 6 MIDI driver
- Add caching system to speed up filename#object and load_datafile_object()
- more modularity under Linux
- XVideo driver under XFree86
- simplify linux input subsystem (it's much more complicated than necessary)
- Add support for more versatile sub-bitmap objects

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