c-wrapperでcairoを弄ってみた
(use c-wrapper) ;; (use gauche.process) ;; (c-ld (process-output->string "pkg-config --libs --cflags cairo")) ;; (c-include (glob "/usr/include/cairo/cairo*.h") :include-dirs "/usr/include/cairo") (c-load (glob "/usr/include/cairo/cairo*.h") :cppflags-cmd "pkg-config cairo --cflags-only-I" :cflags-cmd "pkg-config cairo --cflags-only-other" :libs-cmd "pkg-config cairo --libs" :compiled-lib "cairolib" ) (define (main args) (let ((surface (ptr (make <cairo_surface_t>))) (cr (ptr (make <cairo_t>)))) (define (prepare) (set! surface (cairo_svg_surface_create "my.svg" 400 60)) (set! cr (cairo_create surface))) (define (create) (cairo_set_source_rgb cr 0 0 0) (cairo_select_font_face cr "Sans" CAIRO_FONT_SLANT_NORMAL CAIRO_FONT_WEIGHT_NORMAL) (cairo_set_font_size cr 40.0) (cairo_move_to cr 10.0 50.0) (cairo_show_text cr "My Test Message")) (define (cleanup) (cairo_surface_destroy surface) (cairo_destroy cr)) (prepare) (create) (cleanup)) )
もっと昔にcairoをc-wrapperで使っていた人がいた。あとで見てみよう。
http://homepage.mac.com/skimu/Gauche/cairo/snippets.html