Module: Frusdl::Low::SDL

Extended by:
FFI::Library
Included in:
SDL, SDL, SDL::PixelFormat, SDL::PixelFormat, SDL::Screen, SDL::Screen, SDL::VideoInfo, SDL::VideoInfo
Defined in:
lib/frusdl/low/sdl.rb

Defined Under Namespace

Classes: SDL_ActiveEvent, SDL_AudioSpec, SDL_Color, SDL_Cursor, SDL_Event, SDL_ExposeEvent, SDL_JoyAxisEvent, SDL_JoyBallEvent, SDL_JoyButtonEvent, SDL_JoyHatEvent, SDL_Joystick, SDL_KeyboardEvent, SDL_MouseButtonEvent, SDL_MouseMotionEvent, SDL_Palette, SDL_PixelFormat, SDL_QuitEvent, SDL_RWops, SDL_Rect, SDL_ResizeEvent, SDL_Surface, SDL_UserEvent, SDL_VideoInfo, SDL_keysym, SDL_version

Constant Summary collapse

SDL_INIT_TIMER =

Define some constants for the init function

0x00000001
SDL_INIT_AUDIO =
0x00000010
SDL_INIT_VIDEO =
0x00000020
SDL_INIT_CDROM =
0x00000100
SDL_INIT_JOYSTICK =
0x00000200
SDL_INIT_NOPARACHUTE =
0x00100000
SDL_INIT_EVENTTHREAD =
0x01000000
SDL_INIT_EVERYTHING =
0x0000FFFF
SDL_SWSURFACE =

And some for video functions

0x00000000
SDL_HWSURFACE =
0x00000001
SDL_ASYNCBLIT =
0x00000004
SDL_ANYFORMAT =
0x10000000
SDL_HWPALETTE =
0x20000000
SDL_DOUBLEBUF =
0x40000000
SDL_FULLSCREEN =
0x80000000
SDL_OPENGL =
0x00000002
SDL_OPENGLBLIT =
0x0000000A
SDL_RESIZABLE =
0x00000010
SDL_NOFRAME =
0x00000020
SDL_GRAB_QUERY =

And some more for mouse grabbing

-1
SDL_GRAB_OFF =
0
SDL_GRAB_ON =
1
SDL_GRAB_FULLSCREEN =
2
SDL_LIL_ENDIAN =
:little_endian
SDL_BYTEORDER =
SDL_BIG_ENDIAN
AUDIO_U8 =

Unsigned 8-bit samples

0x0008
AUDIO_S8 =

Signed 8-bit samples

0x8008
AUDIO_U16LSB =

Unsigned 16-bit samples

0x0010
AUDIO_S16LSB =

Signed 16-bit samples

0x8010
AUDIO_U16MSB =

As above, but big-endian byte order

0x1010
AUDIO_S16MSB =

As above, but big-endian byte order

0x9010
AUDIO_U16 =
AUDIO_U16LSB
AUDIO_S16 =
AUDIO_S16LSB
AUDIO_U16SYS =
AUDIO_U16MSB
AUDIO_S16SYS =
AUDIO_S16MSB
SDL_AUDIO_STOPPED =
0
SDL_AUDIO_PLAYING =
1
SDL_AUDIO_PAUSED =
2
SDL_MIX_MAXVOLUME =
128
SDL_DEFAULT_REPEAT_DELAY =
500
SDL_DEFAULT_REPEAT_INTERVAL =
30
SDLK_UNKNOWN =

SDL_keysym (lots of boring constants ahead :p )

