sdl2_ffi 0.0.6 → 0.0.7

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 (204) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/Gemfile +0 -6
  4. data/Guardfile +0 -45
  5. data/README.md +11 -21
  6. data/lib/bad_sdl.rb +4 -0
  7. data/lib/{sdl2 → bad_sdl}/application.rb +47 -35
  8. data/lib/{sdl2 → bad_sdl}/engine.rb +20 -3
  9. data/lib/{sdl2 → bad_sdl}/engine/block_engine.rb +2 -2
  10. data/lib/bad_sdl/engine/engines.rb +51 -0
  11. data/lib/enumerable_constants.rb +4 -2
  12. data/lib/sdl2.rb +26 -247
  13. data/lib/sdl2/blendmode.rb +18 -0
  14. data/lib/sdl2/color.rb +1 -3
  15. data/lib/sdl2/debug.rb +58 -0
  16. data/lib/sdl2/display.rb +30 -23
  17. data/lib/sdl2/error.rb +6 -4
  18. data/lib/sdl2/event.rb +229 -0
  19. data/lib/sdl2/event/abstract.rb +11 -0
  20. data/lib/sdl2/event/action.rb +19 -0
  21. data/lib/sdl2/event/common.rb +10 -0
  22. data/lib/sdl2/event/controller_axis.rb +20 -0
  23. data/lib/sdl2/event/controller_button.rb +17 -0
  24. data/lib/sdl2/event/controller_device.rb +14 -0
  25. data/lib/sdl2/event/dollar_gesture.rb +19 -0
  26. data/lib/sdl2/event/drop.rb +18 -0
  27. data/lib/sdl2/event/joy_axis.rb +20 -0
  28. data/lib/sdl2/event/joy_ball.rb +20 -0
  29. data/lib/sdl2/event/joy_button.rb +18 -0
  30. data/lib/sdl2/event/joy_device.rb +14 -0
  31. data/lib/sdl2/event/joy_hat.rb +18 -0
  32. data/lib/sdl2/event/keyboard.rb +18 -0
  33. data/lib/sdl2/event/mouse_button.rb +21 -0
  34. data/lib/sdl2/event/mouse_motion.rb +19 -0
  35. data/lib/sdl2/event/mouse_wheel.rb +17 -0
  36. data/lib/sdl2/event/multi_gesture.rb +20 -0
  37. data/lib/sdl2/event/os.rb +12 -0
  38. data/lib/sdl2/event/quit.rb +12 -0
  39. data/lib/sdl2/event/state.rb +13 -0
  40. data/lib/sdl2/event/sys_wm.rb +15 -0
  41. data/lib/sdl2/event/text_editing.rb +17 -0
  42. data/lib/sdl2/event/text_input.rb +15 -0
  43. data/lib/sdl2/event/touch_finger.rb +20 -0
  44. data/lib/sdl2/event/type.rb +62 -0
  45. data/lib/sdl2/event/user.rb +15 -0
  46. data/lib/sdl2/event/window.rb +19 -0
  47. data/lib/sdl2/events.rb +23 -538
  48. data/lib/sdl2/gem_version.rb +1 -1
  49. data/lib/sdl2/haptic.rb +3 -3
  50. data/lib/sdl2/hints.rb +3 -1
  51. data/lib/sdl2/image.rb +20 -20
  52. data/lib/sdl2/init.rb +5 -8
  53. data/lib/sdl2/joystick.rb +104 -78
  54. data/lib/sdl2/joystick/axes.rb +22 -0
  55. data/lib/sdl2/joystick/balls.rb +24 -0
  56. data/lib/sdl2/joystick/buttons.rb +22 -0
  57. data/lib/sdl2/joystick/components.rb +23 -0
  58. data/lib/sdl2/joystick/hats.rb +22 -0
  59. data/lib/sdl2/keyboard.rb +11 -10
  60. data/lib/sdl2/keycode.rb +70 -70
  61. data/lib/sdl2/library.rb +8 -7
  62. data/lib/sdl2/log.rb +6 -0
  63. data/lib/sdl2/managed_struct.rb +17 -0
  64. data/lib/sdl2/mixer.rb +16 -12
  65. data/lib/sdl2/mixer/chunk.rb +14 -3
  66. data/lib/sdl2/mouse.rb +21 -41
  67. data/lib/sdl2/pixel_format.rb +4 -4
  68. data/lib/sdl2/pixels.rb +59 -47
  69. data/lib/sdl2/power.rb +1 -1
  70. data/lib/sdl2/rect.rb +4 -5
  71. data/lib/sdl2/render.rb +85 -170
  72. data/lib/sdl2/renderer.rb +337 -20
  73. data/lib/sdl2/rwops.rb +89 -30
  74. data/lib/sdl2/stdinc.rb +18 -21
  75. data/lib/sdl2/struct.rb +184 -0
  76. data/lib/sdl2/struct_helper.rb +32 -0
  77. data/lib/sdl2/surface.rb +15 -14
  78. data/lib/sdl2/syswm.rb +26 -10
  79. data/lib/sdl2/syswm/msg.rb +22 -4
  80. data/lib/sdl2/texture.rb +106 -0
  81. data/lib/sdl2/touch.rb +16 -20
  82. data/lib/sdl2/ttf.rb +29 -29
  83. data/lib/sdl2/ttf/sdl_ttf_module.rb +1 -1
  84. data/lib/sdl2/typed_pointer.rb +45 -0
  85. data/lib/sdl2/union.rb +7 -0
  86. data/lib/sdl2/video.rb +97 -183
  87. data/lib/sdl2/window.rb +140 -90
  88. data/lib/struct_array.rb +42 -0
  89. data/sdl2_ffi.gemspec +3 -3
  90. data/spec/fixtures/approvals/lazyfoonet_lesson_03_advanced_timers/has_a_message.approved.png +0 -0
  91. data/spec/fixtures/approvals/lazyfoonet_lesson_07_true_type_fonts/draws_the_message_to_the_screen.approved.png +0 -0
  92. data/spec/fixtures/approvals/lazyfoonet_lesson_14_advanced_timers/has_a_message.approved.png +0 -0
  93. data/spec/fixtures/approvals/lazyfoonet_lesson_14_advanced_timers/has_drawn_something.approved.png +0 -0
  94. data/spec/fixtures/approvals/sdl2/sdl2_renderer/should_be_able_to_clear.approved.png +0 -0
  95. data/spec/fixtures/approvals/sdl2/sdl2_renderer/should_be_able_to_draw_a_line_connecting_many_points.approved.png +0 -0
  96. data/spec/fixtures/approvals/sdl2/sdl2_renderer/should_be_able_to_draw_a_point.approved.png +0 -0
  97. data/spec/fixtures/approvals/sdl2/sdl2_renderer/should_be_able_to_draw_a_single_filled_rectangle.approved.png +0 -0
  98. data/spec/fixtures/approvals/sdl2/sdl2_renderer/should_be_able_to_draw_a_single_pixel_line.approved.png +0 -0
  99. data/spec/fixtures/approvals/sdl2/sdl2_renderer/should_be_able_to_draw_a_single_rectangle.approved.png +0 -0
  100. data/spec/fixtures/approvals/sdl2/sdl2_renderer/should_be_able_to_draw_many_filled_rectangles.approved.png +0 -0
  101. data/spec/fixtures/approvals/sdl2/sdl2_renderer/should_be_able_to_draw_many_rectangles_at_once.approved.png +0 -0
  102. data/spec/fixtures/approvals/sdl2/sdl2_renderer/should_be_able_to_draw_points.approved.png +0 -0
  103. data/spec/fixtures/approvals/sdl2/sdl2_renderer/should_be_able_to_render_textures.approved.png +0 -0
  104. data/spec/fixtures/approvals/sdl2/sdl2_renderer/should_be_able_to_rotate_and_flip_while_rendering_textures.approved.png +0 -0
  105. data/spec/fixtures/approvals/sdl2/sdl2_renderer/should_have_a_clip_rect.approved.png +0 -0
  106. data/spec/fixtures/approvals/sdl2_renderer/should_be_able_to_clear.approved.png +0 -0
  107. data/spec/fixtures/approvals/sdl2_renderer/should_be_able_to_draw_a_line_connecting_many_points.approved.png +0 -0
  108. data/spec/fixtures/approvals/sdl2_renderer/should_be_able_to_draw_a_point.approved.png +0 -0
  109. data/spec/fixtures/approvals/sdl2_renderer/should_be_able_to_draw_a_single_filled_rectangle.approved.png +0 -0
  110. data/spec/fixtures/approvals/sdl2_renderer/should_be_able_to_draw_a_single_pixel_line.approved.png +0 -0
  111. data/spec/fixtures/approvals/sdl2_renderer/should_be_able_to_draw_a_single_rectangle.approved.png +0 -0
  112. data/spec/fixtures/approvals/sdl2_renderer/should_be_able_to_draw_many_filled_rectangles.approved.png +0 -0
  113. data/spec/fixtures/approvals/sdl2_renderer/should_be_able_to_draw_many_rectangles_at_once.approved.png +0 -0
  114. data/spec/fixtures/approvals/sdl2_renderer/should_be_able_to_draw_points.approved.png +0 -0
  115. data/spec/fixtures/approvals/sdl2_renderer/should_be_able_to_render_textures.approved.png +0 -0
  116. data/spec/fixtures/approvals/sdl2_renderer/should_be_able_to_rotate_and_flip_while_rendering_textures.approved.png +0 -0
  117. data/spec/fixtures/approvals/sdl2_renderer/should_have_a_clip_rect.approved.png +0 -0
  118. data/spec/fixtures/images/finger.png +0 -0
  119. data/spec/fixtures/music/beat.wav +0 -0
  120. data/spec/fixtures/sounds/high.wav +0 -0
  121. data/spec/fixtures/sounds/low.wav +0 -0
  122. data/spec/fixtures/sounds/medium.wav +0 -0
  123. data/spec/fixtures/sounds/scratch.wav +0 -0
  124. data/spec/functional/lazy_foo_tutorial/lazy_foo_01_hello_world_spec.rb +4 -6
  125. data/spec/functional/lazy_foo_tutorial/lazy_foo_02_optimized_images_spec.rb +3 -4
  126. data/spec/functional/lazy_foo_tutorial/lazy_foo_03_extension_libraries_spec.rb +2 -2
  127. data/spec/functional/lazy_foo_tutorial/lazy_foo_04_event_driven_programming_spec.rb +3 -3
  128. data/spec/functional/lazy_foo_tutorial/lazy_foo_05_color_keying_spec.rb +1 -1
  129. data/spec/functional/lazy_foo_tutorial/lazy_foo_06_clip_blitting_and_sprite_sheets_spec.rb +1 -1
  130. data/spec/functional/lazy_foo_tutorial/lazy_foo_07_true_type_fonts_spec.rb +3 -2
  131. data/spec/functional/lazy_foo_tutorial/lazy_foo_08_key_presses_spec.rb +9 -7
  132. data/spec/functional/lazy_foo_tutorial/lazy_foo_09_mouse_events_spec.rb +11 -8
  133. data/spec/functional/lazy_foo_tutorial/lazy_foo_10_key_states_spec.rb +5 -4
  134. data/spec/functional/lazy_foo_tutorial/lazy_foo_11_playing_sounds_spec.rb +17 -9
  135. data/spec/functional/lazy_foo_tutorial/lazy_foo_12_timing_spec.rb +8 -7
  136. data/spec/functional/lazy_foo_tutorial/lazy_foo_13_advanced_timers_spec.rb +85 -0
  137. data/spec/functional/lazy_foo_tutorial/lazy_foo_14_regulating_frame_rate_spec.rb +67 -0
  138. data/spec/functional/lazy_foo_tutorial/lazy_foo_15_calculating_frame_rate_spec.rb +48 -0
  139. data/spec/functional/lazy_foo_tutorial/lazy_foo_16_motion_spec.rb +95 -0
  140. data/spec/functional/lazy_foo_tutorial/lazy_foo_helper.rb +3 -1
  141. data/spec/functional/lazy_foo_tutorial/timer.rb +55 -0
  142. data/spec/lib/bad_sdl/application_spec.rb +22 -0
  143. data/spec/{unit → lib}/sdl2/color_spec.rb +5 -1
  144. data/spec/lib/sdl2/display_spec.rb +6 -0
  145. data/spec/lib/sdl2/event_spec.rb +102 -0
  146. data/spec/lib/sdl2/events_spec.rb +12 -0
  147. data/spec/lib/sdl2/joystick_spec.rb +130 -0
  148. data/spec/lib/sdl2/keyboard_spec.rb +22 -0
  149. data/spec/lib/sdl2/mouse_spec.rb +21 -0
  150. data/spec/lib/sdl2/render_spec.rb +62 -0
  151. data/spec/lib/sdl2/renderer_spec.rb +224 -0
  152. data/spec/lib/sdl2/sdl2_helper.rb +5 -0
  153. data/spec/lib/sdl2/texture_spec.rb +65 -0
  154. data/{test/unit/sdl2/test_video.rb → spec/lib/sdl2/video_spec.rb} +82 -57
  155. data/spec/lib/sdl2/window_spec.rb +42 -0
  156. data/spec/{unit → lib}/unit_helper.rb +0 -0
  157. data/spec/png_writer.rb +9 -1
  158. data/spec/spec_helper.rb +5 -3
  159. metadata +201 -132
  160. data/lib/sdl2/engine/engines.rb +0 -46
  161. data/test/approvals/clip_blitting_and_sprite_sheets.received.bmp +0 -0
  162. data/test/approvals/color_keying_example.approved.png +0 -0
  163. data/test/approvals/hello_world_example_hello.approved.png +0 -0
  164. data/test/approvals/hello_world_example_screen.approved.png +0 -0
  165. data/test/approvals/optimized_surface_loading.approved.png +0 -0
  166. data/test/fixtures/an_example.png +0 -0
  167. data/test/fixtures/background.bmp +0 -0
  168. data/test/fixtures/background.jpg +0 -0
  169. data/test/fixtures/color_bars.jpg +0 -0
  170. data/test/fixtures/foo.jpg +0 -0
  171. data/test/fixtures/hello.bmp +0 -0
  172. data/test/fixtures/sprites.jpg +0 -0
  173. data/test/fixtures/x.png +0 -0
  174. data/test/functional/examples/lazyfoo.net_s/test_clip_blitting_and_sprite_sheets.rb +0 -50
  175. data/test/functional/examples/lazyfoo.net_s/test_color_keying.rb +0 -42
  176. data/test/functional/examples/test_lazy_foo_examples.rb +0 -195
  177. data/test/functional/examples/test_readme_examples.rb +0 -15
  178. data/test/test_helper.rb +0 -13
  179. data/test/unit/sdl2/test_assert.rb +0 -10
  180. data/test/unit/sdl2/test_audio.rb +0 -9
  181. data/test/unit/sdl2/test_clipboard.rb +0 -13
  182. data/test/unit/sdl2/test_cpuinfo.rb +0 -11
  183. data/test/unit/sdl2/test_error.rb +0 -20
  184. data/test/unit/sdl2/test_events.rb +0 -31
  185. data/test/unit/sdl2/test_haptic.rb +0 -27
  186. data/test/unit/sdl2/test_hints.rb +0 -50
  187. data/test/unit/sdl2/test_image.rb +0 -9
  188. data/test/unit/sdl2/test_init.rb +0 -29
  189. data/test/unit/sdl2/test_keyboard.rb +0 -9
  190. data/test/unit/sdl2/test_log.rb +0 -80
  191. data/test/unit/sdl2/test_palette.rb +0 -26
  192. data/test/unit/sdl2/test_pixel_format.rb +0 -38
  193. data/test/unit/sdl2/test_pixels.rb +0 -24
  194. data/test/unit/sdl2/test_power.rb +0 -11
  195. data/test/unit/sdl2/test_rect.rb +0 -19
  196. data/test/unit/sdl2/test_render.rb +0 -58
  197. data/test/unit/sdl2/test_surface.rb +0 -88
  198. data/test/unit/sdl2/test_syswm.rb +0 -11
  199. data/test/unit/sdl2/test_timer.rb +0 -9
  200. data/test/unit/sdl2/test_ttf.rb +0 -11
  201. data/test/unit/sdl2/test_version.rb +0 -16
  202. data/test/unit/sdl2/test_window.rb +0 -155
  203. data/test/unit/test_scratch.rb +0 -19
  204. data/test/unit/test_sdl2.rb +0 -16
