(use sdl) ;; ;; wait-key ;; wait until a escape key is pressed and released ;; (define (wait-key) (define (wait-key-helper e) (let ((count (sdl-poll-event e))) (cond ((and (> count 0) (= SDL_KEYUP (sdl-event-type e)) (= SDLK_ESCAPE (sdl-event-key-keysym-sym e))) #t) (else (sdl-delay 10) (wait-key-helper e))))) (let ((e (sdl-make-event))) (wait-key-helper e))) ;; ;; run-test ;; (define (run-test) (sdl-init SDL_INIT_VIDEO) (let ((screen (sdl-set-video-mode 640 480 16 0))) (let ((bmp (sdl-load-bmp "sample.bmp"))) (if (not (sdl-surface? bmp)) (display (sdl-get-error)) (sdl-blit-surface bmp #f screen #f))) (if (sdl-must-lock screen) (sdl-lock-surface screen)) (put-pixel screen 300 300 65535) (put-pixel screen 301 301 65535) (put-pixel screen 302 302 65535) (put-pixel screen 303 303 65535) (put-pixel screen 304 304 65535) (if (sdl-must-lock screen) (sdl-unlock-surface screen)) (sdl-flip screen)) (wait-key) (sdl-quit)) (run-test)