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 ///////////////////////////////////////////////////////////////// |