sdl2-bindings 0.0.4 → 0.0.5

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