summaryrefslogtreecommitdiff
path: root/chickadee
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2018-04-30 21:13:00 -0400
committerDavid Thompson <dthompson2@worcester.edu>2018-04-30 21:13:00 -0400
commit552f061569f25337a7191c67481c4d8bcb1542ba (patch)
tree686da040e054839a42dfcd58c9b5403fefb473e9 /chickadee
parent0ab1c6f234955eff807c1909a6643b04a433c5ff (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')
-rw-r--r--chickadee/render/font.scm12
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))))