sdl2-bindings 0.0.6 → 0.1.0
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.
- checksums.yaml +4 -4
- data/ChangeLog +25 -0
- data/LICENSE.txt +1 -1
- data/README.md +38 -19
- data/lib/sdl2.rb +56 -99
- data/lib/sdl2_audio.rb +62 -20
- data/lib/sdl2_blendmode.rb +28 -25
- data/lib/sdl2_clipboard.rb +9 -4
- data/lib/sdl2_cpuinfo.rb +31 -8
- data/lib/sdl2_error.rb +17 -10
- data/lib/sdl2_events.rb +152 -130
- data/lib/sdl2_filesystem.rb +8 -4
- data/lib/sdl2_framerate.rb +11 -4
- data/lib/sdl2_gamecontroller.rb +130 -55
- data/lib/sdl2_gesture.rb +10 -4
- data/lib/sdl2_gfxPrimitives.rb +65 -4
- data/lib/sdl2_haptic.rb +76 -44
- data/lib/sdl2_hidapi.rb +139 -0
- data/lib/sdl2_hints.rb +146 -113
- data/lib/sdl2_image.rb +54 -7
- data/lib/sdl2_imageFilter.rb +36 -4
- data/lib/sdl2_joystick.rb +102 -38
- data/lib/sdl2_keyboard.rb +23 -5
- data/lib/sdl2_keycode.rb +8 -5
- data/lib/sdl2_log.rb +48 -32
- data/lib/sdl2_main.rb +21 -14
- data/lib/sdl2_messagebox.rb +26 -22
- data/lib/sdl2_misc.rb +48 -0
- data/lib/sdl2_mixer.rb +86 -11
- data/lib/sdl2_mouse.rb +44 -25
- data/lib/sdl2_pixels.rb +115 -99
- data/lib/sdl2_platform.rb +7 -4
- data/lib/sdl2_power.rb +12 -9
- data/lib/sdl2_rect.rb +18 -11
- data/lib/sdl2_render.rb +135 -21
- data/lib/sdl2_rotozoom.rb +14 -4
- data/lib/sdl2_rwops.rb +69 -39
- data/lib/sdl2_scancode.rb +250 -248
- data/lib/sdl2_sensor.rb +115 -0
- data/lib/sdl2_shape.rb +17 -11
- data/lib/sdl2_stdinc.rb +213 -42
- data/lib/sdl2_surface.rb +62 -15
- data/lib/sdl2_syswm.rb +47 -41
- data/lib/sdl2_timer.rb +16 -4
- data/lib/sdl2_touch.rb +18 -9
- data/lib/sdl2_ttf.rb +180 -25
- data/lib/sdl2_version.rb +13 -8
- data/lib/sdl2_video.rb +232 -103
- data/lib/sdl2_vulkan.rb +12 -4
- metadata +21 -4
    
        data/lib/sdl2_shape.rb
    CHANGED
    
    | @@ -7,13 +7,13 @@ | |
| 7 7 | 
             
            require 'ffi'
         | 
| 8 8 | 
             
            require_relative 'sdl2_pixels'
         | 
| 9 9 |  | 
| 10 | 
            -
            module  | 
| 10 | 
            +
            module SDL
         | 
| 11 11 | 
             
              extend FFI::Library
         | 
| 12 12 | 
             
              # Define/Macro
         | 
| 13 13 |  | 
| 14 | 
            -
               | 
| 15 | 
            -
               | 
| 16 | 
            -
               | 
| 14 | 
            +
              NONSHAPEABLE_WINDOW = -1
         | 
| 15 | 
            +
              INVALID_SHAPE_ARGUMENT = -2
         | 
| 16 | 
            +
              WINDOW_LACKS_SHAPE = -3
         | 
| 17 17 |  | 
| 18 18 | 
             
              # Enum
         | 
| 19 19 |  | 
| @@ -28,30 +28,36 @@ module SDL2 | |
| 28 28 |  | 
| 29 29 | 
             
              # Struct
         | 
| 30 30 |  | 
| 31 | 
            -
              class  | 
| 31 | 
            +
              class WindowShapeParams < FFI::Union
         | 
| 32 32 | 
             
                layout(
         | 
| 33 33 | 
             
                  :binarizationCutoff, :uchar,
         | 
| 34 | 
            -
                  :colorKey,  | 
| 34 | 
            +
                  :colorKey, Color,
         | 
| 35 35 | 
             
                )
         | 
| 36 36 | 
             
              end
         | 
| 37 37 |  | 
| 38 | 
            -
              class  | 
| 38 | 
            +
              class WindowShapeMode < FFI::Struct
         | 
| 39 39 | 
             
                layout(
         | 
| 40 40 | 
             
                  :mode, :int,
         | 
| 41 | 
            -
                  :parameters,  | 
| 41 | 
            +
                  :parameters, WindowShapeParams,
         | 
| 42 42 | 
             
                )
         | 
| 43 43 | 
             
              end
         | 
| 44 44 |  | 
| 45 45 |  | 
| 46 46 | 
             
              # Function
         | 
| 47 47 |  | 
| 48 | 
            -
              def self.setup_shape_symbols()
         | 
| 48 | 
            +
              def self.setup_shape_symbols(output_error = false)
         | 
| 49 49 | 
             
                symbols = [
         | 
| 50 50 | 
             
                  :SDL_CreateShapedWindow,
         | 
| 51 51 | 
             
                  :SDL_IsShapedWindow,
         | 
| 52 52 | 
             
                  :SDL_SetWindowShape,
         | 
| 53 53 | 
             
                  :SDL_GetShapedWindowMode,
         | 
| 54 54 | 
             
                ]
         | 
| 55 | 
            +
                apis = {
         | 
| 56 | 
            +
                  :SDL_CreateShapedWindow => :CreateShapedWindow,
         | 
| 57 | 
            +
                  :SDL_IsShapedWindow => :IsShapedWindow,
         | 
| 58 | 
            +
                  :SDL_SetWindowShape => :SetWindowShape,
         | 
| 59 | 
            +
                  :SDL_GetShapedWindowMode => :GetShapedWindowMode,
         | 
| 60 | 
            +
                }
         | 
| 55 61 | 
             
                args = {
         | 
| 56 62 | 
             
                  :SDL_CreateShapedWindow => [:pointer, :uint, :uint, :uint, :uint, :uint],
         | 
| 57 63 | 
             
                  :SDL_IsShapedWindow => [:pointer],
         | 
| @@ -66,9 +72,9 @@ module SDL2 | |
| 66 72 | 
             
                }
         | 
