sdl2_ffi 0.0.3 → 0.0.4

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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/README.md +31 -17
  4. data/bin/yard +16 -0
  5. data/bin/yardoc +16 -0
  6. data/bin/yri +16 -0
  7. data/graph +566 -0
  8. data/lib/enumerable_constants.rb +82 -0
  9. data/lib/sdl2.rb +74 -117
  10. data/lib/sdl2/audio.rb +10 -7
  11. data/lib/sdl2/clipboard.rb +3 -3
  12. data/lib/sdl2/events.rb +228 -168
  13. data/lib/sdl2/gem_version.rb +1 -1
  14. data/lib/sdl2/haptic.rb +366 -55
  15. data/lib/sdl2/hints.rb +36 -24
  16. data/lib/sdl2/image.rb +4 -10
  17. data/lib/sdl2/init.rb +21 -31
  18. data/lib/sdl2/joystick.rb +15 -12
  19. data/lib/sdl2/keycode.rb +261 -261
  20. data/lib/sdl2/library.rb +96 -0
  21. data/lib/sdl2/mouse.rb +22 -17
  22. data/lib/sdl2/pixel_format.rb +2 -1
  23. data/lib/sdl2/pixels.rb +114 -161
  24. data/lib/sdl2/rect.rb +14 -10
  25. data/lib/sdl2/render.rb +29 -13
  26. data/lib/sdl2/renderer.rb +9 -2
  27. data/lib/sdl2/rwops.rb +11 -7
  28. data/lib/sdl2/scancode.rb +246 -245
  29. data/lib/sdl2/stdinc.rb +213 -0
  30. data/lib/sdl2/surface.rb +23 -7
  31. data/lib/sdl2/ttf.rb +23 -19
  32. data/lib/sdl2/version.rb +8 -2
  33. data/lib/sdl2/video.rb +64 -73
  34. data/lib/sdl2/window.rb +143 -36
  35. data/lib/sdl2_ffi.rb +2 -1
  36. data/sdl2_ffi.gemspec +3 -1
  37. data/test/fixtures/an_example.png +0 -0
  38. data/test/fixtures/background.bmp +0 -0
  39. data/test/fixtures/hello.bmp +0 -0
  40. data/test/functional/examples/test_lazy_foo_examples.rb +123 -0
  41. data/test/functional/examples/test_readme_examples.rb +15 -0
  42. data/test/unit/sdl2/test_haptic.rb +17 -0
  43. data/test/unit/sdl2/test_hints.rb +9 -9
  44. data/test/unit/sdl2/test_init.rb +8 -8
  45. data/test/unit/sdl2/test_log.rb +1 -1
  46. data/test/unit/sdl2/test_pixel_format.rb +3 -1
  47. data/test/unit/sdl2/test_video.rb +3 -3
  48. data/test/unit/sdl2/test_window.rb +4 -4
  49. data/test/unit/test_scratch.rb +2 -2
  50. metadata +37 -16
