OpenPTC 1.0 Win32 Distribution TODO
-----------------------------------


SHORT TERM:

- Implement saving and restoring of the contents of the
  primary and secondary surfaces + failsafe surface restore
  in worst case when surfaces are lost unexpectedly.
- Fix the core console 'merger kit' to behave much more correctly,
  and add a concept of a 'default' console option to switch back
  from a specific console (ie. "DirectX").
- Replace all of the code in DirectXPrimary that performs console
  clearing in software with DX hardware clearing (windowed output
  clearing is mostly still software...)
- Add control over the icon resource string so users can load
  their own icons for the ptc window easily.
- Implement proper Console::information string generation
- Fix up Win32Window class name registration to make sure that
  it will never try to register two identical class names with
  different class data at the same time!
- Add a window update that peeks for certain window messages
  only. This is required because the console.read should only
  process keyboard messages, not any other messages (ie. resize!)

MID TERM:

- Extend window position saving and restoring to all top level
  windows (and maybe icons as well) to make sure that fullscreen
  output can never possibly mess up the position of the users
  windows and icons (this is required for the correct operation
  of user managed HWND in fullscreen!). "Win32Desktop" class?
- Convert all static array structures in OpenPTC Win32 over
  to use the STL. I'm sick of managing complex data structures
  from scratch using limited fixed size buffers. blergh.
- Implement area updates for cases where there is a secondary
  surface being copied to the primary on each update.
- Add some more window styles for windowed output.
- Add support for configuring PTC options globally from inside
  the registry? PTC control panel applet? heheh :)
- Properly handle resizable windows when writing directly to the
  primary surface by changing the width/height of the console?
- Add options to the system menu of ptc windows for 1x, 2x, 4x
  window output, fullscreen or windowed, etc.

LONG TERM:

- Add a lot more extension example programs to show how to
  interface PTC with DirectX, Direct3D, OpenGL, GDI, Win32 MCI
  video playing routines etc. How to set a hook on the console
  WndProc to get mouse events etc.
- Make ALT-ENTER to switch between windowed and fullscreen output.
  This would be very hard to implement but extremely cool!
- Implement a workaround the windows ALT and F10 system
  keys to stop the program pausing when they are pressed.
- Add GDI support once the DirectX support is completed. This will
  be most useful for providing easy access to WGL/OpenGL!
- Add Java support (RNI/JNI) to ptc.dll.
- Add assembler support to HERMES under Win32/Visual C++ so that
  the assembly routines can be used in OpenPTC Win32.
- Seperate the Hermes routines to "hermes.dll" and link dynamically
  to hermes.dll from ptc.dll. Once this is done, an installer
  will be required.
- Add installer for ptc.dll/ptcdebug.dll/hermes.dll and seperate the
  runtime and SDK components of OpenPTC Win32.