0
SDLK_FIRST =
0
SDLK_BACKSPACE =
8
SDLK_TAB =
9
SDLK_CLEAR =
12
SDLK_RETURN =
13
SDLK_PAUSE =
19
SDLK_ESCAPE =
27
SDLK_SPACE =
32
SDLK_EXCLAIM =
33
SDLK_QUOTEDBL =
34
SDLK_HASH =
35
SDLK_DOLLAR =
36
SDLK_AMPERSAND =
38
SDLK_QUOTE =
39
SDLK_LEFTPAREN =
40
SDLK_RIGHTPAREN =
41
SDLK_ASTERISK =
42
SDLK_PLUS =
43
SDLK_COMMA =
44
SDLK_MINUS =
45
SDLK_PERIOD =
46
SDLK_SLASH =
47
SDLK_0 =
48
SDLK_1 =
49
SDLK_2 =
50
SDLK_3 =
51
SDLK_4 =
52
SDLK_5 =
53
SDLK_6 =
54
SDLK_7 =
55
SDLK_8 =
56
SDLK_9 =
57
SDLK_COLON =
58
SDLK_SEMICOLON =
59
SDLK_LESS =
60
SDLK_EQUALS =
61
SDLK_GREATER =
62
SDLK_QUESTION =
63
SDLK_AT =
64
SDLK_LEFTBRACKET =
91
SDLK_BACKSLASH =
92
SDLK_RIGHTBRACKET =
93
SDLK_CARET =
94
SDLK_UNDERSCORE =
95
SDLK_BACKQUOTE =
96
SDLK_a =
97
SDLK_b =
98
SDLK_c =
99
SDLK_d =
100
SDLK_e =
101
SDLK_f =
102
SDLK_g =
103
SDLK_h =
104
SDLK_i =
105
SDLK_j =
106
SDLK_k =
107
SDLK_l =
108
SDLK_m =
109
SDLK_n =
110
SDLK_o =
111
SDLK_p =
112
SDLK_q =
113
SDLK_r =
114
SDLK_s =
115
SDLK_t =
116
SDLK_u =
117
SDLK_v =
118
SDLK_w =
119
SDLK_x =
120
SDLK_y =
121
SDLK_z =
122
SDLK_DELETE =
127
SDLK_WORLD_0 =
160
SDLK_WORLD_1 =
161
SDLK_WORLD_2 =
162
SDLK_WORLD_3 =
163
SDLK_WORLD_4 =
164
SDLK_WORLD_5 =
165
SDLK_WORLD_6 =
166
SDLK_WORLD_7 =
167
SDLK_WORLD_8 =
168
SDLK_WORLD_9 =
169
SDLK_WORLD_10 =
170
SDLK_WORLD_11 =
171
SDLK_WORLD_12 =
172
SDLK_WORLD_13 =
173
SDLK_WORLD_14 =
174
SDLK_WORLD_15 =
175
SDLK_WORLD_16 =
176
SDLK_WORLD_17 =
177
SDLK_WORLD_18 =
178
SDLK_WORLD_19 =
179
SDLK_WORLD_20 =
180
SDLK_WORLD_21 =
181
SDLK_WORLD_22 =
182
SDLK_WORLD_23 =
183
SDLK_WORLD_24 =
184
SDLK_WORLD_25 =
185
SDLK_WORLD_26 =
186
SDLK_WORLD_27 =
187
SDLK_WORLD_28 =
188
SDLK_WORLD_29 =
189
SDLK_WORLD_30 =
190
SDLK_WORLD_31 =
191
SDLK_WORLD_32 =
192
SDLK_WORLD_33 =
193
SDLK_WORLD_34 =
194
SDLK_WORLD_35 =
195
SDLK_WORLD_36 =
196
SDLK_WORLD_37 =
197
SDLK_WORLD_38 =
198
SDLK_WORLD_39 =
199
SDLK_WORLD_40 =
200
SDLK_WORLD_41 =
201
SDLK_WORLD_42 =
202
SDLK_WORLD_43 =
203
SDLK_WORLD_44 =
204
SDLK_WORLD_45 =
205
SDLK_WORLD_46 =
206
SDLK_WORLD_47 =
207
SDLK_WORLD_48 =
208
SDLK_WORLD_49 =
209
SDLK_WORLD_50 =
210
SDLK_WORLD_51 =
211
SDLK_WORLD_52 =
212
SDLK_WORLD_53 =
213
SDLK_WORLD_54 =
214
SDLK_WORLD_55 =
215
SDLK_WORLD_56 =
216
SDLK_WORLD_57 =
217
SDLK_WORLD_58 =
218
SDLK_WORLD_59 =
219
SDLK_WORLD_60 =
220
SDLK_WORLD_61 =
221
SDLK_WORLD_62 =
222
SDLK_WORLD_63 =
223
SDLK_WORLD_64 =
224
SDLK_WORLD_65 =
225
SDLK_WORLD_66 =
226
SDLK_WORLD_67 =
227
SDLK_WORLD_68 =
228
SDLK_WORLD_69 =
229
SDLK_WORLD_70 =
230
SDLK_WORLD_71 =
231
SDLK_WORLD_72 =
232
SDLK_WORLD_73 =
233
SDLK_WORLD_74 =
234
SDLK_WORLD_75 =
235
SDLK_WORLD_76 =
236
SDLK_WORLD_77 =
237
SDLK_WORLD_78 =
238
SDLK_WORLD_79 =
239
SDLK_WORLD_80 =
240
SDLK_WORLD_81 =
241
SDLK_WORLD_82 =
242
SDLK_WORLD_83 =
243
SDLK_WORLD_84 =
244
SDLK_WORLD_85 =
245
SDLK_WORLD_86 =
246
SDLK_WORLD_87 =
247
SDLK_WORLD_88 =
248
SDLK_WORLD_89 =
249
SDLK_WORLD_90 =
250
SDLK_WORLD_91 =
251
SDLK_WORLD_92 =
252
SDLK_WORLD_93 =
253
SDLK_WORLD_94 =
254
SDLK_WORLD_95 =
255
SDLK_KP0 =
256
SDLK_KP1 =
257
SDLK_KP2 =
258
SDLK_KP3 =
259
SDLK_KP4 =
260
SDLK_KP5 =
261
SDLK_KP6 =
262
SDLK_KP7 =
263
SDLK_KP8 =
264
SDLK_KP9 =
265
SDLK_KP_PERIOD =
266
SDLK_KP_DIVIDE =
267
SDLK_KP_MULTIPLY =
268
SDLK_KP_MINUS =
269
SDLK_KP_PLUS =
270
SDLK_KP_ENTER =
271
SDLK_KP_EQUALS =
272
SDLK_UP =
273
SDLK_DOWN =
274
SDLK_RIGHT =
275
SDLK_LEFT =
276
SDLK_INSERT =
277
SDLK_HOME =
278
SDLK_END =
279
SDLK_PAGEUP =
280
SDLK_PAGEDOWN =
281
SDLK_F1 =
282
SDLK_F2 =
283
SDLK_F3 =
284
SDLK_F4 =
285
SDLK_F5 =
286
SDLK_F6 =
287
SDLK_F7 =
288
SDLK_F8 =
289
SDLK_F9 =
290
SDLK_F10 =
291
SDLK_F11 =
292
SDLK_F12 =
293
SDLK_F13 =
294
SDLK_F14 =
295
SDLK_F15 =
296
SDLK_NUMLOCK =
300
SDLK_CAPSLOCK =
301
SDLK_SCROLLOCK =
302
SDLK_RSHIFT =
303
SDLK_LSHIFT =
304
SDLK_RCTRL =
305
SDLK_LCTRL =
306
SDLK_RALT =
307
SDLK_LALT =
308
SDLK_RMETA =
309
SDLK_LMETA =
310
SDLK_LSUPER =
311
SDLK_RSUPER =
312
SDLK_MODE =
313
SDLK_COMPOSE =
314
SDLK_HELP =
315
SDLK_PRINT =
316
SDLK_SYSREQ =
317
SDLK_BREAK =
318
SDLK_MENU =
319
SDLK_POWER =
320
SDLK_EURO =
321
SDLK_UNDO =
322
SDLK_LAST =
323
KMOD_NONE =
0x0000
KMOD_LSHIFT =
0x0001
KMOD_RSHIFT =
0x0002
KMOD_LCTRL =
0x0040
KMOD_RCTRL =
0x0080
KMOD_LALT =
0x0100
KMOD_RALT =
0x0200
KMOD_LMETA =
0x0400
KMOD_RMETA =
0x0800
KMOD_NUM =
0x1000
KMOD_CAPS =
0x2000
KMOD_MODE =
0x4000
KMOD_RESERVED =
0x8000
KMOD_CTRL =
(KMOD_LCTRL|KMOD_RCTRL)
KMOD_SHIFT =
(KMOD_LSHIFT|KMOD_RSHIFT)
KMOD_ALT =
(KMOD_LALT|KMOD_RALT)
KMOD_META =
(KMOD_LMETA|KMOD_RMETA)
SDL_BUTTON_LEFT =
1
SDL_BUTTON_MIDDLE =
2
SDL_BUTTON_RIGHT =
3
SDL_BUTTON_WHEELUP =
4
SDL_BUTTON_WHEELDOWN =
5
RW_SEEK_SET =
0
RW_SEEK_CUR =
1
RW_SEEK_END =
2
SDL_TIMESLICE =

