sdl2-bindings 0.0.9 → 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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +12 -0
  3. data/README.md +39 -26
  4. data/lib/sdl2.rb +54 -99
  5. data/lib/sdl2_audio.rb +59 -20
  6. data/lib/sdl2_blendmode.rb +28 -25
  7. data/lib/sdl2_clipboard.rb +9 -4
  8. data/lib/sdl2_cpuinfo.rb +28 -5
  9. data/lib/sdl2_error.rb +17 -10
  10. data/lib/sdl2_events.rb +150 -131
  11. data/lib/sdl2_filesystem.rb +8 -4
  12. data/lib/sdl2_framerate.rb +11 -4
  13. data/lib/sdl2_gamecontroller.rb +112 -57
  14. data/lib/sdl2_gesture.rb +10 -4
  15. data/lib/sdl2_gfxPrimitives.rb +65 -4
  16. data/lib/sdl2_haptic.rb +76 -44
  17. data/lib/sdl2_hidapi.rb +26 -5
  18. data/lib/sdl2_hints.rb +146 -137
  19. data/lib/sdl2_image.rb +54 -7
  20. data/lib/sdl2_imageFilter.rb +36 -4
  21. data/lib/sdl2_joystick.rb +93 -38
  22. data/lib/sdl2_keyboard.rb +23 -5
  23. data/lib/sdl2_keycode.rb +6 -4
  24. data/lib/sdl2_log.rb +48 -32
  25. data/lib/sdl2_main.rb +21 -14
  26. data/lib/sdl2_messagebox.rb +26 -22
  27. data/lib/sdl2_misc.rb +7 -4
  28. data/lib/sdl2_mixer.rb +86 -11
  29. data/lib/sdl2_mouse.rb +44 -25
  30. data/lib/sdl2_pixels.rb +115 -99
  31. data/lib/sdl2_platform.rb +7 -4
  32. data/lib/sdl2_power.rb +12 -9
  33. data/lib/sdl2_rect.rb +18 -11
  34. data/lib/sdl2_render.rb +107 -25
  35. data/lib/sdl2_rotozoom.rb +14 -4
  36. data/lib/sdl2_rwops.rb +58 -28
  37. data/lib/sdl2_scancode.rb +250 -248
  38. data/lib/sdl2_sensor.rb +27 -9
  39. data/lib/sdl2_shape.rb +17 -11
  40. data/lib/sdl2_stdinc.rb +135 -10
  41. data/lib/sdl2_surface.rb +56 -15
  42. data/lib/sdl2_syswm.rb +47 -44
  43. data/lib/sdl2_timer.rb +13 -4
  44. data/lib/sdl2_touch.rb +18 -11
  45. data/lib/sdl2_ttf.rb +180 -25
  46. data/lib/sdl2_version.rb +13 -8
  47. data/lib/sdl2_video.rb +204 -110
  48. data/lib/sdl2_vulkan.rb +12 -4
  49. metadata +17 -3
data/lib/sdl2_render.rb CHANGED
@@ -6,29 +6,29 @@
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_RENDERER_SOFTWARE = 1
17
- SDL_RENDERER_ACCELERATED = 2
18
- SDL_RENDERER_PRESENTVSYNC = 4
19
- SDL_RENDERER_TARGETTEXTURE = 8
20
- SDL_ScaleModeNearest = 0
21
- SDL_ScaleModeLinear = 1
22
- SDL_ScaleModeBest = 2
23
- SDL_TEXTUREACCESS_STATIC = 0
24
- SDL_TEXTUREACCESS_STREAMING = 1
25
- SDL_TEXTUREACCESS_TARGET = 2
26
- SDL_TEXTUREMODULATE_NONE = 0
27
- SDL_TEXTUREMODULATE_COLOR = 1
28
- SDL_TEXTUREMODULATE_ALPHA = 2
29
- SDL_FLIP_NONE = 0
30
- SDL_FLIP_HORIZONTAL = 1
31
- SDL_FLIP_VERTICAL = 2
16
+ RENDERER_SOFTWARE = 1
17
+ RENDERER_ACCELERATED = 2
18
+ RENDERER_PRESENTVSYNC = 4
19
+ RENDERER_TARGETTEXTURE = 8
20
+ ScaleModeNearest = 0
21
+ ScaleModeLinear = 1
22
+ ScaleModeBest = 2
23
+ TEXTUREACCESS_STATIC = 0
24
+ TEXTUREACCESS_STREAMING = 1
25
+ TEXTUREACCESS_TARGET = 2
26
+ TEXTUREMODULATE_NONE = 0
27
+ TEXTUREMODULATE_COLOR = 1
28
+ TEXTUREMODULATE_ALPHA = 2
29
+ FLIP_NONE = 0
30
+ FLIP_HORIZONTAL = 1
31
+ FLIP_VERTICAL = 2
32
32
 
