sdl2-bindings 0.0.6 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +25 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +38 -19
  5. data/lib/sdl2.rb +56 -99
  6. data/lib/sdl2_audio.rb +62 -20
  7. data/lib/sdl2_blendmode.rb +28 -25
  8. data/lib/sdl2_clipboard.rb +9 -4
  9. data/lib/sdl2_cpuinfo.rb +31 -8
  10. data/lib/sdl2_error.rb +17 -10
  11. data/lib/sdl2_events.rb +152 -130
  12. data/lib/sdl2_filesystem.rb +8 -4
  13. data/lib/sdl2_framerate.rb +11 -4
  14. data/lib/sdl2_gamecontroller.rb +130 -55
  15. data/lib/sdl2_gesture.rb +10 -4
  16. data/lib/sdl2_gfxPrimitives.rb +65 -4
  17. data/lib/sdl2_haptic.rb +76 -44
  18. data/lib/sdl2_hidapi.rb +139 -0
  19. data/lib/sdl2_hints.rb +146 -113
  20. data/lib/sdl2_image.rb +54 -7
  21. data/lib/sdl2_imageFilter.rb +36 -4
  22. data/lib/sdl2_joystick.rb +102 -38
  23. data/lib/sdl2_keyboard.rb +23 -5
  24. data/lib/sdl2_keycode.rb +8 -5
  25. data/lib/sdl2_log.rb +48 -32
  26. data/lib/sdl2_main.rb +21 -14
  27. data/lib/sdl2_messagebox.rb +26 -22
  28. data/lib/sdl2_misc.rb +48 -0
  29. data/lib/sdl2_mixer.rb +86 -11
  30. data/lib/sdl2_mouse.rb +44 -25
  31. data/lib/sdl2_pixels.rb +115 -99
  32. data/lib/sdl2_platform.rb +7 -4
  33. data/lib/sdl2_power.rb +12 -9
  34. data/lib/sdl2_rect.rb +18 -11
  35. data/lib/sdl2_render.rb +135 -21
  36. data/lib/sdl2_rotozoom.rb +14 -4
  37. data/lib/sdl2_rwops.rb +69 -39
  38. data/lib/sdl2_scancode.rb +250 -248
  39. data/lib/sdl2_sensor.rb +115 -0
  40. data/lib/sdl2_shape.rb +17 -11
  41. data/lib/sdl2_stdinc.rb +213 -42
  42. data/lib/sdl2_surface.rb +62 -15
  43. data/lib/sdl2_syswm.rb +47 -41
  44. data/lib/sdl2_timer.rb +16 -4
  45. data/lib/sdl2_touch.rb +18 -9
  46. data/lib/sdl2_ttf.rb +180 -25
  47. data/lib/sdl2_version.rb +13 -8
  48. data/lib/sdl2_video.rb +232 -103
  49. data/lib/sdl2_vulkan.rb +12 -4
  50. metadata +21 -4
data/lib/sdl2_joystick.rb CHANGED
@@ -6,42 +6,42 @@
6
6
 
7
7
  require 'ffi'
8
8
 
9
- module SDL2
9
+ module SDL
10
10
  extend FFI::Library
11
11
  # Define/Macro
12
12
 
13
- SDL_IPHONE_MAX_GFORCE = 5.0
14
- SDL_JOYSTICK_AXIS_MAX = 32767
15
- SDL_JOYSTICK_AXIS_MIN = -32768
16
- SDL_HAT_CENTERED = 0x00
17
- SDL_HAT_UP = 0x01
18
- SDL_HAT_RIGHT = 0x02
19
- SDL_HAT_DOWN = 0x04
20
- SDL_HAT_LEFT = 0x08
21
- SDL_HAT_RIGHTUP = (SDL_HAT_RIGHT | SDL_HAT_UP)
22
- SDL_HAT_RIGHTDOWN = (SDL_HAT_RIGHT | SDL_HAT_DOWN)
23
- SDL_HAT_LEFTUP = (SDL_HAT_LEFT | SDL_HAT_UP)
24
- SDL_HAT_LEFTDOWN = (SDL_HAT_LEFT | SDL_HAT_DOWN)
13
+ IPHONE_MAX_GFORCE = 5.0
14
+ JOYSTICK_AXIS_MAX = 32767
15
+ JOYSTICK_AXIS_MIN = -32768
16
+ HAT_CENTERED = 0x00
17
+ HAT_UP = 0x01
18
+ HAT_RIGHT = 0x02
19
+ HAT_DOWN = 0x04
20
+ HAT_LEFT = 0x08
21
+ HAT_RIGHTUP = (HAT_RIGHT | HAT_UP)
22
+ HAT_RIGHTDOWN = (HAT_RIGHT | HAT_DOWN)
23
+ HAT_LEFTUP = (HAT_LEFT | HAT_UP)
24
+ HAT_LEFTDOWN = (HAT_LEFT | HAT_DOWN)
25
25
 
