sdl2-bindings 0.0.4 → 0.0.5

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 (47) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +79 -69
  3. data/LICENSE.txt +0 -0
  4. data/README.md +49 -47
  5. data/lib/sdl2.rb +170 -170
  6. data/lib/sdl2_audio.rb +201 -200
  7. data/lib/sdl2_blendmode.rb +69 -69
  8. data/lib/sdl2_clipboard.rb +51 -51
  9. data/lib/sdl2_cpuinfo.rb +106 -103
  10. data/lib/sdl2_error.rb +64 -61
  11. data/lib/sdl2_events.rb +530 -500
  12. data/lib/sdl2_filesystem.rb +48 -48
  13. data/lib/sdl2_framerate.rb +67 -67
  14. data/lib/sdl2_gamecontroller.rb +254 -207
  15. data/lib/sdl2_gesture.rb +55 -55
  16. data/lib/sdl2_gfxPrimitives.rb +222 -222
  17. data/lib/sdl2_haptic.rb +269 -268
  18. data/lib/sdl2_hints.rb +174 -159
  19. data/lib/sdl2_image.rb +185 -185
  20. data/lib/sdl2_imageFilter.rb +132 -132
  21. data/lib/sdl2_joystick.rb +230 -199
  22. data/lib/sdl2_keyboard.rb +99 -99
  23. data/lib/sdl2_keycode.rb +304 -300
  24. data/lib/sdl2_log.rb +115 -115
  25. data/lib/sdl2_main.rb +67 -67
  26. data/lib/sdl2_messagebox.rb +98 -98
  27. data/lib/sdl2_mixer.rb +307 -307
  28. data/lib/sdl2_mouse.rb +117 -117
  29. data/lib/sdl2_pixels.rb +224 -218
  30. data/lib/sdl2_platform.rb +45 -45
  31. data/lib/sdl2_power.rb +51 -51
  32. data/lib/sdl2_rect.rb +102 -102
  33. data/lib/sdl2_render.rb +290 -290
  34. data/lib/sdl2_rotozoom.rb +66 -66
  35. data/lib/sdl2_rwops.rb +208 -208
  36. data/lib/sdl2_scancode.rb +287 -287
  37. data/lib/sdl2_shape.rb +77 -77
  38. data/lib/sdl2_stdinc.rb +393 -370
  39. data/lib/sdl2_surface.rb +182 -179
  40. data/lib/sdl2_syswm.rb +154 -154
  41. data/lib/sdl2_timer.rb +62 -62
  42. data/lib/sdl2_touch.rb +73 -73
  43. data/lib/sdl2_ttf.rb +190 -190
  44. data/lib/sdl2_version.rb +62 -62
  45. data/lib/sdl2_video.rb +411 -407
  46. data/lib/sdl2_vulkan.rb +64 -64
  47. metadata +5 -5
