(import (scheme) (srfi 152) (chicken base) (chicken foreign) (chicken syntax)) (foreign-declare "#include ") (define-syntax define-sdl-flag (er-macro-transformer (lambda (exp rename compare) (let ((flag (cadr exp))) `(begin (export ,flag) (define ,flag (foreign-value ,(string-append "SDL_" (string-map (lambda (c) (if (char=? #\- c) #\_ (char-upcase c))) (symbol->string flag))) unsigned-int32))))))) (define-sdl-flag window-fullscreen) (define-sdl-flag window-opengl ) (define-sdl-flag window-occluded ) (define-sdl-flag window-hidden ) (define-sdl-flag window-borderless) (define-sdl-flag window-resizable) (define-sdl-flag window-minimized) (define-sdl-flag window-maximized) (define-sdl-flag window-mouse-grabbed) (define-sdl-flag window-input-focus) (define-sdl-flag window-mouse-focus) (define-sdl-flag window-external) (define-sdl-flag window-modal) (define-sdl-flag window-high-pixel-density) (define-sdl-flag window-mouse-capture) (define-sdl-flag window-mouse-relative-mode) (define-sdl-flag window-always-on-top) (define-sdl-flag window-utility) (define-sdl-flag window-tooltip) (define-sdl-flag window-popup-menu) (define-sdl-flag window-keyboard-grabbed) (define-sdl-flag window-vulkan) (define-sdl-flag window-metal) (define-sdl-flag window-transparent) (define-sdl-flag window-not-focusable) (define create-popup-window (foreign-lambda (struct "SDL_Window") "SDL_CreatePopupWindow" (struct "SDL_Window") int int int int unsigned-int32))