diff options
author | David Thompson <dthompson2@worcester.edu> | 2018-04-30 21:13:00 -0400 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2018-04-30 21:13:00 -0400 |
commit | 552f061569f25337a7191c67481c4d8bcb1542ba (patch) | |
tree | 686da040e054839a42dfcd58c9b5403fefb473e9 /chickadee/render | |
parent | 0ab1c6f234955eff807c1909a6643b04a433c5ff (diff) |
render: font: Allow rendering of substrings.
* chickadee/render/font.scm (draw-text*, draw-text): Add start and end
arguments.
* doc/api.texi (Fonts): Document new arguments.
Diffstat (limited to 'chickadee/render')
-rw-r--r-- | chickadee/render/font.scm | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/chickadee/render/font.scm b/chickadee/render/font.scm index 3654a13..d5995a2 100644 --- a/chickadee/render/font.scm +++ b/chickadee/render/font.scm @@ -311,7 +311,8 @@ extension must be either .xml or .fnt." (define draw-text* (let ((cursor (vec2 0.0 0.0)) (rect (make-rect 0.0 0.0 0.0 0.0))) - (lambda* (font text matrix #:key (blend-mode 'alpha)) + (lambda* (font text matrix #:key (blend-mode 'alpha) + (start 0) (end (string-length text))) ;; TODO: Respect kerning. (define (render-char c) ;; TODO: What if "?" isn't in the font? @@ -331,7 +332,7 @@ extension must be either .xml or .fnt." (font-char-advance char)))))) (set-vec2-x! cursor 0.0) (set-vec2-y! cursor 0.0) - (string-for-each render-char text)))) + (string-for-each render-char text start end)))) (define %default-scale (vec2 1.0 1.0)) (define %null-vec2 (vec2 0.0 0.0)) @@ -345,7 +346,9 @@ extension must be either .xml or .fnt." (origin %null-vec2) (rotation 0) (scale %default-scale) - (blend-mode 'alpha)) + (blend-mode 'alpha) + (start 0) + (end (string-length text))) "Draw the string TEXT with the first character starting at POSITION using FONT." (matrix4-2d-transform! matrix @@ -353,4 +356,5 @@ POSITION using FONT." #:position position #:rotation rotation #:scale scale) - (draw-text* font text matrix #:blend-mode blend-mode)))) + (draw-text* font text matrix #:blend-mode blend-mode + #:start start #:end end)))) |