sdl2-bindings 0.0.6 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +25 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +38 -19
  5. data/lib/sdl2.rb +56 -99
  6. data/lib/sdl2_audio.rb +62 -20
  7. data/lib/sdl2_blendmode.rb +28 -25
  8. data/lib/sdl2_clipboard.rb +9 -4
  9. data/lib/sdl2_cpuinfo.rb +31 -8
  10. data/lib/sdl2_error.rb +17 -10
  11. data/lib/sdl2_events.rb +152 -130
  12. data/lib/sdl2_filesystem.rb +8 -4
  13. data/lib/sdl2_framerate.rb +11 -4
  14. data/lib/sdl2_gamecontroller.rb +130 -55
  15. data/lib/sdl2_gesture.rb +10 -4
  16. data/lib/sdl2_gfxPrimitives.rb +65 -4
  17. data/lib/sdl2_haptic.rb +76 -44
  18. data/lib/sdl2_hidapi.rb +139 -0
  19. data/lib/sdl2_hints.rb +146 -113
  20. data/lib/sdl2_image.rb +54 -7
  21. data/lib/sdl2_imageFilter.rb +36 -4
  22. data/lib/sdl2_joystick.rb +102 -38
  23. data/lib/sdl2_keyboard.rb +23 -5
  24. data/lib/sdl2_keycode.rb +8 -5
  25. data/lib/sdl2_log.rb +48 -32
  26. data/lib/sdl2_main.rb +21 -14
  27. data/lib/sdl2_messagebox.rb +26 -22
  28. data/lib/sdl2_misc.rb +48 -0
  29. data/lib/sdl2_mixer.rb +86 -11
  30. data/lib/sdl2_mouse.rb +44 -25
  31. data/lib/sdl2_pixels.rb +115 -99
  32. data/lib/sdl2_platform.rb +7 -4
  33. data/lib/sdl2_power.rb +12 -9
  34. data/lib/sdl2_rect.rb +18 -11
  35. data/lib/sdl2_render.rb +135 -21
  36. data/lib/sdl2_rotozoom.rb +14 -4
  37. data/lib/sdl2_rwops.rb +69 -39
  38. data/lib/sdl2_scancode.rb +250 -248
  39. data/lib/sdl2_sensor.rb +115 -0
  40. data/lib/sdl2_shape.rb +17 -11
  41. data/lib/sdl2_stdinc.rb +213 -42
  42. data/lib/sdl2_surface.rb +62 -15
  43. data/lib/sdl2_syswm.rb +47 -41
  44. data/lib/sdl2_timer.rb +16 -4
  45. data/lib/sdl2_touch.rb +18 -9
  46. data/lib/sdl2_ttf.rb +180 -25
  47. data/lib/sdl2_version.rb +13 -8
  48. data/lib/sdl2_video.rb +232 -103
  49. data/lib/sdl2_vulkan.rb +12 -4
  50. metadata +21 -4
@@ -0,0 +1,139 @@
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 SDL
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+
14
+ # Enum
15
+
16
+
17
+ # Typedef
18
+
19
+
20
+ # Struct
21
+
22
+ class Hid_device_info < FFI::Struct
23
+ layout(
24
+ :path, :pointer,
25
+ :vendor_id, :ushort,
26
+ :product_id, :ushort,
27
+ :serial_number, :pointer,
28
+ :release_number, :ushort,
29
+ :manufacturer_string, :pointer,
30
+ :product_string, :pointer,
31
+ :usage_page, :ushort,
32
+ :usage, :ushort,
33
+ :interface_number, :int,
34
+ :interface_class, :int,
35
+ :interface_subclass, :int,
36
+ :interface_protocol, :int,
37
+ :next, :pointer,
38
+ )
39
+ end
40
+
41
+
42
+ # Function
43
+
44
+ def self.setup_hidapi_symbols(output_error = false)
45
+ symbols = [
46
+ :SDL_hid_init,
47
+ :SDL_hid_exit,
48
+ :SDL_hid_device_change_count,
49
+ :SDL_hid_enumerate,
50
+ :SDL_hid_free_enumeration,
51
+ :SDL_hid_open,
52
+ :SDL_hid_open_path,
53
+ :SDL_hid_write,
54
+ :SDL_hid_read_timeout,
55
+ :SDL_hid_read,
56
+ :SDL_hid_set_nonblocking,
57
+ :SDL_hid_send_feature_report,
58
+ :SDL_hid_get_feature_report,
59
+ :SDL_hid_close,
60
+ :SDL_hid_get_manufacturer_string,
61
+ :SDL_hid_get_product_string,
62
+ :SDL_hid_get_serial_number_string,
63
+ :SDL_hid_get_indexed_string,
64
+ :SDL_hid_ble_scan,
65
+ ]
66
+ apis = {
67
+ :SDL_hid_init => :hid_init,
68
+ :SDL_hid_exit => :hid_exit,
69
+ :SDL_hid_device_change_count => :hid_device_change_count,
70
+ :SDL_hid_enumerate => :hid_enumerate,
71
+ :SDL_hid_free_enumeration => :hid_free_enumeration,
72
+ :SDL_hid_open => :hid_open,
73
+ :SDL_hid_open_path => :hid_open_path,
74
+ :SDL_hid_write => :hid_write,
75
+ :SDL_hid_read_timeout => :hid_read_timeout,
76
+ :SDL_hid_read => :hid_read,
77
+ :SDL_hid_set_nonblocking => :hid_set_nonblocking,
78
+ :SDL_hid_send_feature_report => :hid_send_feature_report,
79
+ :SDL_hid_get_feature_report => :hid_get_feature_report,
80
+ :SDL_hid_close => :hid_close,
81
+ :SDL_hid_get_manufacturer_string => :hid_get_manufacturer_string,
82
+ :SDL_hid_get_product_string => :hid_get_product_string,
83
+ :SDL_hid_get_serial_number_string => :hid_get_serial_number_string,
84
+ :SDL_hid_get_indexed_string => :hid_get_indexed_string,
85
+ :SDL_hid_ble_scan => :hid_ble_scan,
86
+ }
87
+ args = {
88
+ :SDL_hid_init => [],
89
+ :SDL_hid_exit => [],
90
+ :SDL_hid_device_change_count => [],
91
+ :SDL_hid_enumerate => [:ushort, :ushort],
92
+ :SDL_hid_free_enumeration => [:pointer],
93
+ :SDL_hid_open => [:ushort, :ushort, :pointer],
94
+ :SDL_hid_open_path => [:pointer, :int],
95
+ :SDL_hid_write => [:pointer, :pointer, :int],
96
+ :SDL_hid_read_timeout => [:pointer, :pointer, :int, :int],
97
+ :SDL_hid_read => [:pointer, :pointer, :int],
98
+ :SDL_hid_set_nonblocking => [:pointer, :int],
99
+ :SDL_hid_send_feature_report => [:pointer, :pointer, :int],
100
+ :SDL_hid_get_feature_report => [:pointer, :pointer, :int],
101
+ :SDL_hid_close => [:pointer],
102
+ :SDL_hid_get_manufacturer_string => [:pointer, :pointer, :int],
103
+ :SDL_hid_get_product_string => [:pointer, :pointer, :int],
104
+ :SDL_hid_get_serial_number_string => [:pointer, :pointer, :int],
105
+ :SDL_hid_get_indexed_string => [:pointer, :int, :pointer, :int],
106
+ :SDL_hid_ble_scan => [:int],
107
+ }
108
+ retvals = {
109
+ :SDL_hid_init => :int,
110
+ :SDL_hid_exit => :int,
111
+ :SDL_hid_device_change_count => :uint,
112
+ :SDL_hid_enumerate => :pointer,
113
+ :SDL_hid_free_enumeration => :void,
114
+ :SDL_hid_open => :pointer,
115
+ :SDL_hid_open_path => :pointer,
116
+ :SDL_hid_write => :int,
117
+ :SDL_hid_read_timeout => :int,
118
+ :SDL_hid_read => :int,
119
+ :SDL_hid_set_nonblocking => :int,
120
+ :SDL_hid_send_feature_report => :int,
121
+ :SDL_hid_get_feature_report => :int,
122
+ :SDL_hid_close => :void,
123
+ :SDL_hid_get_manufacturer_string => :int,
124
+ :SDL_hid_get_product_string => :int,
125
+ :SDL_hid_get_serial_number_string => :int,
126
+ :SDL_hid_get_indexed_string => :int,
127
+ :SDL_hid_ble_scan => :void,
128
+ }
129
+ symbols.each do |sym|
130
+ begin
131
+ attach_function apis[sym], sym, args[sym], retvals[sym]
132
+ rescue FFI::NotFoundError => error
133
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
134
+ end
135
+ end
136
+ end
137
+
138
+ end
139
+
data/lib/sdl2_hints.rb CHANGED
@@ -6,122 +6,146 @@
6
6
 