26
26
  # Enum
27
27
 
28
- SDL_JOYSTICK_TYPE_UNKNOWN = 0
29
- SDL_JOYSTICK_TYPE_GAMECONTROLLER = 1
30
- SDL_JOYSTICK_TYPE_WHEEL = 2
31
- SDL_JOYSTICK_TYPE_ARCADE_STICK = 3
32
- SDL_JOYSTICK_TYPE_FLIGHT_STICK = 4
33
- SDL_JOYSTICK_TYPE_DANCE_PAD = 5
34
- SDL_JOYSTICK_TYPE_GUITAR = 6
35
- SDL_JOYSTICK_TYPE_DRUM_KIT = 7
36
- SDL_JOYSTICK_TYPE_ARCADE_PAD = 8
37
- SDL_JOYSTICK_TYPE_THROTTLE = 9
38
- SDL_JOYSTICK_POWER_UNKNOWN = -1
39
- SDL_JOYSTICK_POWER_EMPTY = 0
40
- SDL_JOYSTICK_POWER_LOW = 1
41
- SDL_JOYSTICK_POWER_MEDIUM = 2
42
- SDL_JOYSTICK_POWER_FULL = 3
43
- SDL_JOYSTICK_POWER_WIRED = 4
44
- SDL_JOYSTICK_POWER_MAX = 5
28
+ JOYSTICK_TYPE_UNKNOWN = 0
29
+ JOYSTICK_TYPE_GAMECONTROLLER = 1
30
+ JOYSTICK_TYPE_WHEEL = 2
31
+ JOYSTICK_TYPE_ARCADE_STICK = 3
32
+ JOYSTICK_TYPE_FLIGHT_STICK = 4
33
+ JOYSTICK_TYPE_DANCE_PAD = 5
34
+ JOYSTICK_TYPE_GUITAR = 6
35
+ JOYSTICK_TYPE_DRUM_KIT = 7
36
+ JOYSTICK_TYPE_ARCADE_PAD = 8
37
+ JOYSTICK_TYPE_THROTTLE = 9
38
+ JOYSTICK_POWER_UNKNOWN = -1
39
+ JOYSTICK_POWER_EMPTY = 0
40
+ JOYSTICK_POWER_LOW = 1
41
+ JOYSTICK_POWER_MEDIUM = 2
42
+ JOYSTICK_POWER_FULL = 3
43
+ JOYSTICK_POWER_WIRED = 4
44
+ JOYSTICK_POWER_MAX = 5
45
45
 
46
46
  # Typedef
47
47
 
@@ -51,7 +51,7 @@ module SDL2
51
51
 
52
52
  # Struct
53
53
 
54
- class SDL_JoystickGUID < FFI::Struct
54
+ class JoystickGUID < FFI::Struct
55
55
  layout(
56
56
  :data, [:uchar, 16],
57
57
  )
@@ -60,7 +60,7 @@ module SDL2
60
60
 
61
61
  # Function
62
62
 
63
- def self.setup_joystick_symbols()
63
+ def self.setup_joystick_symbols(output_error = false)
64
64
  symbols = [
65
65
  :SDL_LockJoysticks,
66
66
  :SDL_UnlockJoysticks,
@@ -109,10 +109,68 @@ module SDL2
109
109
  :SDL_JoystickRumble,
110
110
  :SDL_JoystickRumbleTriggers,
111
111
  :SDL_JoystickHasLED,
112
+ :SDL_JoystickHasRumble,
113
+ :SDL_JoystickHasRumbleTriggers,
112
114
  :SDL_JoystickSetLED,
115
+ :SDL_JoystickSendEffect,
113
116
  :SDL_JoystickClose,
114
117
  :SDL_JoystickCurrentPowerLevel,
115
118
  ]