33
33
  # Typedef
34
34
 
@@ -40,7 +40,7 @@ module SDL2
40
40
 
41
41
  # Struct
42
42
 
43
- class SDL_RendererInfo < FFI::Struct
43
+ class RendererInfo < FFI::Struct
44
44
  layout(
45
45
  :name, :pointer,
46
46
  :flags, :uint,
@@ -51,18 +51,18 @@ module SDL2
51
51
  )
52
52
  end
53
53
 
54
- class SDL_Vertex < FFI::Struct
54
+ class Vertex < FFI::Struct
55
55
  layout(
56
- :position, SDL_FPoint,
57
- :color, SDL_Color,
58
- :tex_coord, SDL_FPoint,
56
+ :position, FPoint,
57
+ :color, Color,
58
+ :tex_coord, FPoint,
59
59
  )
60
60
  end
61
61
 
62
62
 
63
63
  # Function
64
64
 
65
- def self.setup_render_symbols()
65
+ def self.setup_render_symbols(output_error = false)
66
66
  symbols = [
67
67
  :SDL_GetNumRenderDrivers,
68
68
  :SDL_GetRenderDriverInfo,
@@ -145,6 +145,88 @@ module SDL2
145
145
  :SDL_RenderGetMetalCommandEncoder,
146
146
  :SDL_RenderSetVSync,
147
147
  ]
