123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253 |
- {
- Free Pascal port of the OpenPTC C++ library.
- Copyright (C) 2001-2003 Nikolay Nikolov ([email protected])
- Original C++ version by Glenn Fiedler ([email protected])
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- }
- {$MODE objfpc}
- {$MACRO ON}
- {$DEFINE PTC_LOGGING}
- {$UNDEF ENABLE_C_API}
- {$H+}
- {$IFDEF UNIX}
- {$DEFINE HAVE_X11_EXTENSIONS_XSHM}
- {$DEFINE XStringListToTextProperty_notyetimplemented_in_xutil_pp}
- {$ENDIF UNIX}
- Unit ptc;
- Interface
- Uses
- {$IFDEF WIN32}
- Windows, DirectDraw,
- {$ENDIF WIN32}
- {$IFDEF UNIX}
- x, xlib, xutil, keysym,
- xf86vmode, xf86dga,
- {$IFDEF HAVE_X11_EXTENSIONS_XSHM}
- xshm, ipc,
- {$ENDIF HAVE_X11_EXTENSIONS_XSHM}
- {$ENDIF UNIX}
- {SysUtils,} Hermes;
- Const
- PTC_VERSION = 'OpenPTC 1.0';
- PTC_WIN32_VERSION = 'OpenPTC Win32 1.0.18';
- Type
- Pchar8 = ^char8;
- char8 = Byte;
- Pshort16 = ^short16;
- short16 = Word;
- Pint32 = ^int32;
- int32 = DWord;
- {$INCLUDE aread.inc}
- {$INCLUDE colord.inc}
- {$INCLUDE formatd.inc}
- {$INCLUDE keyd.inc}
- {$INCLUDE moded.inc}
- {$INCLUDE paletted.inc}
- {$INCLUDE cleard.inc}
- {$INCLUDE copyd.inc}
- {$INCLUDE clipperd.inc}
- {$INCLUDE basesurd.inc}
- {$INCLUDE surfaced.inc}
- {$INCLUDE basecond.inc}
- {$INCLUDE consoled.inc}
- {$INCLUDE errord.inc}
- {$INCLUDE timerd.inc}
- {$IFDEF ENABLE_C_API}
- {$INCLUDE c_api/index.inc}
- {$INCLUDE c_api/errord.inc}
- {$INCLUDE c_api/exceptd.inc}
- {$INCLUDE c_api/aread.inc}
- {$INCLUDE c_api/colord.inc}
- {$INCLUDE c_api/cleard.inc}
- {$INCLUDE c_api/clipperd.inc}
- {$INCLUDE c_api/copyd.inc}
- {$INCLUDE c_api/keyd.inc}
- {$INCLUDE c_api/formatd.inc}
- {$INCLUDE c_api/paletted.inc}
- {$INCLUDE c_api/surfaced.inc}
- {$INCLUDE c_api/consoled.inc}
- {$INCLUDE c_api/moded.inc}
- {$INCLUDE c_api/timerd.inc}
- {$ENDIF ENABLE_C_API}
- {$IFDEF GO32V2}
- {$INCLUDE dos/base/kbdd.inc}
- {$INCLUDE dos/vesa/consoled.inc}
- {$INCLUDE dos/fakemode/consoled.inc}
- {$INCLUDE dos/textfx2/consoled.inc}
- {$INCLUDE dos/cga/consoled.inc}
- {$WARNING should be moved in the implementation part}
- {$ENDIF GO32V2}
- {$IFDEF WIN32}
- {$INCLUDE win32/base/monitord.inc}
- {$INCLUDE win32/base/eventd.inc}
- {$INCLUDE win32/base/windowd.inc}
- {$INCLUDE win32/base/hookd.inc}
- {$INCLUDE win32/base/kbdd.inc}
- {$INCLUDE win32/directx/hookd.inc}
- {$INCLUDE win32/directx/libraryd.inc}
- {$INCLUDE win32/directx/displayd.inc}
- {$INCLUDE win32/directx/primaryd.inc}
- {$INCLUDE win32/directx/consoled.inc}
- {$WARNING should be moved in the implementation part}
- {$ENDIF WIN32}
- {$IFDEF UNIX}
- {$INCLUDE x11/imaged.inc}
- {$INCLUDE x11/displayd.inc}
- {$INCLUDE x11/windowd.inc}
- {$INCLUDE x11/dgadispd.inc}
- {$INCLUDE x11/consoled.inc}
- {$WARNING should be moved in the implementation part}
- {$ENDIF UNIX}
- Implementation
- {$IFDEF GO32V2}
- Uses
- textfx2, vesa, vga, cga, timeunit, crt, go32;
- {$ENDIF GO32V2}
- {$IFDEF WIN32}
- {Uses
- Windows, DirectDraw;}
- {$ENDIF WIN32}
- {$IFDEF UNIX}
- Uses
- BaseUnix, Unix;
- {$ENDIF UNIX}
- Procedure FreeAndNil(Var q);
- Var
- tmp : TObject;
- Begin
- tmp := TObject(q);
- Pointer(q) := Nil;
- tmp.Free;
- End;
- Procedure FreeMemAndNil(Var q);
- Var
- tmp : Pointer;
- Begin
- tmp := Pointer(q);
- Pointer(q) := Nil;
- If tmp <> Nil Then
- FreeMem(tmp);
- End;
- {$INCLUDE log.inc}
- {$IFDEF WIN32}
- {$INCLUDE win32/base/cursor.inc}
- {$ENDIF WIN32}
- {$INCLUDE errori.inc}
- {$INCLUDE areai.inc}
- {$INCLUDE colori.inc}
- {$INCLUDE formati.inc}
- {$INCLUDE keyi.inc}
- {$INCLUDE modei.inc}
- {$INCLUDE palettei.inc}
- {$INCLUDE cleari.inc}
- {$INCLUDE copyi.inc}
- {$INCLUDE clipperi.inc}
- {$INCLUDE basesuri.inc}
- {$INCLUDE baseconi.inc}
- {$INCLUDE surfacei.inc}
- {$INCLUDE timeri.inc}
- {$IFDEF GO32V2}
- {$INCLUDE dos/base/kbd.inc}
- {$INCLUDE dos/vesa/console.inc}
- {$INCLUDE dos/fakemode/console.inc}
- {$INCLUDE dos/textfx2/console.inc}
- {$INCLUDE dos/cga/console.inc}
- {$ENDIF GO32V2}
- {$IFDEF WIN32}
- {$INCLUDE win32/base/monitor.inc}
- {$INCLUDE win32/base/event.inc}
- {$INCLUDE win32/base/window.inc}
- {$INCLUDE win32/base/hook.inc}
- {$INCLUDE win32/base/kbd.inc}
- {$INCLUDE win32/directx/check.inc}
- {$INCLUDE win32/directx/translte.inc}
- {$INCLUDE win32/directx/hook.inc}
- {$INCLUDE win32/directx/library.inc}
- {$INCLUDE win32/directx/display.inc}
- {$INCLUDE win32/directx/primary.inc}
- {$INCLUDE win32/directx/console.inc}
- {$ENDIF WIN32}
- {$IFDEF UNIX}
- {$INCLUDE x11/check.inc}
- {$INCLUDE x11/image.inc}
- {$INCLUDE x11/display.inc}
- {$INCLUDE x11/window.inc}
- {$INCLUDE x11/dgadisp.inc}
- {$INCLUDE x11/console.inc}
- {$ENDIF UNIX}
- {$INCLUDE consolei.inc}
- {$IFDEF ENABLE_C_API}
- {$INCLUDE c_api/except.inc}
- {$INCLUDE c_api/error.inc}
- {$INCLUDE c_api/area.inc}
- {$INCLUDE c_api/color.inc}
- {$INCLUDE c_api/clear.inc}
- {$INCLUDE c_api/clipper.inc}
- {$INCLUDE c_api/copy.inc}
- {$INCLUDE c_api/key.inc}
- {$INCLUDE c_api/format.inc}
- {$INCLUDE c_api/palette.inc}
- {$INCLUDE c_api/surface.inc}
- {$INCLUDE c_api/console.inc}
- {$INCLUDE c_api/mode.inc}
- {$INCLUDE c_api/timer.inc}
- {$ENDIF ENABLE_C_API}
- Initialization
- Begin
- {$IFDEF ENABLE_C_API}
- ptc_error_handler_function := @ptc_error_handler_default;
- {$ENDIF ENABLE_C_API}
- {$IFDEF WIN32}
- TWin32Hook_m_monitor := TWin32Monitor.Create;
- {$ENDIF WIN32}
- End;
- Finalization
- Begin
- {$IFDEF WIN32}
- FreeAndNil(TWin32Hook_m_monitor);
- {$ENDIF WIN32}
- End;
- End.
|