119
+ apis = {
120
+ :SDL_LockJoysticks => :LockJoysticks,
121
+ :SDL_UnlockJoysticks => :UnlockJoysticks,
122
+ :SDL_NumJoysticks => :NumJoysticks,
123
+ :SDL_JoystickNameForIndex => :JoystickNameForIndex,
124
+ :SDL_JoystickGetDevicePlayerIndex => :JoystickGetDevicePlayerIndex,
125
+ :SDL_JoystickGetDeviceGUID => :JoystickGetDeviceGUID,
126
+ :SDL_JoystickGetDeviceVendor => :JoystickGetDeviceVendor,
127
+ :SDL_JoystickGetDeviceProduct => :JoystickGetDeviceProduct,
128
+ :SDL_JoystickGetDeviceProductVersion => :JoystickGetDeviceProductVersion,
129
+ :SDL_JoystickGetDeviceType => :JoystickGetDeviceType,
130
+ :SDL_JoystickGetDeviceInstanceID => :JoystickGetDeviceInstanceID,
131
+ :SDL_JoystickOpen => :JoystickOpen,
132
+ :SDL_JoystickFromInstanceID => :JoystickFromInstanceID,
133
+ :SDL_JoystickFromPlayerIndex => :JoystickFromPlayerIndex,
134
+ :SDL_JoystickAttachVirtual => :JoystickAttachVirtual,
135
+ :SDL_JoystickDetachVirtual => :JoystickDetachVirtual,
136
+ :SDL_JoystickIsVirtual => :JoystickIsVirtual,
137
+ :SDL_JoystickSetVirtualAxis => :JoystickSetVirtualAxis,
138
+ :SDL_JoystickSetVirtualButton => :JoystickSetVirtualButton,
139
+ :SDL_JoystickSetVirtualHat => :JoystickSetVirtualHat,
140
+ :SDL_JoystickName => :JoystickName,
141
+ :SDL_JoystickGetPlayerIndex => :JoystickGetPlayerIndex,
142
+ :SDL_JoystickSetPlayerIndex => :JoystickSetPlayerIndex,
143
+ :SDL_JoystickGetGUID => :JoystickGetGUID,
144
+ :SDL_JoystickGetVendor => :JoystickGetVendor,
145
+ :SDL_JoystickGetProduct => :JoystickGetProduct,
146
+ :SDL_JoystickGetProductVersion => :JoystickGetProductVersion,
147
+ :SDL_JoystickGetSerial => :JoystickGetSerial,
148
+ :SDL_JoystickGetType => :JoystickGetType,
149
+ :SDL_JoystickGetGUIDString => :JoystickGetGUIDString,
150
+ :SDL_JoystickGetGUIDFromString => :JoystickGetGUIDFromString,
151
+ :SDL_JoystickGetAttached => :JoystickGetAttached,
152
+ :SDL_JoystickInstanceID => :JoystickInstanceID,
153
+ :SDL_JoystickNumAxes => :JoystickNumAxes,
154
+ :SDL_JoystickNumBalls => :JoystickNumBalls,
155
+ :SDL_JoystickNumHats => :JoystickNumHats,
156
+ :SDL_JoystickNumButtons => :JoystickNumButtons,
157
+ :SDL_JoystickUpdate => :JoystickUpdate,
158
+ :SDL_JoystickEventState => :JoystickEventState,
159
+ :SDL_JoystickGetAxis => :JoystickGetAxis,
160
+ :SDL_JoystickGetAxisInitialState => :JoystickGetAxisInitialState,
161
+ :SDL_JoystickGetHat => :JoystickGetHat,
162
+ :SDL_JoystickGetBall => :JoystickGetBall,
163
+ :SDL_JoystickGetButton => :JoystickGetButton,
164
+ :SDL_JoystickRumble => :JoystickRumble,
165
+ :SDL_JoystickRumbleTriggers => :JoystickRumbleTriggers,
166
+ :SDL_JoystickHasLED => :JoystickHasLED,
167
+ :SDL_JoystickHasRumble => :JoystickHasRumble,
168
+ :SDL_JoystickHasRumbleTriggers => :JoystickHasRumbleTriggers,
169
+ :SDL_JoystickSetLED => :JoystickSetLED,
170
+ :SDL_JoystickSendEffect => :JoystickSendEffect,
171
+ :SDL_JoystickClose => :JoystickClose,
172
+ :SDL_JoystickCurrentPowerLevel => :JoystickCurrentPowerLevel,
173
+ }
116
174
  args = {
117
175
  :SDL_LockJoysticks => [],
118
176
  :SDL_UnlockJoysticks => [],
@@ -143,7 +201,7 @@ module SDL2
143
201
  :SDL_JoystickGetProductVersion => [:pointer],
144
202
  :SDL_JoystickGetSerial => [:pointer],
145
203
  :SDL_JoystickGetType => [:pointer],
146
- :SDL_JoystickGetGUIDString => [SDL_JoystickGUID, :pointer, :int],
204
+ :SDL_JoystickGetGUIDString => [JoystickGUID.by_value, :pointer, :int],
147
205
  :SDL_JoystickGetGUIDFromString => [:pointer],
148
206
  :SDL_JoystickGetAttached => [:pointer],
149
207
  :SDL_JoystickInstanceID => [:pointer],
@@ -161,7 +219,10 @@ module SDL2
161
219
  :SDL_JoystickRumble => [:pointer, :ushort, :ushort, :uint],
162
220
  :SDL_JoystickRumbleTriggers => [:pointer, :ushort, :ushort, :uint],
163
221
  :SDL_JoystickHasLED => [:pointer],
222
+ :SDL_JoystickHasRumble => [:pointer],
223
+ :SDL_JoystickHasRumbleTriggers => [:pointer],
164
224
  :SDL_JoystickSetLED => [:pointer, :uchar, :uchar, :uchar],
225
+ :SDL_JoystickSendEffect => [:pointer, :pointer, :int],
165
226
  :SDL_JoystickClose => [:pointer],
166
227
  :SDL_JoystickCurrentPowerLevel => [:pointer],
167
228
  }
