sdl2-bindings 0.0.6 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+