aboutsummaryrefslogblamecommitdiffstats
path: root/Game/Code/MacOSX/Wrapper/Windows.pas
blob: cee75591b91ad5a0cf2021c53091567a3718fc12 (plain) (tree)






































































































































































                                                                                  
unit Windows;

{$I switches.inc}

interface

uses Types;

const
  opengl32 = 'OpenGL';
  MAX_PATH = 260;

type

    DWORD = Types.DWORD;
    {$EXTERNALSYM DWORD}
    BOOL = LongBool;
    {$EXTERNALSYM BOOL}
    PBOOL = ^BOOL;
    {$EXTERNALSYM PBOOL}
    PByte = Types.PByte;
    PINT = ^Integer;
    {$EXTERNALSYM PINT}
    PSingle = ^Single;
    PWORD = ^Word;
    {$EXTERNALSYM PWORD}
    PDWORD = ^DWORD;
    {$EXTERNALSYM PDWORD}
    LPDWORD = PDWORD;
    {$EXTERNALSYM LPDWORD}
    HDC = type LongWord;
    {$EXTERNALSYM HDC}
    HGLRC = type LongWord;
    {$EXTERNALSYM HGLRC}
    TLargeInteger = Int64;
    HFONT = type LongWord;
    {$EXTERNALSYM HFONT}
    HWND = type LongWord;
    {$EXTERNALSYM HWND}

  PPaletteEntry = ^TPaletteEntry;
  {$EXTERNALSYM tagPALETTEENTRY}
  tagPALETTEENTRY = packed record
    peRed: Byte;
    peGreen: Byte;
    peBlue: Byte;
    peFlags: Byte;
  end;
  TPaletteEntry = tagPALETTEENTRY;
  {$EXTERNALSYM PALETTEENTRY}
  PALETTEENTRY = tagPALETTEENTRY;
  
    PRGBQuad = ^TRGBQuad;
    {$EXTERNALSYM tagRGBQUAD}
    tagRGBQUAD = packed record
        rgbBlue: Byte;
        rgbGreen: Byte;
        rgbRed: Byte;
        rgbReserved: Byte;
    end;
    TRGBQuad = tagRGBQUAD;
    {$EXTERNALSYM RGBQUAD}
    RGBQUAD = tagRGBQUAD;

    PBitmapInfoHeader = ^TBitmapInfoHeader;
    {$EXTERNALSYM tagBITMAPINFOHEADER}
    tagBITMAPINFOHEADER = packed record
        biSize: DWORD;
        biWidth: Longint;
        biHeight: Longint;
        biPlanes: Word;
        biBitCount: Word;
        biCompression: DWORD;
        biSizeImage: DWORD;
        biXPelsPerMeter: Longint;
        biYPelsPerMeter: Longint;
        biClrUsed: DWORD;
        biClrImportant: DWORD;
    end;
    TBitmapInfoHeader = tagBITMAPINFOHEADER;
    {$EXTERNALSYM BITMAPINFOHEADER}
    BITMAPINFOHEADER = tagBITMAPINFOHEADER;

    PBitmapInfo = ^TBitmapInfo;
    {$EXTERNALSYM tagBITMAPINFO}
    tagBITMAPINFO = packed record
        bmiHeader: TBitmapInfoHeader;
        bmiColors: array[0..0] of TRGBQuad;
    end;
    TBitmapInfo = tagBITMAPINFO;
    {$EXTERNALSYM BITMAPINFO}
    BITMAPINFO = tagBITMAPINFO;
	
  PBitmapFileHeader = ^TBitmapFileHeader;
  {$EXTERNALSYM tagBITMAPFILEHEADER}
  tagBITMAPFILEHEADER = packed record
    bfType: Word;
    bfSize: DWORD;
    bfReserved1: Word;
    bfReserved2: Word;
    bfOffBits: DWORD;
  end;
  TBitmapFileHeader = tagBITMAPFILEHEADER;
  {$EXTERNALSYM BITMAPFILEHEADER}
  BITMAPFILEHEADER = tagBITMAPFILEHEADER;
	

    function MakeLong(a, b: Word): Longint;
    procedure ZeroMemory(Destination: Pointer; Length: DWORD);
    function QueryPerformanceFrequency(var lpFrequency: TLargeInteger): BOOL;
    function QueryPerformanceCounter(var lpPerformanceCount: TLargeInteger): BOOL;
	function GetTickCount : Cardinal;
	Procedure ShowMessage(msg : string);
    procedure CopyMemory(Destination: Pointer; Source: Pointer; Length: DWORD);

implementation

uses SDL;

procedure CopyMemory(Destination: Pointer; Source: Pointer; Length: DWORD);
begin
  Move(Source^, Destination^, Length);
end;

Procedure ShowMessage(msg : string);
begin
  // to be implemented	
end;

function MakeLong(A, B: Word): Longint;
begin
  Result := (LongInt(B) shl 16) + A;
end;

procedure ZeroMemory(Destination: Pointer; Length: DWORD);
begin
    FillChar( Destination^, Length, 0);
end;

function QueryPerformanceFrequency(var lpFrequency: TLargeInteger): BOOL;
begin
{$IFDEF MSWINDOWS}
    Result := Windows.QueryPerformanceFrequency(lpFrequency);
{$ENDIF}
{$IFDEF MACOS}
    Result := true;
    lpFrequency := 1000;
{$ENDIF}
end;

function QueryPerformanceCounter(var lpPerformanceCount: TLargeInteger): BOOL;
begin
{$IFDEF MSWINDOWS}
    Result := Windows.QueryPerformanceCounter(lpPerformanceCount);
{$ENDIF}
{$IFDEF MACOS}
    Result := true;
    lpPerformanceCount := SDL_GetTicks;
{$ENDIF}
end;

function GetTickCount : Cardinal;
begin
    Result := SDL_GetTicks;
end;

end.