@@ -171,7 +232,7 @@ module SDL2
171
232
  :SDL_NumJoysticks => :int,
172
233
  :SDL_JoystickNameForIndex => :pointer,
173
234
  :SDL_JoystickGetDevicePlayerIndex => :int,
174
- :SDL_JoystickGetDeviceGUID => SDL_JoystickGUID,
235
+ :SDL_JoystickGetDeviceGUID => JoystickGUID.by_value,
175
236
  :SDL_JoystickGetDeviceVendor => :ushort,
176
237
  :SDL_JoystickGetDeviceProduct => :ushort,
177
238
  :SDL_JoystickGetDeviceProductVersion => :ushort,
@@ -189,14 +250,14 @@ module SDL2
189
250
  :SDL_JoystickName => :pointer,
190
251
  :SDL_JoystickGetPlayerIndex => :int,
191
252
  :SDL_JoystickSetPlayerIndex => :void,
192
- :SDL_JoystickGetGUID => SDL_JoystickGUID,
253
+ :SDL_JoystickGetGUID => JoystickGUID.by_value,
193
254
  :SDL_JoystickGetVendor => :ushort,
194
255
  :SDL_JoystickGetProduct => :ushort,
195
256
  :SDL_JoystickGetProductVersion => :ushort,
196
257
  :SDL_JoystickGetSerial => :pointer,
197
258
  :SDL_JoystickGetType => :int,
198
259
  :SDL_JoystickGetGUIDString => :void,
199
- :SDL_JoystickGetGUIDFromString => SDL_JoystickGUID,
260
+ :SDL_JoystickGetGUIDFromString => JoystickGUID.by_value,
200
261
  :SDL_JoystickGetAttached => :int,
201
262
  :SDL_JoystickInstanceID => :int,
202
263
  :SDL_JoystickNumAxes => :int,
@@ -213,15 +274,18 @@ module SDL2
213
274
  :SDL_JoystickRumble => :int,
214
275
  :SDL_JoystickRumbleTriggers => :int,
215
276
  :SDL_JoystickHasLED => :int,
277
+ :SDL_JoystickHasRumble => :int,
278
+ :SDL_JoystickHasRumbleTriggers => :int,
216
279
  :SDL_JoystickSetLED => :int,
280
+ :SDL_JoystickSendEffect => :int,
217
281
  :SDL_JoystickClose => :void,
218
282
  :SDL_JoystickCurrentPowerLevel => :int,
219
283
  }
220
284
  symbols.each do |sym|
221
285
  begin
222
- attach_function sym, args[sym], retvals[sym]
286
+ attach_function apis[sym], sym, args[sym], retvals[sym]
223
287
  rescue FFI::NotFoundError => error
224
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
288
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
225
289
  end
226
290
  end
227
291
  end
data/lib/sdl2_keyboard.rb CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  require 'ffi'
8
8
 
9
- module SDL2
9
+ module SDL
10
10
  extend FFI::Library
11
11
  # Define/Macro
12
12
 
@@ -19,7 +19,7 @@ module SDL2
19
19
 
20
20
  # Struct
21
21
 