7
7
  require 'ffi'
8
8
 
9
- module SDL2
9
+ module SDL
10
10
  extend FFI::Library
11
11
  # Define/Macro
12
12
 
13
- SDL_HINT_FRAMEBUFFER_ACCELERATION = "SDL_FRAMEBUFFER_ACCELERATION"
14
- SDL_HINT_RENDER_DRIVER = "SDL_RENDER_DRIVER"
15
- SDL_HINT_RENDER_OPENGL_SHADERS = "SDL_RENDER_OPENGL_SHADERS"
16
- SDL_HINT_RENDER_DIRECT3D_THREADSAFE = "SDL_RENDER_DIRECT3D_THREADSAFE"
17
- SDL_HINT_RENDER_DIRECT3D11_DEBUG = "SDL_RENDER_DIRECT3D11_DEBUG"
18
- SDL_HINT_RENDER_LOGICAL_SIZE_MODE = "SDL_RENDER_LOGICAL_SIZE_MODE"
19
- SDL_HINT_RENDER_SCALE_QUALITY = "SDL_RENDER_SCALE_QUALITY"
20
- SDL_HINT_RENDER_VSYNC = "SDL_RENDER_VSYNC"
21
- SDL_HINT_VIDEO_ALLOW_SCREENSAVER = "SDL_VIDEO_ALLOW_SCREENSAVER"
22
- SDL_HINT_VIDEO_EXTERNAL_CONTEXT = "SDL_VIDEO_EXTERNAL_CONTEXT"
23
- SDL_HINT_VIDEO_X11_XVIDMODE = "SDL_VIDEO_X11_XVIDMODE"
24
- SDL_HINT_VIDEO_X11_XINERAMA = "SDL_VIDEO_X11_XINERAMA"
25
- SDL_HINT_VIDEO_X11_XRANDR = "SDL_VIDEO_X11_XRANDR"
26
- SDL_HINT_VIDEO_X11_WINDOW_VISUALID = "SDL_VIDEO_X11_WINDOW_VISUALID"
27
- SDL_HINT_VIDEO_X11_NET_WM_PING = "SDL_VIDEO_X11_NET_WM_PING"
28
- SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR = "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR"
29
- SDL_HINT_VIDEO_X11_FORCE_EGL = "SDL_VIDEO_X11_FORCE_EGL"
30
- SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN = "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN"
31
- SDL_HINT_WINDOWS_INTRESOURCE_ICON = "SDL_WINDOWS_INTRESOURCE_ICON"
32
- SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL = "SDL_WINDOWS_INTRESOURCE_ICON_SMALL"
33
- SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP = "SDL_WINDOWS_ENABLE_MESSAGELOOP"
34
- SDL_HINT_GRAB_KEYBOARD = "SDL_GRAB_KEYBOARD"
35
- SDL_HINT_MOUSE_DOUBLE_CLICK_TIME = "SDL_MOUSE_DOUBLE_CLICK_TIME"
36
- SDL_HINT_MOUSE_DOUBLE_CLICK_RADIUS = "SDL_MOUSE_DOUBLE_CLICK_RADIUS"
37
- SDL_HINT_MOUSE_NORMAL_SPEED_SCALE = "SDL_MOUSE_NORMAL_SPEED_SCALE"
38
- SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE = "SDL_MOUSE_RELATIVE_SPEED_SCALE"
39
- SDL_HINT_MOUSE_RELATIVE_SCALING = "SDL_MOUSE_RELATIVE_SCALING"
40
- SDL_HINT_MOUSE_RELATIVE_MODE_WARP = "SDL_MOUSE_RELATIVE_MODE_WARP"
41
- SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH = "SDL_MOUSE_FOCUS_CLICKTHROUGH"
42
- SDL_HINT_TOUCH_MOUSE_EVENTS = "SDL_TOUCH_MOUSE_EVENTS"
43
- SDL_HINT_MOUSE_TOUCH_EVENTS = "SDL_MOUSE_TOUCH_EVENTS"
44
- SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS = "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS"
45
- SDL_HINT_IDLE_TIMER_DISABLED = "SDL_IOS_IDLE_TIMER_DISABLED"
46
- SDL_HINT_ORIENTATIONS = "SDL_IOS_ORIENTATIONS"
47
- SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS = "SDL_APPLE_TV_CONTROLLER_UI_EVENTS"
48
- SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION = "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION"
49
- SDL_HINT_IOS_HIDE_HOME_INDICATOR = "SDL_IOS_HIDE_HOME_INDICATOR"
50
- SDL_HINT_ACCELEROMETER_AS_JOYSTICK = "SDL_ACCELEROMETER_AS_JOYSTICK"
51
- SDL_HINT_TV_REMOTE_AS_JOYSTICK = "SDL_TV_REMOTE_AS_JOYSTICK"
52
- SDL_HINT_XINPUT_ENABLED = "SDL_XINPUT_ENABLED"
53
- SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING = "SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING"
54
- SDL_HINT_GAMECONTROLLERTYPE = "SDL_GAMECONTROLLERTYPE"
55
- SDL_HINT_GAMECONTROLLERCONFIG = "SDL_GAMECONTROLLERCONFIG"
56
- SDL_HINT_GAMECONTROLLERCONFIG_FILE = "SDL_GAMECONTROLLERCONFIG_FILE"
57
- SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES = "SDL_GAMECONTROLLER_IGNORE_DEVICES"
58
- SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT = "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT"
59
- SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS = "SDL_GAMECONTROLLER_USE_BUTTON_LABELS"
60
- SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS = "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS"
61
- SDL_HINT_JOYSTICK_HIDAPI = "SDL_JOYSTICK_HIDAPI"
62
- SDL_HINT_JOYSTICK_HIDAPI_PS4 = "SDL_JOYSTICK_HIDAPI_PS4"
63
- SDL_HINT_JOYSTICK_HIDAPI_PS5 = "SDL_JOYSTICK_HIDAPI_PS5"
64
- SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE = "SDL_JOYSTICK_HIDAPI_PS4_RUMBLE"
65
- SDL_HINT_JOYSTICK_HIDAPI_STEAM = "SDL_JOYSTICK_HIDAPI_STEAM"
66
- SDL_HINT_JOYSTICK_HIDAPI_SWITCH = "SDL_JOYSTICK_HIDAPI_SWITCH"
67
- SDL_HINT_JOYSTICK_HIDAPI_XBOX = "SDL_JOYSTICK_HIDAPI_XBOX"
68
- SDL_HINT_JOYSTICK_HIDAPI_CORRELATE_XINPUT = "SDL_JOYSTICK_HIDAPI_CORRELATE_XINPUT"
69
- SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE = "SDL_JOYSTICK_HIDAPI_GAMECUBE"
70
- SDL_HINT_ENABLE_STEAM_CONTROLLERS = "SDL_ENABLE_STEAM_CONTROLLERS"
71
- SDL_HINT_JOYSTICK_RAWINPUT = "SDL_JOYSTICK_RAWINPUT"
72
- SDL_HINT_JOYSTICK_THREAD = "SDL_JOYSTICK_THREAD"
73
- SDL_HINT_LINUX_JOYSTICK_DEADZONES = "SDL_LINUX_JOYSTICK_DEADZONES"
74
- SDL_HINT_ALLOW_TOPMOST = "SDL_ALLOW_TOPMOST"
75
- SDL_HINT_TIMER_RESOLUTION = "SDL_TIMER_RESOLUTION"
76
- SDL_HINT_QTWAYLAND_CONTENT_ORIENTATION = "SDL_QTWAYLAND_CONTENT_ORIENTATION"
77
- SDL_HINT_QTWAYLAND_WINDOW_FLAGS = "SDL_QTWAYLAND_WINDOW_FLAGS"
78
- SDL_HINT_THREAD_STACK_SIZE = "SDL_THREAD_STACK_SIZE"
79
- SDL_HINT_THREAD_PRIORITY_POLICY = "SDL_THREAD_PRIORITY_POLICY"
80
- SDL_HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL = "SDL_THREAD_FORCE_REALTIME_TIME_CRITICAL"
81
- SDL_HINT_VIDEO_HIGHDPI_DISABLED = "SDL_VIDEO_HIGHDPI_DISABLED"
82
- SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK = "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK"
83
- SDL_HINT_VIDEO_WIN_D3DCOMPILER = "SDL_VIDEO_WIN_D3DCOMPILER"
84
- SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT = "SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT"
85
- SDL_HINT_WINRT_PRIVACY_POLICY_URL = "SDL_WINRT_PRIVACY_POLICY_URL"
86
- SDL_HINT_WINRT_PRIVACY_POLICY_LABEL = "SDL_WINRT_PRIVACY_POLICY_LABEL"
87
- SDL_HINT_WINRT_HANDLE_BACK_BUTTON = "SDL_WINRT_HANDLE_BACK_BUTTON"
88
- SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES = "SDL_VIDEO_MAC_FULLSCREEN_SPACES"
89
- SDL_HINT_MAC_BACKGROUND_APP = "SDL_MAC_BACKGROUND_APP"
90
- SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION = "SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION"
91
- SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION = "SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION"
92
- SDL_HINT_IME_INTERNAL_EDITING = "SDL_IME_INTERNAL_EDITING"
93
- SDL_HINT_ANDROID_TRAP_BACK_BUTTON = "SDL_ANDROID_TRAP_BACK_BUTTON"
94
- SDL_HINT_ANDROID_BLOCK_ON_PAUSE = "SDL_ANDROID_BLOCK_ON_PAUSE"
95
- SDL_HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO = "SDL_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO"
96
- SDL_HINT_RETURN_KEY_HIDES_IME = "SDL_RETURN_KEY_HIDES_IME"
97
- SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT = "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT"
98
- SDL_HINT_EMSCRIPTEN_ASYNCIFY = "SDL_EMSCRIPTEN_ASYNCIFY"
99
- SDL_HINT_NO_SIGNAL_HANDLERS = "SDL_NO_SIGNAL_HANDLERS"
100
- SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 = "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4"
101
- SDL_HINT_BMP_SAVE_LEGACY_FORMAT = "SDL_BMP_SAVE_LEGACY_FORMAT"
102
- SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING = "SDL_WINDOWS_DISABLE_THREAD_NAMING"
103
- SDL_HINT_RPI_VIDEO_LAYER = "SDL_RPI_VIDEO_LAYER"
104
- SDL_HINT_VIDEO_DOUBLE_BUFFER = "SDL_VIDEO_DOUBLE_BUFFER"
105
- SDL_HINT_OPENGL_ES_DRIVER = "SDL_OPENGL_ES_DRIVER"
106
- SDL_HINT_AUDIO_RESAMPLING_MODE = "SDL_AUDIO_RESAMPLING_MODE"
107
- SDL_HINT_AUDIO_CATEGORY = "SDL_AUDIO_CATEGORY"
108
- SDL_HINT_RENDER_BATCHING = "SDL_RENDER_BATCHING"
109
- SDL_HINT_AUTO_UPDATE_JOYSTICKS = "SDL_AUTO_UPDATE_JOYSTICKS"
110
- SDL_HINT_AUTO_UPDATE_SENSORS = "SDL_AUTO_UPDATE_SENSORS"
111
- SDL_HINT_EVENT_LOGGING = "SDL_EVENT_LOGGING"
112
- SDL_HINT_WAVE_RIFF_CHUNK_SIZE = "SDL_WAVE_RIFF_CHUNK_SIZE"
113
- SDL_HINT_WAVE_TRUNCATION = "SDL_WAVE_TRUNCATION"
114
- SDL_HINT_WAVE_FACT_CHUNK = "SDL_WAVE_FACT_CHUNK"
115
- SDL_HINT_DISPLAY_USABLE_BOUNDS = "SDL_DISPLAY_USABLE_BOUNDS"
116
- SDL_HINT_AUDIO_DEVICE_APP_NAME = "SDL_AUDIO_DEVICE_APP_NAME"
117
- SDL_HINT_AUDIO_DEVICE_STREAM_NAME = "SDL_AUDIO_DEVICE_STREAM_NAME"
118
- SDL_HINT_PREFERRED_LOCALES = "SDL_PREFERRED_LOCALES"
13
+ HINT_ACCELEROMETER_AS_JOYSTICK = "SDL_ACCELEROMETER_AS_JOYSTICK"
14
+ HINT_ALLOW_ALT_TAB_WHILE_GRABBED = "SDL_ALLOW_ALT_TAB_WHILE_GRABBED"
15
+ HINT_ALLOW_TOPMOST = "SDL_ALLOW_TOPMOST"
16
+ HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION = "SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION"
17
+ HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION = "SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION"
18
+ HINT_ANDROID_BLOCK_ON_PAUSE = "SDL_ANDROID_BLOCK_ON_PAUSE"
19
+ HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO = "SDL_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO"
20
+ HINT_ANDROID_TRAP_BACK_BUTTON = "SDL_ANDROID_TRAP_BACK_BUTTON"
21
+ HINT_APP_NAME = "SDL_APP_NAME"
22
+ HINT_APPLE_TV_CONTROLLER_UI_EVENTS = "SDL_APPLE_TV_CONTROLLER_UI_EVENTS"
23
+ HINT_APPLE_TV_REMOTE_ALLOW_ROTATION = "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION"
24
+ HINT_AUDIO_CATEGORY = "SDL_AUDIO_CATEGORY"
25
+ HINT_AUDIO_DEVICE_APP_NAME = "SDL_AUDIO_DEVICE_APP_NAME"
26
+ HINT_AUDIO_DEVICE_STREAM_NAME = "SDL_AUDIO_DEVICE_STREAM_NAME"
27
+ HINT_AUDIO_DEVICE_STREAM_ROLE = "SDL_AUDIO_DEVICE_STREAM_ROLE"
28
+ HINT_AUDIO_RESAMPLING_MODE = "SDL_AUDIO_RESAMPLING_MODE"
29
+ HINT_AUTO_UPDATE_JOYSTICKS = "SDL_AUTO_UPDATE_JOYSTICKS"
30
+ HINT_AUTO_UPDATE_SENSORS = "SDL_AUTO_UPDATE_SENSORS"
31
+ HINT_BMP_SAVE_LEGACY_FORMAT = "SDL_BMP_SAVE_LEGACY_FORMAT"
32
+ HINT_DISPLAY_USABLE_BOUNDS = "SDL_DISPLAY_USABLE_BOUNDS"
33
+ HINT_EMSCRIPTEN_ASYNCIFY = "SDL_EMSCRIPTEN_ASYNCIFY"
34
+ HINT_EMSCRIPTEN_KEYBOARD_ELEMENT = "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT"
35
+ HINT_ENABLE_STEAM_CONTROLLERS = "SDL_ENABLE_STEAM_CONTROLLERS"
36
+ HINT_EVENT_LOGGING = "SDL_EVENT_LOGGING"
37
+ HINT_FRAMEBUFFER_ACCELERATION = "SDL_FRAMEBUFFER_ACCELERATION"
38
+ HINT_GAMECONTROLLERCONFIG = "SDL_GAMECONTROLLERCONFIG"
39
+ HINT_GAMECONTROLLERCONFIG_FILE = "SDL_GAMECONTROLLERCONFIG_FILE"
40
+ HINT_GAMECONTROLLERTYPE = "SDL_GAMECONTROLLERTYPE"
41
+ HINT_GAMECONTROLLER_IGNORE_DEVICES = "SDL_GAMECONTROLLER_IGNORE_DEVICES"
42
+ HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT = "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT"
43
+ HINT_GAMECONTROLLER_USE_BUTTON_LABELS = "SDL_GAMECONTROLLER_USE_BUTTON_LABELS"
44
+ HINT_GRAB_KEYBOARD = "SDL_GRAB_KEYBOARD"
45
+ HINT_IDLE_TIMER_DISABLED = "SDL_IOS_IDLE_TIMER_DISABLED"
46
+ HINT_IME_INTERNAL_EDITING = "SDL_IME_INTERNAL_EDITING"
47
+ HINT_IME_SHOW_UI = "SDL_IME_SHOW_UI"
48
+ HINT_IOS_HIDE_HOME_INDICATOR = "SDL_IOS_HIDE_HOME_INDICATOR"
49
+ HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS = "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS"
50
+ HINT_JOYSTICK_HIDAPI = "SDL_JOYSTICK_HIDAPI"
51
+ HINT_JOYSTICK_HIDAPI_GAMECUBE = "SDL_JOYSTICK_HIDAPI_GAMECUBE"
52
+ HINT_JOYSTICK_HIDAPI_JOY_CONS = "SDL_JOYSTICK_HIDAPI_JOY_CONS"
53
+ HINT_JOYSTICK_HIDAPI_LUNA = "SDL_JOYSTICK_HIDAPI_LUNA"
54
+ HINT_JOYSTICK_HIDAPI_PS4 = "SDL_JOYSTICK_HIDAPI_PS4"
55
+ HINT_JOYSTICK_HIDAPI_PS4_RUMBLE = "SDL_JOYSTICK_HIDAPI_PS4_RUMBLE"
56
+ HINT_JOYSTICK_HIDAPI_PS5 = "SDL_JOYSTICK_HIDAPI_PS5"
57
+ HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED = "SDL_JOYSTICK_HIDAPI_PS5_PLAYER_LED"
58
+ HINT_JOYSTICK_HIDAPI_PS5_RUMBLE = "SDL_JOYSTICK_HIDAPI_PS5_RUMBLE"
59
+ HINT_JOYSTICK_HIDAPI_STADIA = "SDL_JOYSTICK_HIDAPI_STADIA"
60
+ HINT_JOYSTICK_HIDAPI_STEAM = "SDL_JOYSTICK_HIDAPI_STEAM"
61
+ HINT_JOYSTICK_HIDAPI_SWITCH = "SDL_JOYSTICK_HIDAPI_SWITCH"
62
+ HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED = "SDL_JOYSTICK_HIDAPI_SWITCH_HOME_LED"
63
+ HINT_JOYSTICK_HIDAPI_XBOX = "SDL_JOYSTICK_HIDAPI_XBOX"
64
+ HINT_JOYSTICK_RAWINPUT = "SDL_JOYSTICK_RAWINPUT"
65
+ HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT = "SDL_JOYSTICK_RAWINPUT_CORRELATE_XINPUT"
66
+ HINT_JOYSTICK_THREAD = "SDL_JOYSTICK_THREAD"
67
+ HINT_KMSDRM_REQUIRE_DRM_MASTER = "SDL_KMSDRM_REQUIRE_DRM_MASTER"
68
+ HINT_JOYSTICK_DEVICE = "SDL_JOYSTICK_DEVICE"
69
+ HINT_LINUX_JOYSTICK_CLASSIC = "SDL_LINUX_JOYSTICK_CLASSIC"
70
+ HINT_LINUX_JOYSTICK_DEADZONES = "SDL_LINUX_JOYSTICK_DEADZONES"
71
+ HINT_MAC_BACKGROUND_APP = "SDL_MAC_BACKGROUND_APP"
72
+ HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK = "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK"
73
+ HINT_MOUSE_DOUBLE_CLICK_RADIUS = "SDL_MOUSE_DOUBLE_CLICK_RADIUS"
74
+ HINT_MOUSE_DOUBLE_CLICK_TIME = "SDL_MOUSE_DOUBLE_CLICK_TIME"
75
+ HINT_MOUSE_FOCUS_CLICKTHROUGH = "SDL_MOUSE_FOCUS_CLICKTHROUGH"
76
+ HINT_MOUSE_NORMAL_SPEED_SCALE = "SDL_MOUSE_NORMAL_SPEED_SCALE"
77
+ HINT_MOUSE_RELATIVE_MODE_WARP = "SDL_MOUSE_RELATIVE_MODE_WARP"
78
+ HINT_MOUSE_RELATIVE_SCALING = "SDL_MOUSE_RELATIVE_SCALING"
79
+ HINT_MOUSE_RELATIVE_SPEED_SCALE = "SDL_MOUSE_RELATIVE_SPEED_SCALE"
80
+ HINT_MOUSE_TOUCH_EVENTS = "SDL_MOUSE_TOUCH_EVENTS"
81
+ HINT_NO_SIGNAL_HANDLERS = "SDL_NO_SIGNAL_HANDLERS"
82
+ HINT_OPENGL_ES_DRIVER = "SDL_OPENGL_ES_DRIVER"
83
+ HINT_ORIENTATIONS = "SDL_IOS_ORIENTATIONS"
84
+ HINT_POLL_SENTINEL = "SDL_POLL_SENTINEL"
85
+ HINT_PREFERRED_LOCALES = "SDL_PREFERRED_LOCALES"
86
+ HINT_QTWAYLAND_CONTENT_ORIENTATION = "SDL_QTWAYLAND_CONTENT_ORIENTATION"
87
+ HINT_QTWAYLAND_WINDOW_FLAGS = "SDL_QTWAYLAND_WINDOW_FLAGS"
88
+ HINT_RENDER_BATCHING = "SDL_RENDER_BATCHING"
89
+ HINT_RENDER_LINE_METHOD = "SDL_RENDER_LINE_METHOD"
90
+ HINT_RENDER_DIRECT3D11_DEBUG = "SDL_RENDER_DIRECT3D11_DEBUG"
91
+ HINT_RENDER_DIRECT3D_THREADSAFE = "SDL_RENDER_DIRECT3D_THREADSAFE"
92
+ HINT_RENDER_DRIVER = "SDL_RENDER_DRIVER"
93
+ HINT_RENDER_LOGICAL_SIZE_MODE = "SDL_RENDER_LOGICAL_SIZE_MODE"
94
+ HINT_RENDER_OPENGL_SHADERS = "SDL_RENDER_OPENGL_SHADERS"
95
+ HINT_RENDER_SCALE_QUALITY = "SDL_RENDER_SCALE_QUALITY"
96
+ HINT_RENDER_VSYNC = "SDL_RENDER_VSYNC"
97
+ HINT_RETURN_KEY_HIDES_IME = "SDL_RETURN_KEY_HIDES_IME"
98
+ HINT_RPI_VIDEO_LAYER = "SDL_RPI_VIDEO_LAYER"
99
+ HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME = "SDL_SCREENSAVER_INHIBIT_ACTIVITY_NAME"
100
+ HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL = "SDL_THREAD_FORCE_REALTIME_TIME_CRITICAL"
101
+ HINT_THREAD_PRIORITY_POLICY = "SDL_THREAD_PRIORITY_POLICY"
102
+ HINT_THREAD_STACK_SIZE = "SDL_THREAD_STACK_SIZE"
103
+ HINT_TIMER_RESOLUTION = "SDL_TIMER_RESOLUTION"
104
+ HINT_TOUCH_MOUSE_EVENTS = "SDL_TOUCH_MOUSE_EVENTS"
105
+ HINT_TV_REMOTE_AS_JOYSTICK = "SDL_TV_REMOTE_AS_JOYSTICK"
106
+ HINT_VIDEO_ALLOW_SCREENSAVER = "SDL_VIDEO_ALLOW_SCREENSAVER"
107
+ HINT_VIDEO_DOUBLE_BUFFER = "SDL_VIDEO_DOUBLE_BUFFER"
108
+ HINT_VIDEO_EGL_ALLOW_TRANSPARENCY = "SDL_VIDEO_EGL_ALLOW_TRANSPARENCY"
109
+ HINT_VIDEO_EXTERNAL_CONTEXT = "SDL_VIDEO_EXTERNAL_CONTEXT"
110
+ HINT_VIDEO_HIGHDPI_DISABLED = "SDL_VIDEO_HIGHDPI_DISABLED"
111
+ HINT_VIDEO_MAC_FULLSCREEN_SPACES = "SDL_VIDEO_MAC_FULLSCREEN_SPACES"
112
+ HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS = "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS"
113
+ HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR = "SDL_VIDEO_WAYLAND_ALLOW_LIBDECOR"
114
+ HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT = "SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT"
115
+ HINT_VIDEO_WIN_D3DCOMPILER = "SDL_VIDEO_WIN_D3DCOMPILER"
116
+ HINT_VIDEO_X11_FORCE_EGL = "SDL_VIDEO_X11_FORCE_EGL"
117
+ HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR = "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR"
118
+ HINT_VIDEO_X11_NET_WM_PING = "SDL_VIDEO_X11_NET_WM_PING"
119
+ HINT_VIDEO_X11_WINDOW_VISUALID = "SDL_VIDEO_X11_WINDOW_VISUALID"
120
+ HINT_VIDEO_X11_XINERAMA = "SDL_VIDEO_X11_XINERAMA"
121
+ HINT_VIDEO_X11_XRANDR = "SDL_VIDEO_X11_XRANDR"
122
+ HINT_VIDEO_X11_XVIDMODE = "SDL_VIDEO_X11_XVIDMODE"
123
+ HINT_WAVE_FACT_CHUNK = "SDL_WAVE_FACT_CHUNK"
124
+ HINT_WAVE_RIFF_CHUNK_SIZE = "SDL_WAVE_RIFF_CHUNK_SIZE"
125
+ HINT_WAVE_TRUNCATION = "SDL_WAVE_TRUNCATION"
126
+ HINT_WINDOWS_DISABLE_THREAD_NAMING = "SDL_WINDOWS_DISABLE_THREAD_NAMING"
127
+ HINT_WINDOWS_ENABLE_MESSAGELOOP = "SDL_WINDOWS_ENABLE_MESSAGELOOP"
128
+ HINT_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS = "SDL_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS"
129
+ HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL = "SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL"
130
+ HINT_WINDOWS_INTRESOURCE_ICON = "SDL_WINDOWS_INTRESOURCE_ICON"
131
+ HINT_WINDOWS_INTRESOURCE_ICON_SMALL = "SDL_WINDOWS_INTRESOURCE_ICON_SMALL"
132
+ HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 = "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4"
133
+ HINT_WINDOWS_USE_D3D9EX = "SDL_WINDOWS_USE_D3D9EX"
134
+ HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN = "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN"
135
+ HINT_WINDOW_NO_ACTIVATION_WHEN_SHOWN = "SDL_WINDOW_NO_ACTIVATION_WHEN_SHOWN"
136
+ HINT_WINRT_HANDLE_BACK_BUTTON = "SDL_WINRT_HANDLE_BACK_BUTTON"
137
+ HINT_WINRT_PRIVACY_POLICY_LABEL = "SDL_WINRT_PRIVACY_POLICY_LABEL"
138
+ HINT_WINRT_PRIVACY_POLICY_URL = "SDL_WINRT_PRIVACY_POLICY_URL"
139
+ HINT_X11_FORCE_OVERRIDE_REDIRECT = "SDL_X11_FORCE_OVERRIDE_REDIRECT"
140
+ HINT_XINPUT_ENABLED = "SDL_XINPUT_ENABLED"
141
+ HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING = "SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING"
142
+ HINT_AUDIO_INCLUDE_MONITORS = "SDL_AUDIO_INCLUDE_MONITORS"
119
143
 
