hedgewars/SDLh.pas
changeset 6580 6155187bf599
parent 6551 a2f39cb9af62
child 6663 2c4151afad0c
equal deleted inserted replaced
6579:fc52f7c22c9b 6580:6155187bf599
    20 
    20 
    21 unit SDLh;
    21 unit SDLh;
    22 interface
    22 interface
    23 
    23 
    24 {$IFDEF LINUX}
    24 {$IFDEF LINUX}
    25   {$DEFINE UNIX}
    25     {$DEFINE UNIX}
    26 {$ENDIF}
    26 {$ENDIF}
    27 {$IFDEF FREEBSD}
    27 {$IFDEF FREEBSD}
    28   {$DEFINE UNIX}
    28     {$DEFINE UNIX}
    29 {$ENDIF}
    29 {$ENDIF}
    30 {$IFDEF DARWIN}
    30 {$IFDEF DARWIN}
    31   {$DEFINE UNIX}
    31     {$DEFINE UNIX}
    32 {$ENDIF}
    32 {$ENDIF}
    33 {$IFDEF HAIKU}
    33 {$IFDEF HAIKU}
    34   {$DEFINE UNIX}
    34     {$DEFINE UNIX}
    35 {$ENDIF}
    35 {$ENDIF}
    36 
    36 
    37 {$IFDEF UNIX}
    37 {$IFDEF UNIX}
    38   {$IFNDEF DARWIN}
    38     {$IFNDEF DARWIN}
    39     {$linklib c}
    39         {$linklib c}
    40   {$ENDIF}
       
    41   {$IFDEF HAIKU}
       
    42     {$linklib root}
       
    43   {$ELSE}
       
    44     {$IFNDEF ANDROID}
       
    45       {$linklib pthread}
       
    46     {$ENDIF}
    40     {$ENDIF}
    47   {$ENDIF}
    41     {$IFDEF HAIKU}
       
    42         {$linklib root}
       
    43     {$ELSE}
       
    44         {$IFNDEF ANDROID}
       
    45         {$linklib pthread}
       
    46     {$ENDIF}
       
    47     {$ENDIF}
    48 {$ENDIF}
    48 {$ENDIF}
    49 
    49 
    50 {$IFDEF FPC}
    50 {$IFDEF FPC}
    51   {$PACKRECORDS C}
    51     {$PACKRECORDS C}
    52 {$ELSE}
    52 {$ELSE}
    53   {$DEFINE cdecl attribute(cdecl)}
    53     {$DEFINE cdecl attribute(cdecl)}
    54 {$ENDIF}
    54 {$ENDIF}
    55 
    55 
    56 {$IFDEF DARWIN}
    56 {$IFDEF DARWIN}
    57   {$IFNDEF IPHONEOS}
    57     {$IFNDEF IPHONEOS}
    58     {$PASCALMAINNAME SDL_main}
    58         {$PASCALMAINNAME SDL_main}
    59     {$linkframework Cocoa}
    59         {$linkframework Cocoa}
    60     {$linkframework SDL}
    60         {$linkframework SDL}
    61     {$linkframework SDL_net}
    61         {$linkframework SDL_net}
    62     {$linkframework SDL_image}
    62         {$linkframework SDL_image}
    63     {$linkframework SDL_ttf}
    63         {$linkframework SDL_ttf}
    64     {$linkframework SDL_mixer}
    64         {$linkframework SDL_mixer}
    65     {$linkframework OpenGL}
    65         {$linkframework OpenGL}
    66   {$ENDIF}
    66     {$ENDIF}
    67 {$ENDIF}
    67 {$ENDIF}
    68 
    68 
    69 
    69 
    70 (*  SDL  *)
    70 (*  SDL  *)
    71 const
    71 const
    74     SDL_TTFLibName = 'SDL_ttf.dll';
    74     SDL_TTFLibName = 'SDL_ttf.dll';
    75     SDL_MixerLibName = 'SDL_mixer.dll';
    75     SDL_MixerLibName = 'SDL_mixer.dll';
    76     SDL_ImageLibName = 'SDL_image.dll';
    76     SDL_ImageLibName = 'SDL_image.dll';
    77     SDL_NetLibName = 'SDL_net.dll';
    77     SDL_NetLibName = 'SDL_net.dll';
    78 {$ELSE}
    78 {$ELSE}
    79   {$IFDEF DARWIN}
    79     {$IFDEF DARWIN}
    80     SDLLibName = 'SDL';
    80     SDLLibName = 'SDL';
    81     SDL_TTFLibName = 'SDL_ttf';
    81     SDL_TTFLibName = 'SDL_ttf';
    82     SDL_MixerLibName = 'SDL_mixer';
    82     SDL_MixerLibName = 'SDL_mixer';
    83     SDL_ImageLibName = 'SDL_image';
    83     SDL_ImageLibName = 'SDL_image';
    84     SDL_NetLibName = 'SDL_net';
    84     SDL_NetLibName = 'SDL_net';
    85   {$ELSE}
    85     {$ELSE}
    86     SDLLibName = 'libSDL.so';
    86     SDLLibName = 'libSDL.so';
    87     SDL_TTFLibName = 'libSDL_ttf.so';
    87     SDL_TTFLibName = 'libSDL_ttf.so';
    88     SDL_MixerLibName = 'libSDL_mixer.so';
    88     SDL_MixerLibName = 'libSDL_mixer.so';
    89     SDL_ImageLibName = 'libSDL_image.so';
    89     SDL_ImageLibName = 'libSDL_image.so';
    90     SDL_NetLibName = 'libSDL_net.so';
    90     SDL_NetLibName = 'libSDL_net.so';
    91   {$ENDIF}
    91     {$ENDIF}
    92 {$ENDIF}
    92 {$ENDIF}
    93 
    93 
    94 /////////////////////////////////////////////////////////////////
    94 /////////////////////////////////////////////////////////////////
    95 /////////////////////  CONSTANT DEFINITIONS /////////////////////
    95 /////////////////////  CONSTANT DEFINITIONS /////////////////////
    96 /////////////////////////////////////////////////////////////////
    96 /////////////////////////////////////////////////////////////////
   792         end;
   792         end;
   793     TMusic = (MUS_CMD, MUS_WAV, MUS_MOD, MUS_MID, MUS_OGG, MUS_MP3);
   793     TMusic = (MUS_CMD, MUS_WAV, MUS_MOD, MUS_MID, MUS_OGG, MUS_MP3);
   794     TMix_Fading = (MIX_NO_FADING, MIX_FADING_OUT, MIX_FADING_IN);
   794     TMix_Fading = (MIX_NO_FADING, MIX_FADING_OUT, MIX_FADING_IN);
   795 
   795 
   796     TMidiSong = record
   796     TMidiSong = record
   797                samples : LongInt;
   797                 samples : LongInt;
   798                events  : Pointer;
   798                 events  : Pointer;
   799                end;
   799                 end;
   800 
   800 
   801     TMusicUnion = record
   801     TMusicUnion = record
   802         case Byte of
   802         case Byte of
   803              0: ( midi : TMidiSong );
   803             0: ( midi : TMidiSong );
   804              1: ( ogg  : Pointer);
   804             1: ( ogg  : Pointer);
   805              end;
   805             end;
   806 
   806 
   807     PMixMusic = ^TMixMusic;
   807     PMixMusic = ^TMixMusic;
   808     TMixMusic = record
   808     TMixMusic = record
   809                  end;
   809                 end;
   810 
   810 
   811     {* SDL_net *}
   811     {* SDL_net *}
   812     TIPAddress = record
   812     TIPAddress = record
   813                   host: LongWord;
   813                 host: LongWord;
   814                   port: Word;
   814                 port: Word;
   815                   end;
   815                 end;
   816 
   816 
   817     PTCPSocket = ^TTCPSocket;
   817     PTCPSocket = ^TTCPSocket;
   818     TTCPSocket = record
   818     TTCPSocket = record
   819                   ready: LongInt;
   819                 ready: LongInt;
   820                   channel: LongInt;
   820                 channel: LongInt;
   821                   remoteAddress: TIPaddress;
   821                 remoteAddress: TIPaddress;
   822                   localAddress: TIPaddress;
   822                 localAddress: TIPaddress;
   823                   sflag: LongInt;
   823                 sflag: LongInt;
   824                   end;
   824                 end;
   825     PSDLNet_SocketSet = ^TSDLNet_SocketSet;
   825     PSDLNet_SocketSet = ^TSDLNet_SocketSet;
   826     TSDLNet_SocketSet = record
   826     TSDLNet_SocketSet = record
   827                          numsockets,
   827                         numsockets,
   828                          maxsockets: LongInt;
   828                         maxsockets: LongInt;
   829                          sockets: PTCPSocket;
   829                         sockets: PTCPSocket;
   830                          end;
   830                         end;
   831 
   831 
   832 
   832 
   833 /////////////////////////////////////////////////////////////////
   833 /////////////////////////////////////////////////////////////////
   834 /////////////////////  FUNCTION DEFINITIONS /////////////////////
   834 /////////////////////  FUNCTION DEFINITIONS /////////////////////
   835 /////////////////////////////////////////////////////////////////
   835 /////////////////////////////////////////////////////////////////