148
+ apis = {
149
+ :SDL_GetNumRenderDrivers => :GetNumRenderDrivers,
150
+ :SDL_GetRenderDriverInfo => :GetRenderDriverInfo,
151
+ :SDL_CreateWindowAndRenderer => :CreateWindowAndRenderer,
152
+ :SDL_CreateRenderer => :CreateRenderer,
153
+ :SDL_CreateSoftwareRenderer => :CreateSoftwareRenderer,
154
+ :SDL_GetRenderer => :GetRenderer,
155
+ :SDL_GetRendererInfo => :GetRendererInfo,
156
+ :SDL_GetRendererOutputSize => :GetRendererOutputSize,
157
+ :SDL_CreateTexture => :CreateTexture,
158
+ :SDL_CreateTextureFromSurface => :CreateTextureFromSurface,
159
+ :SDL_QueryTexture => :QueryTexture,
160
+ :SDL_SetTextureColorMod => :SetTextureColorMod,
161
+ :SDL_GetTextureColorMod => :GetTextureColorMod,
162
+ :SDL_SetTextureAlphaMod => :SetTextureAlphaMod,
163
+ :SDL_GetTextureAlphaMod => :GetTextureAlphaMod,
164
+ :SDL_SetTextureBlendMode => :SetTextureBlendMode,
165
+ :SDL_GetTextureBlendMode => :GetTextureBlendMode,
166
+ :SDL_SetTextureScaleMode => :SetTextureScaleMode,
167
+ :SDL_GetTextureScaleMode => :GetTextureScaleMode,
168
+ :SDL_SetTextureUserData => :SetTextureUserData,
169
+ :SDL_GetTextureUserData => :GetTextureUserData,
170
+ :SDL_UpdateTexture => :UpdateTexture,
171
+ :SDL_UpdateYUVTexture => :UpdateYUVTexture,
172
+ :SDL_UpdateNVTexture => :UpdateNVTexture,
173
+ :SDL_LockTexture => :LockTexture,
174
+ :SDL_LockTextureToSurface => :LockTextureToSurface,
175
+ :SDL_UnlockTexture => :UnlockTexture,
176
+ :SDL_RenderTargetSupported => :RenderTargetSupported,
177
+ :SDL_SetRenderTarget => :SetRenderTarget,
178
+ :SDL_GetRenderTarget => :GetRenderTarget,
179
+ :SDL_RenderSetLogicalSize => :RenderSetLogicalSize,
180
+ :SDL_RenderGetLogicalSize => :RenderGetLogicalSize,
181
+ :SDL_RenderSetIntegerScale => :RenderSetIntegerScale,
182
+ :SDL_RenderGetIntegerScale => :RenderGetIntegerScale,
183
+ :SDL_RenderSetViewport => :RenderSetViewport,
184
+ :SDL_RenderGetViewport => :RenderGetViewport,
185
+ :SDL_RenderSetClipRect => :RenderSetClipRect,
186
+ :SDL_RenderGetClipRect => :RenderGetClipRect,
187
+ :SDL_RenderIsClipEnabled => :RenderIsClipEnabled,
188
+ :SDL_RenderSetScale => :RenderSetScale,
189
+ :SDL_RenderGetScale => :RenderGetScale,
190
+ :SDL_RenderWindowToLogical => :RenderWindowToLogical,
191
+ :SDL_RenderLogicalToWindow => :RenderLogicalToWindow,
192
+ :SDL_SetRenderDrawColor => :SetRenderDrawColor,
193
+ :SDL_GetRenderDrawColor => :GetRenderDrawColor,
194
+ :SDL_SetRenderDrawBlendMode => :SetRenderDrawBlendMode,
195
+ :SDL_GetRenderDrawBlendMode => :GetRenderDrawBlendMode,
196
+ :SDL_RenderClear => :RenderClear,
197
+ :SDL_RenderDrawPoint => :RenderDrawPoint,
198
+ :SDL_RenderDrawPoints => :RenderDrawPoints,
199
+ :SDL_RenderDrawLine => :RenderDrawLine,
200
+ :SDL_RenderDrawLines => :RenderDrawLines,
201
+ :SDL_RenderDrawRect => :RenderDrawRect,
202
+ :SDL_RenderDrawRects => :RenderDrawRects,
203
+ :SDL_RenderFillRect => :RenderFillRect,
204
+ :SDL_RenderFillRects => :RenderFillRects,
205
+ :SDL_RenderCopy => :RenderCopy,
206
+ :SDL_RenderCopyEx => :RenderCopyEx,
207
+ :SDL_RenderDrawPointF => :RenderDrawPointF,
208
+ :SDL_RenderDrawPointsF => :RenderDrawPointsF,
209
+ :SDL_RenderDrawLineF => :RenderDrawLineF,
210
+ :SDL_RenderDrawLinesF => :RenderDrawLinesF,
211
+ :SDL_RenderDrawRectF => :RenderDrawRectF,
212
+ :SDL_RenderDrawRectsF => :RenderDrawRectsF,
213
+ :SDL_RenderFillRectF => :RenderFillRectF,
214
+ :SDL_RenderFillRectsF => :RenderFillRectsF,
215
+ :SDL_RenderCopyF => :RenderCopyF,
216
+ :SDL_RenderCopyExF => :RenderCopyExF,
217
+ :SDL_RenderGeometry => :RenderGeometry,
218
+ :SDL_RenderGeometryRaw => :RenderGeometryRaw,
219
+ :SDL_RenderReadPixels => :RenderReadPixels,
220
+ :SDL_RenderPresent => :RenderPresent,
221
+ :SDL_DestroyTexture => :DestroyTexture,
222
+ :SDL_DestroyRenderer => :DestroyRenderer,
223
+ :SDL_RenderFlush => :RenderFlush,
224
+ :SDL_GL_BindTexture => :GL_BindTexture,
225
+ :SDL_GL_UnbindTexture => :GL_UnbindTexture,
226
+ :SDL_RenderGetMetalLayer => :RenderGetMetalLayer,
227
+ :SDL_RenderGetMetalCommandEncoder => :RenderGetMetalCommandEncoder,
228
+ :SDL_RenderSetVSync => :RenderSetVSync,
229
+ }
148
230
  args = {
149
231
  :SDL_GetNumRenderDrivers => [],
150
232
  :SDL_GetRenderDriverInfo => [:int, :pointer],
@@ -311,9 +393,9 @@ module SDL2
311
393
  }
312
394
  symbols.each do |sym|
313
395
  begin
314
- attach_function sym, args[sym], retvals[sym]
396
+ attach_function apis[sym], sym, args[sym], retvals[sym]
315
397
  rescue FFI::NotFoundError => error
316
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
398
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
317
399
  end
318
400
  end
319
401
  end
data/lib/sdl2_rotozoom.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
 
@@ -22,7 +22,7 @@ module SDL2
22
22
 
23
23
  # Function
24
24
 