@@ -0,0 +1,96 @@
1
+ require 'ffi'
2
+
3
+ module SDL2
4
+
5
+ # Extensions to FFI::Library
6
+ module Library
7
+
8
+ # This converts the SDL Function Prototype name "SDL_XxxYyyyyZzz" to ruby's
9
+ # "xxx_yyyy_zzz" convetion
10
+ def api(func_name, args, type, options = {})
11
+
12
+ options = {
13
+ :error => false,
14
+ :filter => type == :bool ? TRUE_WHEN_TRUE : TRUE_WHEN_ZERO
15
+ }.merge(options)
16
+
17
+ # TODO: Review ugly hack:
18
+ remove_part = case self.to_s
19
+ when "SDL2"
20
+ "SDL_"
21
+ when "SDL2::Image"
22
+ "IMG_"
23
+ when "SDL2::TTF"
24
+ "TTF_"
25
+ else
26
+ $stderr.puts("Library#api does not know how to handle module: #{self.to_s}")
27
+ /[A-Z][A-Z|0-9]*_/
28
+ end
29
+
30
+ camelCaseName = func_name.to_s.gsub(remove_part,'')
31
+ methodName = ActiveSupport::Inflector.underscore(camelCaseName).to_sym
32
+
33
+ attach_function methodName, func_name, args, type
34
+
35
+ if options[:error]
36
+ returns_error(methodName, options[:filter])
37
+ end
38
+
39
+ if type == :bool
40
+ boolean?(methodName)
41
+ end
42
+
43
+ return methodName
44
+ end
45
+
46
+ # Returns the 'singleton class' so we can define class-level methods on the
47
+ # fly.
48
+ # There may be a better place to put this.
49
+ def metaclass
50
+
51
+ class << self; self; end
52
+ end
53
+
54
+ # Generates an alternative version of methodName that will raise a SDL Error
55
+ # when the return value fails the filter test. The alternative version has
56
+ # the same name, but with an exclamation mark ("!") at the end, indicating the
57
+ # danger.
58
+ def returns_error(methodName, filter)
59
+ metaclass.instance_eval do
60
+ define_method "#{methodName}!".to_sym do |*args|
61
+ result = send(methodName, *args)
62
+ raise_error_unless filter.call(result)
63
+ result
64
+ end
65
+ end
66
+ end
67
+
68
+ # Generates an alternative ? version for methodName.
69
+ def boolean?(methodName, filter = nil)
70
+ metaclass.instance_eval do
71
+ if filter.nil?
72
+ alias_method "#{methodName}?".to_sym, methodName
73
+ else
74
+ define_method("#{methodName}?".to_sym) do |*args|
75
+ filter.call(send(methodName, *args))
76
+ end
77
+ end
78
+ end
79
+ end
80
+
81
+ # Raise the current error value as a RuntimeException
82
+ def raise_error
83
+ raise "SDL Error: #{SDL2.get_error()}"
84
+ end
85
+
86
+ # Conditionally raise an error, unless true
87
+ def raise_error_unless(condition)
88
+ raise_error unless condition
89
+ end
90
+
91
+ # Conditionally raise an error, unless false
92
+ def raise_error_if(condition)
93
+ raise_error if condition
94
+ end
95
+ end
96
+ end
@@ -1,5 +1,5 @@
1
1
  require 'sdl2'
2
- require 'yinum'
2
+
3
3
 
4
4
  module SDL2
5
5
 
@@ -32,22 +32,27 @@ module SDL2
32
32
  def self.button(num)
33
33
  1 << (num-1)
34
34
  end
35
-
36
- Button = Enum.new(:MOUSE_BUTTONS, {
37
- :LEFT => 1,
38
- :MIDDLE => 2,
39
- :RIGHT => 3,
40
- :X1 => 4,
41
- :X2 => 5
42
- })
43
-
44
- ButtonMask = Enum.new(:MOUSE_BUTTON_MASK, {
45
- :LEFT => button(Button.LEFT),
46
- :MIDDLE => button(Button.MIDDLE),
47
- :RIGHT => button(Button.RIGHT),
48
- :X1 => button(Button.X1),
49
- :X2 => button(Button.X2)
50
- })
35
+
36
+ module BUTTON
37
+ include EnumerableConstants
38
+ LEFT = next_const_value
39
+ MIDDLE = next_const_value
40
+ RIGHT = next_const_value
41
+ X1 = next_const_value
42
+ X2 = next_const_value
43
+ end
44
+
45
+ module BUTTONMASK
46
+ def self.for_enum button_enum
47
+ 1 << (button_enum-1)
48
+ end
49
+ include EnumerableConstants
50
+ LEFT = for_enum(BUTTON::LEFT)
51
+ MIDDLE = for_enum(BUTTON::MIDDLE)
52
+ RIGHT = for_enum(BUTTON::RIGHT)
53
+ X1 = for_enum(BUTTON::X1)
54
+ X2 = for_enum(BUTTON::X2)
55
+ end
51
56
 
