Method: SDL.load_lib

Defined in:
lib/sdl2.rb

.load_lib(libpath, output_error = false, image_libpath: nil, ttf_libpath: nil, mixer_libpath: nil, gfx_libpath: nil, sound_libpath: nil) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/sdl2.rb', line 61

def self.load_lib(libpath, output_error = false, image_libpath: nil, ttf_libpath: nil, mixer_libpath: nil, gfx_libpath: nil, sound_libpath: nil)

  unless @@sdl2_import_done
    # Ref.: Using Multiple and Alternate Libraries
    # https://github.com/ffi/ffi/wiki/Using-Multiple-and-Alternate-Libraries
    begin
      lib_paths = [libpath, image_libpath, ttf_libpath, mixer_libpath, gfx_libpath, sound_libpath].compact

      ffi_lib_flags :now, :global
      ffi_lib *lib_paths
      setup_symbols(output_error)

      setup_image_symbols(output_error) if image_libpath
      setup_ttf_symbols(output_error) if ttf_libpath
      setup_mixer_symbols(output_error) if mixer_libpath

      if gfx_libpath != nil
        setup_gfx_framerate_symbols(output_error)
        setup_gfx_primitives_symbols(output_error)
        setup_gfx_imagefilter_symbols(output_error)
        setup_gfx_rotozoom_symbols(output_error)
      end

      setup_sound_symbols(output_error) if sound_libpath
    rescue => error
      $stderr.puts("[Warning] Failed to load libraries (#{error}).") if output_error
    end
  end

end