Ticket #88: cairo.diff
File cairo.diff, 3.6 KB (added by , 14 years ago) |
---|
-
test-cairo.scm
2 2 ; Michael Bridgen <mikeb@squaremobius.net> 3 3 ; Tony Garnock-Jones <tonyg@kcbbs.gen.nz> 4 4 5 (require 'posix) 6 (require 'sdl) 7 (require 'cairo) 5 (use posix) 6 (use sdl) 7 (use cairo) 8 (import chicken scheme foreign) 8 9 10 (declare 11 (foreign-declare "#include <SDL.h>\n") 12 (run-time-macros) 13 ) 14 (foreign-code "SDL_Init(SDL_INIT_EVERYTHING);") 15 16 17 9 18 (sdl-init SDL_INIT_EVERYTHING) 10 19 11 20 (define maxx 640) -
cairo.setup
1 (run (make extension)) 2 (install-extension 'cairo '("cairo.so")) 1 (let ((pkg-cflags (with-input-from-pipe "pkg-config --cflags cairo" read-line)) 2 (pkg-lflags (with-input-from-pipe "pkg-config --libs cairo" read-line))) 3 (compile -s -O2 cairo.scm -j cairo -lcairo ,pkg-cflags ,pkg-lflags) 4 (compile -c -O2 cairo.scm -unit cairo ,pkg-cflags ,pkg-lflags) 5 (compile -s -O2 cairo.import.scm ,pkg-cflags ,pkg-lflags)) 6 7 (install-extension 'cairo '("cairo.so" "cairo.import.so" "cairo.o") '(version "v0.1.3-alpha")) 8 -
cairo.scm
20 20 21 21 ; -------------------------------------------------- 22 22 23 (declare 24 (usual-integrations) 23 (module cairo 24 * 25 (import chicken scheme foreign) 25 26 27 (use srfi-1) 28 (use srfi-4) 29 (use srfi-13) 30 (use lolevel) 31 32 (import-for-syntax srfi-1) 33 (import-for-syntax srfi-13) 34 26 35 (foreign-declare #<<EOF 27 36 28 37 #include "cairo.h" 29 38 30 39 EOF 31 ) )40 ) 32 41 33 (require 'srfi-1)34 (require 'srfi-13)35 (require 'lolevel)36 37 (require-for-syntax 'srfi-1)38 (require-for-syntax 'srfi-13)39 40 42 ;; Define a list of DEFINEs or enums at once. 41 (define-macro (--cairo-flags . strs) 42 `(begin 43 ,@(append-map (lambda (str) 44 (let* ((sym (string->symbol str)) 45 (psym (string->symbol (string-append "-" (symbol->string sym))))) 46 `((define-foreign-variable ,psym unsigned-integer ,str) 47 (define ,sym ,psym)))) 48 strs))) 43 (define-syntax --cairo-flags 44 (lambda (e r c) 45 (let ((strs (cdr e))) 46 `(begin 47 ,@(append-map (lambda (str) 48 (let* ((sym (string->symbol str)) 49 (psym (string->symbol (string-append "-" (symbol->string sym))))) 50 `((,(r 'define-foreign-variable) ,psym unsigned-integer ,str) 51 (,(r 'define) ,sym ,psym)))) 52 strs))))) 49 53 50 54 (define *cairo-egg-version* '(0 1 3 alpha)) 51 55 … … 299 303 (define-record cairo-text-extents-type buffer) 300 304 (let ((maker make-cairo-text-extents-type)) 301 305 (set! make-cairo-text-extents-type 302 (lambda () (maker (make- byte-vector sizeof-cairo-text-extents)))))306 (lambda () (maker (make-u8vector sizeof-cairo-text-extents))))) 303 307 304 308 (define-record-printer (cairo-text-extents-type te out) 305 309 (for-each (lambda (x) (display x out) … … 337 341 (define-record cairo-font-extents-type buffer) 338 342 (let ((maker make-cairo-font-extents-type)) 339 343 (set! make-cairo-font-extents-type 340 (lambda () (maker (make- byte-vector sizeof-cairo-font-extents)))))344 (lambda () (maker (make-u8vector sizeof-cairo-font-extents))))) 341 345 342 346 (define-record-printer (cairo-font-extents-type e out) 343 347 (for-each (lambda (x) (display x out) … … 595 599 "cairo_surface_flush" 596 600 cairo_surface_t 597 601 )) 602 )