25
- def self.setup_gfx_rotozoom_symbols()
25
+ def self.setup_gfx_rotozoom_symbols(output_error = false)
26
26
  symbols = [
27
27
  :rotozoomSurface,
28
28
  :rotozoomSurfaceXY,
@@ -33,6 +33,16 @@ module SDL2
33
33
  :shrinkSurface,
34
34
  :rotateSurface90Degrees,
35
35
  ]
36
+ apis = {
37
+ :rotozoomSurface => :rotozoomSurface,
38
+ :rotozoomSurfaceXY => :rotozoomSurfaceXY,
39
+ :rotozoomSurfaceSize => :rotozoomSurfaceSize,
40
+ :rotozoomSurfaceSizeXY => :rotozoomSurfaceSizeXY,
41
+ :zoomSurface => :zoomSurface,
42
+ :zoomSurfaceSize => :zoomSurfaceSize,
43
+ :shrinkSurface => :shrinkSurface,
44
+ :rotateSurface90Degrees => :rotateSurface90Degrees,
45
+ }
36
46
  args = {
37
47
  :rotozoomSurface => [:pointer, :double, :double, :int],
38
48
  :rotozoomSurfaceXY => [:pointer, :double, :double, :double, :int],
@@ -55,9 +65,9 @@ module SDL2
55
65
  }
56
66
  symbols.each do |sym|
57
67
  begin
58
- attach_function sym, args[sym], retvals[sym]
68
+ attach_function apis[sym], sym, args[sym], retvals[sym]
59
69
  rescue FFI::NotFoundError => error
60
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
70
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
61
71
  end
62
72
  end
63
73
  end
data/lib/sdl2_rwops.rb CHANGED
@@ -6,16 +6,16 @@
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_RWOPS_UNKNOWN = 0
14
- SDL_RWOPS_WINFILE = 1
15
- SDL_RWOPS_STDFILE = 2
16
- SDL_RWOPS_JNIFILE = 3
17
- SDL_RWOPS_MEMORY = 4
18
- SDL_RWOPS_MEMORY_RO = 5
13
+ RWOPS_UNKNOWN = 0
14
+ RWOPS_WINFILE = 1
15
+ RWOPS_STDFILE = 2
16
+ RWOPS_JNIFILE = 3
17
+ RWOPS_MEMORY = 4
18
+ RWOPS_MEMORY_RO = 5
19
19
 
20
20
  # Enum
21
21
 
@@ -23,7 +23,7 @@ module SDL2
23
23
  # Typedef
24
24
 
25
25
 
26
- class SDL_RWops_mem < FFI::Struct
26
+ class RWops_mem < FFI::Struct
27
27
  layout(
28
28
  :base, :pointer,
29
29
  :here, :pointer,
@@ -31,13 +31,13 @@ module SDL2
31
31
  )
32
32
  end
33
33
 
34
- class SDL_RWops_unknown < FFI::Struct
34
+ class RWops_unknown < FFI::Struct
35
35
  layout(
36
36
  :data1, :pointer,
37
37
  :data2, :pointer,
38
38
  )
39
39
  end
40
- class SDL_RWops_windowsio_buffer < FFI::Struct
40
+ class RWops_windowsio_buffer < FFI::Struct
41
41
  layout(
42
42
  :data, :pointer,
43
43
  :size, :size_t,
@@ -45,30 +45,30 @@ module SDL2
45
45
  )
46
46
  end
47
47
 
48
- class SDL_RWops_windowsio < FFI::Struct
48
+ class RWops_windowsio < FFI::Struct
49
49
  layout(
50
50
  :append, :int,
51
51
  :h, :pointer,
52
- :buffer, SDL_RWops_windowsio_buffer.by_value,
52
+ :buffer, RWops_windowsio_buffer,
53
53
  )
54
54
  end
55
55
 
56
- class SDL_Default_RWops_hidden < FFI::Union
56
+ class Default_RWops_hidden < FFI::Union
57
57
  layout(
58
- :mem, SDL_RWops_mem.by_value,
59
- :unknown, SDL_RWops_unknown.by_value,
58
+ :mem, RWops_mem,
59
+ :unknown, RWops_unknown,
60
60
  )
61
61
  end
62
62
 
63
- class SDL_Win32_RWops_hidden < FFI::Union
63
+ class Win32_RWops_hidden < FFI::Union
64
64
  layout(
65
- :mem, SDL_RWops_mem.by_value,
66
- :unknown, SDL_RWops_unknown.by_value,
67
- :windowsio, SDL_RWops_windowsio.by_value,
65
+ :mem, RWops_mem,
66
+ :unknown, RWops_unknown,
67
+ :windowsio, RWops_windowsio,
68
68
  )
