(use sdl) (use sdl.ttf) (define COLOR_BLACK (sdl-make-color #x00 #x00 #x00)) (define COLOR_RED (sdl-make-color #xFF #x00 #x00)) (define COLOR_GREEN (sdl-make-color #x00 #xFF #x00)) (define COLOR_YELLOW (sdl-make-color #xFF #xFF #x00)) (define COLOR_BLUE (sdl-make-color #x00 #x00 #xFF)) (define COLOR_MAGENTA (sdl-make-color #xFF #x00 #xFF)) (define COLOR_CYAN (sdl-make-color #x00 #xFF #xFF)) (define COLOR_WHITE (sdl-make-color #xFF #xFF #xFF)) ;; ;; 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) (ttf-init) (let ((screen (sdl-set-video-mode 640 480 16 0)) (font (ttf-open-font "crystal.ttf" 32))) (cond ((not (ttf-font? font)) (display (sdl-get-error))) (else (sdl-blit-surface (ttf-render-text-solid font "This is a test" COLOR_WHITE) #f screen #f) (ttf-set-font-style font TTF_STYLE_UNDERLINE) (sdl-blit-surface (ttf-render-text-solid font "This is a test" COLOR_CYAN) #f screen (sdl-make-rect 10 10)) (ttf-set-font-style font TTF_STYLE_BOLD) (sdl-blit-surface (ttf-render-text-shaded font "This is another test" COLOR_YELLOW COLOR_BLUE) #f screen (sdl-make-rect 100 100)) (ttf-set-font-style font (logior TTF_STYLE_BOLD TTF_STYLE_ITALIC)) (sdl-blit-surface (ttf-render-text-blended font "Blender Test!" COLOR_RED) #f screen (sdl-make-rect 150 115)))) (sdl-flip screen)) (wait-key) (ttf-quit) (sdl-quit)) (run-test)