21 lines
1.1 KiB
Plaintext
21 lines
1.1 KiB
Plaintext
|
; todo: can we implement portable logic for finding dynamic libraries?
|
||
|
(terralib.linklibrary "/nix/store/hzfvp1pay5sqq96l20i4ahi7yrajjgfy-SDL2-2.28.4/lib/libSDL2.so")
|
||
|
|
||
|
(fn load-sdl-headers [headers]
|
||
|
(let [includes (table.concat (icollect [_ h (ipairs headers)]
|
||
|
(.. "#include <SDL2/" h ".h>\n")))
|
||
|
env (terralib.includecstring includes)
|
||
|
SDL (collect [k v (pairs env)] (k:gsub "^SDL_" "") v)]
|
||
|
(set SDL.INIT_EVERYTHING (bit.bor SDL.INIT_TIMER SDL.INIT_AUDIO SDL.INIT_VIDEO
|
||
|
SDL.INIT_JOYSTICK SDL.INIT_HAPTIC
|
||
|
SDL.INIT_GAMECONTROLLER SDL.INIT_EVENTS))
|
||
|
SDL))
|
||
|
|
||
|
(load-sdl-headers [:SDL :SDL_hints :SDL_error :SDL_video :SDL_render
|
||
|
:SDL_pixels :SDL_rect :SDL_surface :SDL_clipboard
|
||
|
:SDL_events :SDL_keyboard :SDL_keycode :SDL_scancode
|
||
|
:SDL_mouse :SDL_joystick :SDL_gamecontroller :SDL_sensor
|
||
|
:SDL_haptic :SDL_audio :SDL_timer :SDL_filesystem
|
||
|
:SDL_rwops :SDL_messagebox])
|
||
|
|