69
69
  end
70
70
 
71
- class SDL_Default_RWops < FFI::Struct
71
+ class Default_RWops < FFI::Struct
72
72
  layout(
73
73
  :size, :pointer,
74
74
  :seek, :pointer,
@@ -76,11 +76,11 @@ module SDL2
76
76
  :write, :pointer,
77
77
  :close, :pointer,
78
78
  :type, :uint,
79
- :hidden, SDL_Default_RWops_hidden.by_value,
79
+ :hidden, Default_RWops_hidden,
80
80
  )
81
81
  end
82
82
 
83
- class SDL_Win32_RWops < FFI::Struct
83
+ class Win32_RWops < FFI::Struct
84
84
  layout(
85
85
  :size, :pointer,
86
86
  :seek, :pointer,
@@ -88,14 +88,14 @@ module SDL2
88
88
  :write, :pointer,
89
89
  :close, :pointer,
90
90
  :type, :uint,
91
- :hidden, SDL_Win32_RWops_hidden.by_value
91
+ :hidden, Win32_RWops_hidden
92
92
  )
93
93
  end
94
94
 
95
95
  if RUBY_PLATFORM =~ /mswin|msys|mingw|cygwin/
96
- SDL_RWops = SDL_Win32_RWops
96
+ RWops = Win32_RWops
97
97
  else
98
- SDL_RWops = SDL_Default_RWops
98
+ RWops = Default_RWops
99
99
  end
100
100
 
101
101
 
@@ -104,7 +104,7 @@ module SDL2
104
104
 
105
105
  # Function
106
106
 
107
- def self.setup_rwops_symbols()
107
+ def self.setup_rwops_symbols(output_error = false)
108
108
  symbols = [
109
109
  :SDL_RWFromFile,
110
110
  :SDL_RWFromFP,
@@ -135,6 +135,36 @@ module SDL2
135
135
  :SDL_WriteLE64,
136
136
  :SDL_WriteBE64,
137
137
  ]
138
+ apis = {
139
+ :SDL_RWFromFile => :RWFromFile,
140
+ :SDL_RWFromFP => :RWFromFP,
141
+ :SDL_RWFromMem => :RWFromMem,
142
+ :SDL_RWFromConstMem => :RWFromConstMem,
143
+ :SDL_AllocRW => :AllocRW,
144
+ :SDL_FreeRW => :FreeRW,
145
+ :SDL_RWsize => :RWsize,
146
+ :SDL_RWseek => :RWseek,
147
+ :SDL_RWtell => :RWtell,
148
+ :SDL_RWread => :RWread,
149
+ :SDL_RWwrite => :RWwrite,
150
+ :SDL_RWclose => :RWclose,
151
+ :SDL_LoadFile_RW => :LoadFile_RW,
152
+ :SDL_LoadFile => :LoadFile,
153
+ :SDL_ReadU8 => :ReadU8,
154
+ :SDL_ReadLE16 => :ReadLE16,
155
+ :SDL_ReadBE16 => :ReadBE16,
156
+ :SDL_ReadLE32 => :ReadLE32,
157
+ :SDL_ReadBE32 => :ReadBE32,
158
+ :SDL_ReadLE64 => :ReadLE64,
159
+ :SDL_ReadBE64 => :ReadBE64,
160
+ :SDL_WriteU8 => :WriteU8,
161
+ :SDL_WriteLE16 => :WriteLE16,
162
+ :SDL_WriteBE16 => :WriteBE16,
163
+ :SDL_WriteLE32 => :WriteLE32,
164
+ :SDL_WriteBE32 => :WriteBE32,
165
+ :SDL_WriteLE64 => :WriteLE64,
166
+ :SDL_WriteBE64 => :WriteBE64,
167
+ }
138
168
  args = {
139
169
  :SDL_RWFromFile => [:pointer, :pointer],
140
170
  :SDL_RWFromFP => [:pointer, :int],
@@ -197,9 +227,9 @@ module SDL2
197
227
  }
198
228
  symbols.each do |sym|
199
229
  begin
200
- attach_function sym, args[sym], retvals[sym]
230
+ attach_function apis[sym], sym, args[sym], retvals[sym]
201
231
  rescue FFI::NotFoundError => error
202
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
232
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
203
233
  end
204
234
  end
205
235
  end