@@ -1,200 +1,201 @@
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 SDL2
10
- extend FFI::Library
11
- # Define/Macro
12
-
13
- SDL_AUDIO_MASK_BITSIZE = 0xFF
14
- SDL_AUDIO_MASK_DATATYPE = (1 << 8)
15
- SDL_AUDIO_MASK_ENDIAN = (1 << 12)
16
- SDL_AUDIO_MASK_SIGNED = (1 << 15)
17
- SDL_AUDIO_ALLOW_FREQUENCY_CHANGE = 0x00000001
18
- SDL_AUDIO_ALLOW_FORMAT_CHANGE = 0x00000002
19
- SDL_AUDIO_ALLOW_CHANNELS_CHANGE = 0x00000004
20
- SDL_AUDIO_ALLOW_SAMPLES_CHANGE = 0x00000008
21
- SDL_AUDIOCVT_MAX_FILTERS = 9
22
- SDL_MIX_MAXVOLUME = 128
23
-
24
- # Enum
25
-
26
- SDL_AUDIO_STOPPED = 0
27
- SDL_AUDIO_PLAYING = 1
28
- SDL_AUDIO_PAUSED = 2
29
-
30
- # Typedef
31
-
32
- typedef :ushort, :SDL_AudioFormat
33
- callback :SDL_AudioCallback, [:pointer, :pointer, :int], :void
34
- callback :SDL_AudioFilter, [:pointer, :ushort], :void
35
- typedef :uint, :SDL_AudioDeviceID
36
- typedef :int, :SDL_AudioStatus
37
-
38
- # Struct
39
-
40
- class SDL_AudioSpec < FFI::Struct
41
- layout(
42
- :freq, :int,
43
- :format, :ushort,
44
- :channels, :uchar,
45
- :silence, :uchar,
46
- :samples, :ushort,
47
- :padding, :ushort,
48
- :size, :uint,
49
- :callback, :pointer,
50
- :userdata, :pointer,
51
- )
52
- end
53
-
54
- class SDL_AudioCVT < FFI::Struct
55
- layout(
56
- :needed, :int,
57
- :src_format, :ushort,
58
- :dst_format, :ushort,
59
- :rate_incr, :double,
60
- :buf, :pointer,
61
- :len, :int,
62
- :len_cvt, :int,
63
- :len_mult, :int,
64
- :len_ratio, :double,
65
- :filters, [:pointer, 10],
66
- :filter_index, :int,
67
- )
68
- end
69
-
70
-
71
- # Function
72
-
73
- def self.setup_audio_symbols()
74
- symbols = [
75
- :SDL_GetNumAudioDrivers,
76
- :SDL_GetAudioDriver,
77
- :SDL_AudioInit,
78
- :SDL_AudioQuit,
79
- :SDL_GetCurrentAudioDriver,
80
- :SDL_OpenAudio,
81
- :SDL_GetNumAudioDevices,
82
- :SDL_GetAudioDeviceName,
83
- :SDL_OpenAudioDevice,
84
- :SDL_GetAudioStatus,
85
- :SDL_GetAudioDeviceStatus,
86
- :SDL_PauseAudio,
87
- :SDL_PauseAudioDevice,
88
- :SDL_LoadWAV_RW,
89
- :SDL_FreeWAV,
90
- :SDL_BuildAudioCVT,
91
- :SDL_ConvertAudio,
92
- :SDL_NewAudioStream,
93
- :SDL_AudioStreamPut,
94
- :SDL_AudioStreamGet,
95
- :SDL_AudioStreamAvailable,
96
- :SDL_AudioStreamFlush,
97
- :SDL_AudioStreamClear,
98
- :SDL_FreeAudioStream,
99
- :SDL_MixAudio,
100
- :SDL_MixAudioFormat,
101
- :SDL_QueueAudio,
102
- :SDL_DequeueAudio,
103
- :SDL_GetQueuedAudioSize,
104
- :SDL_ClearQueuedAudio,
105
- :SDL_LockAudio,
106
- :SDL_LockAudioDevice,
107
- :SDL_UnlockAudio,
108
- :SDL_UnlockAudioDevice,
109
- :SDL_CloseAudio,
110
- :SDL_CloseAudioDevice,
111
- ]
112
- args = {
113
- :SDL_GetNumAudioDrivers => [],
114
- :SDL_GetAudioDriver => [:int],
115
- :SDL_AudioInit => [:pointer],
116
- :SDL_AudioQuit => [],
117
- :SDL_GetCurrentAudioDriver => [],
118
- :SDL_OpenAudio => [:pointer, :pointer],
119
- :SDL_GetNumAudioDevices => [:int],
120
- :SDL_GetAudioDeviceName => [:int, :int],
121
- :SDL_OpenAudioDevice => [:pointer, :int, :pointer, :pointer, :int],
122
- :SDL_GetAudioStatus => [],
123
- :SDL_GetAudioDeviceStatus => [:uint],
124
- :SDL_PauseAudio => [:int],
125
- :SDL_PauseAudioDevice => [:uint, :int],
126
- :SDL_LoadWAV_RW => [:pointer, :int, :pointer, :pointer, :pointer],
127
- :SDL_FreeWAV => [:pointer],
128
- :SDL_BuildAudioCVT => [:pointer, :ushort, :uchar, :int, :ushort, :uchar, :int],
129
- :SDL_ConvertAudio => [:pointer],
130
- :SDL_NewAudioStream => [:ushort, :uchar, :int, :ushort, :uchar, :int],
131
- :SDL_AudioStreamPut => [:pointer, :pointer, :int],
132
- :SDL_AudioStreamGet => [:pointer, :pointer, :int],
133
- :SDL_AudioStreamAvailable => [:pointer],
134
- :SDL_AudioStreamFlush => [:pointer],
135
- :SDL_AudioStreamClear => [:pointer],
136
- :SDL_FreeAudioStream => [:pointer],
137
- :SDL_MixAudio => [:pointer, :pointer, :uint, :int],
138
- :SDL_MixAudioFormat => [:pointer, :pointer, :ushort, :uint, :int],
139
- :SDL_QueueAudio => [:uint, :pointer, :uint],
140
- :SDL_DequeueAudio => [:uint, :pointer, :uint],
141
- :SDL_GetQueuedAudioSize => [:uint],
142
- :SDL_ClearQueuedAudio => [:uint],
143
- :SDL_LockAudio => [],
144
- :SDL_LockAudioDevice => [:uint],
145
- :SDL_UnlockAudio => [],
146
- :SDL_UnlockAudioDevice => [:uint],
147
- :SDL_CloseAudio => [],
148
- :SDL_CloseAudioDevice => [:uint],
149
- }
150
- retvals = {
151
- :SDL_GetNumAudioDrivers => :int,
152
- :SDL_GetAudioDriver => :pointer,
153
- :SDL_AudioInit => :int,
154
- :SDL_AudioQuit => :void,
155
- :SDL_GetCurrentAudioDriver => :pointer,
156
- :SDL_OpenAudio => :int,
157
- :SDL_GetNumAudioDevices => :int,
158
- :SDL_GetAudioDeviceName => :pointer,
159
- :SDL_OpenAudioDevice => :uint,
160
- :SDL_GetAudioStatus => :int,
161
- :SDL_GetAudioDeviceStatus => :int,
162
- :SDL_PauseAudio => :void,
163
- :SDL_PauseAudioDevice => :void,
164
- :SDL_LoadWAV_RW => :pointer,
165
- :SDL_FreeWAV => :void,
166
- :SDL_BuildAudioCVT => :int,
167
- :SDL_ConvertAudio => :int,
168
- :SDL_NewAudioStream => :pointer,
169
- :SDL_AudioStreamPut => :int,
170
- :SDL_AudioStreamGet => :int,
171
- :SDL_AudioStreamAvailable => :int,
172
- :SDL_AudioStreamFlush => :int,
173
- :SDL_AudioStreamClear => :void,
174
- :SDL_FreeAudioStream => :void,
175
- :SDL_MixAudio => :void,
176
- :SDL_MixAudioFormat => :void,
177
- :SDL_QueueAudio => :int,
178
- :SDL_DequeueAudio => :uint,
179
- :SDL_GetQueuedAudioSize => :uint,
180
- :SDL_ClearQueuedAudio => :void,
181
- :SDL_LockAudio => :void,
182
- :SDL_LockAudioDevice => :void,
183
- :SDL_UnlockAudio => :void,
184
- :SDL_UnlockAudioDevice => :void,
185
- :SDL_CloseAudio => :void,
186
- :SDL_CloseAudioDevice => :void,
187
- }
188
- symbols.each do |sym|
189
- begin
190
- attach_function sym, args[sym], retvals[sym]
191
- rescue FFI::NotFoundError => error
192
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
193
- end
194
- end
195
- end
196
-
197
- end
198
-
199
- # TODO : def SDL_LoadWAV
200
-
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 SDL2
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+ SDL_AUDIO_MASK_BITSIZE = 0xFF
14
+ SDL_AUDIO_MASK_DATATYPE = (1 << 8)
15
+ SDL_AUDIO_MASK_ENDIAN = (1 << 12)
16
+ SDL_AUDIO_MASK_SIGNED = (1 << 15)
17
+ SDL_AUDIO_ALLOW_FREQUENCY_CHANGE = 0x00000001
18
+ SDL_AUDIO_ALLOW_FORMAT_CHANGE = 0x00000002
19
+ SDL_AUDIO_ALLOW_CHANNELS_CHANGE = 0x00000004
20
+ SDL_AUDIO_ALLOW_SAMPLES_CHANGE = 0x00000008
21
+ SDL_AUDIO_ALLOW_ANY_CHANGE = (SDL_AUDIO_ALLOW_FREQUENCY_CHANGE | SDL_AUDIO_ALLOW_FORMAT_CHANGE | SDL_AUDIO_ALLOW_CHANNELS_CHANGE | SDL_AUDIO_ALLOW_SAMPLES_CHANGE)
22
+ SDL_AUDIOCVT_MAX_FILTERS = 9
23
+ SDL_MIX_MAXVOLUME = 128
24
+
25
+ # Enum
26
+
27
+ SDL_AUDIO_STOPPED = 0
28
+ SDL_AUDIO_PLAYING = 1
29
+ SDL_AUDIO_PAUSED = 2
30
+
31
+ # Typedef
32
+
33
+ typedef :ushort, :SDL_AudioFormat
34
+ callback :SDL_AudioCallback, [:pointer, :pointer, :int], :void
35
+ callback :SDL_AudioFilter, [:pointer, :ushort], :void
36
+ typedef :uint, :SDL_AudioDeviceID
37
+ typedef :int, :SDL_AudioStatus
38
+
39
+ # Struct
40
+
41
+ class SDL_AudioSpec < FFI::Struct
42
+ layout(
43
+ :freq, :int,
44
+ :format, :ushort,
45
+ :channels, :uchar,
46
+ :silence, :uchar,
47
+ :samples, :ushort,
48
+ :padding, :ushort,
49
+ :size, :uint,
50
+ :callback, :pointer,
51
+ :userdata, :pointer,
52
+ )
53
+ end
54
+
55
+ class SDL_AudioCVT < FFI::Struct
56
+ layout(
57
+ :needed, :int,
58
+ :src_format, :ushort,
59
+ :dst_format, :ushort,
60
+ :rate_incr, :double,
61
+ :buf, :pointer,
62
+ :len, :int,
63
+ :len_cvt, :int,
64
+ :len_mult, :int,
65
+ :len_ratio, :double,
66
+ :filters, [:pointer, 10],
67
+ :filter_index, :int,
68
+ )
69
+ end
70
+
71
+
72
+ # Function
73
+
74
+ def self.setup_audio_symbols()
75
+ symbols = [
76
+ :SDL_GetNumAudioDrivers,
77
+ :SDL_GetAudioDriver,
78
+ :SDL_AudioInit,
79
+ :SDL_AudioQuit,
80
+ :SDL_GetCurrentAudioDriver,
81
+ :SDL_OpenAudio,
82
+ :SDL_GetNumAudioDevices,
83
+ :SDL_GetAudioDeviceName,
84
+ :SDL_OpenAudioDevice,
85
+ :SDL_GetAudioStatus,
86
+ :SDL_GetAudioDeviceStatus,
87
+ :SDL_PauseAudio,
88
+ :SDL_PauseAudioDevice,
89
+ :SDL_LoadWAV_RW,
90
+ :SDL_FreeWAV,
91
+ :SDL_BuildAudioCVT,
92
+ :SDL_ConvertAudio,
93
+ :SDL_NewAudioStream,
94
+ :SDL_AudioStreamPut,
95
+ :SDL_AudioStreamGet,
96
+ :SDL_AudioStreamAvailable,
97
+ :SDL_AudioStreamFlush,
98
+ :SDL_AudioStreamClear,
99
+ :SDL_FreeAudioStream,
100
+ :SDL_MixAudio,
101
+ :SDL_MixAudioFormat,
102
+ :SDL_QueueAudio,
103
+ :SDL_DequeueAudio,
104
+ :SDL_GetQueuedAudioSize,
105
+ :SDL_ClearQueuedAudio,
106
+ :SDL_LockAudio,
107
+ :SDL_LockAudioDevice,
108
+ :SDL_UnlockAudio,
109
+ :SDL_UnlockAudioDevice,
110
+ :SDL_CloseAudio,
111
+ :SDL_CloseAudioDevice,
112
+ ]
113
+ args = {
114
+ :SDL_GetNumAudioDrivers => [],
115
+ :SDL_GetAudioDriver => [:int],
116
+ :SDL_AudioInit => [:pointer],
117
+ :SDL_AudioQuit => [],
118
+ :SDL_GetCurrentAudioDriver => [],
119
+ :SDL_OpenAudio => [:pointer, :pointer],
120
+ :SDL_GetNumAudioDevices => [:int],
121
+ :SDL_GetAudioDeviceName => [:int, :int],
122
+ :SDL_OpenAudioDevice => [:pointer, :int, :pointer, :pointer, :int],
123
+ :SDL_GetAudioStatus => [],
124
+ :SDL_GetAudioDeviceStatus => [:uint],
125
+ :SDL_PauseAudio => [:int],
126
+ :SDL_PauseAudioDevice => [:uint, :int],
127
+ :SDL_LoadWAV_RW => [:pointer, :int, :pointer, :pointer, :pointer],
128
+ :SDL_FreeWAV => [:pointer],
129
+ :SDL_BuildAudioCVT => [:pointer, :ushort, :uchar, :int, :ushort, :uchar, :int],
130
+ :SDL_ConvertAudio => [:pointer],
131
+ :SDL_NewAudioStream => [:ushort, :uchar, :int, :ushort, :uchar, :int],
132
+ :SDL_AudioStreamPut => [:pointer, :pointer, :int],
133
+ :SDL_AudioStreamGet => [:pointer, :pointer, :int],
134
+ :SDL_AudioStreamAvailable => [:pointer],
135
+ :SDL_AudioStreamFlush => [:pointer],
136
+ :SDL_AudioStreamClear => [:pointer],
137
+ :SDL_FreeAudioStream => [:pointer],
138
+ :SDL_MixAudio => [:pointer, :pointer, :uint, :int],
139
+ :SDL_MixAudioFormat => [:pointer, :pointer, :ushort, :uint, :int],
140
+ :SDL_QueueAudio => [:uint, :pointer, :uint],
141
+ :SDL_DequeueAudio => [:uint, :pointer, :uint],
142
+ :SDL_GetQueuedAudioSize => [:uint],
143
+ :SDL_ClearQueuedAudio => [:uint],
144
+ :SDL_LockAudio => [],
145
+ :SDL_LockAudioDevice => [:uint],
146
+ :SDL_UnlockAudio => [],
147
+ :SDL_UnlockAudioDevice => [:uint],
148
+ :SDL_CloseAudio => [],
149
+ :SDL_CloseAudioDevice => [:uint],
150
+ }
151
+ retvals = {
152
+ :SDL_GetNumAudioDrivers => :int,
153
+ :SDL_GetAudioDriver => :pointer,
154
+ :SDL_AudioInit => :int,
155
+ :SDL_AudioQuit => :void,
156
+ :SDL_GetCurrentAudioDriver => :pointer,
157
+ :SDL_OpenAudio => :int,
158
+ :SDL_GetNumAudioDevices => :int,
159
+ :SDL_GetAudioDeviceName => :pointer,
160
+ :SDL_OpenAudioDevice => :uint,
161
+ :SDL_GetAudioStatus => :int,
162
+ :SDL_GetAudioDeviceStatus => :int,
163
+ :SDL_PauseAudio => :void,
164
+ :SDL_PauseAudioDevice => :void,
165
+ :SDL_LoadWAV_RW => :pointer,
166
+ :SDL_FreeWAV => :void,
167
+ :SDL_BuildAudioCVT => :int,
168
+ :SDL_ConvertAudio => :int,
169
+ :SDL_NewAudioStream => :pointer,
170
+ :SDL_AudioStreamPut => :int,
171
+ :SDL_AudioStreamGet => :int,
172
+ :SDL_AudioStreamAvailable => :int,
173
+ :SDL_AudioStreamFlush => :int,
174
+ :SDL_AudioStreamClear => :void,
175
+ :SDL_FreeAudioStream => :void,
176
+ :SDL_MixAudio => :void,
177
+ :SDL_MixAudioFormat => :void,
178
+ :SDL_QueueAudio => :int,
179
+ :SDL_DequeueAudio => :uint,
180
+ :SDL_GetQueuedAudioSize => :uint,
181
+ :SDL_ClearQueuedAudio => :void,
182
+ :SDL_LockAudio => :void,
183
+ :SDL_LockAudioDevice => :void,
184
+ :SDL_UnlockAudio => :void,
185
+ :SDL_UnlockAudioDevice => :void,
186
+ :SDL_CloseAudio => :void,
187
+ :SDL_CloseAudioDevice => :void,
188
+ }
189
+ symbols.each do |sym|
190
+ begin
191
+ attach_function sym, args[sym], retvals[sym]
192
+ rescue FFI::NotFoundError => error
193
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
194
+ end
195
+ end
196
+ end
197
+
198
+ end
199
+
200
+ # TODO : def SDL_LoadWAV
201
+
@@ -1,69 +1,69 @@
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 SDL2
10
- extend FFI::Library
11
- # Define/Macro
12
-
13
-
14
- # Enum
15
-
16
- SDL_BLENDMODE_NONE = 0
17
- SDL_BLENDMODE_BLEND = 1
18
- SDL_BLENDMODE_ADD = 2
19
- SDL_BLENDMODE_MOD = 4
20
- SDL_BLENDMODE_MUL = 8
21
- SDL_BLENDMODE_INVALID = 2147483647
22
- SDL_BLENDOPERATION_ADD = 1
23
- SDL_BLENDOPERATION_SUBTRACT = 2
24
- SDL_BLENDOPERATION_REV_SUBTRACT = 3
25
- SDL_BLENDOPERATION_MINIMUM = 4
26
- SDL_BLENDOPERATION_MAXIMUM = 5
27
- SDL_BLENDFACTOR_ZERO = 1
28
- SDL_BLENDFACTOR_ONE = 2
29
- SDL_BLENDFACTOR_SRC_COLOR = 3
30
- SDL_BLENDFACTOR_ONE_MINUS_SRC_COLOR = 4
31
- SDL_BLENDFACTOR_SRC_ALPHA = 5
32
- SDL_BLENDFACTOR_ONE_MINUS_SRC_ALPHA = 6
33
- SDL_BLENDFACTOR_DST_COLOR = 7
34
- SDL_BLENDFACTOR_ONE_MINUS_DST_COLOR = 8
35
- SDL_BLENDFACTOR_DST_ALPHA = 9
36
- SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 10
37
-
38
- # Typedef
39
-
40
- typedef :int, :SDL_BlendMode
41
- typedef :int, :SDL_BlendOperation
42
- typedef :int, :SDL_BlendFactor
43
-
44
- # Struct
45
-
46
-
47
- # Function
48
-
49
- def self.setup_blendmode_symbols()
50
- symbols = [
51
- :SDL_ComposeCustomBlendMode,
52
- ]
53
- args = {
54
- :SDL_ComposeCustomBlendMode => [:int, :int, :int, :int, :int, :int],
55
- }
56
- retvals = {
57
- :SDL_ComposeCustomBlendMode => :int,
58
- }
59
- symbols.each do |sym|
60
- begin
61
- attach_function sym, args[sym], retvals[sym]
62
- rescue FFI::NotFoundError => error
63
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
64
- end
65
- end
66
- end
67
-
68
- end
69
-
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 SDL2
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+
14
+ # Enum
15
+
16
+ SDL_BLENDMODE_NONE = 0
17
+ SDL_BLENDMODE_BLEND = 1
18
+ SDL_BLENDMODE_ADD = 2
19
+ SDL_BLENDMODE_MOD = 4
20
+ SDL_BLENDMODE_MUL = 8
21
+ SDL_BLENDMODE_INVALID = 2147483647
22
+ SDL_BLENDOPERATION_ADD = 1
23
+ SDL_BLENDOPERATION_SUBTRACT = 2
24
+ SDL_BLENDOPERATION_REV_SUBTRACT = 3
25
+ SDL_BLENDOPERATION_MINIMUM = 4
26
+ SDL_BLENDOPERATION_MAXIMUM = 5
27
+ SDL_BLENDFACTOR_ZERO = 1
28
+ SDL_BLENDFACTOR_ONE = 2
29
+ SDL_BLENDFACTOR_SRC_COLOR = 3
30
+ SDL_BLENDFACTOR_ONE_MINUS_SRC_COLOR = 4
31
+ SDL_BLENDFACTOR_SRC_ALPHA = 5
32
+ SDL_BLENDFACTOR_ONE_MINUS_SRC_ALPHA = 6
33
+ SDL_BLENDFACTOR_DST_COLOR = 7
34
+ SDL_BLENDFACTOR_ONE_MINUS_DST_COLOR = 8
35
+ SDL_BLENDFACTOR_DST_ALPHA = 9
36
+ SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 10
37
+
38
+ # Typedef
39
+
40
+ typedef :int, :SDL_BlendMode
41
+ typedef :int, :SDL_BlendOperation
42
+ typedef :int, :SDL_BlendFactor
43
+
44
+ # Struct
45
+
46
+
47
+ # Function
48
+
49
+ def self.setup_blendmode_symbols()
50
+ symbols = [
51
+ :SDL_ComposeCustomBlendMode,
52
+ ]
53
+ args = {
54
+ :SDL_ComposeCustomBlendMode => [:int, :int, :int, :int, :int, :int],
55
+ }
56
+ retvals = {
57
+ :SDL_ComposeCustomBlendMode => :int,
58
+ }
59
+ symbols.each do |sym|
60
+ begin
61
+ attach_function sym, args[sym], retvals[sym]
62
+ rescue FFI::NotFoundError => error
63
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
64
+ end
65
+ end
66
+ end
67
+
68
+ end
69
+