anchor.diff:  ;; 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.4 2006-02-08 22:19:44 espen Exp $
  +;; $Id: cairo.lisp,v 1.5 2006-02-09 22:30:39 espen Exp $
   
   (in-package "CAIRO")
   
  
positive.code:   (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))
  
  
  
  
negative.code: ;; Image Surface
  
  ;; Should data be automatically freed when the surface is GCed?
  (defmethod allocate-foreign ((surface image-surface) 
  			     &key width height stride format data)
    (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)))))))
  
  
  (defbinding %image-surface-create () image-surface
  