Update of /project/gsharp/cvsroot/gsharp In directory common-lisp.net:/tmp/cvs-serv11405
Modified Files: sdl.lisp Log Message: add *FONTS-DIRECTORY* to allow running GSharp when not in the gsharp directory; essentially, we address the path relative to the path of sdl.lisp or sdl.fasl (note: may break if this is subjected to Debian's common-lisp-controller)
One remaining LOOP BY -1 that slipped through the net
Date: Mon Feb 16 13:50:20 2004 Author: crhodes
Index: gsharp/sdl.lisp diff -u gsharp/sdl.lisp:1.1.1.1 gsharp/sdl.lisp:1.2 --- gsharp/sdl.lisp:1.1.1.1 Mon Feb 16 10:46:21 2004 +++ gsharp/sdl.lisp Mon Feb 16 13:50:20 2004 @@ -1,5 +1,9 @@ (in-package :sdl)
+(defvar *fonts-directory* + (merge-pathnames (make-pathname :directory '(relative "Fonts")) + (make-pathname :directory (pathname-directory *load-truename*)))) + (defgeneric glyph (font glyph-no)) (defgeneric glyph-offsets (font glyph-no)) (defgeneric staff-line-distance (font)) @@ -113,7 +117,7 @@ :element-type '(unsigned-byte 8) :initial-element 16)) (loop for r from 0 below (car (array-dimensions matrix)) - for y from (gf-char-max-n gf-char) by -1 do + for y downfrom (gf-char-max-n gf-char) by 1 do (loop for c from 0 below (cadr (array-dimensions matrix)) for x from (gf-char-min-m gf-char) do (decf (aref pixmap @@ -159,7 +163,9 @@ (- notehead-right-x-offset notehead-left-x-offset)))
(defun load-font (staff-line-distance) - (let* ((gf-font (parse-gf-file (format nil "Fonts/sdl~a.gf" staff-line-distance))) + (let* ((gf-font (parse-gf-file (merge-pathnames + (format nil "sdl~a.gf" staff-line-distance) + *fonts-directory*))) (maxchar (reduce #'max (gf-font-chars gf-font) :key #'gf-char-no)) (glyphs (make-array (list (1+ maxchar)) :initial-element nil))) (loop for char in (gf-font-chars gf-font) do