Module: SDL
- Extended by:
- NiceFFI::Library
- Defined in:
- lib/ruby-sdl-ffi/gfx.rb,
lib/ruby-sdl-ffi/sdl.rb,
lib/ruby-sdl-ffi/ttf.rb,
lib/ruby-sdl-ffi/image.rb,
lib/ruby-sdl-ffi/mixer.rb,
lib/ruby-sdl-ffi/sdl/core.rb,
lib/ruby-sdl-ffi/sdl/audio.rb,
lib/ruby-sdl-ffi/sdl/cdrom.rb,
lib/ruby-sdl-ffi/sdl/event.rb,
lib/ruby-sdl-ffi/sdl/mouse.rb,
lib/ruby-sdl-ffi/sdl/mutex.rb,
lib/ruby-sdl-ffi/sdl/rwops.rb,
lib/ruby-sdl-ffi/sdl/timer.rb,
lib/ruby-sdl-ffi/sdl/video.rb,
lib/ruby-sdl-ffi/sdl/keysyms.rb,
lib/ruby-sdl-ffi/gfx/blitfunc.rb,
lib/ruby-sdl-ffi/gfx/rotozoom.rb,
lib/ruby-sdl-ffi/sdl/joystick.rb,
lib/ruby-sdl-ffi/sdl/keyboard.rb,
lib/ruby-sdl-ffi/gfx/framerate.rb,
lib/ruby-sdl-ffi/gfx/primitives.rb,
lib/ruby-sdl-ffi/gfx/imagefilter.rb
Defined Under Namespace
Modules: Gfx, Image, Mixer, TTF
Classes: ActiveEvent, AudioSpec, CD, CDtrack, Color, Cursor, Event, ExposeEvent, JoyAxisEvent, JoyBallEvent, JoyButtonEvent, JoyHatEvent, Joystick, KeyboardEvent, Keysym, MouseButtonEvent, MouseMotionEvent, Overlay, Palette, PixelFormat, QuitEvent, RWops, RWopsHidden, RWopsHiddenMem, RWopsHiddenStdio, RWopsHiddenUnknown, Rect, ResizeEvent, Surface, SysWMEvent, UserEvent, Version, VideoInfo
Constant Summary
collapse
- LOAD_PATHS =
Check if the application has defined SDL_PATHS with some paths to check first for SDL libraries.
if defined? ::SDL_PATHS
NiceFFI::PathSet::DEFAULT.prepend( ::SDL_PATHS )
else
NiceFFI::PathSet::DEFAULT
end
- ENUM =
Aliases for integer-like types
:int
- BOOL =
:int
- GLATTR =
:int
- LIL_ENDIAN =
1234
- BIG_ENDIAN =
4321
- INIT_TIMER =
0x00000001
- INIT_AUDIO =
0x00000010
- INIT_VIDEO =
0x00000020
- INIT_CDROM =
0x00000100
- INIT_JOYSTICK =
0x00000200
- INIT_NOPARACHUTE =
0x00100000
- INIT_EVENTTHREAD =
0x01000000
- INIT_EVERYTHING =
0x0000FFFF
- APPMOUSEFOCUS =
0x01
- APPINPUTFOCUS =
0x02
- APPACTIVE =
0x04
- ENOMEM =
0
- EFREAD =
1
- EFWRITE =
2
- EFSEEK =
3
- UNSUPPORTED =
4
- LASTERROR =
5
- AUDIO_U8 =
0x0008
- AUDIO_S8 =
0x8008
- AUDIO_U16LSB =
0x0010
- AUDIO_S16LSB =
0x8010
- AUDIO_U16MSB =
0x1010
- AUDIO_S16MSB =
0x9010
- AUDIO_U16 =
0x0010
- AUDIO_S16 =
0x8010
- AUDIO_U16SYS =
AUDIO_U16MSB
- AUDIO_S16SYS =
AUDIO_U16MSB
- AUDIO_STOPPED =
0
- AUDIO_PLAYING =
1
- AUDIO_PAUSED =
2
- MIX_MAXVOLUME =
128
- CD_ERROR =
-1
- CD_TRAYEMPTY =
0
- CD_STOPPED =
1
- CD_PLAYING =
2
- CD_PAUSED =
3
- AUDIO_TRACK =
0x00
- DATA_TRACK =
0x04
- MAX_TRACKS =
99
- CD_FPS =
75
- RELEASED =
0
- PRESSED =
1
- NOEVENT =
0
- ACTIVEEVENT =
1
- KEYDOWN =
2
- KEYUP =
3
- MOUSEMOTION =
4
- MOUSEBUTTONDOWN =
5
- MOUSEBUTTONUP =
6
- JOYAXISMOTION =
7
- JOYBALLMOTION =
8
- JOYHATMOTION =
9
- JOYBUTTONDOWN =
10
- JOYBUTTONUP =
11
- QUIT =
12
- SYSWMEVENT =
13
- EVENT_RESERVEDA =
14
- EVENT_RESERVEDB =
15
- VIDEORESIZE =
16
- VIDEOEXPOSE =
17
- EVENT_RESERVED2 =
18
- EVENT_RESERVED3 =
19
- EVENT_RESERVED4 =
20
- EVENT_RESERVED5 =
21
- EVENT_RESERVED6 =
22
- EVENT_RESERVED7 =
23
- USEREVENT =
24
- NUMEVENTS =
32
- ACTIVEEVENTMASK =
(1 << (ACTIVEEVENT))
- JOYAXISMOTIONMASK =
(1 << (JOYAXISMOTION))
- JOYEVENTMASK =
(1 << (JOYAXISMOTION)) | \
(1 << (JOYBALLMOTION)) | \
(1 << (JOYHATMOTION)) | \
(1 << (JOYBUTTONDOWN)) | \
(1 << (JOYBUTTONUP))
- JOYBALLMOTIONMASK =
(1 << (JOYBALLMOTION))
- JOYBUTTONDOWNMASK =
(1 << (JOYBUTTONDOWN))
- JOYBUTTONUPMASK =
(1 << (JOYBUTTONUP))
- JOYHATMOTIONMASK =
(1 << (JOYHATMOTION))
- KEYDOWNMASK =
(1 << (KEYDOWN))
- KEYEVENTMASK =
(1 << (KEYDOWN))|(1 << (KEYUP))
- KEYUPMASK =
(1 << (KEYUP))
- MOUSEBUTTONDOWNMASK =
(1 << (MOUSEBUTTONDOWN))
- MOUSEBUTTONUPMASK =
(1 << (MOUSEBUTTONUP))
- MOUSEMOTIONMASK =
(1 << (MOUSEMOTION))
- MOUSEEVENTMASK =
(1 << (MOUSEMOTION)) | \
(1 << (MOUSEBUTTONDOWN)) | \
(1 << (MOUSEBUTTONUP))
- QUITMASK =
(1 << (QUIT))
- SYSWMEVENTMASK =
(1 << (SYSWMEVENT))
- VIDEOEXPOSEMASK =
(1 << (VIDEOEXPOSE))
- VIDEORESIZEMASK =
(1 << (VIDEORESIZE))
- ALLEVENTS =
0xFFFFFFFF
- ADDEVENT =
0
- PEEKEVENT =
1
- GETEVENT =
2
- QUERY =
-1
- IGNORE =
0
- DISABLE =
0
- ENABLE =
1
- BUTTON_LEFT =
1
- BUTTON_MIDDLE =
2
- BUTTON_RIGHT =
3
- BUTTON_WHEELUP =
4
- BUTTON_WHEELDOWN =
5
- BUTTON_X1 =
6
- BUTTON_X2 =
7
- BUTTON_LMASK =
1 << (BUTTON_LEFT - 1)
- BUTTON_MMASK =
1 << (BUTTON_MIDDLE - 1)
- BUTTON_RMASK =
1 << (BUTTON_RIGHT - 1)
- BUTTON_X1MASK =
1 << (BUTTON_X1 - 1)
- BUTTON_X2MASK =
1 << (BUTTON_X2 - 1)
- MUTEX_TIMEDOUT =
1
- RW_SEEK_SET =
0
- RW_SEEK_CUR =
1
- RW_SEEK_END =
2
- TIMESLICE =
10
- TIMER_RESOLUTION =
10
- ALPHA_OPAQUE =
255
- ALPHA_TRANSPARENT =
0
- SWSURFACE =
0x00000000
- HWSURFACE =
0x00000001
- ASYNCBLIT =
0x00000004
- ANYFORMAT =
0x10000000
- HWPALETTE =
0x20000000
- DOUBLEBUF =
0x40000000
- FULLSCREEN =
0x80000000
- OPENGL =
0x00000002
- OPENGLBLIT =
0x0000000A
- RESIZABLE =
0x00000010
- NOFRAME =
0x00000020
- HWACCEL =
0x00000100
- SRCCOLORKEY =
0x00001000
- RLEACCELOK =
0x00002000
- RLEACCEL =
0x00004000
- SRCALPHA =
0x00010000
- PREALLOC =
0x01000000
- YV12_OVERLAY =
0x32315659
- IYUV_OVERLAY =
0x56555949
- YUY2_OVERLAY =
0x32595559
- UYVY_OVERLAY =
0x59565955
- YVYU_OVERLAY =
0x55595659
- GL_RED_SIZE =
0
- GL_GREEN_SIZE =
1
- GL_BLUE_SIZE =
2
- GL_ALPHA_SIZE =
3
- GL_BUFFER_SIZE =
4
- GL_DOUBLEBUFFER =
5
- GL_DEPTH_SIZE =
6
- GL_STENCIL_SIZE =
7
- GL_ACCUM_RED_SIZE =
8
- GL_ACCUM_GREEN_SIZE =
9
- GL_ACCUM_BLUE_SIZE =
10
- GL_ACCUM_ALPHA_SIZE =
11
- GL_STEREO =
12
- GL_MULTISAMPLEBUFFERS =
13
- GL_MULTISAMPLESAMPLES =
14
- GL_ACCELERATED_VISUAL =
15
- GL_SWAP_CONTROL =
16
- LOGPAL =
0x01
- PHYSPAL =
0x02
- GRAB_QUERY =
-1
- GRAB_OFF =
0
- GRAB_ON =
1
- GRAB_FULLSCREEN =
2
- K_FIRST =
0
- K_UNKNOWN =
0
- K_BACKSPACE =
8
- K_TAB =
9
- K_CLEAR =
12
- K_RETURN =
13
- K_PAUSE =
19
- K_ESCAPE =
27
- K_SPACE =
32
- K_EXCLAIM =
33
- K_QUOTEDBL =
34
- K_HASH =
35
- K_DOLLAR =
36
- K_AMPERSAND =
38
- K_QUOTE =
39
- K_LEFTPAREN =
40
- K_RIGHTPAREN =
41
- K_ASTERISK =
42
- K_PLUS =
43
- K_COMMA =
44
- K_MINUS =
45
- K_PERIOD =
46
- K_SLASH =
47
- K_0 =
48
- K_1 =
49
- K_2 =
50
- K_3 =
51
- K_4 =
52
- K_5 =
53
- K_6 =
54
- K_7 =
55
- K_8 =
56
- K_9 =
57
- K_COLON =
58
- K_SEMICOLON =
59
- K_LESS =
60
- K_EQUALS =
61
- K_GREATER =
62
- K_QUESTION =
63
- K_AT =
64
- K_LEFTBRACKET =
91
- K_BACKSLASH =
92
- K_RIGHTBRACKET =
93
- K_CARET =
94
- K_UNDERSCORE =
95
- K_BACKQUOTE =
96
- K_a =
97
- K_b =
98
- K_c =
99
- K_d =
100
- K_e =
101
- K_f =
102
- K_g =
103
- K_h =
104
- K_i =
105
- K_j =
106
- K_k =
107
- K_l =
108
- K_m =
109
- K_n =
110
- K_o =
111
- K_p =
112
- K_q =
113
- K_r =
114
- K_s =
115
- K_t =
116
- K_u =
117
- K_v =
118
- K_w =
119
- K_x =
120
- K_y =
121
- K_z =
122
- K_DELETE =
127
- K_WORLD_0 =
160
- K_WORLD_1 =
161
- K_WORLD_2 =
162
- K_WORLD_3 =
163
- K_WORLD_4 =
164
- K_WORLD_5 =
165
- K_WORLD_6 =
166
- K_WORLD_7 =
167
- K_WORLD_8 =
168
- K_WORLD_9 =
169
- K_WORLD_10 =
170
- K_WORLD_11 =
171
- K_WORLD_12 =
172
- K_WORLD_13 =
173
- K_WORLD_14 =
174
- K_WORLD_15 =
175
- K_WORLD_16 =
176
- K_WORLD_17 =
177
- K_WORLD_18 =
178
- K_WORLD_19 =
179
- K_WORLD_20 =
180
- K_WORLD_21 =
181
- K_WORLD_22 =
182
- K_WORLD_23 =
183
- K_WORLD_24 =
184
- K_WORLD_25 =
185
- K_WORLD_26 =
186
- K_WORLD_27 =
187
- K_WORLD_28 =
188
- K_WORLD_29 =
189
- K_WORLD_30 =
190
- K_WORLD_31 =
191
- K_WORLD_32 =
192
- K_WORLD_33 =
193
- K_WORLD_34 =
194
- K_WORLD_35 =
195
- K_WORLD_36 =
196
- K_WORLD_37 =
197
- K_WORLD_38 =
198
- K_WORLD_39 =
199
- K_WORLD_40 =
200
- K_WORLD_41 =
201
- K_WORLD_42 =
202
- K_WORLD_43 =
203
- K_WORLD_44 =
204
- K_WORLD_45 =
205
- K_WORLD_46 =
206
- K_WORLD_47 =
207
- K_WORLD_48 =
208
- K_WORLD_49 =
209
- K_WORLD_50 =
210
- K_WORLD_51 =
211
- K_WORLD_52 =
212
- K_WORLD_53 =
213
- K_WORLD_54 =
214
- K_WORLD_55 =
215
- K_WORLD_56 =
216
- K_WORLD_57 =
217
- K_WORLD_58 =
218
- K_WORLD_59 =
219
- K_WORLD_60 =
220
- K_WORLD_61 =
221
- K_WORLD_62 =
222
- K_WORLD_63 =
223
- K_WORLD_64 =
224
- K_WORLD_65 =
225
- K_WORLD_66 =
226
- K_WORLD_67 =
227
- K_WORLD_68 =
228
- K_WORLD_69 =
229
- K_WORLD_70 =
230
- K_WORLD_71 =
231
- K_WORLD_72 =
232
- K_WORLD_73 =
233
- K_WORLD_74 =
234
- K_WORLD_75 =
235
- K_WORLD_76 =
236
- K_WORLD_77 =
237
- K_WORLD_78 =
238
- K_WORLD_79 =
239
- K_WORLD_80 =
240
- K_WORLD_81 =
241
- K_WORLD_82 =
242
- K_WORLD_83 =
243
- K_WORLD_84 =
244
- K_WORLD_85 =
245
- K_WORLD_86 =
246
- K_WORLD_87 =
247
- K_WORLD_88 =
248
- K_WORLD_89 =
249
- K_WORLD_90 =
250
- K_WORLD_91 =
251
- K_WORLD_92 =
252
- K_WORLD_93 =
253
- K_WORLD_94 =
254
- K_WORLD_95 =
255
- K_KP0 =
256
- K_KP1 =
257
- K_KP2 =
258
- K_KP3 =
259
- K_KP4 =
260
- K_KP5 =
261
- K_KP6 =
262
- K_KP7 =
263
- K_KP8 =
264
- K_KP9 =
265
- K_KP_PERIOD =
266
- K_KP_DIVIDE =
267
- K_KP_MULTIPLY =
268
- K_KP_MINUS =
269
- K_KP_PLUS =
270
- K_KP_ENTER =
271
- K_KP_EQUALS =
272
- K_UP =
273
- K_DOWN =
274
- K_RIGHT =
275
- K_LEFT =
276
- K_INSERT =
277
- K_HOME =
278
- K_END =
279
- K_PAGEUP =
280
- K_PAGEDOWN =
281
- K_F1 =
282
- K_F2 =
283
- K_F3 =
284
- K_F4 =
285
- K_F5 =
286
- K_F6 =
287
- K_F7 =
288
- K_F8 =
289
- K_F9 =
290
- K_F10 =
291
- K_F11 =
292
- K_F12 =
293
- K_F13 =
294
- K_F14 =
295
- K_F15 =
296
- K_NUMLOCK =
300
- K_CAPSLOCK =
301
- K_SCROLLOCK =
302
- K_RSHIFT =
303
- K_LSHIFT =
304
- K_RCTRL =
305
- K_LCTRL =
306
- K_RALT =
307
- K_LALT =
308
- K_RMETA =
309
- K_LMETA =
310
- K_LSUPER =
311
- K_RSUPER =
312
- K_MODE =
313
- K_COMPOSE =
314
- K_HELP =
315
- K_PRINT =
316
- K_SYSREQ =
317
- K_BREAK =
318
319
- K_POWER =
320
- K_EURO =
321
- K_UNDO =
322
- K_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
- HAT_CENTERED =
0x00
- HAT_UP =
0x01
- HAT_RIGHT =
0x02
- HAT_DOWN =
0x04
- HAT_LEFT =
0x08
- HAT_RIGHTUP =
(HAT_RIGHT|HAT_UP)
- HAT_RIGHTDOWN =
(HAT_RIGHT|HAT_DOWN)
- HAT_LEFTUP =
(HAT_LEFT |HAT_UP)
- HAT_LEFTDOWN =
(HAT_LEFT |HAT_DOWN)
- ALL_HOTKEYS =
0xFFFFFFFF
- DEFAULT_REPEAT_DELAY =
500
- DEFAULT_REPEAT_INTERVAL =
30
Class Method Summary
collapse
Class Method Details
.AudioDriverName ⇒ Object
101
102
103
104
105
106
107
108
109
|
# File 'lib/ruby-sdl-ffi/sdl/audio.rb', line 101
def self.AudioDriverName
b = FFI::Buffer.new(:char, 1024)
result = __AudioDriverName( b, 1024 )
if result.null?
nil
else
b.get_string(0,1024)
end
end
|
.GetClipRect(surface) ⇒ Object
363
364
365
366
367
|
# File 'lib/ruby-sdl-ffi/sdl/video.rb', line 363
def self.GetClipRect( surface )
mp = FFI::MemoryPointer.new( Rect )
__SDL_GetClipRect( surface, mp )
return Rect.new( mp )
end
|
.GetGammaRamp ⇒ Object
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
|
# File 'lib/ruby-sdl-ffi/sdl/video.rb', line 285
def self.GetGammaRamp()
rtable = FFI::Buffer.new( :uint16, 256 )
gtable = FFI::Buffer.new( :uint16, 256 )
btable = FFI::Buffer.new( :uint16, 256 )
n = __SDL_GetGammaRamp( rtable, gtable, btable )
if( n == -1 )
return nil
else
return [ rtable.get_array_of_uint16(0, 256),
gtable.get_array_of_uint16(0, 256),
btable.get_array_of_uint16(0, 256) ]
end
end
|
.GetKeyState ⇒ Object
55
56
57
58
59
|
# File 'lib/ruby-sdl-ffi/sdl/keyboard.rb', line 55
def self.GetKeyState()
numkeys = FFI::MemoryPointer.new( :int )
keys = __SDL_GetKeyState( numkeys )
return keys.get_array_of_uint8( 0, numkeys.get_int(0) )
end
|
.GetMouseState ⇒ Object
Returns [buttons, x, y].
buttons: buttons currently pressed (bitmask of BUTTON_*MASK constants).
x, y: current position of the mouse cursor.
57
58
59
60
61
62
|
# File 'lib/ruby-sdl-ffi/sdl/mouse.rb', line 57
def self.GetMouseState()
xmp = FFI::MemoryPointer.new( :int )
ymp = FFI::MemoryPointer.new( :int )
buttons = __SDL_GetMouseState( xmp, ymp )
return [buttons, xmp.get_int(0), ymp.get_int(0)]
end
|
.GetRelativeMouseState ⇒ Object
Returns [buttons, x, y].
buttons: buttons currently pressed (bitmask of BUTTON_*MASK constants).
x, y: movement of the mouse cursor since last call of this method.
72
73
74
75
76
77
|
# File 'lib/ruby-sdl-ffi/sdl/mouse.rb', line 72
def self.GetRelativeMouseState()
xmp = FFI::MemoryPointer.new( :int )
ymp = FFI::MemoryPointer.new( :int )
buttons = __SDL_GetRelativeMouseState( xmp, ymp )
return [buttons, xmp.get_int(0), ymp.get_int(0)]
end
|
.GetRGB(uint32, format) ⇒ Object
311
312
313
314
315
316
317
|
# File 'lib/ruby-sdl-ffi/sdl/video.rb', line 311
def self.GetRGB( uint32, format )
r = FFI::MemoryPointer.new( :uint8 )
g = FFI::MemoryPointer.new( :uint8 )
b = FFI::MemoryPointer.new( :uint8 )
__SDL_GetRGB( uint32, format, r, g, b )
return [r.get_uint8(0), g.get_uint8(0), b.get_uint8(0)]
end
|
.GetRGBA(uint32, format) ⇒ Object
324
325
326
327
328
329
330
331
|
# File 'lib/ruby-sdl-ffi/sdl/video.rb', line 324
def self.GetRGBA( uint32, format )
r = FFI::MemoryPointer.new( :uint8 )
g = FFI::MemoryPointer.new( :uint8 )
b = FFI::MemoryPointer.new( :uint8 )
a = FFI::MemoryPointer.new( :uint8 )
__SDL_GetRGBA( uint32, format, r, g, b, a )
return [r.get_uint8(0), g.get_uint8(0), b.get_uint8(0), a.get_uint8(0)]
end
|
.GL_GetAttribute(attrib) ⇒ Object
402
403
404
405
406
407
408
409
410
|
# File 'lib/ruby-sdl-ffi/sdl/video.rb', line 402
def self.GL_GetAttribute( attrib )
value = FFI::Buffer.new( :int )
result = __GL_GetAttribute( attrib, value )
if( result == -1 )
return nil
else
return value
end
end
|
.PeepEvents(events, action, mask) ⇒ Object
Behavior varies depending on action.
PEEKEVENT or GETEVENT:
events is the max number of events to retrieve.
Returns an array of Events, or nil if there was an error.
GETEVENT removes them from the queue, PEEKEVENT leaves them.
ADDEVENT:
events is an array of Events (or specific event instances)
to append to the queue.
Returns the number of events added, or -1 if there was an error.
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
|
# File 'lib/ruby-sdl-ffi/sdl/event.rb', line 275
def self.PeepEvents( events, action, mask )
case action
when ADDEVENT
numevents = events.size
mp = FFI::Buffer.new( SDL::Event, numevents )
events.each_with_index do |ev, i|
mp[i].put_bytes( 0, ev.pointer.get_bytes(0, ev.size) )
end
return __SDL_PeepEvents( mp, numevents, action, mask )
when PEEKEVENT, GETEVENT
numevents = events.to_i
mp = FFI::Buffer.new( SDL::Event, numevents )
n = __SDL_PeepEvents( mp, numevents, action, mask )
return nil if( n == -1 )
events = []
n.times do |i|
events << Event.new( mp[i] ).unwrap
end
return events
end
end
|
.PollEvent ⇒ Object
315
316
317
318
319
320
321
322
323
|
# File 'lib/ruby-sdl-ffi/sdl/event.rb', line 315
def self.PollEvent()
mp = FFI::MemoryPointer.new( SDL::Event, 1 )
n = __SDL_PollEvent( mp )
if n == 0
nil
else
Event.new(mp).unwrap
end
end
|
.sdl_func(name, args, ret) ⇒ Object
49
50
51
|
# File 'lib/ruby-sdl-ffi/sdl.rb', line 49
def self.sdl_func( name, args, ret )
func name, "SDL_#{name}", args, ret
end
|
.SetEventFilter(&block) ⇒ Object
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
|
# File 'lib/ruby-sdl-ffi/sdl/event.rb', line 348
def self.SetEventFilter( &block )
if( block_given? )
proc = Proc.new { |ev|
result = block.call( Event.new(ev).unwrap )
case result
when true; 1
when false, nil; 0
else; result
end
}
__SDL_SetEventFilter( proc )
else
__SDL_SetEventFilter( nil )
end
end
|
.UpdateRects(surf, rects) ⇒ Object
262
263
264
265
266
267
268
269
270
|
# File 'lib/ruby-sdl-ffi/sdl/video.rb', line 262
def self.UpdateRects( surf, rects )
rects_mp = FFI::Buffer.new( Rect, rects.length )
rects.each_with_index do |rect, i|
rects_mp[i].put_bytes( 0, rect.to_bytes )
end
__UpdateRects( surf, rects.length, rects_mp )
end
|
.WaitEvent ⇒ Object
328
329
330
331
332
333
334
335
336
|
# File 'lib/ruby-sdl-ffi/sdl/event.rb', line 328
def self.WaitEvent()
mp = FFI::MemoryPointer.new( SDL::Event, 1 )
n = __SDL_WaitEvent( mp )
if n == 0
nil
else
( Event.new(mp) )
end
end
|
.WM_GetCaption ⇒ Object
425
426
427
428
429
430
431
|
# File 'lib/ruby-sdl-ffi/sdl/video.rb', line 425
def self.WM_GetCaption()
title = FFI::MemoryPointer.new( :pointer )
icont = FFI::MemoryPointer.new( :pointer )
__SDL_WM_GetCaption( title, icont )
return [ title.get_pointer(0).get_string(0),
icont.get_pointer(0).get_string(0) ]
end
|