120
144
  # Enum
121
145
 
122
- SDL_HINT_DEFAULT = 0
123
- SDL_HINT_NORMAL = 1
124
- SDL_HINT_OVERRIDE = 2
146
+ HINT_DEFAULT = 0
147
+ HINT_NORMAL = 1
148
+ HINT_OVERRIDE = 2
125
149
 
126
150
  # Typedef
127
151
 
@@ -133,7 +157,7 @@ module SDL2
133
157
 
134
158
  # Function
135
159
 
136
- def self.setup_hints_symbols()
160
+ def self.setup_hints_symbols(output_error = false)
137
161
  symbols = [
138
162
  :SDL_SetHintWithPriority,
139
163
  :SDL_SetHint,
@@ -143,6 +167,15 @@ module SDL2
143
167
  :SDL_DelHintCallback,
144
168
  :SDL_ClearHints,
145
169
  ]
170
+ apis = {
171
+ :SDL_SetHintWithPriority => :SetHintWithPriority,
172
+ :SDL_SetHint => :SetHint,
173
+ :SDL_GetHint => :GetHint,
174
+ :SDL_GetHintBoolean => :GetHintBoolean,
175
+ :SDL_AddHintCallback => :AddHintCallback,
176
+ :SDL_DelHintCallback => :DelHintCallback,
177
+ :SDL_ClearHints => :ClearHints,
178
+ }
146
179
  args = {
147
180
  :SDL_SetHintWithPriority => [:pointer, :pointer, :int],
148
181
  :SDL_SetHint => [:pointer, :pointer],
@@ -163,9 +196,9 @@ module SDL2
163
196
  }
