sdl2-bindings 0.1.0 → 0.1.1

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