SDL_timer

10
TIMER_RESOLUTION =
10
SDL_RELEASED =

SDL_event

0
SDL_PRESSED =
1
SDL_NOEVENT =
0
SDL_ACTIVEEVENT =
1
SDL_KEYDOWN =
2
SDL_KEYUP =
3
SDL_MOUSEMOTION =
4
SDL_MOUSEBUTTONDOWN =
5
SDL_MOUSEBUTTONUP =
6
SDL_JOYAXISMOTION =
7
SDL_JOYBALLMOTION =
8
SDL_JOYHATMOTION =
9
SDL_JOYBUTTONDOWN =
10
SDL_JOYBUTTONUP =
11
SDL_QUIT =
12
SDL_SYSWMEVENT =
13
SDL_EVENT_RESERVEDA =
14
SDL_EVENT_RESERVEDB =
15
SDL_VIDEORESIZE =
16
SDL_VIDEOEXPOSE =
17
SDL_EVENT_RESERVED2 =
18
SDL_EVENT_RESERVED3 =
19
SDL_EVENT_RESERVED4 =
20
SDL_EVENT_RESERVED5 =
21
SDL_EVENT_RESERVED6 =
22
SDL_EVENT_RESERVED7 =
23
SDL_USEREVENT =
24
SDL_NUMEVENTS =
32
SDL_ADDEVENT =
0
SDL_PEEKEVENT =
1
SDL_GETEVENT =
2
SDL_QUERY =
-1
SDL_IGNORE =
0
SDL_DISABLE =
0
SDL_ENABLE =
1
SDL_HAT_CENTERED =
0x00
SDL_HAT_UP =
0x01
SDL_HAT_RIGHT =
0x02
SDL_HAT_DOWN =
0x04
SDL_HAT_LEFT =
0x08
SDL_HAT_RIGHTUP =
(SDL_HAT_RIGHT|SDL_HAT_UP)
SDL_HAT_RIGHTDOWN =
(SDL_HAT_RIGHT|SDL_HAT_DOWN)
SDL_HAT_LEFTUP =
(SDL_HAT_LEFT|SDL_HAT_UP)
SDL_HAT_LEFTDOWN =
(SDL_HAT_LEFT|SDL_HAT_DOWN)

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.SDL_BlitSurface(src, srcrect, dst, dstrect) ⇒ Object