164
197
  symbols.each do |sym|
165
198
  begin
166
- attach_function sym, args[sym], retvals[sym]
199
+ attach_function apis[sym], sym, args[sym], retvals[sym]
167
200
  rescue FFI::NotFoundError => error
168
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
201
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
169
202
  end
170
203
  end
171
204
  end
data/lib/sdl2_image.rb CHANGED
@@ -6,13 +6,13 @@
6
6
 
7
7
  require 'ffi'
8
8
 
9
- module SDL2
9
+ module SDL
10
10
  extend FFI::Library
11
11
  # Define/Macro
12
12
 
13
- SDL_IMAGE_MAJOR_VERSION = 2
14
- SDL_IMAGE_MINOR_VERSION = 0
15
- SDL_IMAGE_PATCHLEVEL = 5
13
+ IMAGE_MAJOR_VERSION = 2
14
+ IMAGE_MINOR_VERSION = 0
15
+ IMAGE_PATCHLEVEL = 5
16
16
 
17
17
  # Enum
18
18
 
@@ -30,7 +30,7 @@ module SDL2
30
30
 
31
31
  # Function
32
32
 
33
- def self.setup_image_symbols()
33
+ def self.setup_image_symbols(output_error = false)
34
34
  symbols = [
35
35
  :IMG_Linked_Version,
36
36
  :IMG_Init,
@@ -78,6 +78,53 @@ module SDL2
78
78
  :IMG_SaveJPG,
79
79
  :IMG_SaveJPG_RW,
80
80
  ]
