sdl2-bindings 0.1.0 → 0.1.1

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +124 -108
  3. data/LICENSE.txt +0 -0
  4. data/README.md +77 -68
  5. data/lib/sdl2.rb +131 -127
  6. data/lib/sdl2_audio.rb +261 -261
  7. data/lib/sdl2_blendmode.rb +72 -72
  8. data/lib/sdl2_clipboard.rb +56 -56
  9. data/lib/sdl2_cpuinfo.rb +129 -129
  10. data/lib/sdl2_error.rb +71 -71
  11. data/lib/sdl2_events.rb +564 -552
  12. data/lib/sdl2_filesystem.rb +52 -52
  13. data/lib/sdl2_framerate.rb +74 -74
  14. data/lib/sdl2_gamecontroller.rb +329 -329
  15. data/lib/sdl2_gesture.rb +61 -61
  16. data/lib/sdl2_gfxPrimitives.rb +283 -283
  17. data/lib/sdl2_haptic.rb +301 -301
  18. data/lib/sdl2_hidapi.rb +139 -139
  19. data/lib/sdl2_hints.rb +221 -207
  20. data/lib/sdl2_image.rb +232 -232
  21. data/lib/sdl2_imageFilter.rb +164 -164
  22. data/lib/sdl2_joystick.rb +294 -294
  23. data/lib/sdl2_keyboard.rb +125 -117
  24. data/lib/sdl2_keycode.rb +307 -307
  25. data/lib/sdl2_log.rb +131 -131
  26. data/lib/sdl2_main.rb +74 -74
  27. data/lib/sdl2_messagebox.rb +102 -102
  28. data/lib/sdl2_misc.rb +48 -48
  29. data/lib/sdl2_mixer.rb +392 -392
  30. data/lib/sdl2_mouse.rb +136 -136
  31. data/lib/sdl2_pixels.rb +240 -240
  32. data/lib/sdl2_platform.rb +48 -48
  33. data/lib/sdl2_power.rb +54 -54
  34. data/lib/sdl2_rect.rb +145 -109
  35. data/lib/sdl2_render.rb +408 -404
  36. data/lib/sdl2_rotozoom.rb +76 -76
  37. data/lib/sdl2_rwops.rb +238 -238
  38. data/lib/sdl2_scancode.rb +289 -289
  39. data/lib/sdl2_sensor.rb +115 -115
  40. data/lib/sdl2_shape.rb +83 -83
  41. data/lib/sdl2_sound.rb +154 -0
  42. data/lib/sdl2_stdinc.rb +556 -564
  43. data/lib/sdl2_surface.rb +229 -229
  44. data/lib/sdl2_syswm.rb +160 -160
  45. data/lib/sdl2_timer.rb +74 -74
  46. data/lib/sdl2_touch.rb +86 -82
  47. data/lib/sdl2_ttf.rb +358 -357
  48. data/lib/sdl2_version.rb +67 -67
  49. data/lib/sdl2_video.rb +540 -540
  50. data/lib/sdl2_vulkan.rb +72 -72
  51. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 205a5a5f319071f5b61525129b0f9a9a087c33442e7edf846f23615c3f316cbd
4
- data.tar.gz: b0ead4dcd9e8e44753c40fb2fb154abefda5c957e73d719c72c1b77e087d7a56
3
+ metadata.gz: 1f72af1471f1fab233bf113d816dc9fd44f09a3d9b59c71abf706dc32b5080fa
4
+ data.tar.gz: 95b3a5f472b90107eae20af3b050385fbd407371ae0748a6eba076404163455b
5
5
  SHA512:
6
- metadata.gz: acf2ce95e5c3639bb5c84bd49823885b1a2794232796ca1b97f2cc89dc4b106da2482425b37ee9b79ed9ac29d4ba6112b683557ae4040619bf9a92ebb1f769e7
7
- data.tar.gz: d28d2655a06aa0f46011670fd0829d05cb7096212b6a9e50f6c66e00933364beb8416dfca730a5528f2d495136eb2b53c5a3de6b1a25211fe23c4b747433d2b5
6
+ metadata.gz: a3ff6e76415386227e597c3dc0abe049be7554b6990e1b37f46163ead164beb92ebf03d4920188b38ecbccbb1c8ae78b2e2d7572285b4388ff90ce62fd77c09e
7
+ data.tar.gz: 9b203789bacbaa3f51fd527f3f1646864b20c97df60cba9562458ec9ecb0e4bcc7b00c2fd4766fa4c1567b81c7734f95e625f3bea2220e34fb68eb9dad60b452
data/ChangeLog CHANGED
@@ -1,108 +1,124 @@
1
- 2022-01-26 vaiorabbit <http://twitter.com/vaiorabbit>
2
-
3
- * test/test*.rb: Changed namespace
4
- * load_lib: Now accepts argument 'output_error'
5
-
6
- 2022-01-22 vaiorabbit <http://twitter.com/vaiorabbit>
7
-
8
- * lib/sdl2_ttf.rb: Generated for version 2.0.18
9
- * generator: Fixed wrong 'by_value' handling
10
- * .gitignore: Added
11
- * test/test_opengl.rb: Use opengl-bindings2
12
-
13
- 2022-01-11 vaiorabbit <http://twitter.com/vaiorabbit>
14
-
15
- * Added SDL 2.0.20 features ( https://github.com/libsdl-org/SDL/releases/tag/release-2.0.20 )
16
-
17
- 2021-12-02 vaiorabbit <http://twitter.com/vaiorabbit>
18
-
19
- * Added SDL 2.0.18 features ( https://github.com/libsdl-org/SDL/releases/tag/release-2.0.18 )
20
-
21
- 2021-08-12 vaiorabbit <http://twitter.com/vaiorabbit>
22
-
23
- * Added SDL 2.0.14 features (SDL_misc).
24
- * Added SDL 2.0.16 features (SDL_sensor).
25
-
26
- 2021-02-21 vaiorabbit <http://twitter.com/vaiorabbit>
27
-
28
- * Added defines from Audio, Mixer and TTF
29
-
30
- 2020-12-27 vaiorabbit <http://twitter.com/vaiorabbit>
31
-
32
- * Added SDL 2.0.14 features.
33
- * third_party/sdl2_build_dll.sh: Added to build x64 DLL for Windows
34
- * test/util.rb: Added
35
-
36
- 2020-12-20 vaiorabbit <http://twitter.com/vaiorabbit>
37
-
38
- * third_party/sdl2_build_dylib.sh: Added to build x86_64|arm64 Universal Binary
39
-
40
- 2020-06-08 vaiorabbit <http://twitter.com/vaiorabbit>
41
-
42
- * lib/sdl2_syswm.rb: Added
43
- * lib/sdl2_hints.rb: Added hint string symboles
44
-
45
- 2020-03-22 vaiorabbit <http://twitter.com/vaiorabbit>
46
-
47
- * Added SDL 2.0.12 features.
48
- * Generate callback types correctly.
49
-
50
- 2019-10-27 vaiorabbit <http://twitter.com/vaiorabbit>
51
-
52
- * lib/sdl2_stdinc.rb: Added.
53
-
54
- 2019-08-31 vaiorabbit <http://twitter.com/vaiorabbit>
55
-
56
- * Refactoring + Cleanup
57
- * Some tests are usable again
58
-
59
- 2019-08-28 vaiorabbit <http://twitter.com/vaiorabbit>
60
-
61
- * Exception-safety
62
-
63
- 2019-08-27 vaiorabbit <http://twitter.com/vaiorabbit>
64
-
65
- * lib/sdl2_mixer.rb: Added (experimental)
66
-
67
- 2019-08-24 vaiorabbit <http://twitter.com/vaiorabbit>
68
-
69
- * Added SDL 2.0.10 features.
70
- * Added generator. Binding codes are generated semi-automatically.
71
- * Now depends on Ruby/FFI. Note that some codes in 'test' directory are still not usable.
72
-
73
- 2016-04-03 vaiorabbit <http://twitter.com/vaiorabbit>
74
-
75
- * lib/sdl2_gfx.rb, test/test_gfx.rb: Added.
76
-
77
- 2016-04-02 vaiorabbit <http://twitter.com/vaiorabbit>
78
-
79
- * Added SDL 2.0.4 features.
80
- * lib/version.rb: Added SDL_MAJOR_VERSION, etc.
81
-
82
- 2015-09-29 vaiorabbit <http://twitter.com/vaiorabbit>
83
-
84
- * lib/sdl2_ttf.rb: Added.
85
-
86
- 2015-09-28 vaiorabbit <http://twitter.com/vaiorabbit>
87
-
88
- * lib/sdl2_image.rb: Added.
89
- * lib/sdl2_mixer.rb: Added.
90
-
91
- 2015-09-22 vaiorabbit <http://twitter.com/vaiorabbit>
92
-
93
- * lib/pixels.rb, lib/gamecontroller.rb, lib/joystick.rb: Added.
94
- * lib/rwops.rb, lib/syswm.rb, lib/surface.rb, lib/render.rb: Added.
95
- * lib/cpuinfo.rb, lib/gesture.rb, lib/touch.rb, lib/audio.rb: Added.
96
-
97
- 2015-09-21 vaiorabbit <http://twitter.com/vaiorabbit>
98
-
99
- * lib/events.rb, lib/timer.rb, lib/video.rb: Added.
100
- * lib/keyboard.rb, lib/keycode.rb, lib/scancode.rb: Added.
101
- * lib/error.rb: Added.
102
- * lib/blendmode.rb, lib/clipboard.rb, lib/filesystem.rb, lib/version.rb: Added.
103
- * lib/platform.rb, lib/rect.rb, lib/mouse.rb: Added.
104
- * lib/messagebox.rb, lib/pixels.rb: Added.
105
-
106
- 2015-09-19 vaiorabbit <http://twitter.com/vaiorabbit>
107
-
108
- * Project started.
1
+ 2022-04-29 vaiorabbit <http://twitter.com/vaiorabbit>
2
+
3
+ * Added SDL 2.0.22 features ( https://github.com/libsdl-org/SDL/releases/tag/release-2.0.22 )
4
+
5
+ 2022-03-28 vaiorabbit <http://twitter.com/vaiorabbit>
6
+
7
+ * lib/sdl2_sound.rb: Added
8
+
9
+ 2022-02-13 vaiorabbit <http://twitter.com/vaiorabbit>
10
+
11
+ * Removed unavailable inline functions (SDL_memset4, SDL_memcpy4)
12
+
13
+ 2022-02-12 vaiorabbit <http://twitter.com/vaiorabbit>
14
+
15
+ * Some tests are now available on Windows
16
+
17
+ 2022-01-26 vaiorabbit <http://twitter.com/vaiorabbit>
18
+
19
+ * test/test*.rb: Changed namespace
20
+ * load_lib: Now accepts argument 'output_error'
21
+
22
+ 2022-01-22 vaiorabbit <http://twitter.com/vaiorabbit>
23
+
24
+ * lib/sdl2_ttf.rb: Generated for version 2.0.18
25
+ * generator: Fixed wrong 'by_value' handling
26
+ * .gitignore: Added
27
+ * test/test_opengl.rb: Use opengl-bindings2
28
+
29
+ 2022-01-11 vaiorabbit <http://twitter.com/vaiorabbit>
30
+
31
+ * Added SDL 2.0.20 features ( https://github.com/libsdl-org/SDL/releases/tag/release-2.0.20 )
32
+
33
+ 2021-12-02 vaiorabbit <http://twitter.com/vaiorabbit>
34
+
35
+ * Added SDL 2.0.18 features ( https://github.com/libsdl-org/SDL/releases/tag/release-2.0.18 )
36
+
37
+ 2021-08-12 vaiorabbit <http://twitter.com/vaiorabbit>
38
+
39
+ * Added SDL 2.0.14 features (SDL_misc).
40
+ * Added SDL 2.0.16 features (SDL_sensor).
41
+
42
+ 2021-02-21 vaiorabbit <http://twitter.com/vaiorabbit>
43
+
44
+ * Added defines from Audio, Mixer and TTF
45
+
46
+ 2020-12-27 vaiorabbit <http://twitter.com/vaiorabbit>
47
+
48
+ * Added SDL 2.0.14 features.
49
+ * third_party/sdl2_build_dll.sh: Added to build x64 DLL for Windows
50
+ * test/util.rb: Added
51
+
52
+ 2020-12-20 vaiorabbit <http://twitter.com/vaiorabbit>
53
+
54
+ * third_party/sdl2_build_dylib.sh: Added to build x86_64|arm64 Universal Binary
55
+
56
+ 2020-06-08 vaiorabbit <http://twitter.com/vaiorabbit>
57
+
58
+ * lib/sdl2_syswm.rb: Added
59
+ * lib/sdl2_hints.rb: Added hint string symboles
60
+
61
+ 2020-03-22 vaiorabbit <http://twitter.com/vaiorabbit>
62
+
63
+ * Added SDL 2.0.12 features.
64
+ * Generate callback types correctly.
65
+
66
+ 2019-10-27 vaiorabbit <http://twitter.com/vaiorabbit>
67
+
68
+ * lib/sdl2_stdinc.rb: Added.
69
+
70
+ 2019-08-31 vaiorabbit <http://twitter.com/vaiorabbit>
71
+
72
+ * Refactoring + Cleanup
73
+ * Some tests are usable again
74
+
75
+ 2019-08-28 vaiorabbit <http://twitter.com/vaiorabbit>
76
+
77
+ * Exception-safety
78
+
79
+ 2019-08-27 vaiorabbit <http://twitter.com/vaiorabbit>
80
+
81
+ * lib/sdl2_mixer.rb: Added (experimental)
82
+
83
+ 2019-08-24 vaiorabbit <http://twitter.com/vaiorabbit>
84
+
85
+ * Added SDL 2.0.10 features.
86
+ * Added generator. Binding codes are generated semi-automatically.
87
+ * Now depends on Ruby/FFI. Note that some codes in 'test' directory are still not usable.
88
+
89
+ 2016-04-03 vaiorabbit <http://twitter.com/vaiorabbit>
90
+
91
+ * lib/sdl2_gfx.rb, test/test_gfx.rb: Added.
92
+
93
+ 2016-04-02 vaiorabbit <http://twitter.com/vaiorabbit>
94
+
95
+ * Added SDL 2.0.4 features.
96
+ * lib/version.rb: Added SDL_MAJOR_VERSION, etc.
97
+
98
+ 2015-09-29 vaiorabbit <http://twitter.com/vaiorabbit>
99
+
100
+ * lib/sdl2_ttf.rb: Added.
101
+
102
+ 2015-09-28 vaiorabbit <http://twitter.com/vaiorabbit>
103
+
104
+ * lib/sdl2_image.rb: Added.
105
+ * lib/sdl2_mixer.rb: Added.
106
+
107
+ 2015-09-22 vaiorabbit <http://twitter.com/vaiorabbit>
108
+
109
+ * lib/pixels.rb, lib/gamecontroller.rb, lib/joystick.rb: Added.
110
+ * lib/rwops.rb, lib/syswm.rb, lib/surface.rb, lib/render.rb: Added.
111
+ * lib/cpuinfo.rb, lib/gesture.rb, lib/touch.rb, lib/audio.rb: Added.
112
+
113
+ 2015-09-21 vaiorabbit <http://twitter.com/vaiorabbit>
114
+
115
+ * lib/events.rb, lib/timer.rb, lib/video.rb: Added.
116
+ * lib/keyboard.rb, lib/keycode.rb, lib/scancode.rb: Added.
117
+ * lib/error.rb: Added.
118
+ * lib/blendmode.rb, lib/clipboard.rb, lib/filesystem.rb, lib/version.rb: Added.
119
+ * lib/platform.rb, lib/rect.rb, lib/mouse.rb: Added.
120
+ * lib/messagebox.rb, lib/pixels.rb: Added.
121
+
122
+ 2015-09-19 vaiorabbit <http://twitter.com/vaiorabbit>
123
+
124
+ * Project started.
data/LICENSE.txt CHANGED
File without changes
data/README.md CHANGED
@@ -1,68 +1,77 @@
1
- <!-- -*- mode:markdown; coding:utf-8; -*- -->
2
-
3
- # sdl2-bindings : Yet another SDL2 wrapper for Ruby #
4
-
5
- * Created : 2015-09-19
6
- * Last modified : 2022-01-26
7
-
8
- ## Features ##
9
-
10
- * Generated semi-automatically
11
- * Based on Ruby/FFI
12
- * No need to build C extension library
13
-
14
- ## Limitations ##
15
-
16
- * Several original APIs originally defined with pre-processor macro are unavailable in this library (e.g. `SDL_LoadBMP`)
17
-
18
- ## Target version ##
19
-
20
- * [2022-01-21]
21
- * SDL : 2.0.20
22
- * SDL_image : 2.0.5
23
- * SDL_mixer : 2.0.4
24
- * SDL_ttf : 2.0.18
25
- * SDL2_gfx : 1.0.4
26
-
27
- <details>
28
- <summary>Older versions</summary>
29
-
30
- * [2015-09-19] SDL 2.0.3
31
- * [2016-04-03] SDL 2.0.4
32
- * [2019-08-31] SDL 2.0.10
33
- * [2020-03-22] SDL 2.0.12
34
- * [2020-12-27] SDL 2.0.14
35
- * [2021-08-12] SDL 2.0.16
36
- * [2021-12-02] SDL 2.0.18
37
-
38
- </details>
39
-
40
- ## Supported Environments ##
41
-
42
- * [2022-01-11] macOS Monterey (12.1), ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [arm64-darwin20]
43
-
44
- <details>
45
- <summary>Older Environments</summary>
46
-
47
- * [2021-12-02] macOS Big Sur (11.6), ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [arm64-darwin20]
48
- * [2021-08-12] macOS Big Sur (11.5), ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [arm64-darwin20]
49
- * [2020-12-27] macOS Big Sur (11.0.1), ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [arm64-darwin20]
50
- * [2016-04-03] Mac OS X 10.11.4, ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
51
- * [2015-09-19] Mac OS X 10.10.5, ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
52
-
53
- </details>
54
-
55
- ## License ##
56
-
57
- The zlib/libpng License ( http://opensource.org/licenses/Zlib ).
58
-
59
- sdl2-bindings : Yet another SDL2 wrapper for Ruby
60
- Copyright (c) 2015-2022 vaiorabbit <http://twitter.com/vaiorabbit>
61
-
62
- This software is provided 'as-is', without any express or implied
63
- warranty. In no event will the authors be held liable for any damages
64
- arising from the use of this software.
65
-
66
- Permission is granted to anyone to use this software for any purpose,
67
- including commercial applications, and to alter it and redistribute it
68
- freely, subject to the following restrictions:
1
+ <!-- -*- mode:markdown; coding:utf-8; -*- -->
2
+
3
+ # sdl2-bindings : Yet another SDL2 wrapper for Ruby #
4
+
5
+ * Created : 2015-09-19
6
+ * Last modified : 2022-04-29
7
+
8
+ ## Features ##
9
+
10
+ * Generated semi-automatically
11
+ * Based on Ruby/FFI
12
+ * No need to build C extension library
13
+
14
+ ## Limitations ##
15
+
16
+ * Several original APIs originally defined with pre-processor macro are unavailable in this library (e.g. `SDL_LoadBMP`)
17
+
18
+ ## Target version ##
19
+
20
+ * [2022-04-29]
21
+ * SDL : 2.0.22
22
+ * SDL_image : 2.0.5
23
+ * SDL_mixer : 2.0.4
24
+ * SDL_ttf : 2.0.18
25
+ * SDL2_gfx : 1.0.4
26
+ * SDL_sound : 2.0.1
27
+
28
+ <details>
29
+ <summary>Older versions</summary>
30
+
31
+ * [2015-09-19] SDL 2.0.3
32
+ * [2016-04-03] SDL 2.0.4
33
+ * [2019-08-31] SDL 2.0.10
34
+ * [2020-03-22] SDL 2.0.12
35
+ * [2020-12-27] SDL 2.0.14
36
+ * [2021-08-12] SDL 2.0.16
37
+ * [2021-12-02] SDL 2.0.18
38
+ * [2022-03-28]
39
+ * SDL : 2.0.20
40
+ * SDL_image : 2.0.5
41
+ * SDL_mixer : 2.0.4
42
+ * SDL_ttf : 2.0.18
43
+ * SDL2_gfx : 1.0.4
44
+ * SDL_sound : 2.0.1
45
+
46
+ </details>
47
+
48
+ ## Supported Environments ##
49
+
50
+ * [2022-02-12] Windows 10 (21H1), ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x64-mingw-ucrt]
51
+ * [2022-01-11] macOS Monterey (12.1), ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [arm64-darwin20]
52
+
53
+ <details>
54
+ <summary>Older Environments</summary>
55
+
56
+ * [2021-12-02] macOS Big Sur (11.6), ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [arm64-darwin20]
57
+ * [2021-08-12] macOS Big Sur (11.5), ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [arm64-darwin20]
58
+ * [2020-12-27] macOS Big Sur (11.0.1), ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [arm64-darwin20]
59
+ * [2016-04-03] Mac OS X 10.11.4, ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
60
+ * [2015-09-19] Mac OS X 10.10.5, ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
61
+
62
+ </details>
63
+
64
+ ## License ##
65
+
66
+ The zlib/libpng License ( http://opensource.org/licenses/Zlib ).
67
+
68
+ sdl2-bindings : Yet another SDL2 wrapper for Ruby
69
+ Copyright (c) 2015-2022 vaiorabbit <http://twitter.com/vaiorabbit>
70
+
71
+ This software is provided 'as-is', without any express or implied
72
+ warranty. In no event will the authors be held liable for any damages
73
+ arising from the use of this software.
74
+
75
+ Permission is granted to anyone to use this software for any purpose,
76
+ including commercial applications, and to alter it and redistribute it
77
+ freely, subject to the following restrictions:
data/lib/sdl2.rb CHANGED
@@ -1,127 +1,131 @@
1
- # Ruby-SDL2 : Yet another SDL2 wrapper for Ruby
2
- #
3
- # * https://github.com/vaiorabbit/sdl2-bindings
4
-
5
- require 'ffi'
6
- require_relative 'sdl2_main.rb'
7
- require_relative 'sdl2_audio.rb'
8
- require_relative 'sdl2_blendmode.rb'
9
- require_relative 'sdl2_clipboard.rb'
10
- require_relative 'sdl2_cpuinfo.rb'
11
- require_relative 'sdl2_error.rb'
12
- require_relative 'sdl2_events.rb'
13
- require_relative 'sdl2_filesystem.rb'
14
- require_relative 'sdl2_gamecontroller.rb'
15
- require_relative 'sdl2_gesture.rb'
16
- require_relative 'sdl2_haptic.rb'
17
- require_relative 'sdl2_hints.rb'
18
- require_relative 'sdl2_joystick.rb'
19
- require_relative 'sdl2_keyboard.rb'
20
- require_relative 'sdl2_keycode.rb'
21
- require_relative 'sdl2_log.rb'
22
- require_relative 'sdl2_messagebox.rb'
23
- require_relative 'sdl2_misc.rb'
24
- require_relative 'sdl2_mouse.rb'
25
- require_relative 'sdl2_pixels.rb'
26
- require_relative 'sdl2_platform.rb'
27
- require_relative 'sdl2_power.rb'
28
- require_relative 'sdl2_rect.rb'
29
- require_relative 'sdl2_render.rb'
30
- require_relative 'sdl2_rwops.rb'
31
- require_relative 'sdl2_scancode.rb'
32
- require_relative 'sdl2_sensor.rb'
33
- require_relative 'sdl2_shape.rb'
34
- require_relative 'sdl2_stdinc.rb'
35
- require_relative 'sdl2_surface.rb'
36
- require_relative 'sdl2_syswm.rb'
37
- require_relative 'sdl2_timer.rb'
38
- require_relative 'sdl2_touch.rb'
39
- require_relative 'sdl2_version.rb'
40
- require_relative 'sdl2_video.rb'
41
- require_relative 'sdl2_vulkan.rb'
42
-
43
- # SDL2_gfx
44
- require_relative 'sdl2_framerate.rb'
45
- require_relative 'sdl2_gfxPrimitives.rb'
46
- require_relative 'sdl2_rotozoom.rb'
47
- require_relative 'sdl2_imageFilter.rb'
48
- # SDL_image
49
- require_relative 'sdl2_image.rb'
50
- # SDL_mixer
51
- require_relative 'sdl2_mixer.rb'
52
- # SDL_ttf
53
- require_relative 'sdl2_ttf.rb'
54
-
55
- module SDL
56
- extend FFI::Library
57
-
58
- @@sdl2_import_done = false
59
- def self.load_lib(libpath, output_error = false, image_libpath: nil, ttf_libpath: nil, mixer_libpath: nil, gfx_libpath: nil)
60
-
61
- unless @@sdl2_import_done
62
- # Ref.: Using Multiple and Alternate Libraries
63
- # https://github.com/ffi/ffi/wiki/Using-Multiple-and-Alternate-Libraries
64
- begin
65
- lib_paths = [libpath, image_libpath, ttf_libpath, mixer_libpath, gfx_libpath].compact
66
-
67
- ffi_lib_flags :now, :global
68
- ffi_lib *lib_paths
69
- setup_symbols(output_error)
70
-
71
- setup_image_symbols(output_error) if image_libpath
72
- setup_ttf_symbols(output_error) if ttf_libpath
73
- setup_mixer_symbols(output_error) if mixer_libpath
74
-
75
- if gfx_libpath != nil
76
- setup_gfx_framerate_symbols(output_error)
77
- setup_gfx_primitives_symbols(output_error)
78
- setup_gfx_imagefilter_symbols(output_error)
79
- setup_gfx_rotozoom_symbols(output_error)
80
- end
81
- rescue => error
82
- $stderr.puts("[Warning] Failed to load libraries (#{error}).") if output_error
83
- end
84
- end
85
-
86
- end
87
-
88
- def self.setup_symbols(output_error = false)
89
- setup_main_symbols(output_error)
90
- setup_audio_symbols(output_error)
91
- setup_blendmode_symbols(output_error)
92
- setup_clipboard_symbols(output_error)
93
- setup_cpuinfo_symbols(output_error)
94
- setup_error_symbols(output_error)
95
- setup_events_symbols(output_error)
96
- setup_filesystem_symbols(output_error)
97
- setup_gamecontroller_symbols(output_error)
98
- setup_gesture_symbols(output_error)
99
- setup_haptic_symbols(output_error)
100
- setup_hints_symbols(output_error)
101
- setup_joystick_symbols(output_error)
102
- setup_keyboard_symbols(output_error)
103
- setup_keycode_symbols(output_error)
104
- setup_log_symbols(output_error)
105
- setup_messagebox_symbols(output_error)
106
- setup_misc_symbols(output_error)
107
- setup_mouse_symbols(output_error)
108
- setup_pixels_symbols(output_error)
109
- setup_platform_symbols(output_error)
110
- setup_power_symbols(output_error)
111
- setup_rect_symbols(output_error)
112
- setup_render_symbols(output_error)
113
- setup_rwops_symbols(output_error)
114
- setup_scancode_symbols(output_error)
115
- setup_sensor_symbols(output_error)
116
- setup_shape_symbols(output_error)
117
- setup_surface_symbols(output_error)
118
- setup_syswm_symbols(output_error)
119
- setup_stdinc_symbols(output_error)
120
- setup_timer_symbols(output_error)
121
- setup_touch_symbols(output_error)
122
- setup_version_symbols(output_error)
123
- setup_video_symbols(output_error)
124
- setup_vulkan_symbols(output_error)
125
- end
126
-
127
- end
1
+ # Ruby-SDL2 : Yet another SDL2 wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/sdl2-bindings
4
+
5
+ require 'ffi'
6
+ require_relative 'sdl2_main.rb'
7
+ require_relative 'sdl2_audio.rb'
8
+ require_relative 'sdl2_blendmode.rb'
9
+ require_relative 'sdl2_clipboard.rb'
10
+ require_relative 'sdl2_cpuinfo.rb'
11
+ require_relative 'sdl2_error.rb'
12
+ require_relative 'sdl2_events.rb'
13
+ require_relative 'sdl2_filesystem.rb'
14
+ require_relative 'sdl2_gamecontroller.rb'
15
+ require_relative 'sdl2_gesture.rb'
16
+ require_relative 'sdl2_haptic.rb'
17
+ require_relative 'sdl2_hints.rb'
18
+ require_relative 'sdl2_joystick.rb'
19
+ require_relative 'sdl2_keyboard.rb'
20
+ require_relative 'sdl2_keycode.rb'
21
+ require_relative 'sdl2_log.rb'
22
+ require_relative 'sdl2_messagebox.rb'
23
+ require_relative 'sdl2_misc.rb'
24
+ require_relative 'sdl2_mouse.rb'
25
+ require_relative 'sdl2_pixels.rb'
26
+ require_relative 'sdl2_platform.rb'
27
+ require_relative 'sdl2_power.rb'
28
+ require_relative 'sdl2_rect.rb'
29
+ require_relative 'sdl2_render.rb'
30
+ require_relative 'sdl2_rwops.rb'
31
+ require_relative 'sdl2_scancode.rb'
32
+ require_relative 'sdl2_sensor.rb'
33
+ require_relative 'sdl2_shape.rb'
34
+ require_relative 'sdl2_stdinc.rb'
35
+ require_relative 'sdl2_surface.rb'
36
+ require_relative 'sdl2_syswm.rb'
37
+ require_relative 'sdl2_timer.rb'
38
+ require_relative 'sdl2_touch.rb'
39
+ require_relative 'sdl2_version.rb'
40
+ require_relative 'sdl2_video.rb'
41
+ require_relative 'sdl2_vulkan.rb'
42
+
43
+ # SDL2_gfx
44
+ require_relative 'sdl2_framerate.rb'
45
+ require_relative 'sdl2_gfxPrimitives.rb'
46
+ require_relative 'sdl2_rotozoom.rb'
47
+ require_relative 'sdl2_imageFilter.rb'
48
+ # SDL_image
49
+ require_relative 'sdl2_image.rb'
50
+ # SDL_mixer
51
+ require_relative 'sdl2_mixer.rb'
52
+ # SDL_ttf
53
+ require_relative 'sdl2_ttf.rb'
54
+ # SDL_sound
55
+ require_relative 'sdl2_sound.rb'
56
+
57
+ module SDL
58
+ extend FFI::Library
59
+
60
+ @@sdl2_import_done = false
61
+ def self.load_lib(libpath, output_error = false, image_libpath: nil, ttf_libpath: nil, mixer_libpath: nil, gfx_libpath: nil, sound_libpath: nil)
62
+
63
+ unless @@sdl2_import_done
64
+ # Ref.: Using Multiple and Alternate Libraries
65
+ # https://github.com/ffi/ffi/wiki/Using-Multiple-and-Alternate-Libraries
66
+ begin
67
+ lib_paths = [libpath, image_libpath, ttf_libpath, mixer_libpath, gfx_libpath, sound_libpath].compact
68
+
69
+ ffi_lib_flags :now, :global
70
+ ffi_lib *lib_paths
71
+ setup_symbols(output_error)
72
+
73
+ setup_image_symbols(output_error) if image_libpath
74
+ setup_ttf_symbols(output_error) if ttf_libpath
75
+ setup_mixer_symbols(output_error) if mixer_libpath
76
+
77
+ if gfx_libpath != nil
78
+ setup_gfx_framerate_symbols(output_error)
79
+ setup_gfx_primitives_symbols(output_error)
80
+ setup_gfx_imagefilter_symbols(output_error)
81
+ setup_gfx_rotozoom_symbols(output_error)
82
+ end
83
+
84
+ setup_sound_symbols(output_error) if sound_libpath
85
+ rescue => error
86
+ $stderr.puts("[Warning] Failed to load libraries (#{error}).") if output_error
87
+ end
88
+ end
89
+
90
+ end
91
+
92
+ def self.setup_symbols(output_error = false)
93
+ setup_main_symbols(output_error)
94
+ setup_audio_symbols(output_error)
95
+ setup_blendmode_symbols(output_error)
96
+ setup_clipboard_symbols(output_error)
97
+ setup_cpuinfo_symbols(output_error)
98
+ setup_error_symbols(output_error)
99
+ setup_events_symbols(output_error)
100
+ setup_filesystem_symbols(output_error)
101
+ setup_gamecontroller_symbols(output_error)
102
+ setup_gesture_symbols(output_error)
103
+ setup_haptic_symbols(output_error)
104
+ setup_hints_symbols(output_error)
105
+ setup_joystick_symbols(output_error)
106
+ setup_keyboard_symbols(output_error)
107
+ setup_keycode_symbols(output_error)
108
+ setup_log_symbols(output_error)
109
+ setup_messagebox_symbols(output_error)
110
+ setup_misc_symbols(output_error)
111
+ setup_mouse_symbols(output_error)
112
+ setup_pixels_symbols(output_error)
113
+ setup_platform_symbols(output_error)
114
+ setup_power_symbols(output_error)
115
+ setup_rect_symbols(output_error)
116
+ setup_render_symbols(output_error)
117
+ setup_rwops_symbols(output_error)
118
+ setup_scancode_symbols(output_error)
119
+ setup_sensor_symbols(output_error)
120
+ setup_shape_symbols(output_error)
121
+ setup_surface_symbols(output_error)
122
+ setup_syswm_symbols(output_error)
123
+ setup_stdinc_symbols(output_error)
124
+ setup_timer_symbols(output_error)
125
+ setup_touch_symbols(output_error)
126
+ setup_version_symbols(output_error)
127
+ setup_video_symbols(output_error)
128
+ setup_vulkan_symbols(output_error)
129
+ end
130
+
131
+ end