860
861
862
# File 'lib/frusdl/low/sdl.rb', line 860

def self.SDL_BlitSurface(src, srcrect, dst, dstrect)
  SDL_UpperBlit(src, srcrect, dst, dstrect)
end

.SDL_LoadBMP(filename) ⇒ Object



845
846
847
# File 'lib/frusdl/low/sdl.rb', line 845

def self.SDL_LoadBMP(filename) 
  SDL_LoadBMP_RW(SDL_RWFromFile(filename, "rb"), 1)
end

.SDL_LoadWAV(filename, spec, audio_buf, audio_len) ⇒ Object

Compatibility convenience function – loads a WAV from a file



197
198
199
# File 'lib/frusdl/low/sdl.rb', line 197

def self.SDL_LoadWAV(filename, spec, audio_buf, audio_len) 
  SDL_LoadWAV_RW(SDL_RWFromFile(filename, "rb"),1, spec, audio_buf, audio_len)
end

.SDL_SaveBMP(surface, filename) ⇒ Object



849
850
851
# File 'lib/frusdl/low/sdl.rb', line 849

def self.SDL_SaveBMP(surface, filename) 
  SDL_SaveBMP_RW(surface, SDL_RWFromFile(filename, "wb"), 1)
end

Instance Method Details

#SDL_RWclose(ctx) ⇒ Object



550
551
552
# File 'lib/frusdl/low/sdl.rb', line 550

def SDL_RWclose(ctx) 
  ctx[:close].call(ctx)
end

#SDL_RWread(ctx, ptr, size, n) ⇒ Object



542
543
544
# File 'lib/frusdl/low/sdl.rb', line 542

def SDL_RWread(ctx, ptr, size, n) 
  ctx[:read].call(ctx, ptr, size, n)
end

#SDL_RWseek(ctx, offset, whence) ⇒ Object

SDL uses macros to “easily” read and write from an SDL_RWops structure unfortunately, we need to use callbacks for this



534
535
536
# File 'lib/frusdl/low/sdl.rb', line 534

def SDL_RWseek(ctx, offset, whence) 
  ctx[:seek].call(ctx, offset, whence)
end

#SDL_RWtell(ctx) ⇒ Object



538
539
540
# File 'lib/frusdl/low/sdl.rb', line 538

def SDL_RWtell(ctx) 
  ctx[:seek].call(ctx, 0, RW_SEEK_CUR)
end

#SDL_RWwrite(ctx, offset, whence) ⇒ Object



546
547
548
# File 'lib/frusdl/low/sdl.rb', line 546

def SDL_RWwrite(ctx, offset, whence) 
  ctx[:write].call(ctx, ptr, size, n)
end