Update of /project/mcclim/cvsroot/mcclim/Backends/beagle/output In directory clnet:/tmp/cvs-serv3307/Backends/beagle/output
Modified Files: fonts.lisp medium.lisp Log Message: Try to make beagle backend run both on 64-bit and 32-bit clozure cl * Only tested on 64-bit clozure cl 1.2rc1 * hacked until clim-listener runs; chances are I missed many 'short-floats * Also don't (re)define symbols in the ccl package
--- /project/mcclim/cvsroot/mcclim/Backends/beagle/output/fonts.lisp 2007/12/18 10:54:22 1.4 +++ /project/mcclim/cvsroot/mcclim/Backends/beagle/output/fonts.lisp 2008/05/16 14:05:23 1.5 @@ -37,13 +37,13 @@ :serif "Times New Roman" :sans-serif "Verdana"))
-(defparameter *beagle-text-sizes* '(:normal 12.0 - :tiny 9.0 - :very-small 10.0 - :small 11.0 - :large 14.0 - :very-large 18.0 - :huge 24.0)) +(defparameter *beagle-text-sizes* '(:normal #.(cg-floatify 12.0) + :tiny #.(cg-floatify 9.0) + :very-small #.(cg-floatify 10.0) + :small #.(cg-floatify 11.0) + :large #.(cg-floatify 14.0) + :very-large #.(cg-floatify 18.0) + :huge #.(cg-floatify 24.0)))
(defparameter *beagle-native-fonts* (make-hash-table :test #'equal)) (defparameter *beagle-font-metrics* (make-hash-table :test #'equal)) --- /project/mcclim/cvsroot/mcclim/Backends/beagle/output/medium.lisp 2006/03/29 10:43:38 1.5 +++ /project/mcclim/cvsroot/mcclim/Backends/beagle/output/medium.lisp 2008/05/16 14:05:23 1.6 @@ -84,7 +84,7 @@
(defmethod (setf medium-line-style) :before (line-style (medium beagle-medium)) (unless (equal (medium-line-style medium) line-style) - (let ((width (coerce (line-style-thickness line-style) 'short-float)) + (let ((width (cg-floatify (line-style-thickness line-style))) (cap (%translate-cap-shape (line-style-cap-shape line-style))) (dashes (line-style-dashes line-style)) (join (%translate-joint-shape (line-style-joint-shape line-style)))) @@ -344,7 +344,7 @@ (defmethod %clim-opacity-from-design ((medium beagle-medium) design) (declare (ignore medium design)) ;; Just a stub for now. ::FIXME:: Need to ask on the list about this... - 1.0) + #.(cg-floatify 1.0))
(defmethod %clim-colour-from-design ((medium beagle-medium) (design climi::indirect-ink)) @@ -477,12 +477,8 @@ (defun medium-copy-area-aux (from from-x from-y width height to to-x to-y) "Helper method for copying areas. 'from' and 'to' must both be 'mirror' objects. From and To coordinates must already be transformed as appropriate." - (let* ((source-region (ccl::make-ns-rect (coerce from-x 'short-float) - (coerce from-y 'short-float) - (coerce width 'short-float) - (coerce height 'short-float))) - (target-point (ccl::make-ns-point (coerce to-x 'short-float) - (coerce to-y 'short-float))) + (let* ((source-region (make-ns-rect from-x from-y width height)) + (target-point (make-ns-point to-x to-y)) (bitmap-image (send from :copy-bitmap-from-region source-region))) (when (eql bitmap-image (%null-ptr)) (warn "medium.lisp -> medium-copy-area: failed to copy specified region (null bitmap)~%") @@ -581,10 +577,10 @@ (do-sequence ((left top right bottom) coord-seq) (when (< right left) (rotatef left right)) (when (< top bottom) (rotatef top bottom)) - (let ((rect (ccl::make-ns-rect (pixel-center left) - (pixel-center bottom) - (pixel-count (- right left)) - (pixel-count (- top bottom))))) + (let ((rect (make-ns-rect (pixel-center left) + (pixel-center bottom) + (pixel-count (- right left)) + (pixel-count (- top bottom))))) (send path :append-bezier-path-with-rect rect) (#_free rect))) (if filled @@ -594,16 +590,15 @@ ;; ::FIXME:: Move these from here! (defun pixel-center (pt) "Ensure any ordinate provided sits on the center of a pixel. This -prevents Cocoa from 'antialiasing' lines, making them thicker and -a shade of grey. Ensures the return value is a short-float, as -required by the Cocoa methods." - (coerce (+ (round-coordinate pt) 0.5) 'short-float)) +prevents Cocoa from 'antialiasing' lines, making them thicker and a +shade of grey. Ensures the return value is an appropriate float type." + (cg-floatify (+ (round-coordinate pt) 0.5)))
(defun pixel-count (sz) "Ensures any value provided is rounded to the nearest unit, and -returned as a short-float as required by the Cocoa methods." - (coerce (round-coordinate sz) 'short-float)) +returned as an appropriate float type." + (cg-floatify (round-coordinate sz)))
;;; Nabbed from CLX backend medium.lisp @@ -657,10 +652,10 @@ (origin-y (- center-y radius-dy)) (width (* 2 radius-dx)) (height (* 2 radius-dy)) - (rect (ccl::make-ns-rect (pixel-center origin-x) - (pixel-center origin-y) - (pixel-count width) - (pixel-count height)))) + (rect (make-ns-rect (pixel-center origin-x) + (pixel-center origin-y) + (pixel-count width) + (pixel-count height)))) (send path :append-bezier-path-with-oval-in-rect rect) (#_free rect) (if filled @@ -677,8 +672,8 @@ (pixel-center center-y)))) (send path :append-bezier-path-with-arc-with-center point :radius (pixel-count radius) - :start-angle (coerce (/ start-angle (/ pi 180)) 'short-float) - :end-angle (coerce (/ end-angle (/ pi 180)) 'short-float) + :start-angle (cg-floatify (/ start-angle (/ pi 180))) + :end-angle (cg-floatify (/ end-angle (/ pi 180))) :clockwise NIL))) (if filled (send mirror :fill-path path :in-colour colour) @@ -692,8 +687,7 @@ ;;; Draws a point on the medium 'medium'.
(defmethod medium-draw-point* ((medium beagle-medium) x y) - (let ((width (coerce (line-style-thickness (medium-line-style medium)) - 'short-float))) + (let ((width (cg-floatify (line-style-thickness (medium-line-style medium))))) (medium-draw-circle* medium x y (/ width 2) 0 (* 2 pi) t)))
@@ -707,7 +701,7 @@
(defmethod medium-draw-points* ((medium beagle-medium) coord-seq) (with-transformed-positions ((sheet-native-transformation (medium-sheet medium)) coord-seq) - (let ((width (coerce (line-style-thickness (medium-line-style medium)) 'short-float))) + (let ((width (cg-floatify (line-style-thickness (medium-line-style medium))))) (do-sequence ((x y) coord-seq) (medium-draw-circle* medium x y (/ width 2) 0 (* 2 pi) t)))))
@@ -775,10 +769,10 @@ (send mirror :draw-image colour :at-point (ns-make-point (pixel-center left) (pixel-center top))) (return-from medium-draw-rectangle* (values))) - (let ((rect (ccl::make-ns-rect (pixel-center left) - (pixel-center bottom) - (pixel-count (- right left)) - (pixel-count (- top bottom))))) + (let ((rect (make-ns-rect (pixel-center left) + (pixel-center bottom) + (pixel-count (- right left)) + (pixel-count (- top bottom))))) (send path :append-bezier-path-with-rect rect) (#_free rect) (if filled @@ -853,8 +847,7 @@ (:baseline (- y baseline)) ;;; (:bottom y))) (:bottom (- y text-height)))) - (slet ((point (ns-make-point (coerce x 'short-float) - (coerce y 'short-float)))) + (slet ((point (ns-make-point (cg-floatify x) (cg-floatify y)))) (let ((objc-string (%make-nsstring (subseq string start end)))) ;; NB: draw-string-at-point uses upper-left as origin in a flipped ;; view.