anchor.diff:    (ctm matrix)
     (options font-options))
   
  -(defmethod initialize-instance ((scaled-font scaled-font) &key font-face font-matrix cmt options)
  -  (setf
  -   (foreign-location scaled-font)
  -   (%scaled-font-create font-face font-matrix cmt options))
  -  (call-next-method))
  +(defmethod allocate-foreign ((scaled-font scaled-font) &key font-face font-matrix cmt options)
  +  (%scaled-font-create font-face font-matrix cmt options))
   
   
   
  
positive.code: ;; Image Surface
  
  ;; Should data be automatically freed when the surface is GCed?
  (defmethod initialize-instance ((surface image-surface) 
  				&key width height stride format data)
    (setf 
     (foreign-location surface)
     (if (not data)
         (%image-surface-create format width height)
       (%image-surface-create-for-data data format width height 
        (or 
         stride
         (let ((element-size (cdr (assoc format '((:argb32 . 4) (:rgb24 . 4) (:a8 . 1) (:a1 1/8))))))
  	 (ceiling (* width element-size)))))))
    (call-next-method))
  
  
  (defbinding %image-surface-create () image-surface
  
negative.code: ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  
  ;; $Id: cairo.lisp,v 1.5 2006-02-09 22:30:39 espen Exp $
  
  (in-package "CAIRO")
  
  