Index: cairo.scm =================================================================== --- cairo.scm (revision 25270) +++ cairo.scm (working copy) @@ -303,7 +303,7 @@ (define-record cairo-text-extents-type buffer) (let ((maker make-cairo-text-extents-type)) (set! make-cairo-text-extents-type - (lambda () (maker (make-u8vector sizeof-cairo-text-extents))))) + (lambda () (maker (make-blob sizeof-cairo-text-extents))))) (define-record-printer (cairo-text-extents-type te out) (for-each (lambda (x) (display x out) @@ -315,33 +315,28 @@ (cairo-text-extents-x-advance te)" " (cairo-text-extents-y-advance te)">")))) -(define-foreign-type cairo_text_extents_t (c-pointer "cairo_text_extents_t") - (lambda (te) - (let ((p (##sys#make-pointer)) - (b (cairo-text-extents-type-buffer te))) - (if b (##core#inline "C_pointer_to_block" p b)) - p))) +(define-foreign-type cairo_text_extents_t scheme-pointer) -(define cairo-text-extents-x-bearing (foreign-lambda* double ((cairo_text_extents_t te)) "return(te->x_bearing);")) -(define cairo-text-extents-y-bearing (foreign-lambda* double ((cairo_text_extents_t te)) "return(te->y_bearing);")) -(define cairo-text-extents-width (foreign-lambda* double ((cairo_text_extents_t te)) "return(te->width);")) -(define cairo-text-extents-height (foreign-lambda* double ((cairo_text_extents_t te)) "return(te->height);")) -(define cairo-text-extents-x-advance (foreign-lambda* double ((cairo_text_extents_t te)) "return(te->x_advance);")) -(define cairo-text-extents-y-advance (foreign-lambda* double ((cairo_text_extents_t te)) "return(te->y_advance);")) +(define cairo-text-extents-x-bearing (foreign-lambda* double ((cairo_text_extents_t te)) "return(((cairo_text_extents_t*)te)->x_bearing);")) +(define cairo-text-extents-y-bearing (foreign-lambda* double ((cairo_text_extents_t te)) "return(((cairo_text_extents_t*)te)->y_bearing);")) +(define cairo-text-extents-width (foreign-lambda* double ((cairo_text_extents_t te)) "return(((cairo_text_extents_t*)te)->width);")) +(define cairo-text-extents-height (foreign-lambda* double ((cairo_text_extents_t te)) "return(((cairo_text_extents_t*)te)->height);")) +(define cairo-text-extents-x-advance (foreign-lambda* double ((cairo_text_extents_t te)) "return(((cairo_text_extents_t*)te)->x_advance);")) +(define cairo-text-extents-y-advance (foreign-lambda* double ((cairo_text_extents_t te)) "return(((cairo_text_extents_t*)te)->y_advance);")) -(define cairo-text-extents-x-bearing-set! (foreign-lambda* double ((cairo_text_extents_t te) (double v)) "te->x_bearing = v;")) -(define cairo-text-extents-y-bearing-set! (foreign-lambda* double ((cairo_text_extents_t te) (double v)) "te->y_bearing = v;")) -(define cairo-text-extents-width-set! (foreign-lambda* double ((cairo_text_extents_t te) (double v)) "te->width = v;")) -(define cairo-text-extents-height-set! (foreign-lambda* double ((cairo_text_extents_t te) (double v)) "te->height = v;")) -(define cairo-text-extents-x-advance-set! (foreign-lambda* double ((cairo_text_extents_t te) (double v)) "te->x_advance = v;")) -(define cairo-text-extents-y-advance-set! (foreign-lambda* double ((cairo_text_extents_t te) (double v)) "te->y_advance = v;")) +(define cairo-text-extents-x-bearing-set! (foreign-lambda* double ((cairo_text_extents_t te) (double v)) "((cairo_text_extents_t*)te)->x_bearing = v;")) +(define cairo-text-extents-y-bearing-set! (foreign-lambda* double ((cairo_text_extents_t te) (double v)) "((cairo_text_extents_t*)te)->y_bearing = v;")) +(define cairo-text-extents-width-set! (foreign-lambda* double ((cairo_text_extents_t te) (double v)) "((cairo_text_extents_t*)te)->width = v;")) +(define cairo-text-extents-height-set! (foreign-lambda* double ((cairo_text_extents_t te) (double v)) "((cairo_text_extents_t*)te)->height = v;")) +(define cairo-text-extents-x-advance-set! (foreign-lambda* double ((cairo_text_extents_t te) (double v)) "((cairo_text_extents_t*)te)->x_advance = v;")) +(define cairo-text-extents-y-advance-set! (foreign-lambda* double ((cairo_text_extents_t te) (double v)) "((cairo_text_extents_t*)te)->y_advance = v;")) (define-foreign-variable sizeof-cairo-font-extents int "sizeof(cairo_font_extents_t)") (define-record cairo-font-extents-type buffer) (let ((maker make-cairo-font-extents-type)) (set! make-cairo-font-extents-type - (lambda () (maker (make-u8vector sizeof-cairo-font-extents))))) + (lambda () (maker (make-blob sizeof-cairo-font-extents))))) (define-record-printer (cairo-font-extents-type e out) (for-each (lambda (x) (display x out) @@ -352,24 +347,19 @@ (cairo-font-extents-max-x-advance e)" " (cairo-font-extents-max-y-advance e)">")))) -(define-foreign-type cairo_font_extents_t (c-pointer "cairo_font_extents_t") - (lambda (e) - (let ((p (##sys#make-pointer)) - (b (cairo-font-extents-type-buffer e))) - (if b (##core#inline "C_pointer_to_block" p b)) - p))) +(define-foreign-type cairo_font_extents_t scheme-pointer) -(define cairo-font-extents-ascent (foreign-lambda* double ((cairo_font_extents_t e)) "return(e->ascent);")) -(define cairo-font-extents-descent (foreign-lambda* double ((cairo_font_extents_t e)) "return(e->descent);")) -(define cairo-font-extents-height (foreign-lambda* double ((cairo_font_extents_t e)) "return(e->height);")) -(define cairo-font-extents-max-x-advance (foreign-lambda* double ((cairo_font_extents_t e)) "return(e->max_x_advance);")) -(define cairo-font-extents-max-y-advance (foreign-lambda* double ((cairo_font_extents_t e)) "return(e->max_y_advance);")) +(define cairo-font-extents-ascent (foreign-lambda* double ((cairo_font_extents_t e)) "return(((cairo_font_extents_t*)e)->ascent);")) +(define cairo-font-extents-descent (foreign-lambda* double ((cairo_font_extents_t e)) "return(((cairo_font_extents_t*)e)->descent);")) +(define cairo-font-extents-height (foreign-lambda* double ((cairo_font_extents_t e)) "return(((cairo_font_extents_t*)e)->height);")) +(define cairo-font-extents-max-x-advance (foreign-lambda* double ((cairo_font_extents_t e)) "return(((cairo_font_extents_t*)e)->max_x_advance);")) +(define cairo-font-extents-max-y-advance (foreign-lambda* double ((cairo_font_extents_t e)) "return(((cairo_font_extents_t*)e)->max_y_advance);")) -(define cairo-font-extents-ascent-set! (foreign-lambda* double ((cairo_font_extents_t e) (double v)) "e->ascent = v;")) -(define cairo-font-extents-descent-set! (foreign-lambda* double ((cairo_font_extents_t e) (double v)) "e->descent = v;")) -(define cairo-font-extents-height-set! (foreign-lambda* double ((cairo_font_extents_t e) (double v)) "e->height = v;")) -(define cairo-font-extents-max-x-advance-set! (foreign-lambda* double ((cairo_font_extents_t e) (double v)) "e->max_x_advance = v;")) -(define cairo-font-extents-max-y-advance-set! (foreign-lambda* double ((cairo_font_extents_t e) (double v)) "e->max_y_advance = v;")) +(define cairo-font-extents-ascent-set! (foreign-lambda* double ((cairo_font_extents_t e) (double v)) "((cairo_font_extents_t*)e)->ascent = v;")) +(define cairo-font-extents-descent-set! (foreign-lambda* double ((cairo_font_extents_t e) (double v)) "((cairo_font_extents_t*)e)->descent = v;")) +(define cairo-font-extents-height-set! (foreign-lambda* double ((cairo_font_extents_t e) (double v)) "((cairo_font_extents_t*)e)->height = v;")) +(define cairo-font-extents-max-x-advance-set! (foreign-lambda* double ((cairo_font_extents_t e) (double v)) "((cairo_font_extents_t*)e)->max_x_advance = v;")) +(define cairo-font-extents-max-y-advance-set! (foreign-lambda* double ((cairo_font_extents_t e) (double v)) "((cairo_font_extents_t*)e)->max_y_advance = v;")) (define cairo-text-extents (foreign-lambda void "cairo_text_extents" cairo_t c-string cairo_text_extents_t))