Wiki
Download
Manual
Eggs
API
Tests
Bugs
show
edit
history
You can edit this page using
wiki syntax
for markup.
Article contents:
== Outdated egg! This is an egg for CHICKEN 4, the unsupported old release. You're almost certainly looking for [[/eggref/5/cairo|the CHICKEN 5 version of this egg]], if it exists. If it does not exist, there may be equivalent functionality provided by another egg; have a look at the [[https://wiki.call-cc.org/chicken-projects/egg-index-5.html|egg index]]. Otherwise, please consider porting this egg to the current version of CHICKEN. [[tags: egg]] [[toc:]] == cairo Chicken bindings for Cairo, a vector graphics library. === Usage <enscript highlight=scheme> (require-extension cairo) </enscript> === Documentation To build this extension, you will need a current version of [[http://cairo.freedesktop.org/|cairo]]. To build/run the test-program, the [[sdl]] egg is required. Currently there is no documentation, see the source-files for more information. === Examples By [[/users/christian-kellermann|Christian Kellermann]]: <enscript highlight=scheme> (import scheme (chicken base) cairo miscmacros (chicken random)) (define *rotation* 0) (define *delta* 2.7) (define *width* 18) (define *height* 26) (define *box-size* 15) (define s (cairo-pdf-surface-create "schotter.pdf" 842 1190)) ; A3 (define c (cairo-create s)) ;; use millimeters as units from here on (cairo-scale c (/ 72 25.4) (/ 72 25.4)) (cairo-set-source-rgba c 1 0 0 1) (dotimes (y *height*) (dotimes (x *width*) (cairo-save c) (cairo-set-line-width c .3) (cairo-translate c (+ 12 (* x *box-size*)) (+ 16 (* y *box-size*))) (cairo-rotate c (* (if (> 1 (pseudo-random-integer 2)) -1 1) (/ cairo-pi 180) (* *rotation* (pseudo-random-real)))) (cairo-rectangle c 0 0 *box-size* *box-size*) (cairo-set-source-rgba c 0 0 0 1) (cairo-stroke c) (cairo-restore c)) (set! *rotation* (+ *rotation* *delta*))) (cairo-surface-show-page s) (cairo-destroy c) (cairo-surface-finish s) (cairo-surface-destroy s) </enscript> Output: [[image://www.call-cc.org/img/cairo/georg-nees.png|Homage to Georg Nees]] === Author Michael Bridgen and Tony Garnock-Jones === Version History ; 0.1.15 : Support for blend mode operators thanks to Matt Gushee ; 0.1.14 : Support for rectangle-from-surface and mask-surface procedure ; 0.1.13 : Support for pdf/svg/ps surfaces, thanks to Markus Klotzbücher, get-width, get-height for surfaces added, FFI bugfixes. ; 0.1.12 : Bugfix for #762, fixes record-printers, thanks to Markus Klotzbücher, Peter and Felix ; 0.1.11 : Fix wrong pointer type in FFI ; 0.1.10 : also mark linker options returned by pkg-config, so -pthread gets recognised as linker option ; 0.1.9 : parses options returned by pkg-config (thanks to bpowers) ; 0.1.8 : fixed use of removed foreign type {{pointer}} ; 0.1.7 : {{cairo.setup}} bug fix regarding to eggdoc obsolete code ; 0.1.6 : Fixed incorrect SDL-header include in test-cairo.scm (thanks to Markus Klotzbuecher) ; 0.1.4 (alpha) : PNG and additional surface functions by Michael McDermott ; 0.1.3 (alpha) : Initial release === License Copyright (C) 2004, 2005 Michael Bridgen and Tony Garnock-Jones This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Description of your changes:
I would like to authenticate
Authentication
Username:
Password:
Spam control
What do you get when you multiply 9 by 0?