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


SESSION GOALS:

- add support for new compilers (wc10x, wc11, cygnus, mingw32, lcc-win32)
  with scripting files and fix link problems if possible.

SHORT TERM:

- Add "hook" extension to allow the user to hook the wndproc
  messages without needing to create their own window. hook must
  recieve messages BEFORE ptc internal hook gets them! (WM_CLOSE)
- Add "Hook" extension example to show how to get mouse messages
  from the console without needing to manage the WndProc.
- Code simple installer for ptc.dll/ptcdebug.dll/hermes.dll and
  seperate the runtime and SDK components of OpenPTC Win32. Also,
  seperate the win32 releases into 'public' and 'developer'
  releases. public releases will have precompiled binaries and
  an install program, + sdk. developers releases will have just
  source code + precompiled library/dll, no install.
- Check the nearest mode search again, i think there are problems
  in the code. also, add code to distinguish between indexed only
  and indexed/direct. this may be what is causing nearest mode search
  pass one failure on some systems ?- Fix set palette bug under JNI/RNI. I cannot track it down!
- Convert static array structures in OpenPTC Win32 over
  to use STL. I'm sick of managing complex data structures
  from scratch using limited fixed size buffers. blergh.
  This will probably mean that Visual C++ 6.0 will be required
  to compile ptc.dll and ptcdebug.dll.
- Do a general clean up of all the code, cut down and simplify
  everything that can be cleaned up. Some code needs a good
  "spring cleaning".

MID TERM:

- 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 and
  a new "DirectXInformation" class that will output dx structs
  as text information.
- 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").
- 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?
- Implement saving and restoring of the contents of the primary 
  and secondary surfaces + failsafe surface restore in worst case
  when surfaces are lost unexpectedly.
- Improve direct window primary writing stability by blocking the
  primary lock until it succeeds (ie. when the window is minimized,
  or moved off screen).
- Replace all of the code in DirectXPrimary that performs console
  clearing in software with DX hardware clearing (windowed output
  clearing is mostly still software when writing directly to
  primary, not a major problem since windowed output usually
  writes to a secondary first then copies to primary on update).
- 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!)
- 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.
- Properly handle resizable windows when writing directly to the
  primary surface by changing the width/height of the console?
- Namespace OpenPTC Win32 source again and add "Namespace" example
  that demonstrates use of "ptc" instead of "ptc.h". (put "Base"
  back in for the base classes!). Basic namespacing, not nested
  namespacing! Problem: how to cleanly disable namespacing for
  compilers that do not support it?

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!
- Add options to the system menu of ptc windows for 1x, 2x, 4x
  window output, fullscreen or windowed, etc.
- Add support for configuring PTC options globally from inside
  the registry? PTC control panel applet? heheh :)
- 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!
