123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 |
- 0.99.15
- - dead key support under Windows and X11 (via XIM)
- - more character scripts (Latin 2, Latin 3, Latin 4, Latin 9, Katakana,
- Arabic, Greek with diacritics, Technical, Special, Publishing, APL, Hebrew,
- Thai, Currency signs - Korean Won sign and Euro sign) are now recognized and
- converted to Unicode in the X11 console. Previously only Latin 1, Greek
- without diacritics and Cyrillic were supported, but even they didn't work in
- recent ptcpas versions, due to regressions, which are now fixed as well.
- - use an alternative method (via GetKeyState) for obtaining the Alt, Shift and
- Control key modifier status under Windows; This eliminates a problem, where
- the alt key appears "stuck", after alt-tabbing away from the application,
- then focusing back to it with a mouse click.
- - new key modifiers added for distinguishing between left and right shift,
- control and alt, the status of num lock, caps lock and scroll lock and for
- distinguishing right keys (e.g. right shift, right alt, right ctrl),
- numpad keys and dead keys. All of them are implemented as elements in the
- ModifierKeys set, which was added to IPTCKeyEvent. They can be checked,
- for example, with:
- if pmkNumLockActive in key_event.ModifierKeys then
- ...
- The following modifiers are available:
- pmkAlt, pmkShift, pmkControl, pmkLeftAlt, pmkRightAlt, pmkLeftShift,
- pmkRightShift, pmkLeftControl, pmkRightControl, pmkNumLockActive,
- pmkNumLockPressed, pmkCapsLockActive, pmkCapsLockPressed,
- pmkScrollLockActive, pmkScrollLockPressed, pmkRightKey, pmkNumPadKey,
- pmkDeadKey
- - there is now a MoveMouseTo method, added to the console. It can be used to
- warp the mouse cursor to a different location.
- - added support for a relative mouse mode. It supports continuous mouse
- motion, not limited within the boundaries of the current window. It is
- usually used with an invisible cursor. It is activated with the
- 'relative mouse on' console option, and turned off with the option
- 'relative mouse off'.
- - the number of mouse buttons supported has been increased to 31. There is now
- support for a horizontal and a vertical mouse wheel, which are treated as
- buttons. Overall, this is the default button arrangement:
- PTCMouseButton1 - left mouse button
- PTCMouseButton2 - right mouse button
- PTCMouseButton3 - middle mouse button
- PTCMouseButton4 - mouse wheel rotated forward (scroll up)
- PTCMouseButton5 - mouse wheel rotated backward (scroll down)
- PTCMouseButton6 - mouse horizontal scroll wheel rotated left
- PTCMouseButton7 - mouse horizontal scroll wheel rotated right
- PTCMouseButton8 - "back" button ("X button 1")
- PTCMouseButton9 - "forward" button ("X button 2")
- The remaining mouse buttons are hardware specific and will vary, depending
- on the actual mouse (provided it has that many buttons at all).
- - ptccrt now supports several keyboard input modes, which can be set by
- changing the new global variable KeyMode. The following values are supported:
- kmTP7 - behaves like Turbo Pascal 7's CRT unit under DOS. This is the
- default value. Previous versions of ptccrt always behaved this
- way. Since TP7's CRT unit doesn't support the Enhanced
- Keyboard, several keys (e.g. F11 and F12) and key combinations
- are intentionally not recognized for compatibility reasons.
- kmGO32 - behaves like Free Pascal's CRT unit under DOS (GO32V2). It has
- Enhanced Keyboard support.
- kmFPWINCRT - behaves like Free Pascal's CRT unit under Windows. Similar to
- kmGO32, but emulates several incompatibilities that the
- Windows CRT unit has with the GO32V2 CRT unit. Not all of them
- are emulated though, since some of them can be considered
- bugs.
- - ptcgraph now has a global string variable WindowTitle, which allows you to
- set the window title, before calling InitGraph
- - ptcgraph was extended to also support resolutions, different than the ones,
- defined by VESA. This means that you can now use ptcgraph with resolutions,
- higher than 1280x1024 and widescreen (e.g. 16:9 or 16:10) aspect ratios, as
- long as they are supported by the display. For this, you need to call
- QueryAdapterInfo and walk through the linked list of modes, to choose a
- mode, then pass its DriverNumber and ModeNumber to InitGraph. Here's an
- example:
- uses
- ptcgraph, ptccrt;
- var
- m: PModeInfo;
- gd, gm: Integer;
- begin
- Writeln('List of all modes:');
- m := QueryAdapterInfo;
- while m <> nil do
- begin
- Writeln(m^.MaxX+1, ' x ', m^.MaxY+1, ' x ', m^.MaxColor);
- m := m^.next;
- end;
- Writeln('Now let''s find 1920x1080 with 16-bit colour...');
- m := QueryAdapterInfo;
- while m <> nil do
- begin
- if (m^.MaxX = (1920-1)) and (m^.MaxY = (1080-1)) and (m^.MaxColor = 65536) then
- begin
- InitGraph(m^.DriverNumber, m^.ModeNumber, '');
- SetColor($FFFF);
- OutTextXY(0, 0, 'Hurrah! Full HD 1920x1080 mode is available!');
- ReadKey;
- CloseGraph;
- Halt;
- end;
- m := m^.next;
- end;
- Writeln('Mode not found in list!');
- end.
- 0.99.14.1
- - fixed X11 middle and right mouse button mapping. Previously, the right mouse
- button and the middle mouse button were swapped, compared to Windows and DOS
- and contrary to the documentation.
- 0.99.14
- - added new unit ptcmouse for use with ptcgraph & ptccrt applications. It is
- similar to the winmouse and msmouse units.
- - support for resizable windows extended. Your application now receives
- a new event IPTCResizeEvent and is allowed to call a new method called
- InternalResize, which adjusts the console's width and height according to
- the new window size. The previous behaviour where your application's image
- is scaled, without it realizing that the resolution is changed still works
- if you don't call InternalResize (or when you use ptcgraph for that matter)
- - added support for intercepting the windows close events. When using unit ptc
- directly, this is enabled by sending the option 'intercept window close' to
- the console and then handling the newly introduced IPTCCloseEvent event.
- When using ptcgraph and ptccrt, closing the window emulates pressing Ctrl-C,
- in other words, your application will receive the #3 key code via ReadKey.
- - fixed crash in hermes (the pixel conversion library, used internally by
- PTCPas), encountered when converting from indexed 8bpp to 32bpp on amd64,
- when the surface width is not multiple of 8
- - even more X11 keyboard fixes
- - removed the debug log (grlog.txt) written by programs that use ptcgraph
- 0.99.13
- - added support for OpenGL under X11 and Windows. You can now use PTCPas to
- initialize OpenGL and handle events for you in a multiplatform way (similar
- to GLUT or SDL). See ptcgl.pp and ptcgl2.pp in the example directory.
- - X11 keyboard handling improvements:
- - added support for the numpad keys
- - typematic repeat (i.e. when you press a key and hold it down) now sends
- only repeating key press events, instead of repeating pairs of key
- release + key press. This makes it possible to detect auto-repeat and is
- also the way that Windows behaves.
- 0.99.12
- - pressing Alt or F10 under Windows no longer pauses the application.
- - API changes:
- - PTC classes have been made descendants of TInterfacedObject and are now
- accessed via interfaces. This simplifies memory management, because
- objects are now reference counted and automatically freed when they are
- no longer used. Unfortunately, this breaks existing code. However it's
- relatively easy to fix. See the files INTF-CHANGES-0.99.12.txt and
- INTF-CHANGES-FAQ-0.99.12.txt for details.
- 0.99.11
- - added ptcgraph - an implementation of FPC's BGI-compatible graph unit on top
- of PTCPas. It should work on all platforms, supported by PTCPas, except for
- DOS (because it doesn't have threads)
- - VBE console improvements:
- - support for double buffering with video page flipping
- - console update synchronized with the vertical retrace
- - automatic fallback to windowed mode, if initializing LFB fails. This
- results in better compatibility with NTVDM and other environments that
- would otherwise require adding the 'disable lfb' option to ptcpas.cfg.
- - support VBE 3+ separate LFB and Windowed color masks for direct color
- modes. This might fix some wrong color bugs in LFB mode on some modern
- VBE 3+ video cards.
- - fixed a bug in the X11 event handling that caused unnecessary high CPU use
- while waiting for an event
- 0.99.10
- - fpc 2.4.0 support
- - Win64 DirectX support
- - X11 DGA 2.0 support
- - VBE 2+ LFB support. Enabled by default. Offers a great performance
- improvement, but may fail on buggy VGA BIOSes or buggy DOS virtual
- machines. If it causes problems, it can be disabled by adding
- 'disable lfb' to ptcpas.cfg.
- - API changes:
- - in the hermes unit, THermesHandle was replaced with
- THermesConverterHandle, THermesClearerHandle and THermesPaletteHandle,
- which should be treated as opaque pointers, not integers. This only
- matters if you use unit hermes directly, and not ptc.
- - various bugfixes and code cleanup.
- 0.99.9
- - big endian support.
- - Win64 support (GDI only. DirectX not supported yet).
- 0.99.8
- - added support for Windows CE. Still in alpha stage. Tested on a Motorola
- MPx220 smartphone.
- - added support for fullscreen X11 using the Xrandr extension (previously
- only the XF86VidMode extension was supported). Also fullscreen X11 now works
- even when there aren't any mode switching X11 extensions available. A single
- fullscreen mode, which has the size of the entire desktop is offered in this
- case.
- - added a new simple windowed win32 GDI console, which is able to run even
- without any version of DirectX installed.
- - the X11 console now returns a mode list.
- - fixed a bug which caused win32 fixed-size windows to be non-minimizable.
- - imported the OpenPTC 1.0.1 DOS VGA fakemode assembly routines - should give
- a nice speed boost on ancient 386/486/Pentium machines.
- 0.99.7
- - A new event system + mouse support. Yes, I know I should have done this
- earlier :) Fullscreen X11 with mouse still does not work well, I'm planning
- to fix this in the next version.
- - API changes:
- - TPTCKey class renamed to TPTCKeyEvent
- - Removed int32, short16 and char8 types.
- Replaced with: Uint64, Uint32, Uint16, Uint8,
- Sint64, Sint32, Sint16, Sint8.
- - fixed fullscreen palette modes under DirectX (was buggy on modern NVIDIA and
- ATI video cards).
- - a new example program, demonstrating the mouse support.
- Use it as a reference for now, until I update the documentation with the new
- event handling stuff (hopefully this will happen in the next release).
- - X11 window is not resizable anymore. Maybe some day I'll implement (optional)
- stretching as in win32 windowed mode.
- - code cleanup. Hid some implementation details from the interface part.
- 0.99.6
- - Now distributed under the terms of the modified LGPL (used by the FPC RTL).
- See the file modified_lgpl.txt distributed with the library for details.
- Thanks to Glenn Fiedler (the author of the original OpenPTC C++ code, that
- this library is based on) and Christian Nentwich (the author of the original
- C code of the Hermes library and the X11 version of OpenPTC) for giving
- permission to distribute the code under this license.
- - The Free Pascal Development Team intends to distribute this library with the
- Free Pascal Compiler and to base the graph unit on it, which is very cool! :)
- - fullscreen support in xshm/ximage mode.
- - dga support is now disabled by default.
- - added workaround for the 'shmat' bug in fpc 2.0.0's rtl on amd64 linux.
- - fixed some compilation-related problems with the example programs.
- - fpc 2.0.2 - go32v2 compilation fixed. fpc 1.0.10 support dropped completely.
- - some other DOS code fixes and cleanups.
- - config file name changed to ptcpas.cfg (~/.ptcpas.conf on *NIX)
- 0.99.5
- - support for fpc 2.0.0. fpc 1.0.10 support dropped, except for DOS.
- - support for amd64 (the code is now 64-bit safe, but still little endian-only)
- - fix the (sometimes) missing titlebar when using the metacity window manager
- 0.99.4
- - some X11 fixes (missing cdecl's, wrong alignments, etc.)
- - FreeBSD and NetBSD now compile and work (dga and XShm still not tested...)
- - improved exception handling in demos and examples
- 0.99.3
- - support for fpc 1.9.2+ (adapted to use the new unix rtl)
- - the dos console uses rdtsc if available for more accurate timing
- - some vesa fixes
- 0.99.2
- - alt, shift, ctrl modifier keys support for X11
- - key release support for win32 and X11
- - new example (keybrd2) demonstrating the use of key release events
- 0.99.1
- - first release to sourceforge
|