| 67 73 | 
             
                symbols.each do |sym|
         | 
| 68 74 | 
             
                  begin
         | 
| 69 | 
            -
                    attach_function sym, args[sym], retvals[sym]
         | 
| 75 | 
            +
                    attach_function apis[sym], sym, args[sym], retvals[sym]
         | 
| 70 76 | 
             
                  rescue FFI::NotFoundError => error
         | 
| 71 | 
            -
                    $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
         | 
| 77 | 
            +
                    $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
         | 
| 72 78 | 
             
                  end
         | 
| 73 79 | 
             
                end
         | 
| 74 80 | 
             
              end
         | 
    
        data/lib/sdl2_stdinc.rb
    CHANGED
    
    | @@ -6,15 +6,19 @@ | |
| 6 6 |  | 
| 7 7 | 
             
            require 'ffi'
         | 
| 8 8 |  | 
| 9 | 
            -
            module  | 
| 9 | 
            +
            module SDL
         | 
| 10 10 | 
             
              extend FFI::Library
         | 
| 11 11 | 
             
              # Define/Macro
         | 
| 12 12 |  | 
| 13 | 
            +
              ICONV_ERROR = -1
         | 
| 14 | 
            +
              ICONV_E2BIG = -2
         | 
| 15 | 
            +
              ICONV_EILSEQ = -3
         | 
| 16 | 
            +
              ICONV_EINVAL = -4
         | 
| 13 17 |  | 
| 14 18 | 
             
              # Enum
         | 
| 15 19 |  | 
| 16 | 
            -
               | 
| 17 | 
            -
               | 
| 20 | 
            +
              FALSE = 0
         | 
| 21 | 
            +
              TRUE = 1
         | 
| 18 22 |  | 
| 19 23 | 
             
              # Typedef
         | 
| 20 24 |  | 
| @@ -35,9 +39,9 @@ module SDL2 | |
| 35 39 | 
             
              typedef :uint, :Uint32
         | 
| 36 40 | 
             
              typedef :long_long, :Sint64
         | 
| 37 41 | 
             
              typedef :ulong_long, :Uint64
         | 
