aboutsummaryrefslogblamecommitdiffstats
path: root/src/macosx/Windows.pas
blob: 26761af59851b43ac0bc44e47c24a319a41152e2 (plain) (tree)
1
2
3
4
5
6
7
8





                 

        






                      
























                        












                                  







































                                          














                                          






                                                                              


              

      





                                                                           
                                    










                                                          
                                     




                                                                         
                                                           

              

                      





                                                                              
                                                                

              

                                     




                                 
                         


    
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.