81
+ apis = {
82
+ :IMG_Linked_Version => :IMG_Linked_Version,
83
+ :IMG_Init => :IMG_Init,
84
+ :IMG_Quit => :IMG_Quit,
85
+ :IMG_LoadTyped_RW => :IMG_LoadTyped_RW,
86
+ :IMG_Load => :IMG_Load,
87
+ :IMG_Load_RW => :IMG_Load_RW,
88
+ :IMG_LoadTexture => :IMG_LoadTexture,
89
+ :IMG_LoadTexture_RW => :IMG_LoadTexture_RW,
90
+ :IMG_LoadTextureTyped_RW => :IMG_LoadTextureTyped_RW,
91
+ :IMG_isICO => :IMG_isICO,
92
+ :IMG_isCUR => :IMG_isCUR,
93
+ :IMG_isBMP => :IMG_isBMP,
94
+ :IMG_isGIF => :IMG_isGIF,
95
+ :IMG_isJPG => :IMG_isJPG,
96
+ :IMG_isLBM => :IMG_isLBM,
97
+ :IMG_isPCX => :IMG_isPCX,
98
+ :IMG_isPNG => :IMG_isPNG,
99
+ :IMG_isPNM => :IMG_isPNM,
100
+ :IMG_isSVG => :IMG_isSVG,
101
+ :IMG_isTIF => :IMG_isTIF,
102
+ :IMG_isXCF => :IMG_isXCF,
103
+ :IMG_isXPM => :IMG_isXPM,
104
+ :IMG_isXV => :IMG_isXV,
105
+ :IMG_isWEBP => :IMG_isWEBP,
106
+ :IMG_LoadICO_RW => :IMG_LoadICO_RW,
107
+ :IMG_LoadCUR_RW => :IMG_LoadCUR_RW,
108
+ :IMG_LoadBMP_RW => :IMG_LoadBMP_RW,
109
+ :IMG_LoadGIF_RW => :IMG_LoadGIF_RW,
110
+ :IMG_LoadJPG_RW => :IMG_LoadJPG_RW,
111
+ :IMG_LoadLBM_RW => :IMG_LoadLBM_RW,
112
+ :IMG_LoadPCX_RW => :IMG_LoadPCX_RW,
113
+ :IMG_LoadPNG_RW => :IMG_LoadPNG_RW,
114
+ :IMG_LoadPNM_RW => :IMG_LoadPNM_RW,
115
+ :IMG_LoadSVG_RW => :IMG_LoadSVG_RW,
116
+ :IMG_LoadTGA_RW => :IMG_LoadTGA_RW,
117
+ :IMG_LoadTIF_RW => :IMG_LoadTIF_RW,
118
+ :IMG_LoadXCF_RW => :IMG_LoadXCF_RW,
119
+ :IMG_LoadXPM_RW => :IMG_LoadXPM_RW,
120
+ :IMG_LoadXV_RW => :IMG_LoadXV_RW,
121
+ :IMG_LoadWEBP_RW => :IMG_LoadWEBP_RW,
122
+ :IMG_ReadXPMFromArray => :IMG_ReadXPMFromArray,
123
+ :IMG_SavePNG => :IMG_SavePNG,
124
+ :IMG_SavePNG_RW => :IMG_SavePNG_RW,
125
+ :IMG_SaveJPG => :IMG_SaveJPG,
126
+ :IMG_SaveJPG_RW => :IMG_SaveJPG_RW,
127
+ }
81
128
  args = {
82
129
  :IMG_Linked_Version => [],
83
130
  :IMG_Init => [:int],
@@ -174,9 +221,9 @@ module SDL2
174
221
  }
