Update of /project/gsharp/cvsroot/gsharp
In directory clnet:/tmp/cvs-serv8356
Modified Files:
gsharp.asd packages.lisp score-pane.lisp sdl.lisp
Removed Files:
gf.lisp
Log Message:
Removed references to old font system, including the file gf.lisp.
--- /project/gsharp/cvsroot/gsharp/gsharp.asd 2006/06/05 00:26:18 1.11
+++ /project/gsharp/cvsroot/gsharp/gsharp.asd 2006/06/05 00:53:40 1.12
@@ -23,7 +23,6 @@
(gsharp-defsystem (:gsharp :depends-on (:mcclim :flexichain :esa))
"packages"
"utilities"
- "gf"
"bezier"
"mf"
"sdl"
--- /project/gsharp/cvsroot/gsharp/packages.lisp 2006/06/05 00:26:18 1.53
+++ /project/gsharp/cvsroot/gsharp/packages.lisp 2006/06/05 00:53:40 1.54
@@ -4,15 +4,6 @@
(:export #:ninsert-element #:define-added-mixin
#:unicode-to-char #:char-to-unicode))
-(defpackage :gf
- (:use :common-lisp)
- (:export #:parse-gf-file #:gf-font-comment #:gf-font-chars #:gf-font-design-size
- #:gf-font-checksum #:gf-font-horizontal-ratio #:gf-font-vertical-ratio
- #:gf-font-min-column #:gf-font-max-column
- #:gf-font-min-row #:gf-font-max-row
- #:gf-char-no #:gf-char-min-m #:gf-char-max-m
- #:gf-char-min-n #:gf-char-max-n #:gf-char-matrix))
-
(defpackage :mf
(:use :cl)
(:export #:make-bezier-segment #:bezier-segment
@@ -34,12 +25,12 @@
#:left #:right #:up #:down))
(defpackage :sdl
- (:use :common-lisp :gf :mf)
+ (:use :common-lisp :mf)
(:export #:glyph #:staff-line-distance #:staff-line-offsets
#:stem-offsets #:bar-line-offsets
#:ledger-line-x-offsets #:ledger-line-y-offsets
#:notehead-right-offsets #:notehead-left-offsets
- #:load-font #:glyph-offsets #:suspended-note-offset
+ #:make-font #:glyph-offsets #:suspended-note-offset
#:beam-offsets #:beam-hang-sit-offset))
(defpackage :score-pane
--- /project/gsharp/cvsroot/gsharp/score-pane.lisp 2006/06/05 00:26:18 1.28
+++ /project/gsharp/cvsroot/gsharp/score-pane.lisp 2006/06/05 00:53:41 1.29
@@ -155,38 +155,6 @@
(defun staff-step (n)
(* n (/ (staff-line-distance *font*) 2)))
-;;; Given a pane, a glyph number, an x position (measured in pixels)
-;;; and a y position (measured in staff steps), draw the glyph
-;;; at the position in the pane.
-;;; The font is organized so that the normal glyph is immediately
-;;; followed by a light version of the glyph. Hence, we add 1
-;;; to the glyph number if a light version is desired.
-;;; It appears that the resulting y-coordinate (in pixels) has the
-;;; same sign as the staff-step argument, which suggests that this
-;;; function must be called with a negated staff-step. It might be
-;;; better to have this function do the negation.
-(defun draw-antialiased-glyph (pane glyph-no x staff-step)
- (let* ((extra (if *light-glyph* 1 0))
- (matrix (glyph *font* (+ glyph-no extra)))
- (pixmap (pane-pixmap pane matrix)))
- (multiple-value-bind (dx dy) (glyph-offsets *font* (+ glyph-no extra))
- (let ((x1 (+ x dx))
- (y1 (- dy (staff-step staff-step))))
- (draw-pixmap* pane pixmap x1 y1)))))
-
-;;;;;;;;;;;;;;;;;; helper macro
-
-;;; This macro is currently not used. (And probably never will be
-;;; used, now that we raster our own bezier curves.)
-(defmacro define-pixmap-recording ((draw-name args) &body body)
- `(defun ,draw-name (pane ,@args x staff-step)
- (let* ((extra (if *light-glyph* 1 0))
- (glyph-no ,@body)
- (matrix (glyph *font* (+ glyph-no extra)))
- (pixmap (pane-pixmap pane matrix)))
- (multiple-value-bind (dx dy) (glyph-offsets *font* (+ glyph-no extra))
- (draw-pixmap* pane pixmap (+ x dx) (- dy (staff-step staff-step)))))))
-
;;;;;;;;;;;;;;;;;; notehead
(define-presentation-type notehead () :options (name x staff-step))
@@ -701,7 +669,7 @@
`(let ((,size-var ,size))
(unless (aref *fonts* ,size-var)
(setf (aref *fonts* ,size-var)
- (load-font ,size-var)))
+ (make-font ,size-var)))
(let ((*font* (aref *fonts* ,size-var)))
,@body))))
--- /project/gsharp/cvsroot/gsharp/sdl.lisp 2006/06/03 22:03:08 1.25
+++ /project/gsharp/cvsroot/gsharp/sdl.lisp 2006/06/05 00:53:41 1.26
@@ -1,16 +1,5 @@
(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)
- (:documentation "Return two values, DX and DY to be added to the reference point of
-a glyph in order to obtain its upper-left corner. If (as is usually the case)
-the reference point is somewhere inside the bounding box of the glyph, this
-means that both the values returned are negative"))
-
(defgeneric staff-line-distance (font))
(defgeneric staff-line-offsets (font))
(defgeneric stem-offsets (font))
@@ -33,8 +22,7 @@
point of a hanging or sitting beam respectively"))
(defclass font ()
- ((gf-font :initarg :gf-font :reader gf-font)
- ;; The distance in pixels between the upper edge of two
+ (;; The distance in pixels between the upper edge of two
;; adjacent staff lines.
(staff-line-distance :initarg :staff-line-distance :reader staff-line-distance)
;; An integer value indicating how many non-white pixels are
@@ -120,8 +108,7 @@
(beam-offset-down)
(beam-offset-up)
(beam-hang-sit-offset :reader beam-hang-sit-offset)
- (designs :initform (make-hash-table :test #'eq))
- (glyphs :initarg :glyphs :reader glyphs)))
+ (designs :initform (make-hash-table :test #'eq))))
(defmethod initialize-instance :after ((font font) &rest initargs &key &allow-other-keys)
(declare (ignore initargs))
@@ -200,53 +187,6 @@
(let ((beam-thickness (- beam-offset-down beam-offset-up)))
(/ (- beam-thickness staff-line-thickness) 2)))))
-(defgeneric gf-char (glyph))
-(defgeneric pixmap (glyph))
-(defgeneric (setf pixmap) (glyph pixmap))
-
-(defclass glyph ()
- ((gf-char :initarg :gf-char :reader gf-char)
- (x-offset)
- (y-offset)
- (pixmap :initform nil :initarg :pixmap :accessor pixmap)))
-
-(defmethod initialize-instance :after ((glyph glyph) &rest initargs &key &allow-other-keys)
- (declare (ignore initargs))
- (with-slots (gf-char x-offset y-offset) glyph
- (setf x-offset (floor (gf-char-min-m gf-char) 4)
- ;; adding 1 to gv-char-max-n is necessary because
- ;; of a discrepancy between the GF documentation
- ;; and the GF file format
- y-offset (- (ceiling (1+ (gf-char-max-n gf-char)) 4)))))
-
-(defmethod glyph ((font font) glyph-no)
- (with-slots (gf-char pixmap) (aref (glyphs font) glyph-no)
- (let ((left (floor (gf-char-min-m gf-char) 4))
- (right (ceiling (1+ (gf-char-max-m gf-char)) 4))
- (down (floor (gf-char-min-n gf-char) 4))
- ;; adding 1 to gv-char-max-n is necessary because
- ;; of a discrepancy between the GF documentation
- ;; and the GF file format
- (up (ceiling (1+ (gf-char-max-n gf-char)) 4))
- (matrix (gf-char-matrix gf-char)))
- (unless pixmap
- (setf pixmap (make-array (list (- up down) (- right left))
- :element-type '(unsigned-byte 8)
- :initial-element 16))
- (loop for r from 0 below (car (array-dimensions matrix))
- 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
- (- up (ceiling (1+ y) 4))
- (- (floor x 4) left))
- (aref matrix r c))))))
- pixmap))
-
-(defmethod glyph-offsets ((font font) glyph-no)
- (with-slots (x-offset y-offset) (aref (glyphs font) glyph-no)
- (values x-offset y-offset)))
-
;;; the DOWN staff line offset is a nonnegative integer, and the UP
;;; staff line offset is a negative integer. This way, both of them
;;; should be ADDED to a reference y value to obtain the lower and
@@ -294,19 +234,8 @@
(with-slots (beam-offset-down beam-offset-up) font
(values beam-offset-down beam-offset-up)))
-(defun load-font (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 (setf (aref glyphs (gf-char-no char))
- (make-instance 'glyph :gf-char char)))
- (make-instance 'font
- :staff-line-distance staff-line-distance
- :gf-font gf-font
- :glyphs glyphs)))
+(defun make-font (staff-line-distance)
+ (make-instance 'font :staff-line-distance staff-line-distance))
(defgeneric xyscale (thing kx ky))