sdl2_ffi 0.0.2

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 (84) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +20 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/Gemfile +4 -0
  6. data/Guardfile +33 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +83 -0
  9. data/Rakefile +7 -0
  10. data/bin/coderay +16 -0
  11. data/bin/guard +16 -0
  12. data/bin/pry +16 -0
  13. data/bin/rake +16 -0
  14. data/bin/thor +16 -0
  15. data/lib/sdl2/assert.rb +7 -0
  16. data/lib/sdl2/audio.rb +139 -0
  17. data/lib/sdl2/clipboard.rb +27 -0
  18. data/lib/sdl2/color.rb +12 -0
  19. data/lib/sdl2/cpuinfo.rb +18 -0
  20. data/lib/sdl2/display/mode.rb +53 -0
  21. data/lib/sdl2/display/modes.rb +36 -0
  22. data/lib/sdl2/display.rb +74 -0
  23. data/lib/sdl2/error.rb +9 -0
  24. data/lib/sdl2/events.rb +358 -0
  25. data/lib/sdl2/gamecontroller.rb +62 -0
  26. data/lib/sdl2/gem_version.rb +4 -0
  27. data/lib/sdl2/gesture.rb +15 -0
  28. data/lib/sdl2/haptic.rb +159 -0
  29. data/lib/sdl2/hints.rb +47 -0
  30. data/lib/sdl2/init.rb +54 -0
  31. data/lib/sdl2/joystick.rb +58 -0
  32. data/lib/sdl2/keyboard.rb +34 -0
  33. data/lib/sdl2/keycode.rb +294 -0
  34. data/lib/sdl2/log.rb +70 -0
  35. data/lib/sdl2/mouse.rb +54 -0
  36. data/lib/sdl2/palette.rb +15 -0
  37. data/lib/sdl2/pixel_format.rb +28 -0
  38. data/lib/sdl2/pixels.rb +35 -0
  39. data/lib/sdl2/point.rb +7 -0
  40. data/lib/sdl2/power.rb +9 -0
  41. data/lib/sdl2/rect.rb +38 -0
  42. data/lib/sdl2/render.rb +77 -0
  43. data/lib/sdl2/renderer.rb +34 -0
  44. data/lib/sdl2/renderer_info.rb +13 -0
  45. data/lib/sdl2/rwops.rb +127 -0
  46. data/lib/sdl2/scancode.rb +275 -0
  47. data/lib/sdl2/sdl_module.rb +8 -0
  48. data/lib/sdl2/surface.rb +83 -0
  49. data/lib/sdl2/syswm/info.rb +49 -0
  50. data/lib/sdl2/syswm/msg.rb +46 -0
  51. data/lib/sdl2/syswm.rb +20 -0
  52. data/lib/sdl2/texture.rb +9 -0
  53. data/lib/sdl2/timer.rb +17 -0
  54. data/lib/sdl2/touch.rb +24 -0
  55. data/lib/sdl2/version.rb +30 -0
  56. data/lib/sdl2/video.rb +154 -0
  57. data/lib/sdl2/window.rb +259 -0
  58. data/lib/sdl2.rb +99 -0
  59. data/lib/sdl2_ffi.rb +6 -0
  60. data/sdl2_ffi.gemspec +31 -0
  61. data/test/test_helper.rb +2 -0
  62. data/test/unit/sdl2/test_assert.rb +10 -0
  63. data/test/unit/sdl2/test_audio.rb +9 -0
  64. data/test/unit/sdl2/test_clipboard.rb +13 -0
  65. data/test/unit/sdl2/test_cpuinfo.rb +11 -0
  66. data/test/unit/sdl2/test_error.rb +20 -0
  67. data/test/unit/sdl2/test_events.rb +31 -0
  68. data/test/unit/sdl2/test_haptic.rb +10 -0
  69. data/test/unit/sdl2/test_hints.rb +50 -0
  70. data/test/unit/sdl2/test_init.rb +29 -0
  71. data/test/unit/sdl2/test_keyboard.rb +9 -0
  72. data/test/unit/sdl2/test_log.rb +80 -0
  73. data/test/unit/sdl2/test_pixels.rb +24 -0
  74. data/test/unit/sdl2/test_power.rb +11 -0
  75. data/test/unit/sdl2/test_rect.rb +19 -0
  76. data/test/unit/sdl2/test_render.rb +58 -0
  77. data/test/unit/sdl2/test_surface.rb +45 -0
  78. data/test/unit/sdl2/test_syswm.rb +11 -0
  79. data/test/unit/sdl2/test_timer.rb +9 -0
  80. data/test/unit/sdl2/test_version.rb +16 -0
  81. data/test/unit/sdl2/test_video.rb +170 -0
  82. data/test/unit/sdl2/test_window.rb +158 -0
  83. data/test/unit/test_sdl2.rb +16 -0
  84. metadata +280 -0
