55 |
55 |
56 |
56 |
57 (* SDL *) |
57 (* SDL *) |
58 const |
58 const |
59 {$IFDEF WIN32} |
59 {$IFDEF WIN32} |
60 SDLLibName = 'SDL.dll'; |
60 SDLLibName = 'SDL.dll'; |
61 SDL_TTFLibName = 'SDL_ttf.dll'; |
61 SDL_TTFLibName = 'SDL_ttf.dll'; |
62 SDL_MixerLibName = 'SDL_mixer.dll'; |
62 SDL_MixerLibName = 'SDL_mixer.dll'; |
63 SDL_ImageLibName = 'SDL_image.dll'; |
63 SDL_ImageLibName = 'SDL_image.dll'; |
64 SDL_NetLibName = 'SDL_net.dll'; |
64 SDL_NetLibName = 'SDL_net.dll'; |
65 {$ELSE} |
65 {$ELSE} |
66 {$IFDEF DARWIN} |
66 {$IFDEF DARWIN} |
67 SDLLibName = 'SDL'; |
67 SDLLibName = 'SDL'; |
68 SDL_TTFLibName = 'SDL_ttf'; |
68 SDL_TTFLibName = 'SDL_ttf'; |
69 SDL_MixerLibName = 'SDL_mixer'; |
69 SDL_MixerLibName = 'SDL_mixer'; |
70 SDL_ImageLibName = 'SDL_image'; |
70 SDL_ImageLibName = 'SDL_image'; |
71 SDL_NetLibName = 'SDL_net'; |
71 SDL_NetLibName = 'SDL_net'; |
72 {$ELSE} |
72 {$ELSE} |
73 SDLLibName = 'libSDL.so'; |
73 SDLLibName = 'libSDL.so'; |
74 SDL_TTFLibName = 'libSDL_ttf.so'; |
74 SDL_TTFLibName = 'libSDL_ttf.so'; |
75 SDL_MixerLibName = 'libSDL_mixer.so'; |
75 SDL_MixerLibName = 'libSDL_mixer.so'; |
76 SDL_ImageLibName = 'libSDL_image.so'; |
76 SDL_ImageLibName = 'libSDL_image.so'; |
77 SDL_NetLibName = 'libSDL_net.so'; |
77 SDL_NetLibName = 'libSDL_net.so'; |
78 {$ENDIF} |
78 {$ENDIF} |
79 {$ENDIF} |
79 {$ENDIF} |
80 |
80 |
81 ///////////////////////////////////////////////////////////////// |
81 ///////////////////////////////////////////////////////////////// |
82 ///////////////////// CONSTANT DEFINITIONS ///////////////////// |
82 ///////////////////// CONSTANT DEFINITIONS ///////////////////// |
83 ///////////////////////////////////////////////////////////////// |
83 ///////////////////////////////////////////////////////////////// |
84 |
84 |
85 SDL_SWSURFACE = $00000000; |
85 SDL_SWSURFACE = $00000000; |
86 SDL_HWSURFACE = $00000001; |
86 SDL_HWSURFACE = $00000001; |
87 SDL_SRCALPHA = $00010000; |
87 SDL_SRCALPHA = $00010000; |
88 |
88 |
89 SDL_INIT_TIMER = $00000001; |
89 SDL_INIT_TIMER = $00000001; |
90 SDL_INIT_AUDIO = $00000010; |
90 SDL_INIT_AUDIO = $00000010; |
91 SDL_INIT_VIDEO = $00000020; |
91 SDL_INIT_VIDEO = $00000020; |
92 SDL_INIT_JOYSTICK = $00000200; |
92 SDL_INIT_JOYSTICK = $00000200; |
93 {$IFDEF SDL13} |
93 {$IFDEF SDL13} |
94 SDL_INIT_HAPTIC = $00001000; |
94 SDL_INIT_HAPTIC = $00001000; |
95 {$ELSE} |
95 {$ELSE} |
96 SDL_INIT_CDROM = $00000100; |
96 SDL_INIT_CDROM = $00000100; |
97 {$ENDIF} |
97 {$ENDIF} |
98 SDL_INIT_NOPARACHUTE = $00100000; |
98 SDL_INIT_NOPARACHUTE = $00100000; |
99 SDL_INIT_EVENTTHREAD = $01000000; |
99 SDL_INIT_EVENTTHREAD = $01000000; |
100 SDL_INIT_EVERYTHING = $0000FFFF; |
100 SDL_INIT_EVERYTHING = $0000FFFF; |
101 |
101 |
102 SDL_APPINPUTFOCUS = 2; |
102 SDL_APPINPUTFOCUS = 2; |
103 SDL_BUTTON_WHEELUP = 4; |
103 SDL_BUTTON_WHEELUP = 4; |
104 SDL_BUTTON_WHEELDOWN = 5; |
104 SDL_BUTTON_WHEELDOWN = 5; |
105 |
105 |
106 {*begin SDL_Event binding*} |
106 {*begin SDL_Event binding*} |
107 SDL_NOEVENT = 0; |
107 SDL_NOEVENT = 0; |
108 SDL_KEYDOWN = 2; |
108 SDL_KEYDOWN = 2; |
109 SDL_KEYUP = 3; |
109 SDL_KEYUP = 3; |
110 {$IFDEF SDL13} |
110 {$IFDEF SDL13} |
111 SDL_WINDOWEVENT = 1; |
111 SDL_WINDOWEVENT = 1; |
112 SDL_TEXTINPUT = 4; |
112 SDL_TEXTINPUT = 4; |
113 SDL_TEXTEDITING = 5; |
113 SDL_TEXTEDITING = 5; |
114 SDL_MOUSEMOTION = 6; |
114 SDL_MOUSEMOTION = 6; |
115 SDL_MOUSEBUTTONDOWN = 7; |
115 SDL_MOUSEBUTTONDOWN = 7; |
116 SDL_MOUSEBUTTONUP = 8; |
116 SDL_MOUSEBUTTONUP = 8; |
117 SDL_MOUSEWHEEL = 9; |
117 SDL_MOUSEWHEEL = 9; |
118 SDL_JOYAXISMOTION = 10; |
118 SDL_JOYAXISMOTION = 10; |
119 SDL_JOYBALLMOTION = 11; |
119 SDL_JOYBALLMOTION = 11; |
120 SDL_JOYHATMOTION = 12; |
120 SDL_JOYHATMOTION = 12; |
121 SDL_JOYBUTTONDOWN = 13; |
121 SDL_JOYBUTTONDOWN = 13; |
122 SDL_JOYBUTTONUP = 14; |
122 SDL_JOYBUTTONUP = 14; |
123 SDL_QUITEV = 15; |
123 SDL_QUITEV = 15; |
124 {$ELSE} |
124 {$ELSE} |
125 SDL_ACTIVEEVENT = 1; |
125 SDL_ACTIVEEVENT = 1; |
126 SDL_MOUSEMOTION = 4; |
126 SDL_MOUSEMOTION = 4; |
127 SDL_MOUSEBUTTONDOWN = 5; |
127 SDL_MOUSEBUTTONDOWN = 5; |
128 SDL_MOUSEBUTTONUP = 6; |
128 SDL_MOUSEBUTTONUP = 6; |
129 SDL_JOYAXISMOTION = 7; |
129 SDL_JOYAXISMOTION = 7; |
130 SDL_JOYBALLMOTION = 8; |
130 SDL_JOYBALLMOTION = 8; |
131 SDL_JOYHATMOTION = 9; |
131 SDL_JOYHATMOTION = 9; |
132 SDL_JOYBUTTONDOWN = 10; |
132 SDL_JOYBUTTONDOWN = 10; |
133 SDL_JOYBUTTONUP = 11; |
133 SDL_JOYBUTTONUP = 11; |
134 SDL_QUITEV = 12; |
134 SDL_QUITEV = 12; |
135 SDL_VIDEORESIZE = 16; // TODO: outdated? no longer in SDL 1.3? |
135 SDL_VIDEORESIZE = 16; // TODO: outdated? no longer in SDL 1.3? |
136 {$ENDIF} |
136 {$ENDIF} |
137 {*end SDL_Event binding*} |
137 {*end SDL_Event binding*} |
138 |
138 |
139 {$IFDEF SDL13} |
139 {$IFDEF SDL13} |
140 SDL_ASYNCBLIT = $08000000; |
140 SDL_ASYNCBLIT = $08000000; |
141 SDL_ANYFORMAT = $10000000; |
141 SDL_ANYFORMAT = $10000000; |
142 SDL_HWPALETTE = $00200000; |
142 SDL_HWPALETTE = $00200000; |
143 SDL_DOUBLEBUF = $00400000; |
143 SDL_DOUBLEBUF = $00400000; |
144 SDL_FULLSCREEN = $00800000; |
144 SDL_FULLSCREEN = $00800000; |
145 SDL_HWACCEL = $08000000; |
145 SDL_HWACCEL = $08000000; |
146 SDL_SRCCOLORKEY = $00020000; |
146 SDL_SRCCOLORKEY = $00020000; |
147 SDL_RLEACCEL = $08000000; |
147 SDL_RLEACCEL = $08000000; |
148 SDL_NOFRAME = $02000000; |
148 SDL_NOFRAME = $02000000; |
149 SDL_OPENGL = $04000000; |
149 SDL_OPENGL = $04000000; |
150 SDL_RESIZABLE = $01000000; |
150 SDL_RESIZABLE = $01000000; |
151 {$ELSE} |
151 {$ELSE} |
152 SDL_ASYNCBLIT = $00000004; |
152 SDL_ASYNCBLIT = $00000004; |
153 SDL_ANYFORMAT = $00100000; |
153 SDL_ANYFORMAT = $00100000; |
154 SDL_HWPALETTE = $20000000; |
154 SDL_HWPALETTE = $20000000; |
155 SDL_DOUBLEBUF = $40000000; |
155 SDL_DOUBLEBUF = $40000000; |
156 SDL_FULLSCREEN = $80000000; |
156 SDL_FULLSCREEN = $80000000; |
157 SDL_HWACCEL = $00000100; |
157 SDL_HWACCEL = $00000100; |
158 SDL_SRCCOLORKEY = $00001000; |
158 SDL_SRCCOLORKEY = $00001000; |
159 SDL_RLEACCEL = $00004000; |
159 SDL_RLEACCEL = $00004000; |
160 SDL_NOFRAME = $00000020; |
160 SDL_NOFRAME = $00000020; |
161 SDL_OPENGL = $00000002; |
161 SDL_OPENGL = $00000002; |
162 SDL_RESIZABLE = $00000010; |
162 SDL_RESIZABLE = $00000010; |
163 {$ENDIF} |
163 {$ENDIF} |
164 |
164 |
165 |
165 |
166 {$IFDEF ENDIAN_LITTLE} |
166 {$IFDEF ENDIAN_LITTLE} |
167 RMask = $000000FF; |
167 RMask = $000000FF; |
168 GMask = $0000FF00; |
168 GMask = $0000FF00; |
169 BMask = $00FF0000; |
169 BMask = $00FF0000; |
170 AMask = $FF000000; |
170 AMask = $FF000000; |
171 {$ELSE} |
171 {$ELSE} |
172 RMask = $FF000000; |
172 RMask = $FF000000; |
173 GMask = $00FF0000; |
173 GMask = $00FF0000; |
174 BMask = $0000FF00; |
174 BMask = $0000FF00; |
175 AMask = $000000FF; |
175 AMask = $000000FF; |
176 {$ENDIF} |
176 {$ENDIF} |
177 |
177 |
178 {$IFDEF SDL13} |
178 {$IFDEF SDL13} |
179 // SDL_WindowFlags (enum) |
179 // SDL_WindowFlags (enum) |
180 SDL_WINDOW_FULLSCREEN = $00000001; //*< fullscreen window, implies borderless */ |
180 SDL_WINDOW_FULLSCREEN = $00000001; //*< fullscreen window, implies borderless */ |
188 SDL_WINDOW_INPUT_FOCUS = $00000200; //*< window has input focus */ |
188 SDL_WINDOW_INPUT_FOCUS = $00000200; //*< window has input focus */ |
189 SDL_WINDOW_MOUSE_FOCUS = $00000400; //*< window has mouse focus */ |
189 SDL_WINDOW_MOUSE_FOCUS = $00000400; //*< window has mouse focus */ |
190 SDL_WINDOW_FOREIGN = $00000800; //*< window not created by SDL */ |
190 SDL_WINDOW_FOREIGN = $00000800; //*< window not created by SDL */ |
191 {$ENDIF} |
191 {$ENDIF} |
192 |
192 |
193 {* SDL_mixer *} |
193 {* SDL_mixer *} |
194 MIX_MAX_VOLUME = 128; |
194 MIX_MAX_VOLUME = 128; |
195 MIX_INIT_FLAC = $00000001; |
195 MIX_INIT_FLAC = $00000001; |
196 MIX_INIT_MOD = $00000002; |
196 MIX_INIT_MOD = $00000002; |
197 MIX_INIT_MP3 = $00000004; |
197 MIX_INIT_MP3 = $00000004; |
198 MIX_INIT_OGG = $00000008; |
198 MIX_INIT_OGG = $00000008; |
199 |
199 |
200 {* SDL_TTF *} |
200 {* SDL_TTF *} |
201 TTF_STYLE_NORMAL = 0; |
201 TTF_STYLE_NORMAL = 0; |
202 TTF_STYLE_BOLD = 1; |
202 TTF_STYLE_BOLD = 1; |
203 TTF_STYLE_ITALIC = 2; |
203 TTF_STYLE_ITALIC = 2; |
204 |
204 |
205 {* SDL Joystick *} |
205 {* SDL Joystick *} |
206 SDL_HAT_CENTERED = $00; |
206 SDL_HAT_CENTERED = $00; |
207 SDL_HAT_UP = $01; |
207 SDL_HAT_UP = $01; |
208 SDL_HAT_RIGHT = $02; |
208 SDL_HAT_RIGHT = $02; |
209 SDL_HAT_DOWN = $04; |
209 SDL_HAT_DOWN = $04; |
210 SDL_HAT_LEFT = $08; |
210 SDL_HAT_LEFT = $08; |
211 SDL_HAT_RIGHTUP = SDL_HAT_RIGHT or SDL_HAT_UP; |
211 SDL_HAT_RIGHTUP = SDL_HAT_RIGHT or SDL_HAT_UP; |
212 SDL_HAT_RIGHTDOWN = SDL_HAT_RIGHT or SDL_HAT_DOWN; |
212 SDL_HAT_RIGHTDOWN = SDL_HAT_RIGHT or SDL_HAT_DOWN; |
213 SDL_HAT_LEFTUP = SDL_HAT_LEFT or SDL_HAT_UP; |
213 SDL_HAT_LEFTUP = SDL_HAT_LEFT or SDL_HAT_UP; |
214 SDL_HAT_LEFTDOWN = SDL_HAT_LEFT or SDL_HAT_DOWN; |
214 SDL_HAT_LEFTDOWN = SDL_HAT_LEFT or SDL_HAT_DOWN; |
215 |
215 |
216 {* SDL_image *} |
216 {* SDL_image *} |
217 IMG_INIT_JPG = $00000001; |
217 IMG_INIT_JPG = $00000001; |
218 IMG_INIT_PNG = $00000002; |
218 IMG_INIT_PNG = $00000002; |
219 IMG_INIT_TIF = $00000004; |
219 IMG_INIT_TIF = $00000004; |
220 |
220 |
221 ///////////////////////////////////////////////////////////////// |
221 ///////////////////////////////////////////////////////////////// |
222 /////////////////////// TYPE DEFINITIONS /////////////////////// |
222 /////////////////////// TYPE DEFINITIONS /////////////////////// |
223 ///////////////////////////////////////////////////////////////// |
223 ///////////////////////////////////////////////////////////////// |
224 |
224 |
225 type |
225 type |
226 PSDL_Rect = ^TSDL_Rect; |
226 PSDL_Rect = ^TSDL_Rect; |
227 TSDL_Rect = record |
227 TSDL_Rect = record |
228 {$IFDEF SDL13} |
228 {$IFDEF SDL13} |
229 x, y, w, h: LongInt; |
229 x, y, w, h: LongInt; |
230 {$ELSE} |
230 {$ELSE} |
231 x, y: SmallInt; |
231 x, y: SmallInt; |
232 w, h: Word; |
232 w, h: Word; |
233 {$ENDIF} |
233 {$ENDIF} |
234 end; |
234 end; |
235 |
235 |
236 TPoint = record |
236 TPoint = record |
237 X: LongInt; |
237 X: LongInt; |
238 Y: LongInt; |
238 Y: LongInt; |
239 end; |
239 end; |
240 |
240 |
241 PSDL_PixelFormat = ^TSDL_PixelFormat; |
241 PSDL_PixelFormat = ^TSDL_PixelFormat; |
242 TSDL_PixelFormat = record |
242 TSDL_PixelFormat = record |
243 palette: Pointer; |
243 palette: Pointer; |
244 BitsPerPixel : Byte; |
244 BitsPerPixel : Byte; |
245 BytesPerPixel: Byte; |
245 BytesPerPixel: Byte; |
246 Rloss : Byte; |
246 Rloss : Byte; |
247 Gloss : Byte; |
247 Gloss : Byte; |
248 Bloss : Byte; |
248 Bloss : Byte; |
249 Aloss : Byte; |
249 Aloss : Byte; |
250 Rshift: Byte; |
250 Rshift: Byte; |
251 Gshift: Byte; |
251 Gshift: Byte; |
252 Bshift: Byte; |
252 Bshift: Byte; |
253 Ashift: Byte; |
253 Ashift: Byte; |
254 RMask : Longword; |
254 RMask : Longword; |
255 GMask : Longword; |
255 GMask : Longword; |
256 BMask : Longword; |
256 BMask : Longword; |
257 AMask : Longword; |
257 AMask : Longword; |
258 colorkey: Longword; |
258 colorkey: Longword; |
259 alpha : Byte; |
259 alpha : Byte; |
260 end; |
260 end; |
261 |
261 |
262 |
262 |
263 PSDL_Surface = ^TSDL_Surface; |
263 PSDL_Surface = ^TSDL_Surface; |
264 TSDL_Surface = record |
264 TSDL_Surface = record |
265 flags : Longword; |
265 flags : Longword; |
266 format: PSDL_PixelFormat; |
266 format: PSDL_PixelFormat; |
267 w, h : LongInt; |
267 w, h : LongInt; |
268 pitch : Word; |
268 pitch : Word; |
269 pixels: Pointer; |
269 pixels: Pointer; |
270 offset: LongInt; |
270 offset: LongInt; |
271 end; |
271 end; |
272 |
272 |
273 |
273 |
274 PSDL_Color = ^TSDL_Color; |
274 PSDL_Color = ^TSDL_Color; |
275 TSDL_Color = record |
275 TSDL_Color = record |
276 case byte of |
276 case byte of |
277 0: ( r: Byte; |
277 0: ( r: Byte; |
278 g: Byte; |
278 g: Byte; |
279 b: Byte; |
279 b: Byte; |
280 unused: Byte; |
280 unused: Byte; |
281 ); |
281 ); |
282 1: ( value: Longword); |
282 1: ( value: Longword); |
283 end; |
283 end; |
284 |
284 |
285 |
285 |
286 PSDL_RWops = ^TSDL_RWops; |
286 PSDL_RWops = ^TSDL_RWops; |
287 TSeek = function( context: PSDL_RWops; offset: LongInt; whence: LongInt ): LongInt; cdecl; |
287 TSeek = function( context: PSDL_RWops; offset: LongInt; whence: LongInt ): LongInt; cdecl; |
288 TRead = function( context: PSDL_RWops; Ptr: Pointer; size: LongInt; maxnum : LongInt ): LongInt; cdecl; |
288 TRead = function( context: PSDL_RWops; Ptr: Pointer; size: LongInt; maxnum : LongInt ): LongInt; cdecl; |
289 TWrite = function( context: PSDL_RWops; Ptr: Pointer; size: LongInt; num: LongInt ): LongInt; cdecl; |
289 TWrite = function( context: PSDL_RWops; Ptr: Pointer; size: LongInt; num: LongInt ): LongInt; cdecl; |
290 TClose = function( context: PSDL_RWops ): LongInt; cdecl; |
290 TClose = function( context: PSDL_RWops ): LongInt; cdecl; |
291 |
291 |
292 TStdio = record |
292 TStdio = record |
293 autoclose: LongInt; |
293 autoclose: LongInt; |
294 fp: pointer; |
294 fp: pointer; |
295 end; |
295 end; |
296 |
296 |
297 TMem = record |
297 TMem = record |
298 base: PByte; |
298 base: PByte; |
299 here: PByte; |
299 here: PByte; |
300 stop: PByte; |
300 stop: PByte; |
301 end; |
301 end; |
302 |
302 |
303 TUnknown = record |
303 TUnknown = record |
304 data1: Pointer; |
304 data1: Pointer; |
305 end; |
305 end; |
306 |
306 |
307 TSDL_RWops = record |
307 TSDL_RWops = record |
308 seek: TSeek; |
308 seek: TSeek; |
309 read: TRead; |
309 read: TRead; |
310 write: TWrite; |
310 write: TWrite; |
311 close: TClose; |
311 close: TClose; |
312 type_: Longword; |
312 type_: Longword; |
313 case Byte of |
313 case Byte of |
314 0: (stdio: TStdio); |
314 0: (stdio: TStdio); |
315 1: (mem: TMem); |
315 1: (mem: TMem); |
316 2: (unknown: TUnknown); |
316 2: (unknown: TUnknown); |
317 end; |
317 end; |
318 |
318 |
319 TSDL_KeySym = record |
319 TSDL_KeySym = record |
320 scancode: Byte; |
320 scancode: Byte; |
321 sym: Longword; |
321 sym: Longword; |
322 modifier: Longword; |
322 modifier: Longword; |
323 unicode: Word; |
323 unicode: Word; |
324 end; |
324 end; |
325 |
325 |
326 |
326 |
327 {* SDL_Event type definition *} |
327 {* SDL_Event type definition *} |
328 |
328 |
329 {$IFDEF SDL13} |
329 {$IFDEF SDL13} |
330 PSDL_Window = pointer; |
330 PSDL_Window = pointer; |
331 PSDL_Texture = pointer; |
331 PSDL_Texture = pointer; |
332 |
332 |
333 TSDL_WindowEvent = record |
333 TSDL_WindowEvent = record |
334 type_: byte; |
334 type_: byte; |
335 gain: byte; |
335 gain: byte; |
336 state: byte; |
336 state: byte; |
337 windowID: LongInt; |
337 windowID: LongInt; |
338 data1, data2: LongInt; |
338 data1, data2: LongInt; |
339 end; |
339 end; |
340 |
340 |
341 // implement SDL_TextEditingEvent + SDL_TextInputEvent for sdl13 |
341 // implement SDL_TextEditingEvent + SDL_TextInputEvent for sdl13 |
342 {$ELSE} |
342 {$ELSE} |
343 //these two are present in sdl1.3 but only for backward compatibility |
343 //these two are present in sdl1.3 but only for backward compatibility |
344 TSDL_ActiveEvent = record |
344 TSDL_ActiveEvent = record |
345 type_: byte; |
345 type_: byte; |
346 gain: byte; |
346 gain: byte; |
347 state: byte; |
347 state: byte; |
348 end; |
348 end; |
349 |
349 |
350 TSDL_ResizeEvent = record |
350 TSDL_ResizeEvent = record |
351 type_: Byte; |
351 type_: Byte; |
352 w, h: LongInt; |
352 w, h: LongInt; |
353 end; |
353 end; |
354 {$ENDIF} |
354 {$ENDIF} |
355 |
355 |
356 TSDL_MouseMotionEvent = record |
356 TSDL_MouseMotionEvent = record |
357 type_: byte; |
357 type_: byte; |
358 which: byte; |
358 which: byte; |
359 state: byte; |
359 state: byte; |
360 {$IFDEF SDL13} |
360 {$IFDEF SDL13} |
361 windowID: LongInt; |
361 windowID: LongInt; |
362 x, y, xrel, yrel : LongInt; |
362 x, y, xrel, yrel : LongInt; |
363 pressure, pressure_max, pressure_min, |
363 pressure, pressure_max, pressure_min, |
364 rotation, tilt, cursor: LongInt; |
364 rotation, tilt, cursor: LongInt; |
365 {$ELSE} |
365 {$ELSE} |
366 x, y, xrel, yrel : word; |
366 x, y, xrel, yrel : word; |
367 {$ENDIF} |
367 {$ENDIF} |
368 end; |
368 end; |
369 |
369 |
370 TSDL_KeyboardEvent = record |
370 TSDL_KeyboardEvent = record |
371 type_: Byte; |
371 type_: Byte; |
372 {$IFDEF SDL13} |
372 {$IFDEF SDL13} |
373 windowID: LongInt; |
373 windowID: LongInt; |
374 {$ENDIF} |
374 {$ENDIF} |
375 which: Byte; |
375 which: Byte; |
376 state: Byte; |
376 state: Byte; |
377 keysym: TSDL_KeySym; |
377 keysym: TSDL_KeySym; |
378 end; |
378 end; |
379 |
379 |
380 TSDL_MouseButtonEvent = record |
380 TSDL_MouseButtonEvent = record |
381 _type, |
381 _type, |
382 which, |
382 which, |
383 button, |
383 button, |
384 state: byte; |
384 state: byte; |
385 {$IFDEF SDL13} |
385 {$IFDEF SDL13} |
386 windowID: LongInt; |
386 windowID: LongInt; |
387 x, y: LongInt; |
387 x, y: LongInt; |
388 {$ELSE} |
388 {$ELSE} |
389 x, y: word; |
389 x, y: word; |
390 {$ENDIF} |
390 {$ENDIF} |
391 end; |
391 end; |
392 |
392 |
393 {$IFDEF SDL13} |
393 {$IFDEF SDL13} |
394 TSDL_MouseWheelEvent = record |
394 TSDL_MouseWheelEvent = record |
395 type_: Byte; |
395 type_: Byte; |
396 windowID: LongInt; |
396 windowID: LongInt; |
397 which: Byte; |
397 which: Byte; |
398 x, y: LongInt; |
398 x, y: LongInt; |
399 end; |
399 end; |
400 {$ENDIF} |
400 {$ENDIF} |
401 |
401 |
402 TSDL_JoyAxisEvent = record |
402 TSDL_JoyAxisEvent = record |
403 type_: Byte; |
403 type_: Byte; |
404 which: Byte; |
404 which: Byte; |
405 axis: Byte; |
405 axis: Byte; |
406 {$IFDEF SDL13} |
406 {$IFDEF SDL13} |
407 value: LongInt; |
407 value: LongInt; |
408 {$ELSE} |
408 {$ELSE} |
409 value: word; |
409 value: word; |
410 {$ENDIF} |
410 {$ENDIF} |
411 end; |
411 end; |
412 |
412 |
413 TSDL_JoyBallEvent = record |
413 TSDL_JoyBallEvent = record |
414 type_: Byte; |
414 type_: Byte; |
415 which: Byte; |
415 which: Byte; |
416 ball: Byte; |
416 ball: Byte; |
417 {$IFDEF SDL13} |
417 {$IFDEF SDL13} |
418 xrel, yrel: LongInt; |
418 xrel, yrel: LongInt; |
419 {$ELSE} |
419 {$ELSE} |
420 xrel, yrel: word; |
420 xrel, yrel: word; |
421 {$ENDIF} |
421 {$ENDIF} |
422 end; |
422 end; |
423 |
423 |
424 TSDL_JoyHatEvent = record |
424 TSDL_JoyHatEvent = record |
425 type_: Byte; |
425 type_: Byte; |
426 which: Byte; |
426 which: Byte; |
427 hat: Byte; |
427 hat: Byte; |
428 value: Byte; |
428 value: Byte; |
429 end; |
429 end; |
430 |
430 |
431 TSDL_JoyButtonEvent = record |
431 TSDL_JoyButtonEvent = record |
432 type_: Byte; |
432 type_: Byte; |
433 which: Byte; |
433 which: Byte; |
434 button: Byte; |
434 button: Byte; |
435 state: Byte; |
435 state: Byte; |
436 end; |
436 end; |
437 |
437 |
438 TSDL_QuitEvent = record |
438 TSDL_QuitEvent = record |
439 type_: Byte; |
439 type_: Byte; |
440 end; |
440 end; |
441 |
441 |
442 PSDL_Event = ^TSDL_Event; |
442 PSDL_Event = ^TSDL_Event; |
443 TSDL_Event = record |
443 TSDL_Event = record |
444 case Byte of |
444 case Byte of |
445 SDL_NOEVENT: (type_: byte); |
445 SDL_NOEVENT: (type_: byte); |
446 {$IFDEF SDL13} |
446 {$IFDEF SDL13} |
447 SDL_WINDOWEVENT: (active: TSDL_WindowEvent); |
447 SDL_WINDOWEVENT: (active: TSDL_WindowEvent); |
448 SDL_KEYDOWN, |
448 SDL_KEYDOWN, |
449 SDL_KEYUP: (key: TSDL_KeyboardEvent); |
449 SDL_KEYUP: (key: TSDL_KeyboardEvent); |
450 SDL_TEXTEDITING, |
450 SDL_TEXTEDITING, |
451 SDL_TEXTINPUT: (txtin: byte); |
451 SDL_TEXTINPUT: (txtin: byte); |
452 SDL_MOUSEMOTION: (motion: TSDL_MouseMotionEvent); |
452 SDL_MOUSEMOTION: (motion: TSDL_MouseMotionEvent); |
453 SDL_MOUSEBUTTONDOWN, |
453 SDL_MOUSEBUTTONDOWN, |
454 SDL_MOUSEBUTTONUP: (button: TSDL_MouseButtonEvent); |
454 SDL_MOUSEBUTTONUP: (button: TSDL_MouseButtonEvent); |
455 SDL_MOUSEWHEEL: (wheel: TSDL_MouseWheelEvent); |
455 SDL_MOUSEWHEEL: (wheel: TSDL_MouseWheelEvent); |
456 SDL_JOYAXISMOTION: (jaxis: TSDL_JoyAxisEvent); |
456 SDL_JOYAXISMOTION: (jaxis: TSDL_JoyAxisEvent); |
457 SDL_JOYHATMOTION: (jhat: TSDL_JoyHatEvent); |
457 SDL_JOYHATMOTION: (jhat: TSDL_JoyHatEvent); |
458 SDL_JOYBALLMOTION: (jball: TSDL_JoyBallEvent); |
458 SDL_JOYBALLMOTION: (jball: TSDL_JoyBallEvent); |
459 SDL_JOYBUTTONDOWN, |
459 SDL_JOYBUTTONDOWN, |
460 SDL_JOYBUTTONUP: (jbutton: TSDL_JoyButtonEvent); |
460 SDL_JOYBUTTONUP: (jbutton: TSDL_JoyButtonEvent); |
461 SDL_QUITEV: (quit: TSDL_QuitEvent); |
461 SDL_QUITEV: (quit: TSDL_QuitEvent); |
462 {$ELSE} |
462 {$ELSE} |
463 SDL_ACTIVEEVENT: (active: TSDL_ActiveEvent); |
463 SDL_ACTIVEEVENT: (active: TSDL_ActiveEvent); |
464 SDL_KEYDOWN, |
464 SDL_KEYDOWN, |
465 SDL_KEYUP: (key: TSDL_KeyboardEvent); |
465 SDL_KEYUP: (key: TSDL_KeyboardEvent); |
466 SDL_MOUSEMOTION: (motion: TSDL_MouseMotionEvent); |
466 SDL_MOUSEMOTION: (motion: TSDL_MouseMotionEvent); |
467 SDL_MOUSEBUTTONDOWN, |
467 SDL_MOUSEBUTTONDOWN, |
468 SDL_MOUSEBUTTONUP: (button: TSDL_MouseButtonEvent); |
468 SDL_MOUSEBUTTONUP: (button: TSDL_MouseButtonEvent); |
469 SDL_JOYAXISMOTION: (jaxis: TSDL_JoyAxisEvent); |
469 SDL_JOYAXISMOTION: (jaxis: TSDL_JoyAxisEvent); |
470 SDL_JOYHATMOTION: (jhat: TSDL_JoyHatEvent); |
470 SDL_JOYHATMOTION: (jhat: TSDL_JoyHatEvent); |
471 SDL_JOYBALLMOTION: (jball: TSDL_JoyBallEvent); |
471 SDL_JOYBALLMOTION: (jball: TSDL_JoyBallEvent); |
472 SDL_JOYBUTTONDOWN, |
472 SDL_JOYBUTTONDOWN, |
473 SDL_JOYBUTTONUP: (jbutton: TSDL_JoyButtonEvent); |
473 SDL_JOYBUTTONUP: (jbutton: TSDL_JoyButtonEvent); |
474 SDL_QUITEV: (quit: TSDL_QuitEvent); |
474 SDL_QUITEV: (quit: TSDL_QuitEvent); |
475 //SDL_SYSWMEVENT,SDL_EVENT_RESERVEDA,SDL_EVENT_RESERVEDB |
475 //SDL_SYSWMEVENT,SDL_EVENT_RESERVEDA,SDL_EVENT_RESERVEDB |
476 //SDL_VIDEORESIZE: (resize: TSDL_ResizeEvent); |
476 //SDL_VIDEORESIZE: (resize: TSDL_ResizeEvent); |
477 {$ENDIF} |
477 {$ENDIF} |
478 end; |
478 end; |
479 |
479 |
480 PByteArray = ^TByteArray; |
480 PByteArray = ^TByteArray; |
481 TByteArray = array[0..65535] of Byte; |
481 TByteArray = array[0..65535] of Byte; |
482 PLongWordArray = ^TLongWordArray; |
482 PLongWordArray = ^TLongWordArray; |
483 TLongWordArray = array[0..16383] of LongWord; |
483 TLongWordArray = array[0..16383] of LongWord; |
484 |
484 |
485 PSDL_Thread = Pointer; |
485 PSDL_Thread = Pointer; |
486 PSDL_mutex = Pointer; |
486 PSDL_mutex = Pointer; |
487 |
487 |
488 TSDL_GLattr = ( |
488 TSDL_GLattr = ( |
489 SDL_GL_RED_SIZE, |
489 SDL_GL_RED_SIZE, |
490 SDL_GL_GREEN_SIZE, |
490 SDL_GL_GREEN_SIZE, |
491 SDL_GL_BLUE_SIZE, |
491 SDL_GL_BLUE_SIZE, |
492 SDL_GL_ALPHA_SIZE, |
492 SDL_GL_ALPHA_SIZE, |
493 SDL_GL_BUFFER_SIZE, |
493 SDL_GL_BUFFER_SIZE, |
494 SDL_GL_DOUBLEBUFFER, |
494 SDL_GL_DOUBLEBUFFER, |
495 SDL_GL_DEPTH_SIZE, |
495 SDL_GL_DEPTH_SIZE, |
496 SDL_GL_STENCIL_SIZE, |
496 SDL_GL_STENCIL_SIZE, |
497 SDL_GL_ACCUM_RED_SIZE, |
497 SDL_GL_ACCUM_RED_SIZE, |
498 SDL_GL_ACCUM_GREEN_SIZE, |
498 SDL_GL_ACCUM_GREEN_SIZE, |
499 SDL_GL_ACCUM_BLUE_SIZE, |
499 SDL_GL_ACCUM_BLUE_SIZE, |
500 SDL_GL_ACCUM_ALPHA_SIZE, |
500 SDL_GL_ACCUM_ALPHA_SIZE, |
501 SDL_GL_STEREO, |
501 SDL_GL_STEREO, |
502 SDL_GL_MULTISAMPLEBUFFERS, |
502 SDL_GL_MULTISAMPLEBUFFERS, |
503 SDL_GL_MULTISAMPLESAMPLES, |
503 SDL_GL_MULTISAMPLESAMPLES, |
504 SDL_GL_ACCELERATED_VISUAL, |
504 SDL_GL_ACCELERATED_VISUAL, |
505 {$IFDEF SDL13} |
505 {$IFDEF SDL13} |
506 SDL_GL_RETAINED_BACKING, |
506 SDL_GL_RETAINED_BACKING, |
507 SDL_GL_CONTEXT_MAJOR_VERSION, |
507 SDL_GL_CONTEXT_MAJOR_VERSION, |
508 SDL_GL_CONTEXT_MINOR_VERSION |
508 SDL_GL_CONTEXT_MINOR_VERSION |
509 {$ELSE} |
509 {$ELSE} |
510 SDL_GL_SWAP_CONTROL |
510 SDL_GL_SWAP_CONTROL |
511 {$ENDIF} |
511 {$ENDIF} |
512 ); |
512 ); |
513 |
513 |
514 {$IFDEF SDL13} |
514 {$IFDEF SDL13} |
515 TSDL_ArrayByteOrder = ( // array component order, low byte -> high byte |
515 TSDL_ArrayByteOrder = ( // array component order, low byte -> high byte |
516 SDL_ARRAYORDER_NONE, |
516 SDL_ARRAYORDER_NONE, |
517 SDL_ARRAYORDER_RGB, |
517 SDL_ARRAYORDER_RGB, |
518 SDL_ARRAYORDER_RGBA, |
518 SDL_ARRAYORDER_RGBA, |
519 SDL_ARRAYORDER_ARGB, |
519 SDL_ARRAYORDER_ARGB, |
520 SDL_ARRAYORDER_BGR, |
520 SDL_ARRAYORDER_BGR, |
521 SDL_ARRAYORDER_BGRA, |
521 SDL_ARRAYORDER_BGRA, |
522 SDL_ARRAYORDER_ABGR |
522 SDL_ARRAYORDER_ABGR |
523 ); |
523 ); |
524 {$ENDIF} |
524 {$ENDIF} |
525 |
525 |
526 // Joystick/Controller support |
526 // Joystick/Controller support |
527 PSDL_Joystick = ^TSDL_Joystick; |
527 PSDL_Joystick = ^TSDL_Joystick; |
528 TSDL_Joystick = record |
528 TSDL_Joystick = record |
529 end; |
529 end; |
530 |
530 |
531 {* SDL_TTF *} |
531 {* SDL_TTF *} |
532 PTTF_Font = ^TTTF_font; |
532 PTTF_Font = ^TTTF_font; |
533 TTTF_Font = record |
533 TTTF_Font = record |
534 end; |
534 end; |
535 |
535 |
536 {* SDL_mixer *} |
536 {* SDL_mixer *} |
537 PMixChunk = ^TMixChunk; |
537 PMixChunk = ^TMixChunk; |
538 TMixChunk = record |
538 TMixChunk = record |
539 allocated: Longword; |
539 allocated: Longword; |
540 abuf : PByte; |
540 abuf : PByte; |
541 alen : Longword; |
541 alen : Longword; |
542 volume : PByte; |
542 volume : PByte; |
543 end; |
543 end; |
544 TMusic = (MUS_CMD, MUS_WAV, MUS_MOD, MUS_MID, MUS_OGG, MUS_MP3); |
544 TMusic = (MUS_CMD, MUS_WAV, MUS_MOD, MUS_MID, MUS_OGG, MUS_MP3); |
545 TMix_Fading = (MIX_NO_FADING, MIX_FADING_OUT, MIX_FADING_IN); |
545 TMix_Fading = (MIX_NO_FADING, MIX_FADING_OUT, MIX_FADING_IN); |
546 |
546 |
547 TMidiSong = record |
547 TMidiSong = record |
548 samples : LongInt; |
548 samples : LongInt; |
549 events : pointer; |
549 events : pointer; |
550 end; |
550 end; |
551 |
551 |
552 TMusicUnion = record |
552 TMusicUnion = record |
553 case Byte of |
553 case Byte of |
554 0: ( midi : TMidiSong ); |
554 0: ( midi : TMidiSong ); |
555 1: ( ogg : pointer); |
555 1: ( ogg : pointer); |
556 end; |
556 end; |
557 |
557 |
558 PMixMusic = ^TMixMusic; |
558 PMixMusic = ^TMixMusic; |
559 TMixMusic = record |
559 TMixMusic = record |
560 end; |
560 end; |
561 |
561 |
562 {* SDL_net *} |
562 {* SDL_net *} |
563 TIPAddress = record |
563 TIPAddress = record |
564 host: Longword; |
564 host: Longword; |
565 port: Word; |
565 port: Word; |
566 end; |
566 end; |
567 |
567 |
568 PTCPSocket = ^TTCPSocket; |
568 PTCPSocket = ^TTCPSocket; |
569 TTCPSocket = record |
569 TTCPSocket = record |
570 ready: LongInt; |
570 ready: LongInt; |
571 channel: LongInt; |
571 channel: LongInt; |
572 remoteAddress: TIPaddress; |
572 remoteAddress: TIPaddress; |
573 localAddress: TIPaddress; |
573 localAddress: TIPaddress; |
574 sflag: LongInt; |
574 sflag: LongInt; |
575 end; |
575 end; |
576 PSDLNet_SocketSet = ^TSDLNet_SocketSet; |
576 PSDLNet_SocketSet = ^TSDLNet_SocketSet; |
577 TSDLNet_SocketSet = record |
577 TSDLNet_SocketSet = record |
578 numsockets, |
578 numsockets, |
579 maxsockets: LongInt; |
579 maxsockets: LongInt; |
580 sockets: PTCPSocket; |
580 sockets: PTCPSocket; |
581 end; |
581 end; |
582 |
582 |