From 6d5057d16a2e2dbc0f36e4e2bb7fcfa46bda8c0d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fr=C3=A9d=C3=A9ric=20Jolliton?= Date: Sun, 20 May 2007 23:23:25 +0200 Subject: [PATCH] Conditionnaly handle kerning. --- paths-ttf.lisp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/paths-ttf.lisp b/paths-ttf.lisp index a562511..d3a755c 100644 --- a/paths-ttf.lisp +++ b/paths-ttf.lisp @@ -43,21 +43,23 @@ (push path result))) (nreverse result)))) -(defun paths-from-string (font-loader text &key (offset (make-point 0 0)) (scale-x 1.0) (scale-y 1.0)) +(defun paths-from-string (font-loader text &key (offset (make-point 0 0)) (scale-x 1.0) (scale-y 1.0) (kerning t)) (let (result) (loop for previous-char = nil then char for char across text for previous-glyph = nil then glyph - for glyph = (zpb-ttf:find-glyph char font-loader) + for glyph = (find-glyph char font-loader) do (when previous-char (setf offset (paths::p+ offset (make-point (* scale-x - (+ (zpb-ttf:advance-width previous-glyph) - (zpb-ttf:kerning-offset previous-char - char - font-loader))) + (+ (advance-width previous-glyph) + (if kerning + (kerning-offset previous-char + char + font-loader) + 0))) 0)))) (let ((glyph-paths (paths-from-glyph glyph :offset offset :scale-x scale-x :scale-y scale-y))) -- 2.11.4.GIT