| 38 | 
            -
              callback :SDL_malloc_func, [: | 
| 39 | 
            -
              callback :SDL_calloc_func, [: | 
| 40 | 
            -
              callback :SDL_realloc_func, [:pointer, : | 
| 42 | 
            +
              callback :SDL_malloc_func, [:int], :pointer
         | 
| 43 | 
            +
              callback :SDL_calloc_func, [:int, :int], :pointer
         | 
| 44 | 
            +
              callback :SDL_realloc_func, [:pointer, :int], :pointer
         | 
| 41 45 | 
             
              callback :SDL_free_func, [:pointer], :void
         | 
| 42 46 | 
             
              typedef :pointer, :SDL_iconv_t
         | 
| 43 47 |  | 
| @@ -46,7 +50,7 @@ module SDL2 | |
| 46 50 |  | 
| 47 51 | 
             
              # Function
         | 
| 48 52 |  | 
| 49 | 
            -
              def self.setup_stdinc_symbols()
         | 
| 53 | 
            +
              def self.setup_stdinc_symbols(output_error = false)
         | 
| 50 54 | 
             
                symbols = [
         | 
| 51 55 | 
             
                  :SDL_malloc,
         | 
| 52 56 | 
             
                  :SDL_calloc,
         | 
| @@ -59,10 +63,18 @@ module SDL2 | |
| 59 63 | 
             
                  :SDL_setenv,
         | 
| 60 64 | 
             
                  :SDL_qsort,
         | 
| 61 65 | 
             
                  :SDL_abs,
         | 
| 66 | 
            +
                  :SDL_isalpha,
         | 
| 67 | 
            +
                  :SDL_isalnum,
         | 
| 68 | 
            +
                  :SDL_isblank,
         | 
| 69 | 
            +
                  :SDL_iscntrl,
         | 
| 62 70 | 
             
                  :SDL_isdigit,
         | 
| 71 | 
            +
                  :SDL_isxdigit,
         | 
| 72 | 
            +
                  :SDL_ispunct,
         | 
| 63 73 | 
             
                  :SDL_isspace,
         | 
| 64 74 | 
             
                  :SDL_isupper,
         | 
| 65 75 | 
             
                  :SDL_islower,
         | 
| 76 | 
            +
                  :SDL_isprint,
         | 
| 77 | 
            +
                  :SDL_isgraph,
         | 
| 66 78 | 
             
                  :SDL_toupper,
         | 
| 67 79 | 
             
                  :SDL_tolower,
         | 
| 68 80 | 
             
                  :SDL_crc32,
         | 
| @@ -114,6 +126,8 @@ module SDL2 | |
| 114 126 | 
             
                  :SDL_vsscanf,
         | 
| 115 127 | 
             
                  :SDL_snprintf,
         | 
| 116 128 | 
             
                  :SDL_vsnprintf,
         | 
| 129 | 
            +
                  :SDL_asprintf,
         | 
| 130 | 
            +
                  :SDL_vasprintf,
         | 
| 117 131 | 
             
                  :SDL_acos,
         | 
| 118 132 | 
             
                  :SDL_acosf,
         | 
| 119 133 | 
             
                  :SDL_asin,
         | 
| @@ -144,6 +158,10 @@ module SDL2 | |
| 144 158 | 
             
                  :SDL_log10f,
         | 
| 145 159 | 
             
                  :SDL_pow,
         | 
| 146 160 | 
             
                  :SDL_powf,
         | 
| 161 | 
            +
                  :SDL_round,
         | 
| 162 | 
            +
                  :SDL_roundf,
         | 
| 163 | 
            +
                  :SDL_lround,
         | 
| 164 | 
            +
                  :SDL_lroundf,
         | 
| 147 165 | 
             
                  :SDL_scalbn,
         | 
| 148 166 | 
             
                  :SDL_scalbnf,
         | 
| 149 167 | 
             
                  :SDL_sin,
         | 
| @@ -158,43 +176,176 @@ module SDL2 | |
| 158 176 | 
             
                  :SDL_iconv_string,
         | 
| 159 177 | 
             
                  :SDL_memcpy4,
         | 
| 160 178 | 
             
                ]
         | 
| 179 | 
            +
                apis = {
         | 
| 180 | 
            +
                  :SDL_malloc => :malloc,
         | 
| 181 | 
            +
                  :SDL_calloc => :calloc,
         | 
| 182 | 
            +
                  :SDL_realloc => :realloc,
         | 
| 183 | 
            +
                  :SDL_free => :free,
         | 
| 184 | 
            +
                  :SDL_GetMemoryFunctions => :GetMemoryFunctions,
         | 
| 185 | 
            +
                  :SDL_SetMemoryFunctions => :SetMemoryFunctions,
         | 
| 186 | 
            +
                  :SDL_GetNumAllocations => :GetNumAllocations,
         | 
| 187 | 
            +
                  :SDL_getenv => :getenv,
         | 
| 188 | 
            +
                  :SDL_setenv => :setenv,
         | 
| 189 | 
            +
                  :SDL_qsort => :qsort,
         | 
| 190 | 
            +
                  :SDL_abs => :abs,
         | 
| 191 | 
            +
                  :SDL_isalpha => :isalpha,
         | 
| 192 | 
            +
                  :SDL_isalnum => :isalnum,
         | 
| 193 | 
            +
                  :SDL_isblank => :isblank,
         | 
| 194 | 
            +
                  :SDL_iscntrl => :iscntrl,
         | 
| 195 | 
            +
                  :SDL_isdigit => :isdigit,
         | 
| 196 | 
            +
                  :SDL_isxdigit => :isxdigit,
         | 
| 197 | 
            +
                  :SDL_ispunct => :ispunct,
         | 
| 198 | 
            +
                  :SDL_isspace => :isspace,
         | 
| 199 | 
            +
                  :SDL_isupper => :isupper,
         | 
| 200 | 
            +
                  :SDL_islower => :islower,
         | 
| 201 | 
            +
                  :SDL_isprint => :isprint,
         | 
| 202 | 
            +
                  :SDL_isgraph => :isgraph,
         | 
| 203 | 
            +
                  :SDL_toupper => :toupper,
         | 
| 204 | 
            +
                  :SDL_tolower => :tolower,
         | 
| 205 | 
            +
                  :SDL_crc32 => :crc32,
         | 
| 206 | 
            +
                  :SDL_memset => :memset,
         | 
| 207 | 
            +
                  :SDL_memset4 => :memset4,
         | 
| 208 | 
            +
                  :SDL_memcpy => :memcpy,
         | 
| 209 | 
            +
                  :SDL_memmove => :memmove,
         | 
| 210 | 
            +
                  :SDL_memcmp => :memcmp,
         | 
| 211 | 
            +
                  :SDL_wcslen => :wcslen,
         | 
| 212 | 
            +
                  :SDL_wcslcpy => :wcslcpy,
         | 
| 213 | 
            +
                  :SDL_wcslcat => :wcslcat,
         | 
| 214 | 
            +
                  :SDL_wcsdup => :wcsdup,
         | 
| 215 | 
            +
                  :SDL_wcsstr => :wcsstr,
         | 
| 216 | 
            +
                  :SDL_wcscmp => :wcscmp,
         | 
| 217 | 
            +
                  :SDL_wcsncmp => :wcsncmp,
         | 
| 218 | 
            +
                  :SDL_wcscasecmp => :wcscasecmp,
         | 
| 219 | 
            +
                  :SDL_wcsncasecmp => :wcsncasecmp,
         | 
| 220 | 
            +
                  :SDL_strlen => :strlen,
         | 
| 221 | 
            +
                  :SDL_strlcpy => :strlcpy,
         | 
| 222 | 
            +
                  :SDL_utf8strlcpy => :utf8strlcpy,
         | 
| 223 | 
            +
                  :SDL_strlcat => :strlcat,
         | 
| 224 | 
            +
                  :SDL_strdup => :strdup,
         | 
| 225 | 
            +
                  :SDL_strrev => :strrev,
         | 
| 226 | 
            +
                  :SDL_strupr => :strupr,
         | 
| 227 | 
            +
                  :SDL_strlwr => :strlwr,
         | 
| 228 | 
            +
                  :SDL_strchr => :strchr,
         | 
| 229 | 
            +
                  :SDL_strrchr => :strrchr,
         | 
| 230 | 
            +
                  :SDL_strstr => :strstr,
         | 
| 231 | 
            +
                  :SDL_strtokr => :strtokr,
         | 
| 232 | 
            +
                  :SDL_utf8strlen => :utf8strlen,
         | 
| 233 | 
            +
                  :SDL_itoa => :itoa,
         | 
| 234 | 
            +
                  :SDL_uitoa => :uitoa,
         | 
| 235 | 
            +
                  :SDL_ltoa => :ltoa,
         | 
| 236 | 
            +
                  :SDL_ultoa => :ultoa,
         | 
| 237 | 
            +
                  :SDL_lltoa => :lltoa,
         | 
| 238 | 
            +
                  :SDL_ulltoa => :ulltoa,
         | 
| 239 | 
            +
                  :SDL_atoi => :atoi,
         | 
| 240 | 
            +
                  :SDL_atof => :atof,
         | 
| 241 | 
            +
                  :SDL_strtol => :strtol,
         | 
| 242 | 
            +
                  :SDL_strtoul => :strtoul,
         | 
| 243 | 
            +
                  :SDL_strtoll => :strtoll,
         | 
| 244 | 
            +
                  :SDL_strtoull => :strtoull,
         | 
| 245 | 
            +
                  :SDL_strtod => :strtod,
         | 
| 246 | 
            +
                  :SDL_strcmp => :strcmp,
         | 
| 247 | 
            +
                  :SDL_strncmp => :strncmp,
         | 
| 248 | 
            +
                  :SDL_strcasecmp => :strcasecmp,
         | 
| 249 | 
            +
                  :SDL_strncasecmp => :strncasecmp,
         | 
| 250 | 
            +
                  :SDL_sscanf => :sscanf,
         | 
| 251 | 
            +
                  :SDL_vsscanf => :vsscanf,
         | 
| 252 | 
            +
                  :SDL_snprintf => :snprintf,
         | 
| 253 | 
            +
                  :SDL_vsnprintf => :vsnprintf,
         | 
| 254 | 
            +
                  :SDL_asprintf => :asprintf,
         | 
| 255 | 
            +
                  :SDL_vasprintf => :vasprintf,
         | 
| 256 | 
            +
                  :SDL_acos => :acos,
         | 
| 257 | 
            +
                  :SDL_acosf => :acosf,
         | 
| 258 | 
            +
                  :SDL_asin => :asin,
         | 
| 259 | 
            +
                  :SDL_asinf => :asinf,
         | 
| 260 | 
            +
                  :SDL_atan => :atan,
         | 
| 261 | 
            +
                  :SDL_atanf => :atanf,
         | 
| 262 | 
            +
                  :SDL_atan2 => :atan2,
         | 
| 263 | 
            +
                  :SDL_atan2f => :atan2f,
         | 
| 264 | 
            +
                  :SDL_ceil => :ceil,
         | 
| 265 | 
            +
                  :SDL_ceilf => :ceilf,
         | 
| 266 | 
            +
                  :SDL_copysign => :copysign,
         | 
| 267 | 
            +
                  :SDL_copysignf => :copysignf,
         | 
| 268 | 
            +
                  :SDL_cos => :cos,
         | 
| 269 | 
            +
                  :SDL_cosf => :cosf,
         | 
| 270 | 
            +
                  :SDL_exp => :exp,
         | 
| 271 | 
            +
                  :SDL_expf => :expf,
         | 
| 272 | 
            +
                  :SDL_fabs => :fabs,
         | 
| 273 | 
            +
                  :SDL_fabsf => :fabsf,
         | 
| 274 | 
            +
                  :SDL_floor => :floor,
         | 
| 275 | 
            +
                  :SDL_floorf => :floorf,
         | 
| 276 | 
            +
                  :SDL_trunc => :trunc,
         | 
| 277 | 
            +
                  :SDL_truncf => :truncf,
         | 
| 278 | 
            +
                  :SDL_fmod => :fmod,
         | 
| 279 | 
            +
                  :SDL_fmodf => :fmodf,
         | 
| 280 | 
            +
                  :SDL_log => :log,
         | 
| 281 | 
            +
                  :SDL_logf => :logf,
         | 
| 282 | 
            +
                  :SDL_log10 => :log10,
         | 
| 283 | 
            +
                  :SDL_log10f => :log10f,
         | 
| 284 | 
            +
                  :SDL_pow => :pow,
         | 
| 285 | 
            +
                  :SDL_powf => :powf,
         | 
| 286 | 
            +
                  :SDL_round => :round,
         | 
| 287 | 
            +
                  :SDL_roundf => :roundf,
         | 
| 288 | 
            +
                  :SDL_lround => :lround,
         | 
| 289 | 
            +
                  :SDL_lroundf => :lroundf,
         | 
| 290 | 
            +
                  :SDL_scalbn => :scalbn,
         | 
| 291 | 
            +
                  :SDL_scalbnf => :scalbnf,
         | 
| 292 | 
            +
                  :SDL_sin => :sin,
         | 
| 293 | 
            +
                  :SDL_sinf => :sinf,
         | 
| 294 | 
            +
                  :SDL_sqrt => :sqrt,
         | 
| 295 | 
            +
                  :SDL_sqrtf => :sqrtf,
         | 
| 296 | 
            +
                  :SDL_tan => :tan,
         | 
| 297 | 
            +
                  :SDL_tanf => :tanf,
         | 
| 298 | 
            +
                  :SDL_iconv_open => :iconv_open,
         | 
| 299 | 
            +
                  :SDL_iconv_close => :iconv_close,
         | 
| 300 | 
            +
                  :SDL_iconv => :iconv,
         | 
| 301 | 
            +
                  :SDL_iconv_string => :iconv_string,
         | 
| 302 | 
            +
                  :SDL_memcpy4 => :memcpy4,
         | 
| 303 | 
            +
                }
         | 
| 161 304 | 
             
                args = {
         | 
| 162 | 
            -
                  :SDL_malloc => [: | 
| 163 | 
            -
                  :SDL_calloc => [: | 
| 164 | 
            -
                  :SDL_realloc => [:pointer, : | 
| 305 | 
            +
                  :SDL_malloc => [:int],
         | 
| 306 | 
            +
                  :SDL_calloc => [:int, :int],
         | 
| 307 | 
            +
                  :SDL_realloc => [:pointer, :int],
         | 
| 165 308 | 
             
                  :SDL_free => [:pointer],
         | 
| 166 309 | 
             
                  :SDL_GetMemoryFunctions => [:pointer, :pointer, :pointer, :pointer],
         | 
| 167 310 | 
             
                  :SDL_SetMemoryFunctions => [:SDL_malloc_func, :SDL_calloc_func, :SDL_realloc_func, :SDL_free_func],
         | 
| 168 311 | 
             
                  :SDL_GetNumAllocations => [],
         | 
| 169 312 | 
             
                  :SDL_getenv => [:pointer],
         | 
| 170 313 | 
             
                  :SDL_setenv => [:pointer, :pointer, :int],
         | 
| 171 | 
            -
                  :SDL_qsort => [:pointer, : | 
| 314 | 
            +
                  :SDL_qsort => [:pointer, :int, :int, :pointer],
         | 
| 172 315 | 
             
                  :SDL_abs => [:int],
         | 
| 316 | 
            +
                  :SDL_isalpha => [:int],
         | 
| 317 | 
            +
                  :SDL_isalnum => [:int],
         | 
| 318 | 
            +
                  :SDL_isblank => [:int],
         | 
| 319 | 
            +
                  :SDL_iscntrl => [:int],
         | 
| 173 320 | 
             
                  :SDL_isdigit => [:int],
         | 
| 321 | 
            +
                  :SDL_isxdigit => [:int],
         | 
| 322 | 
            +
                  :SDL_ispunct => [:int],
         | 
| 174 323 | 
             
                  :SDL_isspace => [:int],
         | 
| 175 324 | 
             
                  :SDL_isupper => [:int],
         | 
| 176 325 | 
             
                  :SDL_islower => [:int],
         | 
| 326 | 
            +
                  :SDL_isprint => [:int],
         | 
| 327 | 
            +
                  :SDL_isgraph => [:int],
         | 
| 177 328 | 
             
                  :SDL_toupper => [:int],
         | 
| 178 329 | 
             
                  :SDL_tolower => [:int],
         | 
| 179 | 
            -
                  :SDL_crc32 => [:uint, :pointer, : | 
| 180 | 
            -
                  :SDL_memset => [:pointer, :int, : | 
| 181 | 
            -
                  :SDL_memset4 => [:pointer, :uint, : | 
| 182 | 
            -
                  :SDL_memcpy => [:pointer, :pointer, : | 
| 183 | 
            -
                  :SDL_memmove => [:pointer, :pointer, : | 
| 184 | 
            -
                  :SDL_memcmp => [:pointer, :pointer, : | 
| 330 | 
            +
                  :SDL_crc32 => [:uint, :pointer, :int],
         | 
| 331 | 
            +
                  :SDL_memset => [:pointer, :int, :int],
         | 
| 332 | 
            +
                  :SDL_memset4 => [:pointer, :uint, :int],
         | 
| 333 | 
            +
                  :SDL_memcpy => [:pointer, :pointer, :int],
         | 
| 334 | 
            +
                  :SDL_memmove => [:pointer, :pointer, :int],
         | 
| 335 | 
            +
                  :SDL_memcmp => [:pointer, :pointer, :int],
         | 
| 185 336 | 
             
                  :SDL_wcslen => [:pointer],
         | 
| 186 | 
            -
                  :SDL_wcslcpy => [:pointer, :pointer, : | 
| 187 | 
            -
                  :SDL_wcslcat => [:pointer, :pointer, : | 
| 337 | 
            +
                  :SDL_wcslcpy => [:pointer, :pointer, :int],
         | 
| 338 | 
            +
                  :SDL_wcslcat => [:pointer, :pointer, :int],
         | 
| 188 339 | 
             
                  :SDL_wcsdup => [:pointer],
         | 
| 189 340 | 
             
                  :SDL_wcsstr => [:pointer, :pointer],
         | 
| 190 341 | 
             
                  :SDL_wcscmp => [:pointer, :pointer],
         | 
| 191 | 
            -
                  :SDL_wcsncmp => [:pointer, :pointer, : | 
| 342 | 
            +
                  :SDL_wcsncmp => [:pointer, :pointer, :int],
         | 
| 192 343 | 
             
                  :SDL_wcscasecmp => [:pointer, :pointer],
         | 
| 193 | 
            -
                  :SDL_wcsncasecmp => [:pointer, :pointer, : | 
| 344 | 
            +
                  :SDL_wcsncasecmp => [:pointer, :pointer, :int],
         | 
| 194 345 | 
             
                  :SDL_strlen => [:pointer],
         | 
| 195 | 
            -
                  :SDL_strlcpy => [:pointer, :pointer, : | 
| 196 | 
            -
                  :SDL_utf8strlcpy => [:pointer, :pointer, : | 
| 197 | 
            -
                  :SDL_strlcat => [:pointer, :pointer, : | 
| 346 | 
            +
                  :SDL_strlcpy => [:pointer, :pointer, :int],
         | 
| 347 | 
            +
                  :SDL_utf8strlcpy => [:pointer, :pointer, :int],
         | 
| 348 | 
            +
                  :SDL_strlcat => [:pointer, :pointer, :int],
         | 
| 198 349 | 
             
                  :SDL_strdup => [:pointer],
         | 
| 199 350 | 
             
                  :SDL_strrev => [:pointer],
         | 
| 200 351 | 
             
                  :SDL_strupr => [:pointer],
         | 
| @@ -218,13 +369,15 @@ module SDL2 | |
| 218 369 | 
             
                  :SDL_strtoull => [:pointer, :pointer, :int],
         | 
| 219 370 | 
             
                  :SDL_strtod => [:pointer, :pointer],
         | 
| 220 371 | 
             
                  :SDL_strcmp => [:pointer, :pointer],
         | 
| 221 | 
            -
                  :SDL_strncmp => [:pointer, :pointer, : | 
| 372 | 
            +
                  :SDL_strncmp => [:pointer, :pointer, :int],
         | 
| 222 373 | 
             
                  :SDL_strcasecmp => [:pointer, :pointer],
         | 
| 223 | 
            -
                  :SDL_strncasecmp => [:pointer, :pointer, : | 
| 374 | 
            +
                  :SDL_strncasecmp => [:pointer, :pointer, :int],
         | 
| 224 375 | 
             
                  :SDL_sscanf => [:pointer, :pointer],
         | 
| 225 | 
            -
                  :SDL_vsscanf => [:pointer, :pointer, : | 
| 226 | 
            -
                  :SDL_snprintf => [:pointer, : | 
| 227 | 
            -
                  :SDL_vsnprintf => [:pointer, : | 
| 376 | 
            +
                  :SDL_vsscanf => [:pointer, :pointer, :int],
         | 
| 377 | 
            +
                  :SDL_snprintf => [:pointer, :int, :pointer],
         | 
| 378 | 
            +
                  :SDL_vsnprintf => [:pointer, :int, :pointer, :int],
         | 
| 379 | 
            +
                  :SDL_asprintf => [:pointer, :pointer],
         | 
| 380 | 
            +
                  :SDL_vasprintf => [:pointer, :pointer, :int],
         | 
| 228 381 | 
             
                  :SDL_acos => [:double],
         | 
| 229 382 | 
             
                  :SDL_acosf => [:float],
         | 
| 230 383 | 
             
                  :SDL_asin => [:double],
         | 
| @@ -255,6 +408,10 @@ module SDL2 | |
| 255 408 | 
             
                  :SDL_log10f => [:float],
         | 
| 256 409 | 
             
                  :SDL_pow => [:double, :double],
         | 
| 257 410 | 
             
                  :SDL_powf => [:float, :float],
         | 
| 411 | 
            +
                  :SDL_round => [:double],
         | 
| 412 | 
            +
                  :SDL_roundf => [:float],
         | 
| 413 | 
            +
                  :SDL_lround => [:double],
         | 
| 414 | 
            +
                  :SDL_lroundf => [:float],
         | 
| 258 415 | 
             
                  :SDL_scalbn => [:double, :int],
         | 
| 259 416 | 
             
                  :SDL_scalbnf => [:float, :int],
         | 
| 260 417 | 
             
                  :SDL_sin => [:double],
         | 
| @@ -266,8 +423,8 @@ module SDL2 | |
| 266 423 | 
             
                  :SDL_iconv_open => [:pointer, :pointer],
         | 
| 267 424 | 
             
                  :SDL_iconv_close => [:pointer],
         | 
| 268 425 | 
             
                  :SDL_iconv => [:pointer, :pointer, :pointer, :pointer, :pointer],
         | 
| 269 | 
            -
                  :SDL_iconv_string => [:pointer, :pointer, :pointer, : | 
| 270 | 
            -
                  :SDL_memcpy4 => [:pointer, :pointer, : | 
| 426 | 
            +
                  :SDL_iconv_string => [:pointer, :pointer, :pointer, :int],
         | 
| 427 | 
            +
                  :SDL_memcpy4 => [:pointer, :pointer, :int],
         | 
| 271 428 | 
             
                }
         | 
| 272 429 | 
             
                retvals = {
         | 
| 273 430 | 
             
                  :SDL_malloc => :pointer,
         | 
| @@ -281,10 +438,18 @@ module SDL2 | |
| 281 438 | 
             
                  :SDL_setenv => :int,
         | 
| 282 439 | 
             
                  :SDL_qsort => :void,
         | 
| 283 440 | 
             
                  :SDL_abs => :int,
         | 
| 441 | 
            +
                  :SDL_isalpha => :int,
         | 
| 442 | 
            +
                  :SDL_isalnum => :int,
         | 
| 443 | 
            +
                  :SDL_isblank => :int,
         | 
| 444 | 
            +
                  :SDL_iscntrl => :int,
         | 
| 284 445 | 
             
                  :SDL_isdigit => :int,
         | 
| 446 | 
            +
                  :SDL_isxdigit => :int,
         | 
| 447 | 
            +
                  :SDL_ispunct => :int,
         | 
| 285 448 | 
             
                  :SDL_isspace => :int,
         | 
| 286 449 | 
             
                  :SDL_isupper => :int,
         | 
| 287 450 | 
             
                  :SDL_islower => :int,
         | 
| 451 | 
            +
                  :SDL_isprint => :int,
         | 
| 452 | 
            +
                  :SDL_isgraph => :int,
         | 
| 288 453 | 
             
                  :SDL_toupper => :int,
         | 
| 289 454 | 
             
                  :SDL_tolower => :int,
         | 
| 290 455 | 
             
                  :SDL_crc32 => :uint,
         | 
| @@ -293,19 +458,19 @@ module SDL2 | |
| 293 458 | 
             
                  :SDL_memcpy => :pointer,
         | 
| 294 459 | 
             
                  :SDL_memmove => :pointer,
         | 
| 295 460 | 
             
                  :SDL_memcmp => :int,
         | 
| 296 | 
            -
                  :SDL_wcslen => : | 
| 297 | 
            -
                  :SDL_wcslcpy => : | 
| 298 | 
            -
                  :SDL_wcslcat => : | 
| 461 | 
            +
                  :SDL_wcslen => :int,
         | 
| 462 | 
            +
                  :SDL_wcslcpy => :int,
         | 
| 463 | 
            +
                  :SDL_wcslcat => :int,
         | 
| 299 464 | 
             
                  :SDL_wcsdup => :pointer,
         | 
| 300 465 | 
             
                  :SDL_wcsstr => :pointer,
         | 
| 301 466 | 
             
                  :SDL_wcscmp => :int,
         | 
| 302 467 | 
             
                  :SDL_wcsncmp => :int,
         | 
| 303 468 | 
             
                  :SDL_wcscasecmp => :int,
         | 
| 304 469 | 
             
                  :SDL_wcsncasecmp => :int,
         | 
| 305 | 
            -
                  :SDL_strlen => : | 
| 306 | 
            -
                  :SDL_strlcpy => : | 
| 307 | 
            -
                  :SDL_utf8strlcpy => : | 
| 308 | 
            -
                  :SDL_strlcat => : | 
| 470 | 
            +
                  :SDL_strlen => :int,
         | 
| 471 | 
            +
                  :SDL_strlcpy => :int,
         | 
| 472 | 
            +
                  :SDL_utf8strlcpy => :int,
         | 
| 473 | 
            +
                  :SDL_strlcat => :int,
         | 
| 309 474 | 
             
                  :SDL_strdup => :pointer,
         | 
| 310 475 | 
             
                  :SDL_strrev => :pointer,
         | 
| 311 476 | 
             
                  :SDL_strupr => :pointer,
         | 
| @@ -314,7 +479,7 @@ module SDL2 | |
| 314 479 | 
             
                  :SDL_strrchr => :pointer,
         | 
| 315 480 | 
             
                  :SDL_strstr => :pointer,
         | 
| 316 481 | 
             
                  :SDL_strtokr => :pointer,
         | 
| 317 | 
            -
                  :SDL_utf8strlen => : | 
| 482 | 
            +
                  :SDL_utf8strlen => :int,
         | 
| 318 483 | 
             
                  :SDL_itoa => :pointer,
         | 
| 319 484 | 
             
                  :SDL_uitoa => :pointer,
         | 
| 320 485 | 
             
                  :SDL_ltoa => :pointer,
         | 
| @@ -336,6 +501,8 @@ module SDL2 | |
| 336 501 | 
             
                  :SDL_vsscanf => :int,
         | 
| 337 502 | 
             
                  :SDL_snprintf => :int,
         | 
| 338 503 | 
             
                  :SDL_vsnprintf => :int,
         | 
| 504 | 
            +
                  :SDL_asprintf => :int,
         | 
| 505 | 
            +
                  :SDL_vasprintf => :int,
         | 
| 339 506 | 
             
                  :SDL_acos => :double,
         | 
| 340 507 | 
             
                  :SDL_acosf => :float,
         | 
| 341 508 | 
             
                  :SDL_asin => :double,
         | 
| @@ -366,6 +533,10 @@ module SDL2 | |
| 366 533 | 
             
                  :SDL_log10f => :float,
         | 
| 367 534 | 
             
                  :SDL_pow => :double,
         | 
| 368 535 | 
             
                  :SDL_powf => :float,
         | 
| 536 | 
            +
                  :SDL_round => :double,
         | 
| 537 | 
            +
                  :SDL_roundf => :float,
         | 
| 538 | 
            +
                  :SDL_lround => :long,
         | 
| 539 | 
            +
                  :SDL_lroundf => :long,
         | 
| 369 540 | 
             
                  :SDL_scalbn => :double,
         | 
| 370 541 | 
             
                  :SDL_scalbnf => :float,
         | 
| 371 542 | 
             
                  :SDL_sin => :double,
         | 
| @@ -376,15 +547,15 @@ module SDL2 | |
| 376 547 | 
             
                  :SDL_tanf => :float,
         | 
| 377 548 | 
             
                  :SDL_iconv_open => :pointer,
         | 
| 378 549 | 
             
                  :SDL_iconv_close => :int,
         | 
| 379 | 
            -
                  :SDL_iconv => : | 
| 550 | 
            +
                  :SDL_iconv => :int,
         | 
| 380 551 | 
             
                  :SDL_iconv_string => :pointer,
         | 
| 381 552 | 
             
                  :SDL_memcpy4 => :pointer,
         | 
| 382 553 | 
             
                }
         | 
| 383 554 | 
             
                symbols.each do |sym|
         | 
| 384 555 | 
             
                  begin
         | 
| 385 | 
            -
                    attach_function sym, args[sym], retvals[sym]
         | 
| 556 | 
            +
                    attach_function apis[sym], sym, args[sym], retvals[sym]
         | 
| 386 557 | 
             
                  rescue FFI::NotFoundError => error
         | 
| 387 | 
            -
                    $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
         | 
| 558 | 
            +
                    $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
         | 
| 388 559 | 
             
                  end
         | 
| 389 560 | 
             
                end
         | 
| 390 561 | 
             
              end
         | 
    
        data/lib/sdl2_surface.rb
    CHANGED
    
    | @@ -7,22 +7,22 @@ | |
| 7 7 | 
             
            require 'ffi'
         | 
| 8 8 | 
             
            require_relative 'sdl2_rect'
         | 
| 9 9 |  | 
| 10 | 
            -
            module  | 
| 10 | 
            +
            module SDL
         | 
| 11 11 | 
             
              extend FFI::Library
         | 
| 12 12 | 
             
              # Define/Macro
         | 
| 13 13 |  | 
| 14 | 
            -
               | 
| 15 | 
            -
               | 
| 16 | 
            -
               | 
| 17 | 
            -
               | 
| 18 | 
            -
               | 
| 14 | 
            +
              SWSURFACE = 0
         | 
| 15 | 
            +
              PREALLOC = 0x00000001
         | 
| 16 | 
            +
              RLEACCEL = 0x00000002
         | 
| 17 | 
            +
              DONTFREE = 0x00000004
         | 
| 18 | 
            +
              SIMD_ALIGNED = 0x00000008
         | 
| 19 19 |  | 
| 20 20 | 
             
              # Enum
         | 
| 21 21 |  | 
| 22 | 
            -
               | 
| 23 | 
            -
               | 
| 24 | 
            -
               | 
| 25 | 
            -
               | 
| 22 | 
            +
              YUV_CONVERSION_JPEG = 0
         | 
| 23 | 
            +
              YUV_CONVERSION_BT601 = 1
         | 
| 24 | 
            +
              YUV_CONVERSION_BT709 = 2
         | 
| 25 | 
            +
              YUV_CONVERSION_AUTOMATIC = 3
         | 
| 26 26 |  | 
| 27 27 | 
             
              # Typedef
         | 
| 28 28 |  | 
| @@ -31,7 +31,7 @@ module SDL2 | |
| 31 31 |  | 
| 32 32 | 
             
              # Struct
         | 
| 33 33 |  | 
| 34 | 
            -
              class  | 
| 34 | 
            +
              class Surface < FFI::Struct
         | 
| 35 35 | 
             
                layout(
         | 
| 36 36 | 
             
                  :flags, :uint,
         | 
| 37 37 | 
             
                  :format, :pointer,
         | 
| @@ -42,7 +42,7 @@ module SDL2 | |
| 42 42 | 
             
                  :userdata, :pointer,
         | 
| 43 43 | 
             
                  :locked, :int,
         | 
| 44 44 | 
             
                  :list_blitmap, :pointer,
         | 
| 45 | 
            -
                  :clip_rect,  | 
| 45 | 
            +
                  :clip_rect, Rect,
         | 
| 46 46 | 
             
                  :map, :pointer,
         | 
| 47 47 | 
             
                  :refcount, :int,
         | 
| 48 48 | 
             
                )
         | 
| @@ -51,7 +51,7 @@ module SDL2 | |
| 51 51 |  | 
| 52 52 | 
             
              # Function
         | 
| 53 53 |  | 
| 54 | 
            -
              def self.setup_surface_symbols()
         | 
| 54 | 
            +
              def self.setup_surface_symbols(output_error = false)
         | 
| 55 55 | 
             
                symbols = [
         | 
| 56 56 | 
             
                  :SDL_CreateRGBSurface,
         | 
| 57 57 | 
             
                  :SDL_CreateRGBSurfaceWithFormat,
         | 
| @@ -80,17 +80,60 @@ module SDL2 | |
| 80 80 | 
             
                  :SDL_ConvertSurface,
         | 
| 81 81 | 
             
                  :SDL_ConvertSurfaceFormat,
         | 
| 82 82 | 
             
                  :SDL_ConvertPixels,
         | 
| 83 | 
            +
                  :SDL_PremultiplyAlpha,
         | 
| 83 84 | 
             
                  :SDL_FillRect,
         | 
| 84 85 | 
             
                  :SDL_FillRects,
         | 
| 85 86 | 
             
                  :SDL_UpperBlit,
         | 
| 86 87 | 
             
                  :SDL_LowerBlit,
         | 
| 87 88 | 
             
                  :SDL_SoftStretch,
         | 
| 89 | 
            +
                  :SDL_SoftStretchLinear,
         | 
| 88 90 | 
             
                  :SDL_UpperBlitScaled,
         | 
| 89 91 | 
             
                  :SDL_LowerBlitScaled,
         | 
| 90 92 | 
             
                  :SDL_SetYUVConversionMode,
         | 
| 91 93 | 
             
                  :SDL_GetYUVConversionMode,
         | 
| 92 94 | 
             
                  :SDL_GetYUVConversionModeForResolution,
         | 
| 93 95 | 
             
                ]
         | 
| 96 | 
            +
                apis = {
         | 
| 97 | 
            +
                  :SDL_CreateRGBSurface => :CreateRGBSurface,
         | 
| 98 | 
            +
                  :SDL_CreateRGBSurfaceWithFormat => :CreateRGBSurfaceWithFormat,
         | 
| 99 | 
            +
                  :SDL_CreateRGBSurfaceFrom => :CreateRGBSurfaceFrom,
         | 
| 100 | 
            +
                  :SDL_CreateRGBSurfaceWithFormatFrom => :CreateRGBSurfaceWithFormatFrom,
         | 
| 101 | 
            +
                  :SDL_FreeSurface => :FreeSurface,
         | 
| 102 | 
            +
                  :SDL_SetSurfacePalette => :SetSurfacePalette,
         | 
| 103 | 
            +
                  :SDL_LockSurface => :LockSurface,
         | 
| 104 | 
            +
                  :SDL_UnlockSurface => :UnlockSurface,
         | 
| 105 | 
            +
                  :SDL_LoadBMP_RW => :LoadBMP_RW,
         | 
| 106 | 
            +
                  :SDL_SaveBMP_RW => :SaveBMP_RW,
         | 
| 107 | 
            +
                  :SDL_SetSurfaceRLE => :SetSurfaceRLE,
         | 
| 108 | 
            +
                  :SDL_HasSurfaceRLE => :HasSurfaceRLE,
         | 
| 109 | 
            +
                  :SDL_SetColorKey => :SetColorKey,
         | 
| 110 | 
            +
                  :SDL_HasColorKey => :HasColorKey,
         | 
| 111 | 
            +
                  :SDL_GetColorKey => :GetColorKey,
         | 
| 112 | 
            +
                  :SDL_SetSurfaceColorMod => :SetSurfaceColorMod,
         | 
| 113 | 
            +
                  :SDL_GetSurfaceColorMod => :GetSurfaceColorMod,
         | 
| 114 | 
            +
                  :SDL_SetSurfaceAlphaMod => :SetSurfaceAlphaMod,
         | 
| 115 | 
            +
                  :SDL_GetSurfaceAlphaMod => :GetSurfaceAlphaMod,
         | 
| 116 | 
            +
                  :SDL_SetSurfaceBlendMode => :SetSurfaceBlendMode,
         | 
| 117 | 
            +
                  :SDL_GetSurfaceBlendMode => :GetSurfaceBlendMode,
         | 
| 118 | 
            +
                  :SDL_SetClipRect => :SetClipRect,
         | 
| 119 | 
            +
                  :SDL_GetClipRect => :GetClipRect,
         | 
| 120 | 
            +
                  :SDL_DuplicateSurface => :DuplicateSurface,
         | 
| 121 | 
            +
                  :SDL_ConvertSurface => :ConvertSurface,
         | 
| 122 | 
            +
                  :SDL_ConvertSurfaceFormat => :ConvertSurfaceFormat,
         | 
| 123 | 
            +
                  :SDL_ConvertPixels => :ConvertPixels,
         | 
| 124 | 
            +
                  :SDL_PremultiplyAlpha => :PremultiplyAlpha,
         | 
| 125 | 
            +
                  :SDL_FillRect => :FillRect,
         | 
| 126 | 
            +
                  :SDL_FillRects => :FillRects,
         | 
| 127 | 
            +
                  :SDL_UpperBlit => :UpperBlit,
         | 
| 128 | 
            +
                  :SDL_LowerBlit => :LowerBlit,
         | 
| 129 | 
            +
                  :SDL_SoftStretch => :SoftStretch,
         | 
| 130 | 
            +
                  :SDL_SoftStretchLinear => :SoftStretchLinear,
         | 
| 131 | 
            +
                  :SDL_UpperBlitScaled => :UpperBlitScaled,
         | 
| 132 | 
            +
                  :SDL_LowerBlitScaled => :LowerBlitScaled,
         | 
| 133 | 
            +
                  :SDL_SetYUVConversionMode => :SetYUVConversionMode,
         | 
| 134 | 
            +
                  :SDL_GetYUVConversionMode => :GetYUVConversionMode,
         | 
| 135 | 
            +
                  :SDL_GetYUVConversionModeForResolution => :GetYUVConversionModeForResolution,
         | 
| 136 | 
            +
                }
         | 
| 94 137 | 
             
                args = {
         | 
| 95 138 | 
             
                  :SDL_CreateRGBSurface => [:uint, :int, :int, :int, :uint, :uint, :uint, :uint],
         | 
| 96 139 | 
             
                  :SDL_CreateRGBSurfaceWithFormat => [:uint, :int, :int, :int, :uint],
         | 
| @@ -119,11 +162,13 @@ module SDL2 | |
| 119 162 | 
             
                  :SDL_ConvertSurface => [:pointer, :pointer, :uint],
         | 
| 120 163 | 
             
                  :SDL_ConvertSurfaceFormat => [:pointer, :uint, :uint],
         | 
| 121 164 | 
             
                  :SDL_ConvertPixels => [:int, :int, :uint, :pointer, :int, :uint, :pointer, :int],
         | 
| 165 | 
            +
                  :SDL_PremultiplyAlpha => [:int, :int, :uint, :pointer, :int, :uint, :pointer, :int],
         | 
| 122 166 | 
             
                  :SDL_FillRect => [:pointer, :pointer, :uint],
         | 
| 123 167 | 
             
                  :SDL_FillRects => [:pointer, :pointer, :int, :uint],
         | 
| 124 168 | 
             
                  :SDL_UpperBlit => [:pointer, :pointer, :pointer, :pointer],
         | 
| 125 169 | 
             
                  :SDL_LowerBlit => [:pointer, :pointer, :pointer, :pointer],
         | 
| 126 170 | 
             
                  :SDL_SoftStretch => [:pointer, :pointer, :pointer, :pointer],
         | 
| 171 | 
            +
                  :SDL_SoftStretchLinear => [:pointer, :pointer, :pointer, :pointer],
         | 
| 127 172 | 
             
                  :SDL_UpperBlitScaled => [:pointer, :pointer, :pointer, :pointer],
         | 
| 128 173 | 
             
                  :SDL_LowerBlitScaled => [:pointer, :pointer, :pointer, :pointer],
         | 
| 129 174 | 
             
                  :SDL_SetYUVConversionMode => [:int],
         | 
| @@ -158,11 +203,13 @@ module SDL2 | |
| 158 203 | 
             
                  :SDL_ConvertSurface => :pointer,
         | 
| 159 204 | 
             
                  :SDL_ConvertSurfaceFormat => :pointer,
         | 
| 160 205 | 
             
                  :SDL_ConvertPixels => :int,
         | 
| 206 | 
            +
                  :SDL_PremultiplyAlpha => :int,
         | 
| 161 207 | 
             
                  :SDL_FillRect => :int,
         | 
| 162 208 | 
             
                  :SDL_FillRects => :int,
         | 
| 163 209 | 
             
                  :SDL_UpperBlit => :int,
         | 
| 164 210 | 
             
                  :SDL_LowerBlit => :int,
         | 
| 165 211 | 
             
                  :SDL_SoftStretch => :int,
         | 
| 212 | 
            +
                  :SDL_SoftStretchLinear => :int,
         | 
| 166 213 | 
             
                  :SDL_UpperBlitScaled => :int,
         | 
| 167 214 | 
             
                  :SDL_LowerBlitScaled => :int,
         | 
| 168 215 | 
             
                  :SDL_SetYUVConversionMode => :void,
         | 
| @@ -171,9 +218,9 @@ module SDL2 | |
| 171 218 | 
             
                }
         | 
| 172 219 | 
             
                symbols.each do |sym|
         | 
| 173 220 | 
             
                  begin
         | 
| 174 | 
            -
                    attach_function sym, args[sym], retvals[sym]
         | 
| 221 | 
            +
                    attach_function apis[sym], sym, args[sym], retvals[sym]
         | 
| 175 222 | 
             
                  rescue FFI::NotFoundError => error
         | 
| 176 | 
            -
                    $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
         | 
| 223 | 
            +
                    $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
         | 
| 177 224 | 
             
                  end
         | 
| 178 225 | 
             
                end
         | 
| 179 226 | 
             
              end
         |