175
222
  symbols.each do |sym|
176
223
  begin
177
- attach_function sym, args[sym], retvals[sym]
224
+ attach_function apis[sym], sym, args[sym], retvals[sym]
178
225
  rescue FFI::NotFoundError => error
179
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
226
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
180
227
  end
181
228
  end
182
229
  end
@@ -6,7 +6,7 @@
6
6
 
7
7
  require 'ffi'
8
8
 
9
- module SDL2
9
+ module SDL
10
10
  extend FFI::Library
11
11
  # Define/Macro
12
12
 
@@ -22,7 +22,7 @@ module SDL2
22
22
 
23
23
  # Function
24
24
 
25
- def self.setup_gfx_imagefilter_symbols()
25
+ def self.setup_gfx_imagefilter_symbols(output_error = false)
26
26
  symbols = [
27
27
  :SDL_imageFilterMMXdetect,
28
28
  :SDL_imageFilterMMXoff,
@@ -55,6 +55,38 @@ module SDL2
55
55
  :SDL_imageFilterClipToRange,
56
56
  :SDL_imageFilterNormalizeLinear,
57
57
  ]
58
+ apis = {
59
+ :SDL_imageFilterMMXdetect => :imageFilterMMXdetect,
60
+ :SDL_imageFilterMMXoff => :imageFilterMMXoff,
61
+ :SDL_imageFilterMMXon => :imageFilterMMXon,
62
+ :SDL_imageFilterAdd => :imageFilterAdd,
63
+ :SDL_imageFilterMean => :imageFilterMean,
64
+ :SDL_imageFilterSub => :imageFilterSub,
65
+ :SDL_imageFilterAbsDiff => :imageFilterAbsDiff,
66
+ :SDL_imageFilterMult => :imageFilterMult,
67
+ :SDL_imageFilterMultNor => :imageFilterMultNor,
68
+ :SDL_imageFilterMultDivby2 => :imageFilterMultDivby2,
69
+ :SDL_imageFilterMultDivby4 => :imageFilterMultDivby4,
70
+ :SDL_imageFilterBitAnd => :imageFilterBitAnd,
71
+ :SDL_imageFilterBitOr => :imageFilterBitOr,
72
+ :SDL_imageFilterDiv => :imageFilterDiv,
73
+ :SDL_imageFilterBitNegation => :imageFilterBitNegation,
74
+ :SDL_imageFilterAddByte => :imageFilterAddByte,
75
+ :SDL_imageFilterAddUint => :imageFilterAddUint,
76
+ :SDL_imageFilterAddByteToHalf => :imageFilterAddByteToHalf,
77
+ :SDL_imageFilterSubByte => :imageFilterSubByte,
78
+ :SDL_imageFilterSubUint => :imageFilterSubUint,
79
+ :SDL_imageFilterShiftRight => :imageFilterShiftRight,
80
+ :SDL_imageFilterShiftRightUint => :imageFilterShiftRightUint,
81
+ :SDL_imageFilterMultByByte => :imageFilterMultByByte,
82
+ :SDL_imageFilterShiftRightAndMultByByte => :imageFilterShiftRightAndMultByByte,
83
+ :SDL_imageFilterShiftLeftByte => :imageFilterShiftLeftByte,
84
+ :SDL_imageFilterShiftLeftUint => :imageFilterShiftLeftUint,
85
+ :SDL_imageFilterShiftLeft => :imageFilterShiftLeft,
86
+ :SDL_imageFilterBinarizeUsingThreshold => :imageFilterBinarizeUsingThreshold,
87
+ :SDL_imageFilterClipToRange => :imageFilterClipToRange,
88
+ :SDL_imageFilterNormalizeLinear => :imageFilterNormalizeLinear,
89
+ }
58
90
  args = {
59
91
  :SDL_imageFilterMMXdetect => [],
60
92
  :SDL_imageFilterMMXoff => [],
@@ -121,9 +153,9 @@ module SDL2
121
153
  }
122
154
  symbols.each do |sym|
123
155
  begin
124
- attach_function sym, args[sym], retvals[sym]
156
+ attach_function apis[sym], sym, args[sym], retvals[sym]
125
157
  rescue FFI::NotFoundError => error
126
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
158
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
127
159
  end
128
160
  end
129
161
  end