52
57
  end
53
58
 
@@ -110,7 +110,8 @@ module SDL2
110
110
  ptr.each(&:free)
111
111
  return result
112
112
  end
113
-
113
+
114
+
114
115
  end
115
116
 
116
117
  end
@@ -1,81 +1,97 @@
1
1
  require 'sdl2/error'
2
2
  require 'sdl2/color'
3
3
  require 'sdl2/pixel_format'
4
- require 'yinum'
5
4
 
6
5
  # SDL_pixels.h API
7
6
  module SDL2
8
7
  ALPHA_OPAQUE = 255
9
8
  ALPHA_TRANSPARENT = 0
10
9
 
11
- PIXELTYPE = Enum.new :PIXELTYPE, {
12
- UNKNOWN: 0,
13
- INDEX1: 1,
14
- INDEX4: 2,
15
- INDEX8: 3,
16
- PACKED8: 4,
17
- PACKED16: 5,
18
- PACKED32: 6,
19
- ARRAYU8: 7,
20
- ARRAYU16: 8,
21
- ARRAYU32: 9,
22
- ARRAYF16: 10,
23
- ARRAYF32: 11
24
- }
25
- enum :pixeltype, PIXELTYPE.by_name
10
+ # Predefined pixel types.
11
+ module PIXELTYPE
12
+ include EnumerableConstants
13
+ UNKNOWN = next_const_value
14
+ INDEX1 = next_const_value
15
+ INDEX4 = next_const_value
16
+ INDEX8 = next_const_value
17
+ PACKED8 = next_const_value
18
+ PACKED16 = next_const_value
19
+ PACKED32 = next_const_value
20
+ ARRAYU8 = next_const_value
21
+ ARRAYU16 = next_const_value
22
+ ARRAYU32 = next_const_value
23
+ ARRAYF16 = next_const_value
24
+ ARRAYF32 = next_const_value
25
+ end
26
+ enum :pixeltype, PIXELTYPE.flatten_consts
27
+
28
+ # Bitmap pixel order, high bit -> low bit
29
+ module BITMAPORDER
30
+ include EnumerableConstants
31
+ NONE = next_const_value
32
+ N4321 = next_const_value
33
+ N1234 = next_const_value
34
+ end
26
35
 
27
- BITMAPORDER = Enum.new :BITMAPORDER, {
28
- NONE: 0,
29
- _4321: 1,
30
- _1234: 2
31
- }
32
- enum :bitmaporder, BITMAPORDER.by_name
36
+ enum :bitmaporder, BITMAPORDER.flatten_consts
37
+
38
+ # Packed component order, high bit -> low bit
39
+ module PACKEDORDER
40
+ include EnumerableConstants
41
+ NONE = next_const_value
42
+ XRGB = next_const_value
43
+ RGBX = next_const_value
44
+ ARGB = next_const_value
45
+ RGBA = next_const_value
46
+ XBGR = next_const_value
47
+ BGRX = next_const_value
48
+ ABGR = next_const_value
49
+ BGRA = next_const_value
50
+ end
33
51
 
34
- PACKEDORDER = Enum.new :PACKEDORDER, {
35
- NONE: 0,
36
- XRGB: 1,
37
- RGBX: 2,
38
- ARGB: 3,
39
- RGBA: 4,
40
- XBGR: 5,
41
- BGRX: 6,
42
- ABGR: 7,
43
- BGRA: 8
44
- }
45
- enum :packedorder, PACKEDORDER.by_name
52
+ enum :packedorder, PACKEDORDER.flatten_consts
53
+
54
+ # Array component order, low byte -> hight byte
55
+ module ARRAYORDER
56
+ include EnumerableConstants
57
+ NONE = next_const_value
58
+ RGB = next_const_value
59
+ RGBA = next_const_value
60
+ ARGB = next_const_value
61
+ BGR = next_const_value
62
+ BGRA = next_const_value
63
+ ABGR = next_const_value
64
+ end
46
65
 
