Index: Experimental/freetype/freetype-ffi.lisp
===================================================================
RCS file: /project/mcclim/cvsroot/mcclim/Experimental/freetype/freetype-ffi.lisp,v
retrieving revision 1.3
diff -c -r1.3 freetype-ffi.lisp
*** Experimental/freetype/freetype-ffi.lisp	22 Aug 2005 09:28:34 -0000	1.3
--- Experimental/freetype/freetype-ffi.lisp	14 Mar 2006 00:18:37 -0000
***************
*** 3,9 ****
  (DEFPACKAGE :FREETYPE 
    (:USE :cl 
          #+sbcl :sb-alien 
!         #+cmucl :alien #+cmucl :c-call)
              (:EXPORT "MEMORY-BASE" "DESCENDER" "LINEAR-VERT-ADVANCE" "YX" "XX" "FREE" "AVAILABLE-SIZES" "COVERAGE" "METRICS"
               "RASTER-FLAG" "GLYPH" "GET-CHAR-INDEX" "LIMIT" "STRING" "SHIFT" "LEN" "UNDERLINE-POSITION" "RASTER-NEW-FUNC"
               "POINTS" "TAG" "SIZE-INTERNAL" "NUM-SUBGLYPHS" "UNITS-PER-EM" "LIBRARY" "ALLOC" "OPEN-FACE" "ATTACH-FILE"
--- 3,9 ----
  (DEFPACKAGE :FREETYPE 
    (:USE :cl 
          #+sbcl :sb-alien 
!         #+(or cmu scl) :alien #+(or cmu scl) :c-call)
              (:EXPORT "MEMORY-BASE" "DESCENDER" "LINEAR-VERT-ADVANCE" "YX" "XX" "FREE" "AVAILABLE-SIZES" "COVERAGE" "METRICS"
               "RASTER-FLAG" "GLYPH" "GET-CHAR-INDEX" "LIMIT" "STRING" "SHIFT" "LEN" "UNDERLINE-POSITION" "RASTER-NEW-FUNC"
               "POINTS" "TAG" "SIZE-INTERNAL" "NUM-SUBGLYPHS" "UNITS-PER-EM" "LIBRARY" "ALLOC" "OPEN-FACE" "ATTACH-FILE"
***************
*** 42,50 ****
  
  (in-package :freetype)
  
! #+cmucl
  (alien:load-foreign "/usr/lib/libfreetype.so.6")
  
  #+sbcl
  (load-shared-object #+darwin "/usr/X11R6/lib/libfreetype.dylib" #-darwin "libfreetype.so")
  
--- 42,61 ----
  
  (in-package :freetype)
  
! #+cmu
  (alien:load-foreign "/usr/lib/libfreetype.so.6")
  
+ #+scl
+ (alien:load-dynamic-object #+64bit "/usr/lib64/libfreetype.so.6"
+ 			   #-64bit "/usr/lib/libfreetype.so.6")
+ 
+ #+(or scl cmu)
+ (defmacro define-alien-type (&rest rest)
+   `(def-alien-type ,@rest))
+ #+(or scl cmu)
+ (defmacro define-alien-routine (&rest rest)
+   `(def-alien-routine ,@rest))
+ 
  #+sbcl
  (load-shared-object #+darwin "/usr/X11R6/lib/libfreetype.dylib" #-darwin "libfreetype.so")
  
***************
*** 373,379 ****
    (freetype:driver freetype:module) (freetype:num-params freetype:int) (freetype:params (* freetype:parameter))))
  
  (define-alien-routine ("FT_New_Face" freetype:new-face) freetype:error (freetype:library freetype:library)
!  (freetype::filepathname #+cmucl c-call:c-string #+sbcl c-string) (freetype::face_index freetype:long) (freetype::aface (* (* freetype:face-rec))))
  
  (define-alien-routine ("FT_New_Memory_Face" freetype:new-memory-face) freetype:error (freetype:library freetype:library)
   (freetype::file_base (* freetype:byte)) (freetype::file_size freetype:long) (freetype::face_index freetype:long)
--- 384,390 ----
    (freetype:driver freetype:module) (freetype:num-params freetype:int) (freetype:params (* freetype:parameter))))
  
  (define-alien-routine ("FT_New_Face" freetype:new-face) freetype:error (freetype:library freetype:library)
!  (freetype::filepathname #+(or cmu scl) c-call:c-string #+sbcl c-string) (freetype::face_index freetype:long) (freetype::aface (* (* freetype:face-rec))))
  
  (define-alien-routine ("FT_New_Memory_Face" freetype:new-memory-face) freetype:error (freetype:library freetype:library)
   (freetype::file_base (* freetype:byte)) (freetype::file_size freetype:long) (freetype::face_index freetype:long)
***************
*** 403,409 ****
  (define-alien-routine ("FT_Load_Char" freetype:load-char) freetype:error (freetype:face freetype:face)
   (freetype::char_code freetype:ulong) (freetype::load_flags freetype:int))
  
! (define-alien-routine ("FT_Set_Transform" freetype:set-transform) #+cmucl c-call:void #+sbcl void (freetype:face freetype:face)
   (freetype:matrix (* freetype:matrix)) (freetype:delta (* freetype:vector)))
  
  (define-alien-type freetype:render-mode (enum freetype::render-mode- (:ft-render-mode-normal #.#o0) (:ft-render-mode-mono #.1)))
--- 414,420 ----
  (define-alien-routine ("FT_Load_Char" freetype:load-char) freetype:error (freetype:face freetype:face)
   (freetype::char_code freetype:ulong) (freetype::load_flags freetype:int))
  
! (define-alien-routine ("FT_Set_Transform" freetype:set-transform) #+(or cmu scl) c-call:void #+sbcl void (freetype:face freetype:face)
   (freetype:matrix (* freetype:matrix)) (freetype:delta (* freetype:vector)))
  
  (define-alien-type freetype:render-mode (enum freetype::render-mode- (:ft-render-mode-normal #.#o0) (:ft-render-mode-mono #.1)))
***************
*** 437,443 ****
  
  (define-alien-routine ("FT_FloorFix" freetype:floor-fix) freetype:fixed (freetype::a freetype:fixed))
  
! (define-alien-routine ("FT_Vector_Transform" freetype:vector-transform) #+cmucl c-call:void #+sbcl void (freetype::vec (* freetype:vector))
   (freetype:matrix (* freetype:matrix)))
  
  (define-alien-type freetype:encoding
--- 448,454 ----
  
  (define-alien-routine ("FT_FloorFix" freetype:floor-fix) freetype:fixed (freetype::a freetype:fixed))
  
! (define-alien-routine ("FT_Vector_Transform" freetype:vector-transform) #+(or cmu scl) c-call:void #+sbcl void (freetype::vec (* freetype:vector))
   (freetype:matrix (* freetype:matrix)))
  
  (define-alien-type freetype:encoding
Index: Experimental/freetype/freetype-package.lisp
===================================================================
RCS file: /project/mcclim/cvsroot/mcclim/Experimental/freetype/freetype-package.lisp,v
retrieving revision 1.2
diff -c -r1.2 freetype-package.lisp
*** Experimental/freetype/freetype-package.lisp	5 Jun 2005 20:50:29 -0000	1.2
--- Experimental/freetype/freetype-package.lisp	14 Mar 2006 00:18:37 -0000
***************
*** 1,6 ****
  (defpackage :mcclim-freetype
      (:use :climi :clim :clim-lisp)
      (:export :*freetype-font-path*)
!     (:import-from #+cmucl :alien
                    #+sbcl :sb-alien
                    :slot :make-alien :alien :deref))
--- 1,6 ----
  (defpackage :mcclim-freetype
      (:use :climi :clim :clim-lisp)
      (:export :*freetype-font-path*)
!     (:import-from #+(or cmu scl) :alien
                    #+sbcl :sb-alien
                    :slot :make-alien :alien :deref))