22
- class SDL_Keysym < FFI::Struct
22
+ class Keysym < FFI::Struct
23
23
  layout(
24
24
  :scancode, :int,
25
25
  :sym, :int,
@@ -31,7 +31,7 @@ module SDL2
31
31
 
32
32
  # Function
33
33
 
34
- def self.setup_keyboard_symbols()
34
+ def self.setup_keyboard_symbols(output_error = false)
35
35
  symbols = [
36
36
  :SDL_GetKeyboardFocus,
37
37
  :SDL_GetKeyboardState,
@@ -50,6 +50,24 @@ module SDL2
50
50
  :SDL_HasScreenKeyboardSupport,
51
51
  :SDL_IsScreenKeyboardShown,
52
52
  ]
53
+ apis = {
54
+ :SDL_GetKeyboardFocus => :GetKeyboardFocus,
55
+ :SDL_GetKeyboardState => :GetKeyboardState,
56
+ :SDL_GetModState => :GetModState,
57
+ :SDL_SetModState => :SetModState,
58
+ :SDL_GetKeyFromScancode => :GetKeyFromScancode,
59
+ :SDL_GetScancodeFromKey => :GetScancodeFromKey,
60
+ :SDL_GetScancodeName => :GetScancodeName,
61
+ :SDL_GetScancodeFromName => :GetScancodeFromName,
62
+ :SDL_GetKeyName => :GetKeyName,
63
+ :SDL_GetKeyFromName => :GetKeyFromName,
64
+ :SDL_StartTextInput => :StartTextInput,
65
+ :SDL_IsTextInputActive => :IsTextInputActive,
66
+ :SDL_StopTextInput => :StopTextInput,
67
+ :SDL_SetTextInputRect => :SetTextInputRect,
68
+ :SDL_HasScreenKeyboardSupport => :HasScreenKeyboardSupport,
69
+ :SDL_IsScreenKeyboardShown => :IsScreenKeyboardShown,
70
+ }
53
71
  args = {
54
72
  :SDL_GetKeyboardFocus => [],
55
73
  :SDL_GetKeyboardState => [:pointer],
@@ -88,9 +106,9 @@ module SDL2
88
106
  }
89
107
  symbols.each do |sym|
90
108
  begin
91
- attach_function sym, args[sym], retvals[sym]
109
+ attach_function apis[sym], sym, args[sym], retvals[sym]
92
110
  rescue FFI::NotFoundError => error
93
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
111
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
94
112
  end
95
113
  end
96
114
  end
data/lib/sdl2_keycode.rb CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  require 'ffi'
8
8
 
9
- module SDL2
9
+ module SDL
10
10
  extend FFI::Library
11
11
  # Define/Macro
12
12
 
@@ -265,11 +265,12 @@ module SDL2
265
265
  KMOD_NUM = 4096
266
266
  KMOD_CAPS = 8192
267
267
  KMOD_MODE = 16384
268
- KMOD_RESERVED = 32768
268
+ KMOD_SCROLL = 32768
269
269
  KMOD_CTRL = 192
270
270
  KMOD_SHIFT = 3
271
271
  KMOD_ALT = 768
272
272
  KMOD_GUI = 3072
273
+ KMOD_RESERVED = 32768
273
274
 
274
275
  # Typedef
275
276
 
@@ -282,18 +283,20 @@ module SDL2
282
283
 
283
284
  # Function
284
285
 
285
- def self.setup_keycode_symbols()
286
+ def self.setup_keycode_symbols(output_error = false)
286
287
  symbols = [
287
288
  ]
289
+ apis = {
290
+ }
288
291
  args = {
289
292
  }
290
293
  retvals = {
291
294
  }
292
295
  symbols.each do |sym|
293
296
  begin
294
- attach_function sym, args[sym], retvals[sym]
297
+ attach_function apis[sym], sym, args[sym], retvals[sym]
295
298
  rescue FFI::NotFoundError => error
296
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
299
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
297
300
  end
298
301
  end
299
302
  end
data/lib/sdl2_log.rb CHANGED
@@ -6,41 +6,41 @@
6
6
 
7
7
  require 'ffi'
8
8
 
9
- module SDL2
9
+ module SDL
10
10
  extend FFI::Library
11
11
  # Define/Macro
12
12
 
13
- SDL_MAX_LOG_MESSAGE = 4096
13
+ MAX_LOG_MESSAGE = 4096
14
14
 
15
15
  # Enum
16
16
 
17
- SDL_LOG_CATEGORY_APPLICATION = 0
18
- SDL_LOG_CATEGORY_ERROR = 1
19
- SDL_LOG_CATEGORY_ASSERT = 2
20
- SDL_LOG_CATEGORY_SYSTEM = 3
21
- SDL_LOG_CATEGORY_AUDIO = 4
22
- SDL_LOG_CATEGORY_VIDEO = 5
23
- SDL_LOG_CATEGORY_RENDER = 6
24
- SDL_LOG_CATEGORY_INPUT = 7
25
- SDL_LOG_CATEGORY_TEST = 8
26
- SDL_LOG_CATEGORY_RESERVED1 = 9
27
- SDL_LOG_CATEGORY_RESERVED2 = 10
28
- SDL_LOG_CATEGORY_RESERVED3 = 11
29
- SDL_LOG_CATEGORY_RESERVED4 = 12
30
- SDL_LOG_CATEGORY_RESERVED5 = 13
31
- SDL_LOG_CATEGORY_RESERVED6 = 14
32
- SDL_LOG_CATEGORY_RESERVED7 = 15
33
- SDL_LOG_CATEGORY_RESERVED8 = 16
34
- SDL_LOG_CATEGORY_RESERVED9 = 17
35
- SDL_LOG_CATEGORY_RESERVED10 = 18
36
- SDL_LOG_CATEGORY_CUSTOM = 19
37
- SDL_LOG_PRIORITY_VERBOSE = 1
38
- SDL_LOG_PRIORITY_DEBUG = 2
39
- SDL_LOG_PRIORITY_INFO = 3
40
- SDL_LOG_PRIORITY_WARN = 4
41
- SDL_LOG_PRIORITY_ERROR = 5
42
- SDL_LOG_PRIORITY_CRITICAL = 6
43
- SDL_NUM_LOG_PRIORITIES = 7
17
+ LOG_CATEGORY_APPLICATION = 0
18
+ LOG_CATEGORY_ERROR = 1
19
+ LOG_CATEGORY_ASSERT = 2
20
+ LOG_CATEGORY_SYSTEM = 3
21
+ LOG_CATEGORY_AUDIO = 4
22
+ LOG_CATEGORY_VIDEO = 5
23
+ LOG_CATEGORY_RENDER = 6
24
+ LOG_CATEGORY_INPUT = 7
25
+ LOG_CATEGORY_TEST = 8
26
+ LOG_CATEGORY_RESERVED1 = 9
27
+ LOG_CATEGORY_RESERVED2 = 10
28
+ LOG_CATEGORY_RESERVED3 = 11
29
+ LOG_CATEGORY_RESERVED4 = 12
30
+ LOG_CATEGORY_RESERVED5 = 13
31
+ LOG_CATEGORY_RESERVED6 = 14
32
+ LOG_CATEGORY_RESERVED7 = 15
33
+ LOG_CATEGORY_RESERVED8 = 16
34
+ LOG_CATEGORY_RESERVED9 = 17
35
+ LOG_CATEGORY_RESERVED10 = 18
36
+ LOG_CATEGORY_CUSTOM = 19
37
+ LOG_PRIORITY_VERBOSE = 1
38
+ LOG_PRIORITY_DEBUG = 2
39
+ LOG_PRIORITY_INFO = 3
40
+ LOG_PRIORITY_WARN = 4
41
+ LOG_PRIORITY_ERROR = 5
42
+ LOG_PRIORITY_CRITICAL = 6
43
+ NUM_LOG_PRIORITIES = 7
44
44
 
45
45
  # Typedef
46
46
 
@@ -53,7 +53,7 @@ module SDL2
53
53
 
54
54
  # Function
55
55
 
56
- def self.setup_log_symbols()
56
+ def self.setup_log_symbols(output_error = false)
57
57
  symbols = [
58
58
  :SDL_LogSetAllPriority,
59
59
  :SDL_LogSetPriority,
@@ -70,6 +70,22 @@ module SDL2
70
70
  :SDL_LogGetOutputFunction,
71
71
  :SDL_LogSetOutputFunction,
72
72
  ]
73
+ apis = {
74
+ :SDL_LogSetAllPriority => :LogSetAllPriority,
75
+ :SDL_LogSetPriority => :LogSetPriority,
76
+ :SDL_LogGetPriority => :LogGetPriority,
77
+ :SDL_LogResetPriorities => :LogResetPriorities,
78
+ :SDL_Log => :Log,
79
+ :SDL_LogVerbose => :LogVerbose,
80
+ :SDL_LogDebug => :LogDebug,
81
+ :SDL_LogInfo => :LogInfo,
82
+ :SDL_LogWarn => :LogWarn,
83
+ :SDL_LogError => :LogError,
84
+ :SDL_LogCritical => :LogCritical,
85
+ :SDL_LogMessage => :LogMessage,
86
+ :SDL_LogGetOutputFunction => :LogGetOutputFunction,
87
+ :SDL_LogSetOutputFunction => :LogSetOutputFunction,
88
+ }
73
89
  args = {
74
90
  :SDL_LogSetAllPriority => [:int],
75
91
  :SDL_LogSetPriority => [:int, :int],
@@ -104,9 +120,9 @@ module SDL2
104
120
  }
105
121
  symbols.each do |sym|
106
122
  begin
107
- attach_function sym, args[sym], retvals[sym]
123
+ attach_function apis[sym], sym, args[sym], retvals[sym]
108
124
  rescue FFI::NotFoundError => error
109
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
125
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
110
126
  end
111
127
  end
112
128
  end
data/lib/sdl2_main.rb CHANGED
@@ -6,20 +6,20 @@
6
6
 
7
7
  require 'ffi'
8
8
 
9
- module SDL2
9
+ module SDL
10
10
  extend FFI::Library
11
11
  # Define/Macro
12
12
 
13
- SDL_INIT_TIMER = 0x00000001
14
- SDL_INIT_AUDIO = 0x00000010
15
- SDL_INIT_VIDEO = 0x00000020
16
- SDL_INIT_JOYSTICK = 0x00000200
17
- SDL_INIT_HAPTIC = 0x00001000
18
- SDL_INIT_GAMECONTROLLER = 0x00002000
19
- SDL_INIT_EVENTS = 0x00004000
20
- SDL_INIT_SENSOR = 0x00008000
21
- SDL_INIT_NOPARACHUTE = 0x00100000
22
- SDL_INIT_EVERYTHING = ( SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_EVENTS | SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | SDL_INIT_GAMECONTROLLER | SDL_INIT_SENSOR )
13
+ INIT_TIMER = 0x00000001
14
+ INIT_AUDIO = 0x00000010
15
+ INIT_VIDEO = 0x00000020
16
+ INIT_JOYSTICK = 0x00000200
17
+ INIT_HAPTIC = 0x00001000
18
+ INIT_GAMECONTROLLER = 0x00002000
19
+ INIT_EVENTS = 0x00004000
20
+ INIT_SENSOR = 0x00008000
21
+ INIT_NOPARACHUTE = 0x00100000
22
+ INIT_EVERYTHING = ( INIT_TIMER | INIT_AUDIO | INIT_VIDEO | INIT_EVENTS | INIT_JOYSTICK | INIT_HAPTIC | INIT_GAMECONTROLLER | INIT_SENSOR )
23
23
 
24
24
  # Enum
25
25
 
@@ -32,7 +32,7 @@ module SDL2
32
32
 
33
33
  # Function
34
34
 
35
- def self.setup_main_symbols()
35
+ def self.setup_main_symbols(output_error = false)
36
36
  symbols = [
37
37
  :SDL_Init,
38
38
  :SDL_InitSubSystem,
@@ -40,6 +40,13 @@ module SDL2
40
40
  :SDL_WasInit,
41
41
  :SDL_Quit,
42
42
  ]
43
+ apis = {
44
+ :SDL_Init => :Init,
45
+ :SDL_InitSubSystem => :InitSubSystem,
46
+ :SDL_QuitSubSystem => :QuitSubSystem,
47
+ :SDL_WasInit => :WasInit,
48
+ :SDL_Quit => :Quit,
49
+ }
43
50
  args = {
44
51
  :SDL_Init => [:uint],
45
52
  :SDL_InitSubSystem => [:uint],
@@ -56,9 +63,9 @@ module SDL2
56
63
  }
57
64
  symbols.each do |sym|
58
65
  begin
59
- attach_function sym, args[sym], retvals[sym]
66
+ attach_function apis[sym], sym, args[sym], retvals[sym]
60
67
  rescue FFI::NotFoundError => error
61
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
68
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
62
69
  end
63
70
  end
64
71
  end
@@ -6,26 +6,26 @@
6
6
 
7
7
  require 'ffi'
8
8
 
9
- module SDL2
9
+ module SDL
10
10
  extend FFI::Library
11
11
  # Define/Macro
12
12
 
13
13
 
14
14
  # Enum
15
15
 
16
- SDL_MESSAGEBOX_ERROR = 16
17
- SDL_MESSAGEBOX_WARNING = 32
18
- SDL_MESSAGEBOX_INFORMATION = 64
19
- SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT = 128
20
- SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT = 256
21
- SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 1
22
- SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 2
23
- SDL_MESSAGEBOX_COLOR_BACKGROUND = 0
24
- SDL_MESSAGEBOX_COLOR_TEXT = 1
25
- SDL_MESSAGEBOX_COLOR_BUTTON_BORDER = 2
26
- SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND = 3
27
- SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED = 4
28
- SDL_MESSAGEBOX_COLOR_MAX = 5
16
+ MESSAGEBOX_ERROR = 16
17
+ MESSAGEBOX_WARNING = 32
18
+ MESSAGEBOX_INFORMATION = 64
19
+ MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT = 128
20
+ MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT = 256
21
+ MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 1
22
+ MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 2
23
+ MESSAGEBOX_COLOR_BACKGROUND = 0
24
+ MESSAGEBOX_COLOR_TEXT = 1
25
+ MESSAGEBOX_COLOR_BUTTON_BORDER = 2
26
+ MESSAGEBOX_COLOR_BUTTON_BACKGROUND = 3
27
+ MESSAGEBOX_COLOR_BUTTON_SELECTED = 4
28
+ MESSAGEBOX_COLOR_MAX = 5
29
29
 
30
30
  # Typedef
31
31
 
@@ -35,7 +35,7 @@ module SDL2
35
35
 
36
36
  # Struct
37
37
 
38
- class SDL_MessageBoxButtonData < FFI::Struct
38
+ class MessageBoxButtonData < FFI::Struct
39
39
  layout(
40
40
  :flags, :uint,
41
41
  :buttonid, :int,
@@ -43,7 +43,7 @@ module SDL2
43
43
  )
44
44
  end
45
45
 
46
- class SDL_MessageBoxColor < FFI::Struct
46
+ class MessageBoxColor < FFI::Struct
47
47
  layout(
48
48
  :r, :uchar,
49
49
  :g, :uchar,
@@ -51,13 +51,13 @@ module SDL2
51
51
  )
52
52
  end
53
53
 
54
- class SDL_MessageBoxColorScheme < FFI::Struct
54
+ class MessageBoxColorScheme < FFI::Struct
55
55
  layout(
56
- :colors, [SDL_MessageBoxColor, 5],
56
+ :colors, [MessageBoxColor, 5],
57
57
  )
58
58
  end
59
59
 
60
- class SDL_MessageBoxData < FFI::Struct
60
+ class MessageBoxData < FFI::Struct
61
61
  layout(
62
62
  :flags, :uint,
63
63
  :window, :pointer,
@@ -72,11 +72,15 @@ module SDL2
72
72
 
73
73
  # Function
74
74
 
75
- def self.setup_messagebox_symbols()
75
+ def self.setup_messagebox_symbols(output_error = false)
76
76
  symbols = [
77
77
  :SDL_ShowMessageBox,
78
78
  :SDL_ShowSimpleMessageBox,
79
79
  ]
80
+ apis = {
81
+ :SDL_ShowMessageBox => :ShowMessageBox,
82
+ :SDL_ShowSimpleMessageBox => :ShowSimpleMessageBox,
83
+ }
80
84
  args = {
81
85
  :SDL_ShowMessageBox => [:pointer, :pointer],
82
86
  :SDL_ShowSimpleMessageBox => [:uint, :pointer, :pointer, :pointer],
@@ -87,9 +91,9 @@ module SDL2
87
91
  }
88
92
  symbols.each do |sym|
89
93
  begin
90
- attach_function sym, args[sym], retvals[sym]
94
+ attach_function apis[sym], sym, args[sym], retvals[sym]
91
95
  rescue FFI::NotFoundError => error
92
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
96
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
93
97
  end
94
98
  end
95
99
  end
data/lib/sdl2_misc.rb ADDED
@@ -0,0 +1,48 @@
1
+ # Ruby-SDL2 : Yet another SDL2 wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/sdl2-bindings
4
+ #
5
+ # [NOTICE] This is an automatically generated file.
6
+
7
+ require 'ffi'
8
+
9
+ module SDL
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+
14
+ # Enum
15
+
16
+
17
+ # Typedef
18
+
19
+
20
+ # Struct
21
+
22
+
23
+ # Function
24
+
25
+ def self.setup_misc_symbols(output_error = false)
26
+ symbols = [
27
+ :SDL_OpenURL,
28
+ ]
29
+ apis = {
30
+ :SDL_OpenURL => :OpenURL,
31
+ }
32
+ args = {
33
+ :SDL_OpenURL => [:pointer],
34
+ }
35
+ retvals = {
36
+ :SDL_OpenURL => :int,
37
+ }
38
+ symbols.each do |sym|
39
+ begin
40
+ attach_function apis[sym], sym, args[sym], retvals[sym]
41
+ rescue FFI::NotFoundError => error
42
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
43
+ end
44
+ end
45
+ end
46
+
47
+ end
48
+