@@ -1,31 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- require 'sdl2/events'
4
-
5
- describe SDL2 do
6
-
7
- it 'has the SDL_events.h API' do
8
- [
9
- :peep_events,
10
- :has_event,
11
- :has_events,
12
- :flush_event,
13
- :flush_events,
14
- :poll_event,
15
- :wait_event,
16
- :wait_event_timeout,
17
- :push_event,
18
- :set_event_filter,
19
- :get_event_filter,
20
- :add_event_watch,
21
- :del_event_watch,
22
- :filter_events,
23
- :event_state,
24
- :register_events
25
- ].each do |function|
26
- assert_respond_to SDL2, function
27
- end
28
-
29
- end
30
-
31
- end
@@ -1,27 +0,0 @@
1
- require_relative '../../test_helper'
2
- require 'sdl2/haptic'
3
-
4
- describe 'SDL2' do
5
-
6
- it 'has the SDL_haptic.h API' do
7
- skip 'Not yet implemented'
8
- end
9
-
10
- it 'can run the documented example: Haptic Direction' do
11
- direction = SDL2::Haptic::Direction.new
12
-
13
- # Cartesian directions
14
- direction.type = SDL2::Haptic::CARTESIAN # Using cartesian direction encoding.
15
- direction.dir[0] = 0 # X position
16
- direction.dir[1] = 1 # Y position
17
-
18
- # Polar directions
19
- direction.type = SDL2::Haptic::POLAR #We'll be using polar direction encoding.
20
- direction.dir[0] = 18000 # Polar only uses first parameter
21
-
22
- # Spherical coordinates
23
- direction.type = SDL2::Haptic::SPHERICAL # Spherical encoding
24
- direction.dir[0] = 9000 # Since we only have two axes we don't need more parameters
25
- end
26
-
27
- end
@@ -1,50 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- require 'sdl2/hints'
4
-
5
- describe SDL2 do
6
-
7
- it 'has hints' do
8
- assert_respond_to SDL2, :clear_hints
9
- assert_respond_to SDL2, :get_hint
10
- assert_respond_to SDL2, :set_hint
11
-
12
- assert_equal 'constant', defined?(SDL2::HINT::FRAMEBUFFER_ACCELERATION)
13
- assert_equal 'constant', defined?(SDL2::HINT::IDLE_TIMER_DISABLED)
14
- assert_equal 'constant', defined?(SDL2::HINT::ORIENTATIONS)
15
- assert_equal 'constant', defined?(SDL2::HINT::RENDER_DRIVER)
16
- assert_equal 'constant', defined?(SDL2::HINT::RENDER_OPENGL_SHADERS)
17
- assert_equal 'constant', defined?(SDL2::HINT::RENDER_SCALE_QUALITY)
18
- assert_equal 'constant', defined?(SDL2::HINT::RENDER_VSYNC)
19
-
20
- assert SDL2.set_hint("My Hint", "My Value")
21
- assert_kind_of String, SDL2.get_hint("My Hint")
22
- assert_equal "My Value", SDL2.get_hint("My Hint")
23
-
24
- [:default, :normal, :override].each do |priority|
25
- assert SDL2.set_hint_with_priority("#{priority}Hint", "#{priority}Value", priority)
26
- end
27
-
28
- end
29
-
30
- describe SDL2::Hint do
31
-
32
- it 'has hash access' do
33
- assert SDL2::Hint.respond_to?(:[])
34
- assert SDL2::Hint.respond_to?(:[]=)
35
-
36
- assert_equal "My Value", SDL2::Hint["My Hint"] = "My Value"
37
- assert_equal "My Value", SDL2::Hint["My Hint"]
38
-
39
- [:default, :normal, :override].each do |priority|
40
- assert_equal "#{priority}Value", SDL2::Hint.set_with_priority("#{priority}Hint","#{priority}Value",priority)
41
- end
42
- end
43
-
44
- end
45
-
46
-
47
-
48
-
49
-
50
- end
@@ -1,9 +0,0 @@
1
- require 'sdl2/image'
2
-
3
- describe SDL2::Image do
4
-
5
- it 'has the SDL_image.h API' do
6
- skip "Not yet implemented"
7
- end
8
-
9
- end
@@ -1,29 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- require 'sdl2/init'
4
-
5
- describe SDL2 do
6
-
7
- after do
8
- SDL2.quit()
9
- end
10
-
11
- it 'can initialize everything' do
12
- assert_equal SDL2.init(SDL2::INIT::EVERYTHING), 0
13
- end
14
-
15
- it 'can initialize, check, and quit subsystems' do
16
- assert_equal SDL2.init(SDL2::INIT::VIDEO), 0 # Only turn on video.
17
- assert SDL2.was_init(SDL2::INIT::VIDEO) != 0, 'Video is initialized.'
18
- refute SDL2.was_init(SDL2::INIT::AUDIO) != 0, 'Audio is not initialized'
19
- assert_equal SDL2.init_sub_system(SDL2::INIT::AUDIO), 0 #Then turn on audio.
20
- assert SDL2.was_init(SDL2::INIT::AUDIO) != 0, 'Audio is initialized.'
21
- SDL2.quit_sub_system(SDL2::INIT::VIDEO)
22
- refute SDL2.was_init(SDL2::INIT::VIDEO) != 0, 'Video is not initialized'
23
- end
24
-
25
- it 'can quit' do
26
- assert SDL2.respond_to?(:quit)
27
- end
28
-
29
- end
@@ -1,9 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- require 'sdl2/keyboard'
4
-
5
- describe SDL2 do
6
-
7
-
8
-
9
- end
@@ -1,80 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- require 'sdl2/init'
4
- require 'sdl2/log'
5
-
6
-
7
- describe SDL2 do
8
- before do
9
- SDL2.init(SDL2::INIT::EVERYTHING)
10
- end
11
-
12
- after do
13
- SDL2.quit()
14
- end
15
- it 'has the log API' do
16
- [
17
- :log, :log_critical, :log_debug, :log_error, :log_get_output_function,
18
- :log_get_priority, :log_info, :log_message, :log_message_v, :log_reset_priorities,
19
- :log_set_all_priority, :log_set_output_function, :log_set_priority, :log_verbose, :log_warn
20
- ].each do |function|
21
- assert_respond_to SDL2, function
22
- end
23
- end
24
-
25
- it 'logs messages' do
26
- SDL2.log('Hello World %d', :int, 6384) # API Version
27
- SDL2::Log << 'Hello World' # Object Oriented Version
28
-
29
- SDL2.log_critical(:application, 'Test %d', :int, 1234)
30
- SDL2::Log.critical(:error, 'Test %f', :float, 2.0)
31
-
32
- SDL2.log_debug(:assert, 'Test %s', :string, 'String')
33
- SDL2::Log.debug(:system, 'Test %c', :char, 'C'.chr().to_i)
34
-
35
- SDL2.log_error(:audio, 'Test %d', :int, 2)
36
- SDL2::Log.error(:video, 'Test %f', :float, 63.84)
37
-
38
- SDL2.log_warn(:render, 'Test %d', :int, 6)
39
- SDL2::Log.warn(:input, 'Test %f', :float, 88.21212)
40
-
41
- SDL2.log_verbose(:input, 'Test %d', :int, 8)
42
- SDL2::Log.verbose(:test, 'Test %f', :float, 1234.5)
43
-
44
- end
45
- #
46
- # it 'lets you get the output function and data pointer' do
47
- #
48
- #
49
- # end
50
- # @@called = false
51
- # TestFunc = Proc.new do ||
52
- # puts "Test Function Called!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
53
- # @@called = true
54
- # end
55
- #
56
- # TEST_DATA = FFI::Pointer.new :string, 1
57
- #
58
- #
59
- # it 'lets you set the output function and data pointer' do
60
- # SDL2.log_set_output_function(TestFunc, TEST_DATA)
61
- # end
62
- #
63
- it 'lets you set the log priority' do
64
- [
65
- :application, :error, :assert, :system,
66
- :audio, :video, :render, :input, :test, :custom
67
- ].each do |category|
68
- [
69
- :verbose, :debug, :info, :warn, :error, :critical
70
- ].each do |priority|
71
- SDL2::Log.set_priority(category, priority)
72
- assert_equal priority, SDL2::Log.get_priority(category)
73
- end
74
-
75
- end
76
- SDL2::Log.set_priority(:application, :verbose)
77
-
78
- end
79
-
80
- end
@@ -1,26 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- require 'sdl2/pixels' #defines SDL_Palette
4
-
5
- describe SDL2::Palette do
6
-
7
- before do
8
- @palette = SDL2::Palette.create(32)
9
- end
10
-
11
- after do
12
- SDL2::Palette.release(@palette)
13
- end
14
-
15
- it 'can be created' do
16
- refute @palette.null?
17
- end
18
-
19
- it 'can set colors from a ruby array of arrays' do
20
- @palette.set_colors([[255,0,0],[0,255,0],[0,0,255]])
21
- end
22
-
23
-
24
-
25
-
26
- end
@@ -1,38 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- require 'sdl2/pixels' # SDL_pixels.h defines SDL_PixelFormat
4
-
5
- require 'sdl2/pixel_format'
6
-
7
- describe SDL2::PixelFormat do
8
-
9
- it 'can be created in all formats' do
10
-
11
- SDL2::PIXELFORMAT.by_name.each do |format|
12
- unless format == 0 # Skip "UNKOWN"
13
- begin
14
- pixel_format = SDL2::PixelFormat.create(format[1])
15
- refute pixel_format.null?
16
- assert_kind_of SDL2::PixelFormat, pixel_format
17
- rescue RuntimeError => e
18
- skip "Problem with SDL2::PIXELFORMAT.#{format[0]}" #TODO: Fix broken PIXELFORMATS
19
- end
20
- end
21
-
22
- end
23
-
24
- end
25
-
26
-
27
- it 'can get the name of all formats' do
28
-
29
- SDL2::PIXELFORMAT.by_name.each_pair do |k,v|
30
- name = SDL2::PixelFormat.get_name(v)
31
- #binding.pry
32
- assert_includes name, k.to_s
33
- end
34
- end
35
-
36
-
37
-
38
- end
@@ -1,24 +0,0 @@
1
- require_relative '../../test_helper'
2
- require 'sdl2/pixels'
3
-
4
- describe SDL2 do
5
- it 'should have the SDL_pixels.h API' do
6
- [
7
- :get_pixel_format_name,
8
- :pixel_format_enum_to_masks,
9
- :masks_to_pixel_format_enum,
10
- :alloc_format,
11
- :free_format,
12
- :alloc_palette,
13
- :set_pixel_format_palette,
14
- :set_palette_colors,
15
- :free_palette,
16
- :map_rgb,
17
- :map_rgba,
18
- :get_rgb,
19
- :get_rgba,
20
- ].each do |function|
21
- assert_respond_to SDL2, function
22
- end
23
- end
24
- end
@@ -1,11 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- require 'sdl2/power'
4
-
5
- describe SDL2 do
6
-
7
- it 'has the SDL_power.h API' do
8
- assert_respond_to SDL2, :get_power_info
9
- end
10
-
11
- end
@@ -1,19 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- require 'sdl2/rect'
4
-
5
- describe SDL2 do
6
-
7
- it 'has the SDL_rect.h API' do
8
- [
9
- :has_intersection,
10
- :intersect_rect,
11
- :enclose_points,
12
- :intersect_rect_and_line
13
- ].each do |function|
14
- assert_respond_to SDL2, function
15
- end
16
-
17
- end
18
-
19
- end
@@ -1,58 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- require 'sdl2/render'
4
-
5
- describe SDL2 do
6
- SDL_render_H_API = [
7
- :create_renderer,
8
- :create_software_renderer,
9
- :create_texture,
10
- :create_texture_from_surface,
11
- :create_window_and_renderer,
12
- :destroy_renderer,
13
- :destroy_texture,
14
- :get_num_render_drivers,
15
- :get_render_draw_blend_mode,
16
- :get_render_draw_color,
17
- :get_render_driver_info,
18
- :get_renderer,
19
- :get_renderer_info,
20
- :get_texture_alpha_mod,
21
- :get_texture_blend_mode,
22
- :get_texture_color_mod,
23
- :lock_texture,
24
- :query_texture,
25
- :render_clear,
26
- :render_copy,
27
- :render_copy_ex,
28
- :render_draw_line,
29
- :render_draw_lines,
30
- :render_draw_point,
31
- :render_draw_points,
32
- :render_draw_rect,
33
- :render_draw_rects,
34
- :render_fill_rect,
35
- :render_fill_rects,
36
- :render_get_clip_rect,
37
- :render_get_viewport,
38
- :render_present,
39
- :render_read_pixels,
40
- :render_set_clip_rect,
41
- :render_set_viewport,
42
- :set_render_draw_blend_mode,
43
- :set_render_draw_color,
44
- :set_render_target,
45
- :set_texture_alpha_mod,
46
- :set_texture_blend_mode,
47
- :set_texture_color_mod,
48
- :unlock_texture,
49
- :update_texture
50
- ]
51
-
52
- it 'has the SDL_render.h api' do
53
- assert_equal 43, SDL_render_H_API.count
54
- SDL_render_H_API.each do |function|
55
- assert_respond_to SDL2, function
56
- end
57
- end
58
- end
@@ -1,88 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- require 'sdl2/surface'
4
-
5
- describe SDL2 do
6
- it 'has the SDL_surface.h API' do
7
- [
8
- :create_rgb_surface,
9
- :free_surface,
10
- :set_surface_palette,
11
- :lock_surface,
12
- :unlock_surface,
13
- :load_bmp_rw,
14
- :load_bmp,
15
- :save_bmp_rw,
16
- :save_bmp,
17
- :set_surface_rle,
18
- :set_color_key,
19
- :get_color_key,
20
- :set_surface_color_mod,
21
- :get_surface_color_mod,
22
- :set_surface_alpha_mod,
23
- :get_surface_alpha_mod,
24
- :set_surface_blend_mode,
25
- :get_surface_blend_mode,
26
- :set_clip_rect,
27
- :get_clip_rect,
28
- :convert_surface,
29
- :convert_surface_format,
30
- :convert_pixels,
31
- :fill_rect,
32
- :fill_rects,
33
- :upper_blit,
34
- :blit_surface,
35
- :lower_blit,
36
- :soft_stretch,
37
- :upper_blit_scaled,
38
- :blit_scaled,
39
- :lower_blit_scaled,
40
- ].each do |function|
41
- assert_respond_to SDL2, function
42
- end
43
- end
44
- end
45
-
46
- describe SDL2::Surface do
47
-
48
- it 'rejects invalid pixel formats' do
49
- assert_raises RuntimeError do
50
- # Try to create a 64bit depth image
51
- SDL2::Surface.create_rgb(0, 100, 100, 64)
52
- end
53
- end
54
-
55
- it 'can be created with valid arguments' do
56
- surfaces =
57
- [
58
- SDL2::Surface.create_rgb(0, 100, 100, 4),
59
- SDL2::Surface.create_rgb(0, 100, 100, 8),
60
- SDL2::Surface.create_rgb(0,100,100,16)
61
- ]
62
- surfaces.each do |surface|
63
- refute surface.null?
64
- assert_kind_of SDL2::Surface, surface
65
- end
66
- assert_equal 4, surfaces[0].format.bits_per_pixel
67
- assert_equal 8, surfaces[1].format.bits_per_pixel
68
- assert_equal 16, surfaces[2].format.bits_per_pixel
69
- end
70
-
71
- it 'can be freed' do
72
- surface = SDL2::Surface.create_rgb(0, 100, 100, 4)
73
- surface.free
74
- skip("Don't know how to test this")
75
- end
76
-
77
- it 'can get and set the palette' do
78
- surface = SDL2::Surface.create_rgb(0, 100, 100, 4)
79
- surface_palette = surface.palette
80
- assert_kind_of SDL2::Palette, surface_palette
81
- my_palette = SDL2::Palette.create(16)
82
-
83
-
84
- surface.palette = my_palette
85
-
86
- assert_equal my_palette, surface.palette
87
- end
88
- end