Artifact
4720a46d21991df75a9a93b9ae6912c7116b5c9a:
0000: 3b 3b 20 2d 2a 2d 20 6d 6f 64 65 3a 20 53 63 68 ;; -*- mode: Sch
0010: 65 6d 65 3b 20 74 61 62 2d 77 69 64 74 68 3a 20 eme; tab-width:
0020: 32 3b 20 2d 2a 2d 20 3b 3b 0a 0a 28 72 65 71 75 2; -*- ;;..(requ
0030: 69 72 65 2d 6c 69 62 72 61 72 79 20 6c 6f 6c 65 ire-library lole
0040: 76 65 6c 20 64 61 74 61 2d 73 74 72 75 63 74 75 vel data-structu
0050: 72 65 73 20 73 72 66 69 2d 31 20 73 72 66 69 2d res srfi-1 srfi-
0060: 34 20 73 72 66 69 2d 31 33 29 0a 0a 28 6d 6f 64 4 srfi-13)..(mod
0070: 75 6c 65 20 63 61 6e 76 61 73 2d 64 72 61 77 2d ule canvas-draw-
0080: 62 61 73 65 0a 09 28 63 61 6e 76 61 73 3f 20 63 base..(canvas? c
0090: 61 6e 76 61 73 2d 3e 70 6f 69 6e 74 65 72 20 70 anvas->pointer p
00a0: 6f 69 6e 74 65 72 2d 3e 63 61 6e 76 61 73 0a 09 ointer->canvas..
00b0: 20 63 6f 6e 74 65 78 74 3f 20 63 6f 6e 74 65 78 context? contex
00c0: 74 2d 3e 70 6f 69 6e 74 65 72 20 70 6f 69 6e 74 t->pointer point
00d0: 65 72 2d 3e 63 6f 6e 74 65 78 74 0a 09 20 73 74 er->context.. st
00e0: 61 74 65 3f 20 73 74 61 74 65 2d 3e 70 6f 69 6e ate? state->poin
00f0: 74 65 72 20 70 6f 69 6e 74 65 72 2d 3e 73 74 61 ter pointer->sta
0100: 74 65 0a 09 20 63 6f 6e 74 65 78 74 2d 63 61 70 te.. context-cap
0110: 61 62 69 6c 69 74 69 65 73 0a 09 20 75 73 65 2d abilities.. use-
0120: 63 6f 6e 74 65 78 74 2b 20 6d 61 6b 65 2d 63 61 context+ make-ca
0130: 6e 76 61 73 20 63 61 6c 6c 2d 77 69 74 68 2d 63 nvas call-with-c
0140: 61 6e 76 61 73 0a 09 20 63 61 6e 76 61 73 2d 63 anvas.. canvas-c
0150: 6f 6e 74 65 78 74 0a 09 20 63 61 6e 76 61 73 2d ontext.. canvas-
0160: 73 69 6d 75 6c 61 74 65 21 0a 09 20 63 61 6e 76 simulate!.. canv
0170: 61 73 2d 61 74 74 72 69 62 75 74 65 20 63 61 6e as-attribute can
0180: 76 61 73 2d 61 74 74 72 69 62 75 74 65 2d 73 65 vas-attribute-se
0190: 74 21 0a 09 20 63 61 6e 76 61 73 2d 73 74 61 74 t!.. canvas-stat
01a0: 65 20 63 61 6e 76 61 73 2d 73 74 61 74 65 2d 73 e canvas-state-s
01b0: 65 74 21 0a 09 20 63 61 6e 76 61 73 2d 63 6c 65 et!.. canvas-cle
01c0: 61 72 21 20 63 61 6e 76 61 73 2d 66 6c 75 73 68 ar! canvas-flush
01d0: 0a 09 20 63 61 6e 76 61 73 2d 73 69 7a 65 0a 09 .. canvas-size..
01e0: 20 63 61 6e 76 61 73 2d 6d 6d 2d 3e 70 78 20 63 canvas-mm->px c
01f0: 61 6e 76 61 73 2d 70 78 2d 3e 6d 6d 0a 09 20 63 anvas-px->mm.. c
0200: 61 6e 76 61 73 2d 6f 72 69 67 69 6e 20 63 61 6e anvas-origin can
0210: 76 61 73 2d 6f 72 69 67 69 6e 2d 73 65 74 21 0a vas-origin-set!.
0220: 09 20 63 61 6e 76 61 73 2d 74 72 61 6e 73 66 6f . canvas-transfo
0230: 72 6d 20 63 61 6e 76 61 73 2d 74 72 61 6e 73 66 rm canvas-transf
0240: 6f 72 6d 2d 73 65 74 21 0a 09 20 63 61 6e 76 61 orm-set!.. canva
0250: 73 2d 74 72 61 6e 73 66 6f 72 6d 2d 63 6f 6d 70 s-transform-comp
0260: 6f 73 65 21 0a 09 20 63 61 6e 76 61 73 2d 74 72 ose!.. canvas-tr
0270: 61 6e 73 66 6f 72 6d 2d 74 72 61 6e 73 6c 61 74 ansform-translat
0280: 65 21 0a 09 20 63 61 6e 76 61 73 2d 74 72 61 6e e!.. canvas-tran
0290: 73 66 6f 72 6d 2d 73 63 61 6c 65 21 0a 09 20 63 sform-scale!.. c
02a0: 61 6e 76 61 73 2d 74 72 61 6e 73 66 6f 72 6d 2d anvas-transform-
02b0: 72 6f 74 61 74 65 21 0a 09 20 63 61 6e 76 61 73 rotate!.. canvas
02c0: 2d 66 6f 72 65 67 72 6f 75 6e 64 20 63 61 6e 76 -foreground canv
02d0: 61 73 2d 66 6f 72 65 67 72 6f 75 6e 64 2d 73 65 as-foreground-se
02e0: 74 21 0a 09 20 63 61 6e 76 61 73 2d 62 61 63 6b t!.. canvas-back
02f0: 67 72 6f 75 6e 64 20 63 61 6e 76 61 73 2d 62 61 ground canvas-ba
0300: 63 6b 67 72 6f 75 6e 64 2d 73 65 74 21 0a 09 20 ckground-set!..
0310: 63 61 6e 76 61 73 2d 77 72 69 74 65 2d 6d 6f 64 canvas-write-mod
0320: 65 20 63 61 6e 76 61 73 2d 77 72 69 74 65 2d 6d e canvas-write-m
0330: 6f 64 65 2d 73 65 74 21 0a 09 20 63 61 6e 76 61 ode-set!.. canva
0340: 73 2d 63 6c 69 70 2d 6d 6f 64 65 20 63 61 6e 76 s-clip-mode canv
0350: 61 73 2d 63 6c 69 70 2d 6d 6f 64 65 2d 73 65 74 as-clip-mode-set
0360: 21 0a 09 20 63 61 6e 76 61 73 2d 63 6c 69 70 2d !.. canvas-clip-
0370: 61 72 65 61 20 63 61 6e 76 61 73 2d 63 6c 69 70 area canvas-clip
0380: 2d 61 72 65 61 2d 73 65 74 21 29 0a 09 28 69 6d -area-set!)..(im
0390: 70 6f 72 74 0a 09 09 73 63 68 65 6d 65 20 63 68 port...scheme ch
03a0: 69 63 6b 65 6e 20 66 6f 72 65 69 67 6e 0a 09 09 icken foreign...
03b0: 6c 6f 6c 65 76 65 6c 20 64 61 74 61 2d 73 74 72 lolevel data-str
03c0: 75 63 74 75 72 65 73 20 73 72 66 69 2d 31 20 73 uctures srfi-1 s
03d0: 72 66 69 2d 34 20 73 72 66 69 2d 31 33 29 0a 09 rfi-4 srfi-13)..
03e0: 28 69 6e 63 6c 75 64 65 20 22 63 61 6e 76 61 73 (include "canvas
03f0: 2d 64 72 61 77 2d 62 61 73 65 2e 73 63 6d 22 29 -draw-base.scm")
0400: 29 0a 0a 28 6d 6f 64 75 6c 65 20 63 61 6e 76 61 )..(module canva
0410: 73 2d 64 72 61 77 2d 70 72 69 6d 69 74 69 76 65 s-draw-primitive
0420: 73 0a 09 28 63 61 6e 76 61 73 2d 70 69 78 65 6c s..(canvas-pixel
0430: 21 0a 09 20 63 61 6e 76 61 73 2d 6d 61 72 6b 21 !.. canvas-mark!
0440: 0a 09 20 63 61 6e 76 61 73 2d 6d 61 72 6b 2d 74 .. canvas-mark-t
0450: 79 70 65 20 63 61 6e 76 61 73 2d 6d 61 72 6b 2d ype canvas-mark-
0460: 74 79 70 65 2d 73 65 74 21 0a 09 20 63 61 6e 76 type-set!.. canv
0470: 61 73 2d 6d 61 72 6b 2d 73 69 7a 65 20 63 61 6e as-mark-size can
0480: 76 61 73 2d 6d 61 72 6b 2d 73 69 7a 65 2d 73 65 vas-mark-size-se
0490: 74 21 0a 09 20 63 61 6e 76 61 73 2d 6c 69 6e 65 t!.. canvas-line
04a0: 21 20 63 61 6e 76 61 73 2d 72 65 63 74 61 6e 67 ! canvas-rectang
04b0: 6c 65 21 20 63 61 6e 76 61 73 2d 61 72 63 21 0a le! canvas-arc!.
04c0: 09 20 63 61 6e 76 61 73 2d 6c 69 6e 65 2d 73 74 . canvas-line-st
04d0: 79 6c 65 20 63 61 6e 76 61 73 2d 6c 69 6e 65 2d yle canvas-line-
04e0: 73 74 79 6c 65 2d 73 65 74 21 0a 09 20 63 61 6e style-set!.. can
04f0: 76 61 73 2d 6c 69 6e 65 2d 77 69 64 74 68 20 63 vas-line-width c
0500: 61 6e 76 61 73 2d 6c 69 6e 65 2d 77 69 64 74 68 anvas-line-width
0510: 2d 73 65 74 21 0a 09 20 63 61 6e 76 61 73 2d 6c -set!.. canvas-l
0520: 69 6e 65 2d 6a 6f 69 6e 20 63 61 6e 76 61 73 2d ine-join canvas-
0530: 6c 69 6e 65 2d 6a 6f 69 6e 2d 73 65 74 21 0a 09 line-join-set!..
0540: 20 63 61 6e 76 61 73 2d 6c 69 6e 65 2d 63 61 70 canvas-line-cap
0550: 20 63 61 6e 76 61 73 2d 6c 69 6e 65 2d 63 61 70 canvas-line-cap
0560: 2d 73 65 74 21 0a 09 20 63 61 6e 76 61 73 2d 62 -set!.. canvas-b
0570: 6f 78 21 20 63 61 6e 76 61 73 2d 73 65 63 74 6f ox! canvas-secto
0580: 72 21 20 63 61 6e 76 61 73 2d 63 68 6f 72 64 21 r! canvas-chord!
0590: 0a 09 20 63 61 6e 76 61 73 2d 62 61 63 6b 67 72 .. canvas-backgr
05a0: 6f 75 6e 64 2d 6f 70 61 63 69 74 79 20 63 61 6e ound-opacity can
05b0: 76 61 73 2d 62 61 63 6b 67 72 6f 75 6e 64 2d 6f vas-background-o
05c0: 70 61 63 69 74 79 2d 73 65 74 21 0a 09 20 63 61 pacity-set!.. ca
05d0: 6e 76 61 73 2d 66 69 6c 6c 2d 6d 6f 64 65 20 63 nvas-fill-mode c
05e0: 61 6e 76 61 73 2d 66 69 6c 6c 2d 6d 6f 64 65 2d anvas-fill-mode-
05f0: 73 65 74 21 0a 09 20 63 61 6e 76 61 73 2d 69 6e set!.. canvas-in
0600: 74 65 72 69 6f 72 2d 73 74 79 6c 65 20 63 61 6e terior-style can
0610: 76 61 73 2d 69 6e 74 65 72 69 6f 72 2d 73 74 79 vas-interior-sty
0620: 6c 65 2d 73 65 74 21 0a 09 20 63 61 6e 76 61 73 le-set!.. canvas
0630: 2d 74 65 78 74 21 0a 09 20 63 61 6e 76 61 73 2d -text!.. canvas-
0640: 66 6f 6e 74 20 63 61 6e 76 61 73 2d 66 6f 6e 74 font canvas-font
0650: 2d 73 65 74 21 0a 09 20 63 61 6e 76 61 73 2d 74 -set!.. canvas-t
0660: 65 78 74 2d 61 6c 69 67 6e 6d 65 6e 74 20 63 61 ext-alignment ca
0670: 6e 76 61 73 2d 74 65 78 74 2d 61 6c 69 67 6e 6d nvas-text-alignm
0680: 65 6e 74 2d 73 65 74 21 0a 09 20 63 61 6e 76 61 ent-set!.. canva
0690: 73 2d 74 65 78 74 2d 6f 72 69 65 6e 74 61 74 69 s-text-orientati
06a0: 6f 6e 20 63 61 6e 76 61 73 2d 74 65 78 74 2d 6f on canvas-text-o
06b0: 72 69 65 6e 74 61 74 69 6f 6e 2d 73 65 74 21 0a rientation-set!.
06c0: 09 20 63 61 6e 76 61 73 2d 66 6f 6e 74 2d 64 69 . canvas-font-di
06d0: 6d 65 6e 73 69 6f 6e 73 20 63 61 6e 76 61 73 2d mensions canvas-
06e0: 74 65 78 74 2d 73 69 7a 65 20 63 61 6e 76 61 73 text-size canvas
06f0: 2d 74 65 78 74 2d 62 6f 78 0a 09 20 63 61 6c 6c -text-box.. call
0700: 2d 77 69 74 68 2d 63 61 6e 76 61 73 2d 69 6e 2d -with-canvas-in-
0710: 6d 6f 64 65 20 63 61 6e 76 61 73 2d 70 61 74 68 mode canvas-path
0720: 2d 73 65 74 21 0a 09 20 63 61 6e 76 61 73 2d 76 -set!.. canvas-v
0730: 65 72 74 65 78 21 29 0a 09 28 69 6d 70 6f 72 74 ertex!)..(import
0740: 20 73 63 68 65 6d 65 20 63 68 69 63 6b 65 6e 20 scheme chicken
0750: 66 6f 72 65 69 67 6e 20 64 61 74 61 2d 73 74 72 foreign data-str
0760: 75 63 74 75 72 65 73 20 73 72 66 69 2d 34 20 63 uctures srfi-4 c
0770: 61 6e 76 61 73 2d 64 72 61 77 2d 62 61 73 65 29 anvas-draw-base)
0780: 0a 09 28 69 6e 63 6c 75 64 65 20 22 63 61 6e 76 ..(include "canv
0790: 61 73 2d 64 72 61 77 2d 70 72 69 6d 69 74 69 76 as-draw-primitiv
07a0: 65 73 2e 73 63 6d 22 29 29 0a 0a 28 6d 6f 64 75 es.scm"))..(modu
07b0: 6c 65 20 63 61 6e 76 61 73 2d 64 72 61 77 2d 70 le canvas-draw-p
07c0: 6c 61 79 0a 09 28 63 61 6e 76 61 73 2d 70 6c 61 lay..(canvas-pla
07d0: 79 21 29 0a 09 28 69 6d 70 6f 72 74 20 73 63 68 y!)..(import sch
07e0: 65 6d 65 20 63 68 69 63 6b 65 6e 20 66 6f 72 65 eme chicken fore
07f0: 69 67 6e 20 63 61 6e 76 61 73 2d 64 72 61 77 2d ign canvas-draw-
0800: 62 61 73 65 29 0a 09 28 69 6e 63 6c 75 64 65 20 base)..(include
0810: 22 63 61 6e 76 61 73 2d 64 72 61 77 2d 70 6c 61 "canvas-draw-pla
0820: 79 2e 73 63 6d 22 29 29 0a 0a 28 6d 6f 64 75 6c y.scm"))..(modul
0830: 65 20 63 61 6e 76 61 73 2d 64 72 61 77 2d 70 69 e canvas-draw-pi
0840: 63 74 75 72 65 0a 09 28 63 6f 6e 74 65 78 74 3a cture..(context:
0850: 70 69 63 74 75 72 65 29 0a 09 28 69 6d 70 6f 72 picture)..(impor
0860: 74 20 73 63 68 65 6d 65 20 63 68 69 63 6b 65 6e t scheme chicken
0870: 20 66 6f 72 65 69 67 6e 20 63 61 6e 76 61 73 2d foreign canvas-
0880: 64 72 61 77 2d 62 61 73 65 29 0a 09 28 69 6e 63 draw-base)..(inc
0890: 6c 75 64 65 20 22 63 61 6e 76 61 73 2d 64 72 61 lude "canvas-dra
08a0: 77 2d 70 69 63 74 75 72 65 2e 73 63 6d 22 29 29 w-picture.scm"))
08b0: 0a 0a 28 6d 6f 64 75 6c 65 20 63 61 6e 76 61 73 ..(module canvas
08c0: 2d 64 72 61 77 2d 63 6c 69 65 6e 74 0a 09 28 63 -draw-client..(c
08d0: 6f 6e 74 65 78 74 3a 69 6d 61 67 65 20 63 6f 6e ontext:image con
08e0: 74 65 78 74 3a 64 6f 75 62 6c 65 2d 62 75 66 66 text:double-buff
08f0: 65 72 0a 09 20 63 61 6e 76 61 73 2d 69 6d 61 67 er.. canvas-imag
0900: 65 2f 72 67 62 20 63 61 6e 76 61 73 2d 69 6d 61 e/rgb canvas-ima
0910: 67 65 2d 70 75 74 2f 72 67 62 21 20 63 61 6e 76 ge-put/rgb! canv
0920: 61 73 2d 69 6d 61 67 65 2d 70 75 74 2f 72 67 62 as-image-put/rgb
0930: 61 21 29 0a 09 28 69 6d 70 6f 72 74 20 73 63 68 a!)..(import sch
0940: 65 6d 65 20 63 68 69 63 6b 65 6e 20 66 6f 72 65 eme chicken fore
0950: 69 67 6e 20 63 61 6e 76 61 73 2d 64 72 61 77 2d ign canvas-draw-
0960: 62 61 73 65 29 0a 09 28 69 6e 63 6c 75 64 65 20 base)..(include
0970: 22 63 61 6e 76 61 73 2d 64 72 61 77 2d 63 6c 69 "canvas-draw-cli
0980: 65 6e 74 2e 73 63 6d 22 29 29 0a 0a 28 6d 6f 64 ent.scm"))..(mod
0990: 75 6c 65 20 63 61 6e 76 61 73 2d 64 72 61 77 2d ule canvas-draw-
09a0: 70 73 0a 09 28 63 6f 6e 74 65 78 74 3a 70 73 29 ps..(context:ps)
09b0: 0a 09 28 69 6d 70 6f 72 74 20 73 63 68 65 6d 65 ..(import scheme
09c0: 20 63 68 69 63 6b 65 6e 20 66 6f 72 65 69 67 6e chicken foreign
09d0: 20 63 61 6e 76 61 73 2d 64 72 61 77 2d 62 61 73 canvas-draw-bas
09e0: 65 29 0a 09 28 69 6e 63 6c 75 64 65 20 22 63 61 e)..(include "ca
09f0: 6e 76 61 73 2d 64 72 61 77 2d 70 73 2e 73 63 6d nvas-draw-ps.scm
0a00: 22 29 29 0a 0a 28 6d 6f 64 75 6c 65 20 63 61 6e "))..(module can
0a10: 76 61 73 2d 64 72 61 77 2d 73 76 67 0a 09 28 63 vas-draw-svg..(c
0a20: 6f 6e 74 65 78 74 3a 73 76 67 29 0a 09 28 69 6d ontext:svg)..(im
0a30: 70 6f 72 74 20 73 63 68 65 6d 65 20 63 68 69 63 port scheme chic
0a40: 6b 65 6e 20 66 6f 72 65 69 67 6e 20 63 61 6e 76 ken foreign canv
0a50: 61 73 2d 64 72 61 77 2d 62 61 73 65 29 0a 09 28 as-draw-base)..(
0a60: 69 6e 63 6c 75 64 65 20 22 63 61 6e 76 61 73 2d include "canvas-
0a70: 64 72 61 77 2d 73 76 67 2e 73 63 6d 22 29 29 0a draw-svg.scm")).
0a80: 0a 28 6d 6f 64 75 6c 65 20 63 61 6e 76 61 73 2d .(module canvas-
0a90: 64 72 61 77 2d 6d 65 74 61 66 69 6c 65 0a 09 28 draw-metafile..(
0aa0: 63 6f 6e 74 65 78 74 3a 6d 65 74 61 66 69 6c 65 context:metafile
0ab0: 29 0a 09 28 69 6d 70 6f 72 74 20 73 63 68 65 6d )..(import schem
0ac0: 65 20 63 68 69 63 6b 65 6e 20 66 6f 72 65 69 67 e chicken foreig
0ad0: 6e 20 63 61 6e 76 61 73 2d 64 72 61 77 2d 62 61 n canvas-draw-ba
0ae0: 73 65 29 0a 09 28 69 6e 63 6c 75 64 65 20 22 63 se)..(include "c
0af0: 61 6e 76 61 73 2d 64 72 61 77 2d 6d 65 74 61 66 anvas-draw-metaf
0b00: 69 6c 65 2e 73 63 6d 22 29 29 0a 0a 28 6d 6f 64 ile.scm"))..(mod
0b10: 75 6c 65 20 63 61 6e 76 61 73 2d 64 72 61 77 2d ule canvas-draw-
0b20: 63 67 6d 0a 09 28 63 6f 6e 74 65 78 74 3a 63 67 cgm..(context:cg
0b30: 6d 29 0a 09 28 69 6d 70 6f 72 74 20 73 63 68 65 m)..(import sche
0b40: 6d 65 20 63 68 69 63 6b 65 6e 20 66 6f 72 65 69 me chicken forei
0b50: 67 6e 20 63 61 6e 76 61 73 2d 64 72 61 77 2d 62 gn canvas-draw-b
0b60: 61 73 65 29 0a 09 28 69 6e 63 6c 75 64 65 20 22 ase)..(include "
0b70: 63 61 6e 76 61 73 2d 64 72 61 77 2d 63 67 6d 2e canvas-draw-cgm.
0b80: 73 63 6d 22 29 29 0a 0a 28 6d 6f 64 75 6c 65 20 scm"))..(module
0b90: 63 61 6e 76 61 73 2d 64 72 61 77 2d 64 67 6e 0a canvas-draw-dgn.
0ba0: 09 28 63 6f 6e 74 65 78 74 3a 64 67 6e 29 0a 09 .(context:dgn)..
0bb0: 28 69 6d 70 6f 72 74 20 73 63 68 65 6d 65 20 63 (import scheme c
0bc0: 68 69 63 6b 65 6e 20 66 6f 72 65 69 67 6e 20 63 hicken foreign c
0bd0: 61 6e 76 61 73 2d 64 72 61 77 2d 62 61 73 65 29 anvas-draw-base)
0be0: 0a 09 28 69 6e 63 6c 75 64 65 20 22 63 61 6e 76 ..(include "canv
0bf0: 61 73 2d 64 72 61 77 2d 64 67 6e 2e 73 63 6d 22 as-draw-dgn.scm"
0c00: 29 29 0a 0a 28 6d 6f 64 75 6c 65 20 63 61 6e 76 ))..(module canv
0c10: 61 73 2d 64 72 61 77 2d 64 78 66 0a 09 28 63 6f as-draw-dxf..(co
0c20: 6e 74 65 78 74 3a 64 78 66 29 0a 09 28 69 6d 70 ntext:dxf)..(imp
0c30: 6f 72 74 20 73 63 68 65 6d 65 20 63 68 69 63 6b ort scheme chick
0c40: 65 6e 20 66 6f 72 65 69 67 6e 20 63 61 6e 76 61 en foreign canva
0c50: 73 2d 64 72 61 77 2d 62 61 73 65 29 0a 09 28 69 s-draw-base)..(i
0c60: 6e 63 6c 75 64 65 20 22 63 61 6e 76 61 73 2d 64 nclude "canvas-d
0c70: 72 61 77 2d 64 78 66 2e 73 63 6d 22 29 29 0a 0a raw-dxf.scm"))..
0c80: 28 6d 6f 64 75 6c 65 20 63 61 6e 76 61 73 2d 64 (module canvas-d
0c90: 72 61 77 2d 65 6d 66 0a 09 28 63 6f 6e 74 65 78 raw-emf..(contex
0ca0: 74 3a 65 6d 66 29 0a 09 28 69 6d 70 6f 72 74 20 t:emf)..(import
0cb0: 73 63 68 65 6d 65 20 63 68 69 63 6b 65 6e 20 66 scheme chicken f
0cc0: 6f 72 65 69 67 6e 20 63 61 6e 76 61 73 2d 64 72 oreign canvas-dr
0cd0: 61 77 2d 62 61 73 65 29 0a 09 28 69 6e 63 6c 75 aw-base)..(inclu
0ce0: 64 65 20 22 63 61 6e 76 61 73 2d 64 72 61 77 2d de "canvas-draw-
0cf0: 65 6d 66 2e 73 63 6d 22 29 29 0a 0a 28 6d 6f 64 emf.scm"))..(mod
0d00: 75 6c 65 20 63 61 6e 76 61 73 2d 64 72 61 77 2d ule canvas-draw-
0d10: 77 6d 66 0a 09 28 63 6f 6e 74 65 78 74 3a 77 6d wmf..(context:wm
0d20: 66 29 0a 09 28 69 6d 70 6f 72 74 20 73 63 68 65 f)..(import sche
0d30: 6d 65 20 63 68 69 63 6b 65 6e 20 66 6f 72 65 69 me chicken forei
0d40: 67 6e 20 63 61 6e 76 61 73 2d 64 72 61 77 2d 62 gn canvas-draw-b
0d50: 61 73 65 29 0a 09 28 69 6e 63 6c 75 64 65 20 22 ase)..(include "
0d60: 63 61 6e 76 61 73 2d 64 72 61 77 2d 77 6d 66 2e canvas-draw-wmf.
0d70: 73 63 6d 22 29 29 0a 0a 28 63 6f 6e 64 2d 65 78 scm"))..(cond-ex
0d80: 70 61 6e 64 0a 20 5b 64 69 73 61 62 6c 65 2d 63 pand. [disable-c
0d90: 61 6e 76 61 73 2d 64 72 61 77 2d 69 75 70 5d 0a anvas-draw-iup].
0da0: 20 5b 65 6c 73 65 0a 09 28 6d 6f 64 75 6c 65 20 [else..(module
0db0: 63 61 6e 76 61 73 2d 64 72 61 77 2d 69 75 70 0a canvas-draw-iup.
0dc0: 09 09 28 63 6f 6e 74 65 78 74 3a 69 75 70 20 6d ..(context:iup m
0dd0: 61 6b 65 2d 63 61 6e 76 61 73 2d 61 63 74 69 6f ake-canvas-actio
0de0: 6e 20 6d 61 6b 65 2d 63 65 6c 6c 73 2d 64 72 61 n make-cells-dra
0df0: 77 2d 63 62 29 0a 09 09 28 69 6d 70 6f 72 74 20 w-cb)...(import
0e00: 73 63 68 65 6d 65 20 63 68 69 63 6b 65 6e 20 66 scheme chicken f
0e10: 6f 72 65 69 67 6e 20 63 61 6e 76 61 73 2d 64 72 oreign canvas-dr
0e20: 61 77 2d 62 61 73 65 29 0a 09 09 28 69 6e 63 6c aw-base)...(incl
0e30: 75 64 65 20 22 63 61 6e 76 61 73 2d 64 72 61 77 ude "canvas-draw
0e40: 2d 69 75 70 2e 73 63 6d 22 29 29 5d 29 0a 0a 28 -iup.scm"))])..(
0e50: 63 6f 6e 64 2d 65 78 70 61 6e 64 0a 20 5b 64 69 cond-expand. [di
0e60: 73 61 62 6c 65 2d 63 61 6e 76 61 73 2d 64 72 61 sable-canvas-dra
0e70: 77 2d 67 6c 5d 0a 20 5b 65 6c 73 65 0a 09 28 6d w-gl]. [else..(m
0e80: 6f 64 75 6c 65 20 63 61 6e 76 61 73 2d 64 72 61 odule canvas-dra
0e90: 77 2d 67 6c 0a 09 09 28 63 6f 6e 74 65 78 74 3a w-gl...(context:
0ea0: 67 6c 29 0a 09 09 28 69 6d 70 6f 72 74 20 73 63 gl)...(import sc
0eb0: 68 65 6d 65 20 63 68 69 63 6b 65 6e 20 66 6f 72 heme chicken for
0ec0: 65 69 67 6e 20 63 61 6e 76 61 73 2d 64 72 61 77 eign canvas-draw
0ed0: 2d 62 61 73 65 29 0a 09 09 28 69 6e 63 6c 75 64 -base)...(includ
0ee0: 65 20 22 63 61 6e 76 61 73 2d 64 72 61 77 2d 67 e "canvas-draw-g
0ef0: 6c 2e 73 63 6d 22 29 29 5d 29 0a 0a 28 63 6f 6e l.scm"))])..(con
0f00: 64 2d 65 78 70 61 6e 64 0a 20 5b 64 69 73 61 62 d-expand. [disab
0f10: 6c 65 2d 63 61 6e 76 61 73 2d 64 72 61 77 2d 6e le-canvas-draw-n
0f20: 61 74 69 76 65 5d 0a 20 5b 65 6c 73 65 0a 09 28 ative]. [else..(
0f30: 6d 6f 64 75 6c 65 20 63 61 6e 76 61 73 2d 64 72 module canvas-dr
0f40: 61 77 2d 6e 61 74 69 76 65 0a 09 09 28 63 6f 6e aw-native...(con
0f50: 74 65 78 74 3a 6e 61 74 69 76 65 2d 77 69 6e 64 text:native-wind
0f60: 6f 77 0a 09 09 20 73 63 72 65 65 6e 2d 73 69 7a ow... screen-siz
0f70: 65 29 0a 09 09 28 69 6d 70 6f 72 74 20 73 63 68 e)...(import sch
0f80: 65 6d 65 20 63 68 69 63 6b 65 6e 20 66 6f 72 65 eme chicken fore
0f90: 69 67 6e 20 63 61 6e 76 61 73 2d 64 72 61 77 2d ign canvas-draw-
0fa0: 62 61 73 65 29 0a 09 09 28 69 6e 63 6c 75 64 65 base)...(include
0fb0: 20 22 63 61 6e 76 61 73 2d 64 72 61 77 2d 6e 61 "canvas-draw-na
0fc0: 74 69 76 65 2e 73 63 6d 22 29 29 0a 09 28 6d 6f tive.scm"))..(mo
0fd0: 64 75 6c 65 20 63 61 6e 76 61 73 2d 64 72 61 77 dule canvas-draw
0fe0: 2d 73 65 72 76 65 72 0a 09 09 28 63 6f 6e 74 65 -server...(conte
0ff0: 78 74 3a 69 6d 61 67 65 20 63 6f 6e 74 65 78 74 xt:image context
1000: 3a 64 6f 75 62 6c 65 2d 62 75 66 66 65 72 29 0a :double-buffer).
1010: 09 09 28 69 6d 70 6f 72 74 20 73 63 68 65 6d 65 ..(import scheme
1020: 20 63 68 69 63 6b 65 6e 20 66 6f 72 65 69 67 6e chicken foreign
1030: 20 63 61 6e 76 61 73 2d 64 72 61 77 2d 62 61 73 canvas-draw-bas
1040: 65 29 0a 09 09 28 69 6e 63 6c 75 64 65 20 22 63 e)...(include "c
1050: 61 6e 76 61 73 2d 64 72 61 77 2d 73 65 72 76 65 anvas-draw-serve
1060: 72 2e 73 63 6d 22 29 29 0a 09 28 6d 6f 64 75 6c r.scm"))..(modul
1070: 65 20 63 61 6e 76 61 73 2d 64 72 61 77 2d 63 6c e canvas-draw-cl
1080: 69 70 62 6f 61 72 64 0a 09 09 28 63 6f 6e 74 65 ipboard...(conte
1090: 78 74 3a 63 6c 69 70 62 6f 61 72 64 29 0a 09 09 xt:clipboard)...
10a0: 28 69 6d 70 6f 72 74 20 73 63 68 65 6d 65 20 63 (import scheme c
10b0: 68 69 63 6b 65 6e 20 66 6f 72 65 69 67 6e 20 63 hicken foreign c
10c0: 61 6e 76 61 73 2d 64 72 61 77 2d 62 61 73 65 29 anvas-draw-base)
10d0: 0a 09 09 28 69 6e 63 6c 75 64 65 20 22 63 61 6e ...(include "can
10e0: 76 61 73 2d 64 72 61 77 2d 63 6c 69 70 62 6f 61 vas-draw-clipboa
10f0: 72 64 2e 73 63 6d 22 29 29 0a 09 28 6d 6f 64 75 rd.scm"))..(modu
1100: 6c 65 20 63 61 6e 76 61 73 2d 64 72 61 77 2d 70 le canvas-draw-p
1110: 72 69 6e 74 65 72 0a 09 09 28 63 6f 6e 74 65 78 rinter...(contex
1120: 74 3a 70 72 69 6e 74 65 72 29 0a 09 09 28 69 6d t:printer)...(im
1130: 70 6f 72 74 20 73 63 68 65 6d 65 20 63 68 69 63 port scheme chic
1140: 6b 65 6e 20 66 6f 72 65 69 67 6e 20 63 61 6e 76 ken foreign canv
1150: 61 73 2d 64 72 61 77 2d 62 61 73 65 29 0a 09 09 as-draw-base)...
1160: 28 69 6e 63 6c 75 64 65 20 22 63 61 6e 76 61 73 (include "canvas
1170: 2d 64 72 61 77 2d 70 72 69 6e 74 65 72 2e 73 63 -draw-printer.sc
1180: 6d 22 29 29 5d 29 0a 0a 28 63 6f 6e 64 2d 65 78 m"))])..(cond-ex
1190: 70 61 6e 64 0a 20 5b 64 69 73 61 62 6c 65 2d 63 pand. [disable-c
11a0: 61 6e 76 61 73 2d 64 72 61 77 2d 70 64 66 5d 0a anvas-draw-pdf].
11b0: 20 5b 65 6c 73 65 0a 09 28 6d 6f 64 75 6c 65 20 [else..(module
11c0: 63 61 6e 76 61 73 2d 64 72 61 77 2d 70 64 66 0a canvas-draw-pdf.
11d0: 09 09 28 63 6f 6e 74 65 78 74 3a 70 64 66 29 0a ..(context:pdf).
11e0: 09 09 28 69 6d 70 6f 72 74 20 73 63 68 65 6d 65 ..(import scheme
11f0: 20 63 68 69 63 6b 65 6e 20 66 6f 72 65 69 67 6e chicken foreign
1200: 20 63 61 6e 76 61 73 2d 64 72 61 77 2d 62 61 73 canvas-draw-bas
1210: 65 29 0a 09 09 28 69 6e 63 6c 75 64 65 20 22 63 e)...(include "c
1220: 61 6e 76 61 73 2d 64 72 61 77 2d 70 64 66 2e 73 anvas-draw-pdf.s
1230: 63 6d 22 29 29 5d 29 0a 0a 28 63 6f 6e 64 2d 65 cm"))])..(cond-e
1240: 78 70 61 6e 64 0a 20 5b 65 6e 61 62 6c 65 2d 63 xpand. [enable-c
1250: 61 6e 76 61 73 2d 64 72 61 77 2d 64 65 62 75 67 anvas-draw-debug
1260: 0a 09 28 6d 6f 64 75 6c 65 20 63 61 6e 76 61 73 ..(module canvas
1270: 2d 64 72 61 77 2d 64 65 62 75 67 0a 09 09 28 63 -draw-debug...(c
1280: 6f 6e 74 65 78 74 3a 64 65 62 75 67 29 0a 09 09 ontext:debug)...
1290: 28 69 6d 70 6f 72 74 20 73 63 68 65 6d 65 20 63 (import scheme c
12a0: 68 69 63 6b 65 6e 20 66 6f 72 65 69 67 6e 20 63 hicken foreign c
12b0: 61 6e 76 61 73 2d 64 72 61 77 2d 62 61 73 65 29 anvas-draw-base)
12c0: 0a 09 09 28 69 6e 63 6c 75 64 65 20 22 63 61 6e ...(include "can
12d0: 76 61 73 2d 64 72 61 77 2d 64 65 62 75 67 2e 73 vas-draw-debug.s
12e0: 63 6d 22 29 29 5d 0a 20 5b 65 6c 73 65 5d 29 0a cm"))]. [else]).
12f0: 0a 28 6d 6f 64 75 6c 65 20 63 61 6e 76 61 73 2d .(module canvas-
1300: 64 72 61 77 0a 09 28 29 0a 09 28 69 6d 70 6f 72 draw..()..(impor
1310: 74 20 73 63 68 65 6d 65 20 63 68 69 63 6b 65 6e t scheme chicken
1320: 29 0a 09 28 72 65 65 78 70 6f 72 74 0a 09 09 28 )..(reexport...(
1330: 65 78 63 65 70 74 20 63 61 6e 76 61 73 2d 64 72 except canvas-dr
1340: 61 77 2d 62 61 73 65 0a 09 09 20 20 20 20 20 20 aw-base...
1350: 20 20 63 61 6e 76 61 73 2d 3e 70 6f 69 6e 74 65 canvas->pointe
1360: 72 20 70 6f 69 6e 74 65 72 2d 3e 63 61 6e 76 61 r pointer->canva
1370: 73 0a 09 09 20 20 20 20 20 20 20 20 63 6f 6e 74 s... cont
1380: 65 78 74 2d 3e 70 6f 69 6e 74 65 72 20 70 6f 69 ext->pointer poi
1390: 6e 74 65 72 2d 3e 63 6f 6e 74 65 78 74 0a 09 09 nter->context...
13a0: 20 20 20 20 20 20 20 20 73 74 61 74 65 2d 3e 70 state->p
13b0: 6f 69 6e 74 65 72 20 70 6f 69 6e 74 65 72 2d 3e ointer pointer->
13c0: 73 74 61 74 65 29 0a 09 09 63 61 6e 76 61 73 2d state)...canvas-
13d0: 64 72 61 77 2d 70 72 69 6d 69 74 69 76 65 73 0a draw-primitives.
13e0: 09 09 63 61 6e 76 61 73 2d 64 72 61 77 2d 70 6c ..canvas-draw-pl
13f0: 61 79 29 29 0a ay)).