@@ -0,0 +1,158 @@
1
+ require_relative '../../test_helper'
2
+
3
+ require 'sdl2/video' # Window is a part of the Video API
4
+
5
+ describe SDL2::Window do
6
+
7
+ before do
8
+ @window = SDL2::Window.create!
9
+ end
10
+
11
+ after do
12
+ SDL2.destroy_window(@window)
13
+ end
14
+
15
+
16
+
17
+ it 'can be created' do
18
+ window = SDL2::Window.create!('My Title', 10, 20, 300, 400)
19
+ assert_kind_of SDL2::Window, window
20
+ SDL2.destroy_window(window)
21
+ end
22
+
23
+ it 'has a title' do
24
+ @window.title = 'Updated'
25
+ assert_equal 'Updated', @window.title
26
+ end
27
+
28
+ it 'has a current_size' do
29
+ window = SDL2::Window.create!('Title', 10, 20, 300, 400)
30
+ assert_equal [300, 400], window.current_size
31
+ window.current_size = [640, 480]
32
+ assert_equal [640, 480], window.current_size
33
+ SDL2.destroy_window(window)
34
+ end
35
+
36
+ it 'has a maximum size' do
37
+
38
+ assert_kind_of Array, @window.maximum_size
39
+ @window.maximum_size = [800,600]
40
+ assert_equal [800,600], @window.maximum_size
41
+
42
+ end
43
+
44
+ it 'has a minimum size' do
45
+
46
+ assert_kind_of Array, @window.minimum_size
47
+ @window.minimum_size = [320,200]
48
+ assert_equal [320,200], @window.minimum_size
49
+ end
50
+
51
+ it 'has a pixel format' do
52
+ assert_kind_of Integer, @window.pixel_format
53
+ end
54
+
55
+ it 'can create a window and renderer pair' do
56
+ pair = SDL2::Window.create_with_renderer(300, 400, 0)
57
+ refute_nil pair
58
+ assert_equal 2, pair.count
59
+ assert_kind_of SDL2::Window, pair[0]
60
+ assert_kind_of SDL2::Renderer, pair[1]
61
+ end
62
+
63
+ it 'can bind a texture' do
64
+ skip 'Texture support not implemented.'
65
+ end
66
+
67
+ it 'has brightness' do
68
+ assert_kind_of Float, @window.brightness
69
+ @window.brightness = 0.85
70
+ assert_in_delta 0.85, @window.brightness, 0.1
71
+ end
72
+
73
+ it 'has many data' do
74
+ assert_respond_to @window, :data
75
+ skip("For now...")
76
+ #assert_respond_to window.data, :count
77
+ #assert window.data.count > 0
78
+ #assert_kind_of FFI::Pointer, window.data
79
+ end
80
+
81
+ it 'has an associated display' do
82
+ assert_kind_of SDL2::Display, @window.display
83
+ end
84
+
85
+ it 'has an associated display mode' do
86
+ assert_kind_of SDL2::Display::Mode, @window.display_mode
87
+ end
88
+
89
+ it 'has associated flags' do
90
+ assert_kind_of Integer, @window.flags
91
+ end
92
+
93
+ it 'has an associated gamma ramp' do
94
+ skip('Not sure how to implement this yet.')
95
+ end
96
+
97
+ it 'has an associated id' do
98
+ assert_kind_of Integer, @window.id
99
+ end
100
+
101
+ it 'has a position' do
102
+ assert_kind_of Array, @window.position
103
+ @window.position = [123,456]
104
+ assert_equal [123,456], @window.position
105
+ end
106
+
107
+ it 'has a surface' do
108
+ assert_kind_of SDL2::Surface, @window.surface
109
+ end
110
+
111
+ it 'can update the window surface' do
112
+ surface = @window.surface
113
+ assert_equal 0, @window.update_surface!
114
+ end
115
+
116
+ it 'can update surface rects' do
117
+ skip('For now, I\'ll handle arrays of rects later.')
118
+ end
119
+
120
+ it 'can be hidden' do
121
+ @window.hide
122
+ skip("Not sure how to test state.")
123
+ end
124
+
125
+ it 'can be shown' do
126
+ @window.show
127
+ skip("Not sure how to test state.")
128
+ end
129
+
130
+ it 'can be maximized' do
131
+ @window.maximize
132
+ skip("Not sure how to test state.")
133
+ end
134
+
135
+ it 'can be minimized' do
136
+ @window.minimize
137
+ skip("Not sure how to test state.")
138
+ end
139
+
140
+ it 'can be restored' do
141
+ @window.restore
142
+ skip("Not sure how to test state.")
143
+ end
144
+
145
+ it 'can be raised above other windows' do
146
+ @window.raise_above
147
+ skip("Not sure how to test state.")
148
+ end
149
+
150
+ it 'can be set to fullscreen' do
151
+ assert_equal 0, @window.flags & SDL2::Window::FULLSCREEN_DESKTOP
152
+ @window.fullscreen = SDL2::Window::FULLSCREEN_DESKTOP
153
+ refute_equal 0, @window.flags & SDL2::Window::FULLSCREEN_DESKTOP
154
+ end
155
+
156
+
157
+
158
+ end
@@ -0,0 +1,16 @@
1
+ require_relative '../test_helper'
2
+
3
+ require 'sdl2'
4
+
5
+ require 'pry'
6
+
7
+ describe SDL2 do
8
+ it 'loads at all' do
9
+ assert true # if we got this far without exceptions.
10
+ end
11
+
12
+ it 'has FloatStruct for float typed pointers' do
13
+ assert defined?(SDL2::FloatStruct)
14
+ end
15
+
16
+ end
metadata ADDED
@@ -0,0 +1,280 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sdl2_ffi
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - BadQuanta
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-09-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ffi
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: yinum
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: activesupport
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1.3'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '1.3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 5.0.7
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 5.0.7
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: guard
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: guard-minitest
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ description: 'Foreign Function Interface to SDL2 in Ruby '
140
+ email:
141
+ - BadQuanta@Gmail.com
142
+ executables:
143
+ - coderay
144
+ - guard
145
+ - pry
146
+ - rake
147
+ - thor
148
+ extensions: []
149
+ extra_rdoc_files: []
150
+ files:
151
+ - .gitignore
152
+ - .ruby-gemset
153
+ - .ruby-version
154
+ - Gemfile
155
+ - Guardfile
156
+ - LICENSE.txt
157
+ - README.md
158
+ - Rakefile
159
+ - bin/coderay
160
+ - bin/guard
161
+ - bin/pry
162
+ - bin/rake
163
+ - bin/thor
164
+ - lib/sdl2.rb
165
+ - lib/sdl2/assert.rb
166
+ - lib/sdl2/audio.rb
167
+ - lib/sdl2/clipboard.rb
168
+ - lib/sdl2/color.rb
169
+ - lib/sdl2/cpuinfo.rb
170
+ - lib/sdl2/display.rb
171
+ - lib/sdl2/display/mode.rb
172
+ - lib/sdl2/display/modes.rb
173
+ - lib/sdl2/error.rb
174
+ - lib/sdl2/events.rb
175
+ - lib/sdl2/gamecontroller.rb
176
+ - lib/sdl2/gem_version.rb
177
+ - lib/sdl2/gesture.rb
178
+ - lib/sdl2/haptic.rb
179
+ - lib/sdl2/hints.rb
180
+ - lib/sdl2/init.rb
181
+ - lib/sdl2/joystick.rb
182
+ - lib/sdl2/keyboard.rb
183
+ - lib/sdl2/keycode.rb
184
+ - lib/sdl2/log.rb
185
+ - lib/sdl2/mouse.rb
186
+ - lib/sdl2/palette.rb
187
+ - lib/sdl2/pixel_format.rb
188
+ - lib/sdl2/pixels.rb
189
+ - lib/sdl2/point.rb
190
+ - lib/sdl2/power.rb
191
+ - lib/sdl2/rect.rb
192
+ - lib/sdl2/render.rb
193
+ - lib/sdl2/renderer.rb
194
+ - lib/sdl2/renderer_info.rb
195
+ - lib/sdl2/rwops.rb
196
+ - lib/sdl2/scancode.rb
197
+ - lib/sdl2/sdl_module.rb
198
+ - lib/sdl2/surface.rb
199
+ - lib/sdl2/syswm.rb
200
+ - lib/sdl2/syswm/info.rb
201
+ - lib/sdl2/syswm/msg.rb
202
+ - lib/sdl2/texture.rb
203
+ - lib/sdl2/timer.rb
204
+ - lib/sdl2/touch.rb
205
+ - lib/sdl2/version.rb
206
+ - lib/sdl2/video.rb
207
+ - lib/sdl2/window.rb
208
+ - lib/sdl2_ffi.rb
209
+ - sdl2_ffi.gemspec
210
+ - test/test_helper.rb
211
+ - test/unit/sdl2/test_assert.rb
212
+ - test/unit/sdl2/test_audio.rb
213
+ - test/unit/sdl2/test_clipboard.rb
214
+ - test/unit/sdl2/test_cpuinfo.rb
215
+ - test/unit/sdl2/test_error.rb
216
+ - test/unit/sdl2/test_events.rb
217
+ - test/unit/sdl2/test_haptic.rb
218
+ - test/unit/sdl2/test_hints.rb
219
+ - test/unit/sdl2/test_init.rb
220
+ - test/unit/sdl2/test_keyboard.rb
221
+ - test/unit/sdl2/test_log.rb
222
+ - test/unit/sdl2/test_pixels.rb
223
+ - test/unit/sdl2/test_power.rb
224
+ - test/unit/sdl2/test_rect.rb
225
+ - test/unit/sdl2/test_render.rb
226
+ - test/unit/sdl2/test_surface.rb
227
+ - test/unit/sdl2/test_syswm.rb
228
+ - test/unit/sdl2/test_timer.rb
229
+ - test/unit/sdl2/test_version.rb
230
+ - test/unit/sdl2/test_video.rb
231
+ - test/unit/sdl2/test_window.rb
232
+ - test/unit/test_sdl2.rb
233
+ homepage: https://github.com/BadQuanta/sdl2_ffi
234
+ licenses:
235
+ - MIT
236
+ metadata: {}
237
+ post_install_message:
238
+ rdoc_options: []
239
+ require_paths:
240
+ - lib
241
+ required_ruby_version: !ruby/object:Gem::Requirement
242
+ requirements:
243
+ - - '>='
244
+ - !ruby/object:Gem::Version
245
+ version: '0'
246
+ required_rubygems_version: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - '>='
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ requirements: []
252
+ rubyforge_project:
253
+ rubygems_version: 2.0.3
254
+ signing_key:
255
+ specification_version: 4
256
+ summary: Object Oriented wrapper for SDL2. Help me test & debug my interface.
257
+ test_files:
258
+ - test/test_helper.rb
259
+ - test/unit/sdl2/test_assert.rb
260
+ - test/unit/sdl2/test_audio.rb
261
+ - test/unit/sdl2/test_clipboard.rb
262
+ - test/unit/sdl2/test_cpuinfo.rb
263
+ - test/unit/sdl2/test_error.rb
264
+ - test/unit/sdl2/test_events.rb
265
+ - test/unit/sdl2/test_haptic.rb
266
+ - test/unit/sdl2/test_hints.rb
267
+ - test/unit/sdl2/test_init.rb
268
+ - test/unit/sdl2/test_keyboard.rb
269
+ - test/unit/sdl2/test_log.rb
270
+ - test/unit/sdl2/test_pixels.rb
271
+ - test/unit/sdl2/test_power.rb
272
+ - test/unit/sdl2/test_rect.rb
273
+ - test/unit/sdl2/test_render.rb
274
+ - test/unit/sdl2/test_surface.rb
275
+ - test/unit/sdl2/test_syswm.rb
276
+ - test/unit/sdl2/test_timer.rb
277
+ - test/unit/sdl2/test_version.rb
278
+ - test/unit/sdl2/test_video.rb
279
+ - test/unit/sdl2/test_window.rb
280
+ - test/unit/test_sdl2.rb