summaryrefslogtreecommitdiff
path: root/examples/font.scm
diff options
context:
space:
mode:
Diffstat (limited to 'examples/font.scm')
-rw-r--r--examples/font.scm38
1 files changed, 38 insertions, 0 deletions
diff --git a/examples/font.scm b/examples/font.scm
new file mode 100644
index 0000000..3bb0af0
--- /dev/null
+++ b/examples/font.scm
@@ -0,0 +1,38 @@
+(use-modules (2d game-loop)
+ (2d window)
+ (2d helpers)
+ (figl gl)
+ (2d wrappers ftgl))
+
+(define window-width 800)
+(define window-height 600)
+(define font (ftgl-create-texture-font "fonts/Boxy-Bold.ttf"))
+(define text "The quick brown fox jumped over the lazy dog.")
+
+(ftgl-set-font-face-size font 48 72)
+
+;; Open the window.
+(open-window window-width window-height)
+
+(define (quit-demo)
+ (close-window)
+ (quit))
+
+(define (key-down key mod unicode)
+ (cond ((any-equal? key 'escape 'q)
+ (quit-demo))))
+
+;; Draw our sprite
+(define (render)
+ (gl-color 1 1 1)
+ (ftgl-render-font font text (ftgl-render-mode all)))
+
+;; Register callbacks.
+(add-hook! on-quit-hook (lambda () (quit-demo)))
+(add-hook! on-render-hook (lambda () (render)))
+(add-hook! on-key-down-hook (lambda (key mod unicode) (key-down key mod unicode)))
+
+
+;; Start the game loop.
+;; The render callback will be called through this procedure.
+(run-game-loop)