sdl2-bindings 0.0.9 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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