47
- ARRAYORDER = Enum.new :ARRAYORDER, {
48
- NONE: 0,
49
- RGB: 1,
50
- RGBA: 2,
51
- ARGB: 3,
52
- BGR: 4,
53
- BGRA: 5,
54
- ABGR: 6
55
- }
56
- enum :arrayorder, ARRAYORDER.by_name
66
+ enum :arrayorder, ARRAYORDER.flatten_consts
67
+
68
+ # Packed component layout
69
+ module PACKEDLAYOUT
70
+ include EnumerableConstants
71
+ NONE = next_const_value
72
+ N332 = next_const_value
73
+ N4444 = next_const_value
74
+ N1555 = next_const_value
75
+ N5551 = next_const_value
76
+ N565 = next_const_value
77
+ N8888 = next_const_value
78
+ N2101010 = next_const_value
79
+ N1010102 = next_const_value
80
+ end
57
81
 
58
- PACKEDLAYOUT = Enum.new :PACKEDLAYOUT, {
59
- NONE: 0,
60
- _332: 1,
61
- _4444: 2,
62
- _1555: 3,
63
- _5551: 4,
64
- _565: 5,
65
- _8888: 6,
66
- _2101010: 7,
67
- _1010102: 8
68
- }
69
- enum :packedlayout, PACKEDLAYOUT.by_name
82
+ enum :packedlayout, PACKEDLAYOUT.flatten_consts
70
83
 
71
84
  #MACRO: SDL_DEFINE_PIXELFOURCC(A, B, C, D) SDL_FOURCC(A, B, C, D)
72
- def self.define_pixelfourcc(a,b,c,d); SDL2.fourcc(a,b,c,d); end
85
+ def self.define_pixelfourcc(a,b,c,d)
86
+ SDL2.fourcc(a,b,c,d);
87
+ end
73
88
 
74
89
  #MACRO: SDL_DEFINE_PIXELFORMAT(type, order, layout, bits, bytes) \
75
90
  # ((1 << 28) | ((type) << 24) | ((order) << 20) | ((layout) << 16) | \
76
91
  # ((bits) << 8) | ((bytes) << 0))
77
92
  def self.define_pixelformat(type, order, layout, bits, bytes)
78
- ((1 << 28) | ((type) << 24) | ((order) << 20) | ((layout) << 16) | ((bits) << 8) | ((bytes) << 0))
93
+ ((1 << 28) | ((type) << 24) | ((order) << 20) | ((layout) << 16) |
94
+ ((bits) << 8) | ((bytes) << 0))
79
95
  end
80
96
 
81
97
  #MACRO: SDL_PIXELFLAG(X) (((X) >> 28) & 0x0F)
@@ -137,109 +153,46 @@ module SDL2
137
153
  ((format) && (pixelflag(format) != 1))
138
154
  end
139
155
 
