OpenPTC 1.0 Win32 Distribution Changes Log
------------------------------------------


Version 1.0.4 [3/4/99]:

   - Attached a clipper to the primary surface in windowed
     output so that it now behaves correctly when windows are
     placed on top of it, or it is moved offscreen. windowed
     output should be 100% stable now!
   - Implemented much improved windowed output that renders to
     an offscreen secondary surface then copies the contents
     to the primary surface on each call to Console::update.
     This fixes lots of nasty problems with windowed output.
   - Added code to make sure that the mouse cursor is always
     correctly hidden, however, on some systems explorer seems
     to take mouse focus back from the fullscreen app and show
     the cursor (!) when the app is run with a double click
     on the exe file in explorer. Still looking for a fix for
     this problem!
   - Made DirectXHook close the console on WM_CLOSE. This makes
     DirectX fullscreen shutdown cleanly when ALT-F4 is pressed,
     however calling exit() without first closing the console
     still causes an unclean shutdown (ie. window positions may
     be messed up).
   - Fixed windowed output to stop accidental window flashing or
     activation when the window loses focus (the ALT-TAB handling
     for fullscreen was incorrectly still in place in windowed
     mode causing some problems...)
   - Made the fullscreen window WS_EX_TOPMOST, and added code to
     make sure it gets properly minimized when the window looses
     focus in fullscreen. Now the switch out from a fullscreen mode
     should be clean (no topmost window covering others...).
   - Fixed the ALT-TAB handling code to advoid the occasional
     "DDERR_SURFACELOST" errors in the previous version. Switching
     away from a fullscreen console should be 100% stable now!
   - Fixed a cut&paste bug in DirectXConsole::option, the option
     "default bits" was not behaving correctly (thanks zoon).
   - Added code to make sure that the cursor is shown in the error
     message box after an error was reported from inside a fullscreen
     console. Before this fix, the mouse cursor was invisible over
     the error message box in some circumstances.
   - Almost (heheh) added assembler support for HERMES in Win32. It
     will be in very shortly, but a couple of things halted progress
     for the time being. See "changes.txt" in the "source/Hermes"
     directory for a list of changes i have made to improve HERMES
     under Win32.
   - Added two more extension functions to support the primary and
     secondary surfaces directly: "Console::lpDDS_primary" and
     "Console::lpDDS_secondary". See "extensions.txt" for details.
   - Added a "secondary" ddraw surface to the console. This opens the
     door for a lot of funky things like stable windowed output,
     stretching from a low resolution secondary surface to a higher
     resolution primary surface etc.


Version 1.0.3 [31/3/99]:

   - Fixed mouse cursor hiding to work more correctly, although there
     still seems to be problems when an application is launched from
     explorer with a double mouse click on some computers... (?)
   - Added code to save the position of the foreground window before
     switching modes, and to restore it on leaving the mode. This
     should fix the annoying bug where VC gets resized to the width
     and height of the display mode. If you still experience problems
     with window/icon positions with PTC, please tell me asap. so i
     can take more comprehensive measures to make sure it does not
     happen (if this does not fix it, i will save and restore the
     position of every single window and icon during mode switches!)
   - Found some minor problems in the merger Console::open functions
     not behaving exactly as i would like them to regarding console
     options in a merged distribution (ie. DirectX + GDI). To fix
     the problem for now i have constructed a little hack, to fix it
     more completely may require a redesign of the merger console.
     For now, this will do :)
   - Fixed a minor bug in the merger Console::option function. Some
     options were not working correctly.
   - Found the primary reason why ALT-TAB was exiting the application
     immediately... ALT is a keypress in PTC, and the main key press
     loop exits immediately in most examples as soon as any key is
     pressed. To get around this i have temporarily disabled ALT
     key presses and modifiers, i will enable an option in the
     future to control whether system keys should be allowed through
     or restricted to the application only.
   - Implemented DirectXHook to handle all required window messages
   - Fixed Win32Hook to correctly handle multiple hooks on the
     same HWND. Now a lot of nasty problems can be fixed...
   - Removed the DirectXConsole and GDIConsole from being exported!
     Now the ptc.dll is much smaller, these consoles were exported
     by accident! Only the main Console was supposed to be exported
     in the dll!
   - Added special defines to increase compilation speed of
     windows.h and to restrict ddraw.h to dx3 compliance.
   - Found some details with option strings that i forget to
     mention in "options.txt" last release. If the console options
     didnt work in 1.0.2, read "options.txt" again and read the
     notes about options in a merged distibution.


Version 1.0.2 [25/3/99]:

   - Simplified the image example source code.
   - Implemented proper key stroke buffering and control,
     alt, shift modifiers. Updated the "Keyboard" example to
     check the "shift" modifier.
   - Fixed a bug in the Palette class. The bug caused the first
     palette set to be the only one used in some cases, now all
     palette operations will work correctly. (note. this bug did
     not show up in the examples because they only use a single
     palette).
   - Added basic "merger kit" functionality. This is currently
     transparent to you using PTC, but in the future will let you
     choose between using the default console, DirectX console,
     or GDI console at runtime.
   - Fixed a very minor bug in the Console::lpDD/lpDD2/lpDDS
     functions. They were not being declared as PTCAPI, which is
     basically stdcall, this may have caused some problems when
     interfacing to the dll. If so, its all fixed now :)
   - Added "GDI" source tree as a placeholder for when GDI console
     support gets added to PTC for Win32.


Version 1.0.1 [22/3/99]:

   - Added documentation for Win32 PTC extensions in "extensions.txt"
   - Added option strings to the console. See "options.txt" for
     more information about the new option strings.
   - Converted all workspace and project files to Visual C++ 6.0.
     This is the best format to use as it works perfectly with
     VC6 without conversion and is backwards compatable with VC5.


Version 1.0.0 [19/3/99]:

   - Fixed surface clear clipping bug with new porting kit 1.0.1 code
   - Updated to the latest porting kit, examples kit, demos kit
     and testing kit. This implementation is OpenPTC 1.0 compliant.
   - Added console pages functionality from porting kit
   - Added "Copy" example program
   - Added "Console" example program
   - Fixed major clipping bug and upgraded clear example
   - Upgraded timer class to use QueryPerformanceCounter API
   - Problems with palette 255 entry being set to white DirectDraw bug
   - Upgraded palette functionality to work properly without a workaround
   - Upgraded DirectDraw Surface interfaces to LPDIRECTDRAWSURFACE2
   - Upgraded DirectDraw interface to LPDIRECTDRAW2 in DirectXDisplay
   - Modified PTCAPI to _stdcall and added DLLAPI (dllexport/import)
     to make sure that the dll is always properly linked to
   - Added PTCAPI exporting define to properly export api functions
   - Changed all examples over to use ptc.dll by default
   - Added dynamic library support (ptc.dll)
   - Partitioned code into Core, Win32 and DirectX directories
   - Brought over old source code from Win32 PTC 2.0.8
   - Built up Win32 implementation framework from porting kit