140
- PIXELFORMAT = Enum.new(:PIXELFORMAT, {
141
- UNKNOWN: 0,
142
- INDEX1LSB:
143
- define_pixelformat(PIXELTYPE.INDEX1, BITMAPORDER._4321, 0,
144
- 1, 0),
145
- INDEX1MSB:
146
- define_pixelformat(PIXELTYPE.INDEX1, BITMAPORDER._1234, 0,
147
- 1, 0),
148
- INDEX4LSB:
149
- define_pixelformat(PIXELTYPE.INDEX4, BITMAPORDER._4321, 0,
150
- 4, 0),
151
- INDEX4MSB:
152
- define_pixelformat(PIXELTYPE.INDEX4, BITMAPORDER._1234, 0,
153
- 4, 0),
154
- INDEX8:
155
- define_pixelformat(PIXELTYPE.INDEX8, 0, 0, 8, 1),
156
- RGB332:
157
- define_pixelformat(PIXELTYPE.PACKED8, PACKEDORDER.XRGB,
158
- PACKEDLAYOUT._332, 8, 1),
159
- RGB444:
160
- define_pixelformat(PIXELTYPE.PACKED16, PACKEDORDER.XRGB,
161
- PACKEDLAYOUT._4444, 12, 2),
162
- RGB555:
163
- define_pixelformat(PIXELTYPE.PACKED16, PACKEDORDER.XRGB,
164
- PACKEDLAYOUT._1555, 15, 2),
165
- BGR555:
166
- define_pixelformat(PIXELTYPE.PACKED16, PACKEDORDER.XBGR,
167
- PACKEDLAYOUT._1555, 15, 2),
168
- ARGB4444:
169
- define_pixelformat(PIXELTYPE.PACKED16, PACKEDORDER.ARGB,
170
- PACKEDLAYOUT._4444, 16, 2),
171
- RGBA4444:
172
- define_pixelformat(PIXELTYPE.PACKED16, PACKEDORDER.RGBA,
173
- PACKEDLAYOUT._4444, 16, 2),
174
- ABGR4444:
175
- define_pixelformat(PIXELTYPE.PACKED16, PACKEDORDER.ABGR,
176
- PACKEDLAYOUT._4444, 16, 2),
177
- BGRA4444:
178
- define_pixelformat(PIXELTYPE.PACKED16, PACKEDORDER.BGRA,
179
- PACKEDLAYOUT._4444, 16, 2),
180
- ARGB1555:
181
- define_pixelformat(PIXELTYPE.PACKED16, PACKEDORDER.ARGB,
182
- PACKEDLAYOUT._1555, 16, 2),
183
- RGBA5551:
184
- define_pixelformat(PIXELTYPE.PACKED16, PACKEDORDER.RGBA,
185
- PACKEDLAYOUT._5551, 16, 2),
186
- ABGR1555:
187
- define_pixelformat(PIXELTYPE.PACKED16, PACKEDORDER.ABGR,
188
- PACKEDLAYOUT._1555, 16, 2),
189
- BGRA5551:
190
- define_pixelformat(PIXELTYPE.PACKED16, PACKEDORDER.BGRA,
191
- PACKEDLAYOUT._5551, 16, 2),
192
- RGB565:
193
- define_pixelformat(PIXELTYPE.PACKED16, PACKEDORDER.XRGB,
194
- PACKEDLAYOUT._565, 16, 2),
195
- BGR565:
196
- define_pixelformat(PIXELTYPE.PACKED16, PACKEDORDER.XBGR,
197
- PACKEDLAYOUT._565, 16, 2),
198
- RGB24:
199
- define_pixelformat(PIXELTYPE.ARRAYU8, ARRAYORDER.RGB, 0,
200
- 24, 3),
201
- BGR24:
202
- define_pixelformat(PIXELTYPE.ARRAYU8, ARRAYORDER.BGR, 0,
203
- 24, 3),
204
- RGB888:
205
- define_pixelformat(PIXELTYPE.PACKED32, PACKEDORDER.XRGB,
206
- PACKEDLAYOUT._8888, 24, 4),
207
- RGBX8888:
208
- define_pixelformat(PIXELTYPE.PACKED32, PACKEDORDER.RGBX,
209
- PACKEDLAYOUT._8888, 24, 4),
210
- BGR888:
211
- define_pixelformat(PIXELTYPE.PACKED32, PACKEDORDER.XBGR,
212
- PACKEDLAYOUT._8888, 24, 4),
213
- BGRX8888:
214
- define_pixelformat(PIXELTYPE.PACKED32, PACKEDORDER.BGRX,
215
- PACKEDLAYOUT._8888, 24, 4),
216
- ARGB8888:
217
- define_pixelformat(PIXELTYPE.PACKED32, PACKEDORDER.ARGB,
218
- PACKEDLAYOUT._8888, 32, 4),
219
- RGBA8888:
220
- define_pixelformat(PIXELTYPE.PACKED32, PACKEDORDER.RGBA,
221
- PACKEDLAYOUT._8888, 32, 4),
222
- ABGR8888:
223
- define_pixelformat(PIXELTYPE.PACKED32, PACKEDORDER.ABGR,
224
- PACKEDLAYOUT._8888, 32, 4),
225
- BGRA8888:
226
- define_pixelformat(PIXELTYPE.PACKED32, PACKEDORDER.BGRA,
227
- PACKEDLAYOUT._8888, 32, 4),
228
- ARGB2101010:
229
- define_pixelformat(PIXELTYPE.PACKED32, PACKEDORDER.ARGB,
230
- PACKEDLAYOUT._2101010, 32, 4),
231
-
232
- YV12:
233
- define_pixelfourcc('Y', 'V', '1', '2'),
234
- IYUV:
235
- define_pixelfourcc('I', 'Y', 'U', 'V'),
236
- YUY2:
237
- define_pixelfourcc('Y', 'U', 'Y', '2'),
238
- UYVY:
239
- define_pixelfourcc('U', 'Y', 'V', 'Y'),
240
- YVYU:
241
- define_pixelfourcc('Y', 'V', 'Y', 'U')
242
- })
156
+ module PIXELFORMAT
157
+ include EnumerableConstants
158
+ UNKNOWN = 0
159
+ INDEX1LSB = SDL2.define_pixelformat(PIXELTYPE::INDEX1, BITMAPORDER::N4321, 0, 1, 0)
160
+ INDEX1MSB = SDL2.define_pixelformat(PIXELTYPE::INDEX1, BITMAPORDER::N1234, 0, 1, 0)
161
+ INDEX4LSB = SDL2.define_pixelformat(PIXELTYPE::INDEX4, BITMAPORDER::N4321, 0, 4, 0)
162
+ INDEX4MSB = SDL2.define_pixelformat(PIXELTYPE::INDEX4, BITMAPORDER::N1234, 0, 4, 0)
163
+ INDEX8 = SDL2.define_pixelformat(PIXELTYPE::INDEX8, 0, 0, 8, 1)
164
+ RGB332 = SDL2.define_pixelformat(PIXELTYPE::PACKED8, PACKEDORDER::XRGB, PACKEDLAYOUT::N332, 8, 1)
165
+ RGB444 = SDL2.define_pixelformat(PIXELTYPE::PACKED16, PACKEDORDER::XRGB, PACKEDLAYOUT::N4444, 12, 2)
166
+ RGB555 = SDL2.define_pixelformat(PIXELTYPE::PACKED16, PACKEDORDER::XRGB, PACKEDLAYOUT::N1555, 15, 2)
167
+ BGR555 = SDL2.define_pixelformat(PIXELTYPE::PACKED16, PACKEDORDER::XBGR, PACKEDLAYOUT::N1555, 15, 2)
168
+ ARGB4444 = SDL2.define_pixelformat(PIXELTYPE::PACKED16, PACKEDORDER::ARGB, PACKEDLAYOUT::N4444, 16, 2)
169
+ RGBA4444 = SDL2.define_pixelformat(PIXELTYPE::PACKED16, PACKEDORDER::RGBA, PACKEDLAYOUT::N4444, 16, 2)
170
+ ABGR4444 = SDL2.define_pixelformat(PIXELTYPE::PACKED16, PACKEDORDER::ABGR, PACKEDLAYOUT::N4444, 16, 2)
171
+ BGRA4444 = SDL2.define_pixelformat(PIXELTYPE::PACKED16, PACKEDORDER::BGRA, PACKEDLAYOUT::N4444, 16, 2)
172
+ ARGB1555 = SDL2.define_pixelformat(PIXELTYPE::PACKED16, PACKEDORDER::ARGB, PACKEDLAYOUT::N1555, 16, 2)
173
+ RGBA5551 = SDL2.define_pixelformat(PIXELTYPE::PACKED16, PACKEDORDER::RGBA, PACKEDLAYOUT::N5551, 16, 2)
174
+ ABGR1555 = SDL2.define_pixelformat(PIXELTYPE::PACKED16, PACKEDORDER::ABGR, PACKEDLAYOUT::N1555, 16, 2)
175
+ BGRA5551 = SDL2.define_pixelformat(PIXELTYPE::PACKED16, PACKEDORDER::BGRA, PACKEDLAYOUT::N5551, 16, 2)
176
+ RGB565 = SDL2.define_pixelformat(PIXELTYPE::PACKED16, PACKEDORDER::XRGB, PACKEDLAYOUT::N565, 16, 2)
177
+ BGR565 = SDL2.define_pixelformat(PIXELTYPE::PACKED16, PACKEDORDER::XBGR, PACKEDLAYOUT::N565, 16, 2)
178
+ RGB24 = SDL2.define_pixelformat(PIXELTYPE::ARRAYU8, ARRAYORDER::RGB, 0, 24, 3)
179
+ BGR24 = SDL2.define_pixelformat(PIXELTYPE::ARRAYU8, ARRAYORDER::BGR, 0, 24, 3)
180
+ RGB888 = SDL2.define_pixelformat(PIXELTYPE::PACKED32, PACKEDORDER::XRGB, PACKEDLAYOUT::N8888, 24, 4)
181
+ RGBX8888 = SDL2.define_pixelformat(PIXELTYPE::PACKED32, PACKEDORDER::RGBX, PACKEDLAYOUT::N8888, 24, 4)
182
+ BGR888 = SDL2.define_pixelformat(PIXELTYPE::PACKED32, PACKEDORDER::XBGR, PACKEDLAYOUT::N8888, 24, 4)
183
+ BGRX8888 = SDL2.define_pixelformat(PIXELTYPE::PACKED32, PACKEDORDER::BGRX, PACKEDLAYOUT::N8888, 24, 4)
184
+ ARGB8888 = SDL2.define_pixelformat(PIXELTYPE::PACKED32, PACKEDORDER::ARGB, PACKEDLAYOUT::N8888, 32, 4)
185
+ RGBA8888 = SDL2.define_pixelformat(PIXELTYPE::PACKED32, PACKEDORDER::RGBA, PACKEDLAYOUT::N8888, 32, 4)
186
+ ABGR8888 = SDL2.define_pixelformat(PIXELTYPE::PACKED32, PACKEDORDER::ABGR, PACKEDLAYOUT::N8888, 32, 4)
187
+ BGRA8888 = SDL2.define_pixelformat(PIXELTYPE::PACKED32, PACKEDORDER::BGRA, PACKEDLAYOUT::N8888, 32, 4)
188
+ ARGB2101010 = SDL2.define_pixelformat(PIXELTYPE::PACKED32, PACKEDORDER::ARGB, PACKEDLAYOUT::N2101010, 32, 4)
189
+
190
+ YV12 = SDL2.define_pixelfourcc('Y', 'V', '1', '2')
191
+ IYUV = SDL2.define_pixelfourcc('I', 'Y', 'U', 'V')
192
+ YUY2 = SDL2.define_pixelfourcc('Y', 'U', 'Y', '2')
193
+ UYVY = SDL2.define_pixelfourcc('U', 'Y', 'V', 'Y')
194
+ YVYU = SDL2.define_pixelfourcc('Y', 'V', 'Y', 'U')
195
+ end
243
196
 
244
197
  api :SDL_GetPixelFormatName, [:pixel_format], :string
245
198
  api :SDL_PixelFormatEnumToMasks, [:pixel_format, IntStruct.by_ref, UInt32Struct.by_ref, UInt32Struct.by_ref,UInt32Struct.by_ref,UInt32Struct.by_ref,], :bool