Artifact
01dd0798b9c4453ce6282feeb5e1503cee26ae1c:
0000: 3c 68 31 3e 3c 74 74 3e 62 61 73 65 3c 2f 74 74 <h1><tt>base</tt
0010: 3e 20 4d 6f 64 75 6c 65 3c 2f 68 31 3e 0a 0a 3c > Module</h1>..<
0020: 68 32 3e 53 79 6e 6f 70 73 69 73 3c 2f 68 32 3e h2>Synopsis</h2>
0030: 0a 0a 3c 74 61 62 6c 65 3e 0a 09 3c 74 72 3e 0a ..<table>..<tr>.
0040: 09 09 3c 74 68 3e 52 61 63 6b 65 74 3c 2f 74 68 ..<th>Racket</th
0050: 3e 0a 09 09 3c 74 64 3e 3c 63 6f 64 65 3e 28 72 >...<td><code>(r
0060: 65 71 75 69 72 65 20 28 70 6c 61 6e 65 74 20 6d equire (planet m
0070: 75 72 70 68 79 2f 63 61 6e 76 61 73 2d 64 72 61 urphy/canvas-dra
0080: 77 3a 31 3a 30 2f 62 61 73 65 29 29 3c 2f 63 6f w:1:0/base))</co
0090: 64 65 3e 3c 2f 74 64 3e 0a 09 3c 2f 74 72 3e 0a de></td>..</tr>.
00a0: 09 3c 74 72 3e 0a 09 09 3c 74 68 3e 43 48 49 43 .<tr>...<th>CHIC
00b0: 4b 45 4e 3c 2f 74 68 3e 0a 09 09 3c 74 64 3e 3c KEN</th>...<td><
00c0: 63 6f 64 65 3e 28 72 65 71 75 69 72 65 2d 65 78 code>(require-ex
00d0: 74 65 6e 73 69 6f 6e 20 63 61 6e 76 61 73 2d 64 tension canvas-d
00e0: 72 61 77 2d 62 61 73 65 29 3c 2f 63 6f 64 65 3e raw-base)</code>
00f0: 3c 2f 74 64 3e 0a 09 3c 2f 74 72 3e 0a 3c 2f 74 </td>..</tr>.</t
0100: 61 62 6c 65 3e 0a 0a 42 61 73 69 63 20 43 44 20 able>..Basic CD
0110: 6c 69 62 72 61 72 79 20 73 75 70 70 6f 72 74 2e library support.
0120: 20 49 6e 69 74 69 61 6c 69 7a 65 73 20 74 68 65 Initializes the
0130: 20 43 44 20 6c 69 62 72 61 72 79 20 77 68 65 6e CD library when
0140: 20 6c 6f 61 64 65 64 2e 0a 0a 3c 68 32 3e 44 61 loaded...<h2>Da
0150: 74 61 20 54 79 70 65 73 3c 2f 68 32 3e 0a 0a 3c ta Types</h2>..<
0160: 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73 h3><a id="canvas
0170: 5f 22 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69 _"><code><nowiki
0180: 3e 28 63 61 6e 76 61 73 3f 20 5b 76 20 61 6e 79 >(canvas? [v any
0190: 2f 63 5d 29 20 e2 86 92 20 62 6f 6f 6c 65 61 6e /c]) → boolean
01a0: 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 ?</nowiki></code
01b0: 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 43 68 65 63 ></a></h3>..Chec
01c0: 6b 20 77 68 65 74 68 65 72 20 61 20 76 61 6c 75 k whether a valu
01d0: 65 20 69 73 20 61 20 43 44 20 63 61 6e 76 61 73 e is a CD canvas
01e0: 2e 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 63 6f ...<h3><a id="co
01f0: 6e 74 65 78 74 5f 22 3e 3c 63 6f 64 65 3e 3c 6e ntext_"><code><n
0200: 6f 77 69 6b 69 3e 28 63 6f 6e 74 65 78 74 3f 20 owiki>(context?
0210: 5b 76 20 61 6e 79 2f 63 5d 29 20 e2 86 92 20 62 [v any/c]) → b
0220: 6f 6f 6c 65 61 6e 3f 3c 2f 6e 6f 77 69 6b 69 3e oolean?</nowiki>
0230: 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e </code></a></h3>
0240: 0a 0a 43 68 65 63 6b 20 77 68 65 74 68 65 72 20 ..Check whether
0250: 61 20 76 61 6c 75 65 20 69 73 20 61 20 43 44 20 a value is a CD
0260: 64 72 69 76 65 72 20 63 6f 6e 74 65 78 74 2e 0a driver context..
0270: 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 73 74 61 74 .<h3><a id="stat
0280: 65 5f 22 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 69 6b e_"><code><nowik
0290: 69 3e 28 73 74 61 74 65 3f 20 5b 76 20 61 6e 79 i>(state? [v any
02a0: 2f 63 5d 29 20 e2 86 92 20 62 6f 6f 6c 65 61 6e /c]) → boolean
02b0: 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 ?</nowiki></code
02c0: 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 43 68 65 63 ></a></h3>..Chec
02d0: 6b 20 77 68 65 74 68 65 72 20 61 20 76 61 6c 75 k whether a valu
02e0: 65 20 69 73 20 61 20 43 44 20 63 61 6e 76 61 73 e is a CD canvas
02f0: 20 73 74 61 74 65 2e 0a 0a 3c 68 32 3e 43 61 6e state...<h2>Can
0300: 76 61 73 20 4d 61 6e 61 67 65 6d 65 6e 74 3c 2f vas Management</
0310: 68 32 3e 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 h2>..<h3><a id="
0320: 63 6f 6e 74 65 78 74 2d 63 61 70 61 62 69 6c 69 context-capabili
0330: 74 69 65 73 22 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 ties"><code><now
0340: 69 6b 69 3e 28 63 6f 6e 74 65 78 74 2d 63 61 70 iki>(context-cap
0350: 61 62 69 6c 69 74 69 65 73 20 5b 63 6f 6e 74 65 abilities [conte
0360: 78 74 20 63 6f 6e 74 65 78 74 3f 5d 29 20 e2 86 xt context?]) â†
0370: 92 20 28 6c 69 73 74 6f 66 20 73 79 6d 62 6f 6c ’ (listof symbol
0380: 3f 29 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64 ?)</nowiki></cod
0390: 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 52 65 74 e></a></h3>..Ret
03a0: 75 72 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 66 urns a list of f
03b0: 6c 61 67 73 20 64 65 73 63 72 69 62 69 6e 67 20 lags describing
03c0: 74 68 65 20 63 61 70 61 62 69 6c 69 74 69 65 73 the capabilities
03d0: 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 supported by th
03e0: 65 20 67 69 76 65 6e 0a 63 6f 6e 74 65 78 74 2e e given.context.
03f0: 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 ..The following
0400: 66 6c 61 67 73 20 6d 61 79 20 73 68 6f 77 20 75 flags may show u
0410: 70 20 69 6e 20 74 68 65 20 6c 69 73 74 3a 0a 20 p in the list:.
0420: 20 2a 20 20 3c 63 6f 64 65 3e 27 66 6c 75 73 68 * <code>'flush
0430: 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f </code>. * <co
0440: 64 65 3e 27 63 6c 65 61 72 3c 2f 63 6f 64 65 3e de>'clear</code>
0450: 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27 70 6c 61 . * <code>'pla
0460: 79 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 y</code>. * <c
0470: 6f 64 65 3e 27 79 2d 61 78 69 73 3c 2f 63 6f 64 ode>'y-axis</cod
0480: 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27 63 e>. * <code>'c
0490: 6c 69 70 2d 61 72 65 61 3c 2f 63 6f 64 65 3e 0a lip-area</code>.
04a0: 20 20 2a 20 20 3c 63 6f 64 65 3e 27 63 6c 69 70 * <code>'clip
04b0: 2d 70 6f 6c 79 67 6f 6e 3c 2f 63 6f 64 65 3e 0a -polygon</code>.
04c0: 20 20 2a 20 20 3c 63 6f 64 65 3e 27 72 65 67 69 * <code>'regi
04d0: 6f 6e 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c on</code>. * <
04e0: 63 6f 64 65 3e 27 72 65 63 74 61 6e 67 6c 65 3c code>'rectangle<
04f0: 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 /code>. * <cod
0500: 65 3e 27 63 68 6f 72 64 3c 2f 63 6f 64 65 3e 0a e>'chord</code>.
0510: 20 20 2a 20 20 3c 63 6f 64 65 3e 27 69 6d 61 67 * <code>'imag
0520: 65 2f 72 67 62 3c 2f 63 6f 64 65 3e 0a 20 20 2a e/rgb</code>. *
0530: 20 20 3c 63 6f 64 65 3e 27 69 6d 61 67 65 2f 72 <code>'image/r
0540: 67 62 61 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 gba</code>. *
0550: 3c 63 6f 64 65 3e 27 69 6d 61 67 65 2f 6d 61 70 <code>'image/map
0560: 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f </code>. * <co
0570: 64 65 3e 27 67 65 74 2d 69 6d 61 67 65 2f 72 67 de>'get-image/rg
0580: 62 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 b</code>. * <c
0590: 6f 64 65 3e 27 69 6d 61 67 65 2f 73 65 72 76 65 ode>'image/serve
05a0: 72 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 r</code>. * <c
05b0: 6f 64 65 3e 27 62 61 63 6b 67 72 6f 75 6e 64 3c ode>'background<
05c0: 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 /code>. * <cod
05d0: 65 3e 27 62 61 63 6b 67 72 6f 75 6e 64 2d 6f 70 e>'background-op
05e0: 61 63 69 74 79 3c 2f 63 6f 64 65 3e 0a 20 20 2a acity</code>. *
05f0: 20 20 3c 63 6f 64 65 3e 27 77 72 69 74 65 2d 6d <code>'write-m
0600: 6f 64 65 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 ode</code>. *
0610: 3c 63 6f 64 65 3e 27 6c 69 6e 65 2d 73 74 79 6c <code>'line-styl
0620: 65 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 e</code>. * <c
0630: 6f 64 65 3e 27 6c 69 6e 65 2d 77 69 64 74 68 3c ode>'line-width<
0640: 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 /code>. * <cod
0650: 65 3e 27 66 70 72 69 6d 74 69 76 65 73 3c 2f 63 e>'fprimtives</c
0660: 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e ode>. * <code>
0670: 27 68 61 74 63 68 3c 2f 63 6f 64 65 3e 0a 20 20 'hatch</code>.
0680: 2a 20 20 3c 63 6f 64 65 3e 27 73 74 69 70 70 6c * <code>'stippl
0690: 65 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 e</code>. * <c
06a0: 6f 64 65 3e 27 70 61 74 74 65 72 6e 3c 2f 63 6f ode>'pattern</co
06b0: 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27 de>. * <code>'
06c0: 66 6f 6e 74 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 font</code>. *
06d0: 20 3c 63 6f 64 65 3e 27 66 6f 6e 74 2d 64 69 6d <code>'font-dim
06e0: 65 6e 73 69 6f 6e 73 3c 2f 63 6f 64 65 3e 0a 20 ensions</code>.
06f0: 20 2a 20 20 3c 63 6f 64 65 3e 27 74 65 78 74 2d * <code>'text-
0700: 73 69 7a 65 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 size</code>. *
0710: 20 3c 63 6f 64 65 3e 27 74 65 78 74 2d 6f 72 69 <code>'text-ori
0720: 65 6e 74 61 74 69 6f 6e 3c 2f 63 6f 64 65 3e 0a entation</code>.
0730: 20 20 2a 20 20 3c 63 6f 64 65 3e 27 70 61 6c 65 * <code>'pale
0740: 74 74 65 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 tte</code>. *
0750: 3c 63 6f 64 65 3e 27 6c 69 6e 65 2d 63 61 70 3c <code>'line-cap<
0760: 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 /code>. * <cod
0770: 65 3e 27 6c 69 6e 65 2d 6a 6f 69 6e 3c 2f 63 6f e>'line-join</co
0780: 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27 de>. * <code>'
0790: 70 61 74 68 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 path</code>. *
07a0: 20 3c 63 6f 64 65 3e 27 62 65 7a 69 65 72 3c 2f <code>'bezier</
07b0: 63 6f 64 65 3e 0a 0a 3c 68 33 3e 3c 61 20 69 64 code>..<h3><a id
07c0: 3d 22 75 73 65 2d 63 6f 6e 74 65 78 74 5f 22 3e ="use-context_">
07d0: 3c 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 5b 75 <code><nowiki>[u
07e0: 73 65 2d 63 6f 6e 74 65 78 74 2b 20 28 70 61 72 se-context+ (par
07f0: 61 6d 65 74 65 72 2f 63 20 61 6e 79 29 5d 3c 2f ameter/c any)]</
0800: 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f nowiki></code></
0810: 61 3e 3c 2f 68 33 3e 0a 0a 41 20 70 61 72 61 6d a></h3>..A param
0820: 65 74 65 72 20 64 65 74 65 72 6d 69 6e 69 6e 67 eter determining
0830: 20 77 68 65 74 68 65 72 20 63 61 6c 6c 73 20 74 whether calls t
0840: 6f 20 3c 63 6f 64 65 3e 5b 23 6d 61 6b 65 2d 63 o <code>[#make-c
0850: 61 6e 76 61 73 7c 6d 61 6b 65 2d 63 61 6e 76 61 anvas|make-canva
0860: 73 5d 3c 2f 63 6f 64 65 3e 0a 73 68 6f 75 6c 64 s]</code>.should
0870: 20 75 73 65 20 65 78 74 65 6e 64 65 64 20 76 61 use extended va
0880: 72 69 61 6e 74 73 20 6f 66 20 74 68 65 20 70 61 riants of the pa
0890: 73 73 65 64 20 63 6f 6e 74 65 78 74 20 64 72 69 ssed context dri
08a0: 76 65 72 73 2e 0a 0a 44 65 66 61 75 6c 74 73 20 vers...Defaults
08b0: 74 6f 20 3c 63 6f 64 65 3e 23 66 3c 2f 63 6f 64 to <code>#f</cod
08c0: 65 3e 2e 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 e>...<h3><a id="
08d0: 6d 61 6b 65 2d 63 61 6e 76 61 73 22 3e 3c 63 6f make-canvas"><co
08e0: 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28 6d 61 6b 65 de><nowiki>(make
08f0: 2d 63 61 6e 76 61 73 20 5b 63 6f 6e 74 65 78 74 -canvas [context
0900: 20 63 6f 6e 74 65 78 74 3f 5d 20 5b 64 61 74 61 context?] [data
0910: 20 28 6f 72 2f 63 20 73 74 72 69 6e 67 3f 20 70 (or/c string? p
0920: 6f 69 6e 74 65 72 3f 29 5d 29 20 e2 86 92 20 63 ointer?)]) → c
0930: 61 6e 76 61 73 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c anvas?</nowiki><
0940: 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a /code></a></h3>.
0950: 0a 43 72 65 61 74 65 73 20 61 20 6e 65 77 20 63 .Creates a new c
0960: 61 6e 76 61 73 20 77 69 74 68 20 74 68 65 20 67 anvas with the g
0970: 69 76 65 6e 20 64 72 69 76 65 72 20 63 6f 6e 74 iven driver cont
0980: 65 78 74 2e 20 54 68 65 20 3c 63 6f 64 65 3e 64 ext. The <code>d
0990: 61 74 61 3c 2f 63 6f 64 65 3e 20 69 73 0a 63 6f ata</code> is.co
09a0: 6e 74 65 78 74 20 73 70 65 63 69 66 69 63 20 61 ntext specific a
09b0: 6e 64 20 69 73 20 65 69 74 68 65 72 20 61 20 73 nd is either a s
09c0: 74 72 69 6e 67 20 64 65 73 63 72 69 62 69 6e 67 tring describing
09d0: 20 74 68 65 20 73 65 74 75 70 20 6f 66 20 74 68 the setup of th
09e0: 65 20 6e 65 77 20 63 61 6e 76 61 73 0a 6f 72 20 e new canvas.or
09f0: 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 73 6f 6d a pointer to som
0a00: 65 20 6e 61 74 69 76 65 20 64 61 74 61 20 6f 62 e native data ob
0a10: 6a 65 63 74 2e 0a 0a 3c 68 33 3e 3c 61 20 69 64 ject...<h3><a id
0a20: 3d 22 63 61 6c 6c 2d 77 69 74 68 2d 63 61 6e 76 ="call-with-canv
0a30: 61 73 22 3e 3c 63 6f 64 65 3e 0a 09 3c 6e 6f 77 as"><code>..<now
0a40: 69 6b 69 3e 28 63 61 6c 6c 2d 77 69 74 68 2d 63 iki>(call-with-c
0a50: 61 6e 76 61 73 20 5b 63 61 6e 76 61 73 20 63 61 anvas [canvas ca
0a60: 6e 76 61 73 3f 5d 20 5b 70 72 6f 63 20 28 2d 3e nvas?] [proc (->
0a70: 20 63 61 6e 76 61 73 3f 20 61 6e 79 29 5d 29 20 canvas? any)])
0a80: e2 86 92 20 61 6e 79 3c 2f 6e 6f 77 69 6b 69 3e → any</nowiki>
0a90: 3c 62 72 3e 0a 09 3c 6e 6f 77 69 6b 69 3e 28 63 <br>..<nowiki>(c
0aa0: 61 6c 6c 2d 77 69 74 68 2d 63 61 6e 76 61 73 20 all-with-canvas
0ab0: 5b 63 6f 6e 74 65 78 74 20 63 6f 6e 74 65 78 74 [context context
0ac0: 3f 5d 20 5b 64 61 74 61 20 28 6f 72 2f 63 20 73 ?] [data (or/c s
0ad0: 74 72 69 6e 67 3f 20 70 6f 69 6e 74 65 72 3f 29 tring? pointer?)
0ae0: 5d 20 5b 70 72 6f 63 20 28 2d 3e 20 63 61 6e 76 ] [proc (-> canv
0af0: 61 73 3f 20 61 6e 79 29 5d 29 20 e2 86 92 20 61 as? any)]) → a
0b00: 6e 79 3c 2f 6e 6f 77 69 6b 69 3e 0a 3c 2f 63 6f ny</nowiki>.</co
0b10: 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 43 61 de></a></h3>..Ca
0b20: 6c 6c 73 20 74 68 65 20 67 69 76 65 6e 20 70 72 lls the given pr
0b30: 6f 63 65 64 75 72 65 20 77 69 74 68 20 74 68 65 ocedure with the
0b40: 20 67 69 76 65 6e 20 63 61 6e 76 61 73 20 61 6e given canvas an
0b50: 64 20 6d 61 6b 65 73 20 73 75 72 65 20 74 68 65 d makes sure the
0b60: 20 63 61 6e 76 61 73 20 69 73 0a 73 79 6e 63 68 canvas is.synch
0b70: 72 6f 6e 69 7a 65 64 20 77 69 74 68 20 65 78 74 ronized with ext
0b80: 65 72 6e 61 6c 20 72 65 73 6f 75 72 63 65 73 20 ernal resources
0b90: 61 72 6f 75 6e 64 20 74 68 65 20 63 61 6c 6c 2e around the call.
0ba0: 0a 0a 49 66 20 63 61 6c 6c 65 64 20 69 6e 20 74 ..If called in t
0bb0: 68 65 20 74 68 72 65 65 20 61 72 67 75 6d 65 6e he three argumen
0bc0: 74 20 66 6f 72 6d 2c 20 61 20 66 72 65 73 68 20 t form, a fresh
0bd0: 63 61 6e 76 61 73 20 69 73 20 63 72 65 61 74 65 canvas is create
0be0: 64 20 75 73 69 6e 67 20 74 68 65 20 67 69 76 65 d using the give
0bf0: 6e 0a 63 6f 6e 74 65 78 74 20 61 6e 64 20 69 73 n.context and is
0c00: 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 automatically d
0c10: 65 73 74 72 6f 79 65 64 20 75 70 6f 6e 20 72 65 estroyed upon re
0c20: 74 75 72 6e 20 66 72 6f 6d 20 74 68 65 20 67 69 turn from the gi
0c30: 76 65 6e 20 70 72 6f 63 65 64 75 72 65 2e 0a 0a ven procedure...
0c40: 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 <h3><a id="canva
0c50: 73 2d 63 6f 6e 74 65 78 74 22 3e 3c 63 6f 64 65 s-context"><code
0c60: 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61 73 ><nowiki>(canvas
0c70: 2d 63 6f 6e 74 65 78 74 20 5b 63 61 6e 76 61 73 -context [canvas
0c80: 20 63 61 6e 76 61 73 3f 5d 29 20 e2 86 92 20 63 canvas?]) → c
0c90: 6f 6e 74 65 78 74 3f 3c 2f 6e 6f 77 69 6b 69 3e ontext?</nowiki>
0ca0: 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e </code></a></h3>
0cb0: 0a 0a 52 65 74 72 69 65 76 65 73 20 74 68 65 20 ..Retrieves the
0cc0: 63 6f 6e 74 65 78 74 20 66 72 6f 6d 20 61 20 67 context from a g
0cd0: 69 76 65 6e 20 63 61 6e 76 61 73 2e 0a 0a 3c 68 iven canvas...<h
0ce0: 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73 2d 3><a id="canvas-
0cf0: 73 69 6d 75 6c 61 74 65 5f 22 3e 3c 63 6f 64 65 simulate_"><code
0d00: 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61 73 ><nowiki>(canvas
0d10: 2d 73 69 6d 75 6c 61 74 65 21 20 5b 63 61 6e 76 -simulate! [canv
0d20: 61 73 20 63 61 6e 76 61 73 3f 5d 20 5b 66 6c 61 as canvas?] [fla
0d30: 67 73 20 28 6c 69 73 74 6f 66 20 73 79 6d 62 6f gs (listof symbo
0d40: 6c 3f 29 5d 29 20 e2 86 92 20 28 6c 69 73 74 6f l?)]) → (listo
0d50: 66 20 73 79 6d 62 6f 6c 3f 29 3c 2f 6e 6f 77 69 f symbol?)</nowi
0d60: 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f ki></code></a></
0d70: 68 33 3e 0a 0a 53 65 74 73 20 66 6c 61 67 73 20 h3>..Sets flags
0d80: 64 65 74 65 72 6d 69 6e 69 6e 67 20 77 68 69 63 determining whic
0d90: 68 20 6f 70 65 72 61 74 69 6f 6e 73 20 73 68 6f h operations sho
0da0: 75 6c 64 20 62 65 20 73 69 6d 75 6c 61 74 65 64 uld be simulated
0db0: 20 62 79 20 74 68 65 20 67 69 76 65 6e 20 63 61 by the given ca
0dc0: 6e 76 61 73 2e 0a 52 65 74 75 72 6e 73 20 74 68 nvas..Returns th
0dd0: 65 20 70 72 65 76 69 6f 75 73 20 73 65 74 20 6f e previous set o
0de0: 66 20 66 6c 61 67 73 2e 0a 0a 54 68 65 20 66 6f f flags...The fo
0df0: 6c 6c 6f 77 69 6e 67 20 66 6c 61 67 73 20 6d 61 llowing flags ma
0e00: 79 20 73 68 6f 77 20 75 70 20 69 6e 20 74 68 65 y show up in the
0e10: 20 6c 69 73 74 3a 0a 20 20 2a 20 20 3c 63 6f 64 list:. * <cod
0e20: 65 3e 27 6c 69 6e 65 3c 2f 63 6f 64 65 3e 0a 20 e>'line</code>.
0e30: 20 2a 20 20 3c 63 6f 64 65 3e 27 72 65 63 74 61 * <code>'recta
0e40: 6e 67 6c 65 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 ngle</code>. *
0e50: 20 3c 63 6f 64 65 3e 27 62 6f 78 3c 2f 63 6f 64 <code>'box</cod
0e60: 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27 61 e>. * <code>'a
0e70: 72 63 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c rc</code>. * <
0e80: 63 6f 64 65 3e 27 73 65 63 74 6f 72 3c 2f 63 6f code>'sector</co
0e90: 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27 de>. * <code>'
0ea0: 63 68 6f 72 64 3c 2f 63 6f 64 65 3e 0a 20 20 2a chord</code>. *
0eb0: 20 20 3c 63 6f 64 65 3e 27 70 6f 6c 79 6c 69 6e <code>'polylin
0ec0: 65 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 e</code>. * <c
0ed0: 6f 64 65 3e 27 70 6f 6c 79 67 6f 6e 3c 2f 63 6f ode>'polygon</co
0ee0: 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27 de>. * <code>'
0ef0: 74 65 78 74 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 text</code>. *
0f00: 20 3c 63 6f 64 65 3e 27 61 6c 6c 3c 2f 63 6f 64 <code>'all</cod
0f10: 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27 6c e>. * <code>'l
0f20: 69 6e 65 73 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 ines</code>. *
0f30: 20 3c 63 6f 64 65 3e 27 66 69 6c 6c 73 3c 2f 63 <code>'fills</c
0f40: 6f 64 65 3e 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d ode>..<h3><a id=
0f50: 22 63 61 6e 76 61 73 2d 61 74 74 72 69 62 75 74 "canvas-attribut
0f60: 65 22 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69 e"><code><nowiki
0f70: 3e 28 63 61 6e 76 61 73 2d 61 74 74 72 69 62 75 >(canvas-attribu
0f80: 74 65 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 61 te [canvas canva
0f90: 73 3f 5d 20 5b 6e 61 6d 65 20 28 6f 72 2f 63 20 s?] [name (or/c
0fa0: 73 79 6d 62 6f 6c 3f 20 73 74 72 69 6e 67 3f 29 symbol? string?)
0fb0: 5d 29 20 e2 86 92 20 28 6f 72 2f 63 20 73 74 72 ]) → (or/c str
0fc0: 69 6e 67 3f 20 23 66 29 3c 2f 6e 6f 77 69 6b 69 ing? #f)</nowiki
0fd0: 3e 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 ></code></a></h3
0fe0: 3e 0a 0a 52 65 74 72 69 65 76 65 73 20 74 68 65 >..Retrieves the
0ff0: 20 76 61 6c 75 65 20 6f 66 20 61 20 63 6f 6e 74 value of a cont
1000: 65 78 74 20 73 70 65 63 69 66 69 63 20 63 61 6e ext specific can
1010: 76 61 73 20 61 74 74 72 69 62 75 74 65 2e 0a 0a vas attribute...
1020: 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 <h3><a id="canva
1030: 73 2d 61 74 74 72 69 62 75 74 65 2d 73 65 74 5f s-attribute-set_
1040: 22 3e 3c 63 6f 64 65 3e 0a 09 3c 6e 6f 77 69 6b "><code>..<nowik
1050: 69 3e 28 63 61 6e 76 61 73 2d 61 74 74 72 69 62 i>(canvas-attrib
1060: 75 74 65 2d 73 65 74 21 20 5b 63 61 6e 76 61 73 ute-set! [canvas
1070: 20 63 61 6e 76 61 73 3f 5d 20 5b 6e 61 6d 65 20 canvas?] [name
1080: 28 6f 72 2f 63 20 73 79 6d 62 6f 6c 3f 20 73 74 (or/c symbol? st
1090: 72 69 6e 67 3f 29 5d 20 5b 76 61 6c 75 65 20 28 ring?)] [value (
10a0: 6f 72 2f 63 20 73 74 72 69 6e 67 3f 20 23 66 29 or/c string? #f)
10b0: 5d 29 20 e2 86 92 20 76 6f 69 64 3f 3c 2f 6e 6f ]) → void?</no
10c0: 77 69 6b 69 3e 3c 62 72 3e 0a 09 3c 6e 6f 77 69 wiki><br>..<nowi
10d0: 6b 69 3e 28 73 65 74 21 20 28 63 61 6e 76 61 73 ki>(set! (canvas
10e0: 2d 61 74 74 72 69 62 75 74 65 20 5b 63 61 6e 76 -attribute [canv
10f0: 61 73 20 63 61 6e 76 61 73 3f 5d 20 5b 6e 61 6d as canvas?] [nam
1100: 65 20 28 6f 72 2f 63 20 73 79 6d 62 6f 6c 3f 20 e (or/c symbol?
1110: 73 74 72 69 6e 67 3f 29 5d 29 20 5b 76 61 6c 75 string?)]) [valu
1120: 65 20 28 6f 72 2f 63 20 73 74 72 69 6e 67 3f 20 e (or/c string?
1130: 23 66 29 5d 29 20 e2 86 92 20 76 6f 69 64 3f 3c #f)]) → void?<
1140: 2f 6e 6f 77 69 6b 69 3e 0a 3c 2f 63 6f 64 65 3e /nowiki>.</code>
1150: 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 53 65 74 73 20 </a></h3>..Sets
1160: 74 68 65 20 76 61 6c 75 65 20 6f 66 20 61 20 63 the value of a c
1170: 6f 6e 74 65 78 74 20 73 70 65 63 69 66 69 63 20 ontext specific
1180: 63 61 6e 76 61 73 20 61 74 74 72 69 62 75 74 65 canvas attribute
1190: 2e 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61 ...<h3><a id="ca
11a0: 6e 76 61 73 2d 73 74 61 74 65 22 3e 3c 63 6f 64 nvas-state"><cod
11b0: 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61 e><nowiki>(canva
11c0: 73 2d 73 74 61 74 65 20 5b 63 61 6e 76 61 73 20 s-state [canvas
11d0: 63 61 6e 76 61 73 3f 5d 29 20 e2 86 92 20 73 74 canvas?]) → st
11e0: 61 74 65 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 ate?</nowiki></c
11f0: 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 45 ode></a></h3>..E
1200: 78 74 72 61 63 74 73 20 61 20 72 65 70 72 65 73 xtracts a repres
1210: 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 entation of the
1220: 63 75 72 72 65 6e 74 20 73 74 61 74 65 20 66 72 current state fr
1230: 6f 6d 20 61 20 63 61 6e 76 61 73 2e 0a 0a 3c 68 om a canvas...<h
1240: 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73 2d 3><a id="canvas-
1250: 73 74 61 74 65 2d 73 65 74 5f 22 3e 3c 63 6f 64 state-set_"><cod
1260: 65 3e 0a 09 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e e>..<nowiki>(can
1270: 76 61 73 2d 73 74 61 74 65 2d 73 65 74 21 20 5b vas-state-set! [
1280: 63 61 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 20 canvas canvas?]
1290: 5b 73 74 61 74 65 20 73 74 61 74 65 3f 5d 29 20 [state state?])
12a0: e2 86 92 20 76 6f 69 64 3f 3c 2f 6e 6f 77 69 6b → void?</nowik
12b0: 69 3e 3c 62 72 3e 0a 09 3c 6e 6f 77 69 6b 69 3e i><br>..<nowiki>
12c0: 28 73 65 74 21 20 28 63 61 6e 76 61 73 2d 73 74 (set! (canvas-st
12d0: 61 74 65 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 ate [canvas canv
12e0: 61 73 3f 5d 29 20 5b 73 74 61 74 65 20 73 74 61 as?]) [state sta
12f0: 74 65 3f 5d 29 20 e2 86 92 20 76 6f 69 64 3f 3c te?]) → void?<
1300: 2f 6e 6f 77 69 6b 69 3e 0a 3c 2f 63 6f 64 65 3e /nowiki>.</code>
1310: 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 52 65 73 74 6f </a></h3>..Resto
1320: 72 65 73 20 74 68 65 20 67 69 76 65 6e 20 73 74 res the given st
1330: 61 74 65 20 6f 66 20 61 20 63 61 6e 76 61 73 2e ate of a canvas.
1340: 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e ..<h3><a id="can
1350: 76 61 73 2d 63 6c 65 61 72 5f 22 3e 3c 63 6f 64 vas-clear_"><cod
1360: 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61 e><nowiki>(canva
1370: 73 2d 63 6c 65 61 72 21 20 5b 63 61 6e 76 61 73 s-clear! [canvas
1380: 20 63 61 6e 76 61 73 3f 5d 29 20 e2 86 92 20 76 canvas?]) → v
1390: 6f 69 64 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 oid?</nowiki></c
13a0: 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 43 ode></a></h3>..C
13b0: 6c 65 61 72 73 20 61 20 63 61 6e 76 61 73 20 74 lears a canvas t
13c0: 6f 20 74 68 65 20 62 61 63 6b 67 72 6f 75 6e 64 o the background
13d0: 20 63 6f 6c 6f 72 2e 0a 0a 3c 68 33 3e 3c 61 20 color...<h3><a
13e0: 69 64 3d 22 63 61 6e 76 61 73 2d 66 6c 75 73 68 id="canvas-flush
13f0: 22 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e "><code><nowiki>
1400: 28 63 61 6e 76 61 73 2d 66 6c 75 73 68 20 5b 63 (canvas-flush [c
1410: 61 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 29 20 anvas canvas?])
1420: e2 86 92 20 76 6f 69 64 3f 3c 2f 6e 6f 77 69 6b → void?</nowik
1430: 69 3e 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 i></code></a></h
1440: 33 3e 0a 0a 46 6c 75 73 68 65 73 20 61 6c 6c 20 3>..Flushes all
1450: 70 65 6e 64 69 6e 67 20 64 72 61 77 69 6e 67 20 pending drawing
1460: 6f 70 65 72 61 74 69 6f 6e 73 20 69 6e 20 61 20 operations in a
1470: 63 61 6e 76 61 73 20 74 6f 20 69 74 73 20 62 61 canvas to its ba
1480: 63 6b 65 6e 64 2e 0a 0a 3c 68 32 3e 43 6f 6f 72 ckend...<h2>Coor
1490: 64 69 6e 61 74 65 20 53 79 73 74 65 6d 3c 2f 68 dinate System</h
14a0: 32 3e 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 63 2>..<h3><a id="c
14b0: 61 6e 76 61 73 2d 73 69 7a 65 22 3e 3c 63 6f 64 anvas-size"><cod
14c0: 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61 e><nowiki>(canva
14d0: 73 2d 73 69 7a 65 20 5b 63 61 6e 76 61 73 20 63 s-size [canvas c
14e0: 61 6e 76 61 73 3f 5d 29 20 e2 86 92 20 28 76 61 anvas?]) → (va
14f0: 6c 75 65 73 20 69 6e 74 65 67 65 72 3f 20 69 6e lues integer? in
1500: 74 65 67 65 72 3f 20 72 65 61 6c 3f 20 72 65 61 teger? real? rea
1510: 6c 3f 29 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f l?)</nowiki></co
1520: 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 52 65 de></a></h3>..Re
1530: 74 72 69 65 76 65 73 20 74 68 65 20 77 69 64 74 trieves the widt
1540: 68 20 61 6e 64 20 68 65 69 67 68 74 20 6f 66 20 h and height of
1550: 74 68 65 20 67 69 76 65 6e 20 63 61 6e 76 61 73 the given canvas
1560: 20 69 6e 20 70 69 78 65 6c 73 20 61 6e 64 20 6d in pixels and m
1570: 69 6c 6c 69 6d 65 74 65 72 73 2e 0a 0a 3c 68 33 illimeters...<h3
1580: 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73 2d 6d ><a id="canvas-m
1590: 6d 2d 3e 70 78 22 3e 3c 63 6f 64 65 3e 3c 6e 6f m->px"><code><no
15a0: 77 69 6b 69 3e 28 63 61 6e 76 61 73 2d 6d 6d 2d wiki>(canvas-mm-
15b0: 3e 70 78 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 >px [canvas canv
15c0: 61 73 3f 5d 20 5b 78 2f 6d 6d 20 72 65 61 6c 3f as?] [x/mm real?
15d0: 5d 20 5b 79 2f 6d 6d 20 72 65 61 6c 3f 5d 29 20 ] [y/mm real?])
15e0: e2 86 92 20 28 76 61 6c 75 65 73 20 69 6e 74 65 → (values inte
15f0: 67 65 72 3f 20 69 6e 74 65 67 65 72 3f 29 3c 2f ger? integer?)</
1600: 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f nowiki></code></
1610: 61 3e 3c 2f 68 33 3e 0a 0a 43 6f 6e 76 65 72 74 a></h3>..Convert
1620: 73 20 61 20 70 6f 73 69 74 69 6f 6e 20 67 69 76 s a position giv
1630: 65 6e 20 69 6e 20 6d 69 6c 6c 69 6d 65 74 65 72 en in millimeter
1640: 73 20 69 6e 74 6f 20 61 20 70 69 78 65 6c 20 70 s into a pixel p
1650: 6f 73 69 74 69 6f 6e 20 69 6e 20 74 68 65 20 67 osition in the g
1660: 69 76 65 6e 0a 63 61 6e 76 61 73 2e 0a 0a 3c 68 iven.canvas...<h
1670: 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73 2d 3><a id="canvas-
1680: 70 78 2d 3e 6d 6d 22 3e 3c 63 6f 64 65 3e 3c 6e px->mm"><code><n
1690: 6f 77 69 6b 69 3e 28 63 61 6e 76 61 73 2d 70 78 owiki>(canvas-px
16a0: 2d 3e 6d 6d 20 5b 63 61 6e 76 61 73 20 63 61 6e ->mm [canvas can
16b0: 76 61 73 3f 5d 20 5b 78 2f 70 78 20 69 6e 74 65 vas?] [x/px inte
16c0: 67 65 72 3f 5d 20 5b 79 2f 70 78 20 69 6e 74 65 ger?] [y/px inte
16d0: 67 65 72 3f 5d 29 20 e2 86 92 20 28 76 61 6c 75 ger?]) → (valu
16e0: 65 73 20 72 65 61 6c 3f 20 72 65 61 6c 3f 29 3c es real? real?)<
16f0: 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c /nowiki></code><
1700: 2f 61 3e 3c 2f 68 33 3e 0a 0a 43 6f 6e 76 65 72 /a></h3>..Conver
1710: 74 73 20 61 20 70 6f 73 69 74 69 6f 6e 20 67 69 ts a position gi
1720: 76 65 6e 20 69 6e 20 70 69 78 65 6c 73 20 69 6e ven in pixels in
1730: 74 6f 20 61 20 70 68 79 73 69 63 61 6c 20 70 6f to a physical po
1740: 73 69 74 69 6f 6e 20 69 6e 20 74 68 65 20 67 69 sition in the gi
1750: 76 65 6e 0a 63 61 6e 76 61 73 2e 0a 0a 3c 68 33 ven.canvas...<h3
1760: 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73 2d 6f ><a id="canvas-o
1770: 72 69 67 69 6e 22 3e 3c 63 6f 64 65 3e 3c 6e 6f rigin"><code><no
1780: 77 69 6b 69 3e 28 63 61 6e 76 61 73 2d 6f 72 69 wiki>(canvas-ori
1790: 67 69 6e 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 gin [canvas canv
17a0: 61 73 3f 5d 29 20 e2 86 92 20 28 76 61 6c 75 65 as?]) → (value
17b0: 73 20 69 6e 74 65 67 65 72 3f 20 69 6e 74 65 67 s integer? integ
17c0: 65 72 3f 29 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 er?)</nowiki></c
17d0: 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 52 ode></a></h3>..R
17e0: 65 74 72 69 65 76 65 73 20 74 68 65 20 70 6f 73 etrieves the pos
17f0: 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 61 6e ition of the can
1800: 76 61 73 27 20 6f 72 69 67 69 6e 2e 0a 0a 3c 68 vas' origin...<h
1810: 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73 2d 3><a id="canvas-
1820: 6f 72 69 67 69 6e 2d 73 65 74 5f 22 3e 3c 63 6f origin-set_"><co
1830: 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 de><nowiki>(canv
1840: 61 73 2d 6f 72 69 67 69 6e 2d 73 65 74 21 20 5b as-origin-set! [
1850: 63 61 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 20 canvas canvas?]
1860: 5b 78 20 69 6e 74 65 67 65 72 3f 5d 20 5b 79 20 [x integer?] [y
1870: 69 6e 74 65 67 65 72 3f 5d 29 20 e2 86 92 20 76 integer?]) → v
1880: 6f 69 64 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 oid?</nowiki></c
1890: 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 44 ode></a></h3>..D
18a0: 65 66 69 6e 65 73 20 74 68 65 20 70 6f 73 69 74 efines the posit
18b0: 69 6f 6e 20 6f 66 20 74 68 65 20 63 61 6e 76 61 ion of the canva
18c0: 73 27 20 6f 72 69 67 69 6e 2e 0a 0a 3c 68 33 3e s' origin...<h3>
18d0: 3c 61 20 69 64 3d 22 63 61 6e 76 61 73 2d 74 72 <a id="canvas-tr
18e0: 61 6e 73 66 6f 72 6d 22 3e 3c 63 6f 64 65 3e 3c ansform"><code><
18f0: 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61 73 2d 74 nowiki>(canvas-t
1900: 72 61 6e 73 66 6f 72 6d 20 5b 63 61 6e 76 61 73 ransform [canvas
1910: 20 63 61 6e 76 61 73 3f 5d 29 20 e2 86 92 20 28 canvas?]) → (
1920: 6f 72 2f 63 20 28 2d 3e 20 72 65 61 6c 3f 20 72 or/c (-> real? r
1930: 65 61 6c 3f 20 28 76 61 6c 75 65 73 20 69 6e 74 eal? (values int
1940: 65 67 65 72 3f 20 69 6e 74 65 67 65 72 3f 29 29 eger? integer?))
1950: 20 23 66 29 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 #f)</nowiki></c
1960: 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 52 ode></a></h3>..R
1970: 65 74 72 69 65 76 65 73 20 74 68 65 20 61 63 74 etrieves the act
1980: 69 76 65 20 63 6f 6f 72 64 69 6e 61 74 65 20 74 ive coordinate t
1990: 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 20 6f 66 ransformation of
19a0: 20 74 68 65 20 67 69 76 65 6e 20 63 61 6e 76 61 the given canva
19b0: 73 2e 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 63 s...<h3><a id="c
19c0: 61 6e 76 61 73 2d 74 72 61 6e 73 66 6f 72 6d 2d anvas-transform-
19d0: 73 65 74 5f 22 3e 3c 63 6f 64 65 3e 0a 09 3c 6e set_"><code>..<n
19e0: 6f 77 69 6b 69 3e 28 63 61 6e 76 61 73 2d 74 72 owiki>(canvas-tr
19f0: 61 6e 73 66 6f 72 6d 2d 73 65 74 21 20 5b 63 61 ansform-set! [ca
1a00: 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 20 5b 70 nvas canvas?] [p
1a10: 72 6f 63 20 28 6f 72 2f 63 20 28 2d 3e 20 72 65 roc (or/c (-> re
1a20: 61 6c 3f 20 72 65 61 6c 3f 20 28 76 61 6c 75 65 al? real? (value
1a30: 73 20 69 6e 74 65 67 65 72 3f 20 69 6e 74 65 67 s integer? integ
1a40: 65 72 3f 29 29 20 23 66 29 5d 29 20 e2 86 92 20 er?)) #f)]) →
1a50: 76 6f 69 64 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c 62 void?</nowiki><b
1a60: 72 3e 0a 09 3c 6e 6f 77 69 6b 69 3e 28 73 65 74 r>..<nowiki>(set
1a70: 21 20 28 63 61 6e 76 61 73 2d 74 72 61 6e 73 66 ! (canvas-transf
1a80: 6f 72 6d 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 orm [canvas canv
1a90: 61 73 3f 5d 29 20 5b 70 72 6f 63 20 28 6f 72 2f as?]) [proc (or/
1aa0: 63 20 28 2d 3e 20 72 65 61 6c 3f 20 72 65 61 6c c (-> real? real
1ab0: 3f 20 28 76 61 6c 75 65 73 20 69 6e 74 65 67 65 ? (values intege
1ac0: 72 3f 20 69 6e 74 65 67 65 72 3f 29 29 20 23 66 r? integer?)) #f
1ad0: 29 5d 29 20 e2 86 92 20 76 6f 69 64 3f 3c 2f 6e )]) → void?</n
1ae0: 6f 77 69 6b 69 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f owiki>.</code></
1af0: 61 3e 3c 2f 68 33 3e 0a 0a 44 65 66 69 6e 65 73 a></h3>..Defines
1b00: 20 74 68 65 20 61 63 74 69 76 65 20 63 6f 6f 72 the active coor
1b10: 64 69 6e 61 74 65 20 74 72 61 6e 73 66 6f 72 6d dinate transform
1b20: 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 67 69 ation for the gi
1b30: 76 65 6e 20 63 61 6e 76 61 73 2e 20 54 68 65 20 ven canvas. The
1b40: 67 69 76 65 6e 0a 70 72 6f 63 65 64 75 72 65 20 given.procedure
1b50: 6d 75 73 74 20 72 65 70 72 65 73 65 6e 74 20 61 must represent a
1b60: 20 6c 69 6e 65 61 72 20 74 72 61 6e 73 66 6f 72 linear transfor
1b70: 6d 61 74 69 6f 6e 2e 0a 0a 3c 68 33 3e 3c 61 20 mation...<h3><a
1b80: 69 64 3d 22 63 61 6e 76 61 73 2d 74 72 61 6e 73 id="canvas-trans
1b90: 66 6f 72 6d 2d 63 6f 6d 70 6f 73 65 5f 22 3e 3c form-compose_"><
1ba0: 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 code><nowiki>(ca
1bb0: 6e 76 61 73 2d 74 72 61 6e 73 66 6f 72 6d 2d 63 nvas-transform-c
1bc0: 6f 6d 70 6f 73 65 21 20 5b 63 61 6e 76 61 73 20 ompose! [canvas
1bd0: 63 61 6e 76 61 73 3f 5d 20 5b 70 72 6f 63 20 28 canvas?] [proc (
1be0: 2d 3e 20 72 65 61 6c 3f 20 72 65 61 6c 3f 20 28 -> real? real? (
1bf0: 76 61 6c 75 65 73 20 69 6e 74 65 67 65 72 3f 20 values integer?
1c00: 69 6e 74 65 67 65 72 3f 29 29 5d 29 20 e2 86 92 integer?))]) →
1c10: 20 76 6f 69 64 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c void?</nowiki><
1c20: 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a /code></a></h3>.
1c30: 0a 4d 6f 64 69 66 69 65 73 20 74 68 65 20 61 63 .Modifies the ac
1c40: 74 69 76 65 20 63 6f 6f 72 64 69 6e 61 74 65 20 tive coordinate
1c50: 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 20 66 transformation f
1c60: 6f 72 20 74 68 65 20 67 69 76 65 6e 20 63 61 6e or the given can
1c70: 76 61 73 20 62 79 0a 6c 65 66 74 2d 6d 75 6c 74 vas by.left-mult
1c80: 69 70 6c 69 63 61 74 69 6f 6e 20 77 69 74 68 20 iplication with
1c90: 74 68 65 20 67 69 76 65 6e 20 74 72 61 6e 73 66 the given transf
1ca0: 6f 72 6d 61 74 69 6f 6e 2e 20 54 68 65 20 67 69 ormation. The gi
1cb0: 76 65 6e 20 70 72 6f 63 65 64 75 72 65 20 6d 75 ven procedure mu
1cc0: 73 74 0a 72 65 70 72 65 73 65 6e 74 20 61 20 6c st.represent a l
1cd0: 69 6e 65 61 72 20 74 72 61 6e 73 66 6f 72 6d 61 inear transforma
1ce0: 74 69 6f 6e 2e 0a 0a 3c 68 33 3e 3c 61 20 69 64 tion...<h3><a id
1cf0: 3d 22 63 61 6e 76 61 73 2d 74 72 61 6e 73 66 6f ="canvas-transfo
1d00: 72 6d 2d 74 72 61 6e 73 6c 61 74 65 5f 22 3e 3c rm-translate_"><
1d10: 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 code><nowiki>(ca
1d20: 6e 76 61 73 2d 74 72 61 6e 73 66 6f 72 6d 2d 74 nvas-transform-t
1d30: 72 61 6e 73 6c 61 74 65 21 20 5b 63 61 6e 76 61 ranslate! [canva
1d40: 73 20 63 61 6e 76 61 73 3f 5d 20 5b 64 78 20 72 s canvas?] [dx r
1d50: 65 61 6c 3f 5d 20 5b 64 79 20 72 65 61 6c 3f 5d eal?] [dy real?]
1d60: 29 20 e2 86 92 20 76 6f 69 64 3f 3c 2f 6e 6f 77 ) → void?</now
1d70: 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c iki></code></a><
1d80: 2f 68 33 3e 0a 0a 4d 6f 64 69 66 69 65 73 20 74 /h3>..Modifies t
1d90: 68 65 20 61 63 74 69 76 65 20 63 6f 6f 72 64 69 he active coordi
1da0: 6e 61 74 65 20 74 72 61 6e 73 66 6f 72 6d 61 74 nate transformat
1db0: 69 6f 6e 20 66 6f 72 20 74 68 65 20 67 69 76 65 ion for the give
1dc0: 6e 20 63 61 6e 76 61 73 20 61 70 70 6c 79 69 6e n canvas applyin
1dd0: 67 0a 61 20 74 72 61 6e 73 6c 61 74 69 6f 6e 2e g.a translation.
1de0: 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e ..<h3><a id="can
1df0: 76 61 73 2d 74 72 61 6e 73 66 6f 72 6d 2d 73 63 vas-transform-sc
1e00: 61 6c 65 21 22 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 ale!"><code><now
1e10: 69 6b 69 3e 28 63 61 6e 76 61 73 2d 74 72 61 6e iki>(canvas-tran
1e20: 73 66 6f 72 6d 2d 73 63 61 6c 65 21 20 5b 63 61 sform-scale! [ca
1e30: 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 20 5b 73 nvas canvas?] [s
1e40: 78 20 72 65 61 6c 3f 5d 20 5b 73 79 20 72 65 61 x real?] [sy rea
1e50: 6c 3f 5d 29 20 e2 86 92 20 76 6f 69 64 3f 3c 2f l?]) → void?</
1e60: 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f nowiki></code></
1e70: 61 3e 3c 2f 68 33 3e 0a 0a 4d 6f 64 69 66 69 65 a></h3>..Modifie
1e80: 73 20 74 68 65 20 61 63 74 69 76 65 20 63 6f 6f s the active coo
1e90: 72 64 69 6e 61 74 65 20 74 72 61 6e 73 66 6f 72 rdinate transfor
1ea0: 6d 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 67 mation for the g
1eb0: 69 76 65 6e 20 63 61 6e 76 61 73 20 61 70 70 6c iven canvas appl
1ec0: 79 69 6e 67 0a 61 20 73 63 61 6c 69 6e 67 2e 0a ying.a scaling..
1ed0: 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 .<h3><a id="canv
1ee0: 61 73 2d 74 72 61 6e 73 66 6f 72 6d 2d 72 6f 74 as-transform-rot
1ef0: 61 74 65 21 22 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 ate!"><code><now
1f00: 69 6b 69 3e 28 63 61 6e 76 61 73 2d 74 72 61 6e iki>(canvas-tran
1f10: 73 66 6f 72 6d 2d 72 6f 74 61 74 65 21 20 5b 63 sform-rotate! [c
1f20: 61 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 20 5b anvas canvas?] [
1f30: 61 6c 70 68 61 20 72 65 61 6c 3f 5d 29 20 e2 86 alpha real?]) â†
1f40: 92 20 76 6f 69 64 3f 3c 2f 6e 6f 77 69 6b 69 3e ’ void?</nowiki>
1f50: 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e </code></a></h3>
1f60: 0a 0a 4d 6f 64 69 66 69 65 73 20 74 68 65 20 61 ..Modifies the a
1f70: 63 74 69 76 65 20 63 6f 6f 72 64 69 6e 61 74 65 ctive coordinate
1f80: 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 20 transformation
1f90: 66 6f 72 20 74 68 65 20 67 69 76 65 6e 20 63 61 for the given ca
1fa0: 6e 76 61 73 20 61 70 70 6c 79 69 6e 67 0a 61 20 nvas applying.a
1fb0: 72 6f 74 61 74 69 6f 6e 20 61 72 6f 75 6e 64 20 rotation around
1fc0: 74 68 65 20 6f 72 69 67 69 6e 2e 0a 0a 3c 68 32 the origin...<h2
1fd0: 3e 47 65 6e 65 72 61 6c 20 41 74 74 72 69 62 75 >General Attribu
1fe0: 74 65 73 3c 2f 68 32 3e 0a 0a 3c 68 33 3e 3c 61 tes</h2>..<h3><a
1ff0: 20 69 64 3d 22 63 61 6e 76 61 73 2d 66 6f 72 65 id="canvas-fore
2000: 67 72 6f 75 6e 64 22 3e 3c 63 6f 64 65 3e 3c 6e ground"><code><n
2010: 6f 77 69 6b 69 3e 28 63 61 6e 76 61 73 2d 66 6f owiki>(canvas-fo
2020: 72 65 67 72 6f 75 6e 64 20 5b 63 61 6e 76 61 73 reground [canvas
2030: 20 63 61 6e 76 61 73 3f 5d 29 20 e2 86 92 20 69 canvas?]) → i
2040: 6e 74 65 67 65 72 3f 3c 2f 6e 6f 77 69 6b 69 3e nteger?</nowiki>
2050: 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e </code></a></h3>
2060: 0a 0a 52 65 74 72 69 65 76 65 73 20 74 68 65 20 ..Retrieves the
2070: 66 6f 72 65 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 foreground color
2080: 20 6f 66 20 74 68 65 20 67 69 76 65 6e 20 63 61 of the given ca
2090: 6e 76 61 73 2e 0a 0a 3c 68 33 3e 3c 61 20 69 64 nvas...<h3><a id
20a0: 3d 22 63 61 6e 76 61 73 2d 66 6f 72 65 67 72 6f ="canvas-foregro
20b0: 75 6e 64 2d 73 65 74 5f 22 3e 3c 63 6f 64 65 3e und-set_"><code>
20c0: 0a 09 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61 ..<nowiki>(canva
20d0: 73 2d 66 6f 72 65 67 72 6f 75 6e 64 2d 73 65 74 s-foreground-set
20e0: 21 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 61 73 ! [canvas canvas
20f0: 3f 5d 20 5b 63 6f 6c 6f 72 20 69 6e 74 65 67 65 ?] [color intege
2100: 72 3f 5d 29 20 e2 86 92 20 76 6f 69 64 3f 3c 2f r?]) → void?</
2110: 6e 6f 77 69 6b 69 3e 3c 62 72 3e 0a 09 3c 6e 6f nowiki><br>..<no
2120: 77 69 6b 69 3e 28 73 65 74 21 20 28 63 61 6e 76 wiki>(set! (canv
2130: 61 73 2d 66 6f 72 65 67 72 6f 75 6e 64 20 5b 63 as-foreground [c
2140: 61 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 29 20 anvas canvas?])
2150: 5b 63 6f 6c 6f 72 20 69 6e 74 65 67 65 72 3f 5d [color integer?]
2160: 29 20 e2 86 92 20 76 6f 69 64 3f 3c 2f 6e 6f 77 ) → void?</now
2170: 69 6b 69 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 61 3e iki>.</code></a>
2180: 3c 2f 68 33 3e 0a 0a 53 65 74 73 20 74 68 65 20 </h3>..Sets the
2190: 66 6f 72 65 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 foreground color
21a0: 20 6f 66 20 74 68 65 20 67 69 76 65 6e 20 63 61 of the given ca
21b0: 6e 76 61 73 2e 0a 0a 3c 68 33 3e 3c 61 20 69 64 nvas...<h3><a id
21c0: 3d 22 63 61 6e 76 61 73 2d 62 61 63 6b 67 72 6f ="canvas-backgro
21d0: 75 6e 64 22 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 69 und"><code><nowi
21e0: 6b 69 3e 28 63 61 6e 76 61 73 2d 62 61 63 6b 67 ki>(canvas-backg
21f0: 72 6f 75 6e 64 20 5b 63 61 6e 76 61 73 20 63 61 round [canvas ca
2200: 6e 76 61 73 3f 5d 29 20 e2 86 92 20 69 6e 74 65 nvas?]) → inte
2210: 67 65 72 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 ger?</nowiki></c
2220: 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 52 ode></a></h3>..R
2230: 65 74 72 69 65 76 65 73 20 74 68 65 20 62 61 63 etrieves the bac
2240: 6b 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 20 6f 66 kground color of
2250: 20 74 68 65 20 67 69 76 65 6e 20 63 61 6e 76 61 the given canva
2260: 73 2e 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 63 s...<h3><a id="c
2270: 61 6e 76 61 73 2d 62 61 63 6b 67 72 6f 75 6e 64 anvas-background
2280: 2d 73 65 74 5f 22 3e 3c 63 6f 64 65 3e 0a 09 3c -set_"><code>..<
2290: 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61 73 2d 62 nowiki>(canvas-b
22a0: 61 63 6b 67 72 6f 75 6e 64 2d 73 65 74 21 20 5b ackground-set! [
22b0: 63 61 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 20 canvas canvas?]
22c0: 5b 63 6f 6c 6f 72 20 69 6e 74 65 67 65 72 3f 5d [color integer?]
22d0: 29 20 e2 86 92 20 76 6f 69 64 3f 3c 2f 6e 6f 77 ) → void?</now
22e0: 69 6b 69 3e 3c 62 72 3e 0a 09 3c 6e 6f 77 69 6b iki><br>..<nowik
22f0: 69 3e 28 73 65 74 21 20 28 63 61 6e 76 61 73 2d i>(set! (canvas-
2300: 62 61 63 6b 67 72 6f 75 6e 64 20 5b 63 61 6e 76 background [canv
2310: 61 73 20 63 61 6e 76 61 73 3f 5d 29 20 5b 63 6f as canvas?]) [co
2320: 6c 6f 72 20 69 6e 74 65 67 65 72 3f 5d 29 20 e2 lor integer?]) â
2330: 86 92 20 76 6f 69 64 3f 3c 2f 6e 6f 77 69 6b 69 †’ void?</nowiki
2340: 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 >.</code></a></h
2350: 33 3e 0a 0a 53 65 74 73 20 74 68 65 20 62 61 63 3>..Sets the bac
2360: 6b 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 20 6f 66 kground color of
2370: 20 74 68 65 20 67 69 76 65 6e 20 63 61 6e 76 61 the given canva
2380: 73 2e 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 63 s...<h3><a id="c
2390: 61 6e 76 61 73 2d 77 72 69 74 65 2d 6d 6f 64 65 anvas-write-mode
23a0: 22 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e "><code><nowiki>
23b0: 28 63 61 6e 76 61 73 2d 77 72 69 74 65 2d 6d 6f (canvas-write-mo
23c0: 64 65 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 61 de [canvas canva
23d0: 73 3f 5d 29 20 e2 86 92 20 73 79 6d 62 6f 6c 3f s?]) → symbol?
23e0: 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e </nowiki></code>
23f0: 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 52 65 74 72 69 </a></h3>..Retri
2400: 65 76 65 73 20 74 68 65 20 77 72 69 74 65 20 6d eves the write m
2410: 6f 64 65 20 6f 66 20 74 68 65 20 67 69 76 65 6e ode of the given
2420: 20 63 61 6e 76 61 73 2e 0a 0a 54 68 65 20 6d 6f canvas...The mo
2430: 64 65 20 6d 61 79 20 62 65 20 6f 6e 65 20 6f 66 de may be one of
2440: 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 the following s
2450: 79 6d 62 6f 6c 73 3a 0a 20 20 2a 20 20 3c 63 6f ymbols:. * <co
2460: 64 65 3e 27 72 65 70 6c 61 63 65 3c 2f 63 6f 64 de>'replace</cod
2470: 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27 78 e>. * <code>'x
2480: 6f 72 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c or</code>. * <
2490: 63 6f 64 65 3e 27 6e 6f 74 2d 78 6f 72 3c 2f 63 code>'not-xor</c
24a0: 6f 64 65 3e 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d ode>..<h3><a id=
24b0: 22 63 61 6e 76 61 73 2d 77 72 69 74 65 2d 6d 6f "canvas-write-mo
24c0: 64 65 2d 73 65 74 5f 22 3e 3c 63 6f 64 65 3e 0a de-set_"><code>.
24d0: 09 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61 73 .<nowiki>(canvas
24e0: 2d 77 72 69 74 65 2d 6d 6f 64 65 2d 73 65 74 21 -write-mode-set!
24f0: 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 61 73 3f [canvas canvas?
2500: 5d 20 5b 6d 6f 64 65 20 73 79 6d 62 6f 6c 3f 5d ] [mode symbol?]
2510: 29 20 e2 86 92 20 76 6f 69 64 3f 3c 2f 6e 6f 77 ) → void?</now
2520: 69 6b 69 3e 3c 62 72 3e 0a 09 3c 6e 6f 77 69 6b iki><br>..<nowik
2530: 69 3e 28 73 65 74 21 20 28 63 61 6e 76 61 73 2d i>(set! (canvas-
2540: 77 72 69 74 65 2d 6d 6f 64 65 20 5b 63 61 6e 76 write-mode [canv
2550: 61 73 20 63 61 6e 76 61 73 3f 5d 29 20 5b 6d 6f as canvas?]) [mo
2560: 64 65 20 73 79 6d 62 6f 6c 3f 5d 29 20 e2 86 92 de symbol?]) →
2570: 20 76 6f 69 64 3f 3c 2f 6e 6f 77 69 6b 69 3e 0a void?</nowiki>.
2580: 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e </code></a></h3>
2590: 0a 0a 53 65 74 73 20 74 68 65 20 77 72 69 74 65 ..Sets the write
25a0: 20 6d 6f 64 65 20 6f 66 20 74 68 65 20 67 69 76 mode of the giv
25b0: 65 6e 20 63 61 6e 76 61 73 2e 0a 0a 3c 68 32 3e en canvas...<h2>
25c0: 43 6c 69 70 70 69 6e 67 3c 2f 68 32 3e 0a 0a 3c Clipping</h2>..<
25d0: 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73 h3><a id="canvas
25e0: 2d 63 6c 69 70 2d 6d 6f 64 65 22 3e 3c 63 6f 64 -clip-mode"><cod
25f0: 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61 e><nowiki>(canva
2600: 73 2d 63 6c 69 70 2d 6d 6f 64 65 20 5b 63 61 6e s-clip-mode [can
2610: 76 61 73 20 63 61 6e 76 61 73 3f 5d 29 20 e2 86 vas canvas?]) â†
2620: 92 20 28 6f 72 2f 63 20 73 79 6d 62 6f 6c 3f 20 ’ (or/c symbol?
2630: 23 66 29 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f #f)</nowiki></co
2640: 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 52 65 de></a></h3>..Re
2650: 74 72 69 65 76 65 73 20 74 68 65 20 63 6c 69 70 trieves the clip
2660: 70 69 6e 67 20 6d 6f 64 65 20 6f 66 20 74 68 65 ping mode of the
2670: 20 67 69 76 65 6e 20 63 61 6e 76 61 73 2e 0a 0a given canvas...
2680: 54 68 65 20 6d 6f 64 65 20 6d 61 79 20 62 65 20 The mode may be
2690: 6f 6e 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f one of the follo
26a0: 77 69 6e 67 20 76 61 6c 75 65 73 3a 0a 20 20 2a wing values:. *
26b0: 20 20 3c 63 6f 64 65 3e 27 61 72 65 61 3c 2f 63 <code>'area</c
26c0: 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e ode>. * <code>
26d0: 27 70 6f 6c 79 67 6f 6e 3c 2f 63 6f 64 65 3e 0a 'polygon</code>.
26e0: 20 20 2a 20 20 3c 63 6f 64 65 3e 27 72 65 67 69 * <code>'regi
26f0: 6f 6e 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c on</code>. * <
2700: 63 6f 64 65 3e 23 66 3c 2f 63 6f 64 65 3e 0a 0a code>#f</code>..
2710: 49 6e 20 66 61 63 74 2c 20 3c 63 6f 64 65 3e 23 In fact, <code>#
2720: 74 3c 2f 63 6f 64 65 3e 20 69 73 20 6e 65 76 65 t</code> is neve
2730: 72 20 72 65 74 75 72 6e 65 64 20 62 75 74 20 6d r returned but m
2740: 61 79 20 62 65 20 75 73 65 64 20 77 68 65 6e 20 ay be used when
2750: 73 65 74 74 69 6e 67 20 74 68 65 0a 63 6c 69 70 setting the.clip
2760: 70 69 6e 67 20 6d 6f 64 65 2e 0a 0a 3c 68 33 3e ping mode...<h3>
2770: 3c 61 20 69 64 3d 22 63 61 6e 76 61 73 2d 63 6c <a id="canvas-cl
2780: 69 70 2d 6d 6f 64 65 2d 73 65 74 5f 22 3e 3c 63 ip-mode-set_"><c
2790: 6f 64 65 3e 0a 09 3c 6e 6f 77 69 6b 69 3e 28 63 ode>..<nowiki>(c
27a0: 61 6e 76 61 73 2d 63 6c 69 70 2d 6d 6f 64 65 2d anvas-clip-mode-
27b0: 73 65 74 21 20 5b 63 61 6e 76 61 73 20 63 61 6e set! [canvas can
27c0: 76 61 73 3f 5d 20 5b 6d 6f 64 65 20 28 6f 72 2f vas?] [mode (or/
27d0: 63 20 73 79 6d 62 6f 6c 3f 20 23 66 29 5d 29 20 c symbol? #f)])
27e0: e2 86 92 20 76 6f 69 64 3f 3c 2f 6e 6f 77 69 6b → void?</nowik
27f0: 69 3e 3c 62 72 3e 0a 09 3c 6e 6f 77 69 6b 69 3e i><br>..<nowiki>
2800: 28 73 65 74 21 20 28 63 61 6e 76 61 73 2d 63 6c (set! (canvas-cl
2810: 69 70 2d 6d 6f 64 65 20 5b 63 61 6e 76 61 73 20 ip-mode [canvas
2820: 63 61 6e 76 61 73 3f 5d 29 20 5b 6d 6f 64 65 20 canvas?]) [mode
2830: 28 6f 72 2f 63 20 73 79 6d 62 6f 6c 3f 20 23 66 (or/c symbol? #f
2840: 29 5d 29 20 e2 86 92 20 76 6f 69 64 3f 3c 2f 6e )]) → void?</n
2850: 6f 77 69 6b 69 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f owiki>.</code></
2860: 61 3e 3c 2f 68 33 3e 0a 0a 53 65 74 73 20 74 68 a></h3>..Sets th
2870: 65 20 63 6c 69 70 70 69 6e 67 20 6d 6f 64 65 20 e clipping mode
2880: 6f 66 20 74 68 65 20 67 69 76 65 6e 20 63 61 6e of the given can
2890: 76 61 73 2e 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d vas...<h3><a id=
28a0: 22 63 61 6e 76 61 73 2d 63 6c 69 70 2d 61 72 65 "canvas-clip-are
28b0: 61 22 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69 a"><code><nowiki
28c0: 3e 28 63 61 6e 76 61 73 2d 63 6c 69 70 2d 61 72 >(canvas-clip-ar
28d0: 65 61 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 61 ea [canvas canva
28e0: 73 3f 5d 29 20 e2 86 92 20 28 76 61 6c 75 65 73 s?]) → (values
28f0: 20 72 65 61 6c 3f 20 72 65 61 6c 3f 20 72 65 61 real? real? rea
2900: 6c 3f 20 72 65 61 6c 3f 29 3c 2f 6e 6f 77 69 6b l? real?)</nowik
2910: 69 3e 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 i></code></a></h
2920: 33 3e 0a 0a 52 65 74 72 69 65 76 65 73 20 74 68 3>..Retrieves th
2930: 65 20 63 75 72 72 65 6e 74 20 72 65 63 74 61 6e e current rectan
2940: 67 75 6c 61 72 20 63 6c 69 70 70 69 6e 67 20 61 gular clipping a
2950: 72 65 61 20 6f 66 20 74 68 65 20 67 69 76 65 6e rea of the given
2960: 20 63 61 6e 76 61 73 2e 0a 0a 3c 68 33 3e 3c 61 canvas...<h3><a
2970: 20 69 64 3d 22 63 61 6e 76 61 73 2d 63 6c 69 70 id="canvas-clip
2980: 2d 61 72 65 61 2d 73 65 74 5f 22 3e 3c 63 6f 64 -area-set_"><cod
2990: 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61 e><nowiki>(canva
29a0: 73 2d 63 6c 69 70 2d 61 72 65 61 2d 73 65 74 21 s-clip-area-set!
29b0: 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 61 73 3f [canvas canvas?
29c0: 5d 20 5b 78 30 20 64 6f 75 62 6c 65 3f 5d 20 5b ] [x0 double?] [
29d0: 78 31 20 64 6f 75 62 6c 65 3f 5d 20 5b 79 30 20 x1 double?] [y0
29e0: 64 6f 75 62 6c 65 3f 5d 20 5b 79 31 20 64 6f 75 double?] [y1 dou
29f0: 62 6c 65 3f 5d 29 20 e2 86 92 20 76 6f 69 64 3f ble?]) → void?
2a00: 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e </nowiki></code>
2a10: 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 53 65 74 73 20 </a></h3>..Sets
2a20: 74 68 65 20 63 75 72 72 65 6e 74 20 72 65 63 74 the current rect
2a30: 61 6e 67 75 6c 61 72 20 63 6c 69 70 70 69 6e 67 angular clipping
2a40: 20 61 72 65 61 20 6f 66 20 74 68 65 20 67 69 76 area of the giv
2a50: 65 6e 20 63 61 6e 76 61 73 2e 0a 0a 3c 68 32 3e en canvas...<h2>
2a60: 52 61 63 6b 65 74 20 53 70 65 63 69 66 69 63 73 Racket Specifics
2a70: 3c 2f 68 32 3e 0a 0a 3c 68 33 3e 3c 61 20 69 64 </h2>..<h3><a id
2a80: 3d 22 5f 63 61 6e 76 61 73 22 3e 3c 63 6f 64 65 ="_canvas"><code
2a90: 3e 0a 09 3c 6e 6f 77 69 6b 69 3e 5b 5f 63 61 6e >..<nowiki>[_can
2aa0: 76 61 73 20 63 74 79 70 65 3f 5d 3c 2f 6e 6f 77 vas ctype?]</now
2ab0: 69 6b 69 3e 3c 62 72 3e 0a 09 3c 6e 6f 77 69 6b iki><br>..<nowik
2ac0: 69 3e 5b 5f 63 61 6e 76 61 73 2f 6e 75 6c 6c 20 i>[_canvas/null
2ad0: 63 74 79 70 65 3f 5d 3c 2f 6e 6f 77 69 6b 69 3e ctype?]</nowiki>
2ae0: 3c 62 72 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 61 3e <br>.</code></a>
2af0: 3c 2f 68 33 3e 0a 0a 46 6f 72 65 69 67 6e 20 74 </h3>..Foreign t
2b00: 79 70 65 20 6f 66 20 43 44 20 63 61 6e 76 61 73 ype of CD canvas
2b10: 73 65 73 2c 20 77 68 69 63 68 20 6d 61 79 20 6f ses, which may o
2b20: 70 74 69 6f 6e 61 6c 6c 79 20 62 65 20 3c 63 6f ptionally be <co
2b30: 64 65 3e 4e 55 4c 4c 3c 2f 63 6f 64 65 3e 2e 0a de>NULL</code>..
2b40: 0a 4e 6f 74 20 72 65 2d 65 78 70 6f 72 74 65 64 .Not re-exported
2b50: 20 66 72 6f 6d 20 74 68 65 20 3c 74 74 3e 5b 2e from the <tt>[.
2b60: 2f 6d 61 69 6e 2e 77 69 6b 69 7c 6d 61 69 6e 5d /main.wiki|main]
2b70: 3c 2f 74 74 3e 20 6d 6f 64 75 6c 65 2e 0a 0a 3c </tt> module...<
2b80: 68 33 3e 3c 61 20 69 64 3d 22 5f 63 6f 6e 74 65 h3><a id="_conte
2b90: 78 74 22 3e 3c 63 6f 64 65 3e 0a 09 3c 6e 6f 77 xt"><code>..<now
2ba0: 69 6b 69 3e 5b 5f 63 6f 6e 74 65 78 74 20 63 74 iki>[_context ct
2bb0: 79 70 65 3f 5d 3c 2f 6e 6f 77 69 6b 69 3e 3c 62 ype?]</nowiki><b
2bc0: 72 3e 0a 09 3c 6e 6f 77 69 6b 69 3e 5b 5f 63 6f r>..<nowiki>[_co
2bd0: 6e 74 65 78 74 2f 6e 75 6c 6c 20 63 74 79 70 65 ntext/null ctype
2be0: 3f 5d 3c 2f 6e 6f 77 69 6b 69 3e 3c 62 72 3e 0a ?]</nowiki><br>.
2bf0: 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e </code></a></h3>
2c00: 0a 0a 46 6f 72 65 69 67 6e 20 74 79 70 65 20 6f ..Foreign type o
2c10: 66 20 43 44 20 63 6f 6e 74 65 78 74 73 2c 20 77 f CD contexts, w
2c20: 68 69 63 68 20 6d 61 79 20 6f 70 74 69 6f 6e 61 hich may optiona
2c30: 6c 6c 79 20 62 65 20 3c 63 6f 64 65 3e 4e 55 4c lly be <code>NUL
2c40: 4c 3c 2f 63 6f 64 65 3e 2e 0a 0a 4e 6f 74 20 72 L</code>...Not r
2c50: 65 2d 65 78 70 6f 72 74 65 64 20 66 72 6f 6d 20 e-exported from
2c60: 74 68 65 20 3c 74 74 3e 5b 2e 2f 6d 61 69 6e 2e the <tt>[./main.
2c70: 77 69 6b 69 7c 6d 61 69 6e 5d 3c 2f 74 74 3e 20 wiki|main]</tt>
2c80: 6d 6f 64 75 6c 65 2e 0a 0a 3c 68 33 3e 3c 61 20 module...<h3><a
2c90: 69 64 3d 22 5f 73 74 61 74 65 22 3e 3c 63 6f 64 id="_state"><cod
2ca0: 65 3e 0a 09 3c 6e 6f 77 69 6b 69 3e 5b 5f 73 74 e>..<nowiki>[_st
2cb0: 61 74 65 20 63 74 79 70 65 3f 5d 3c 2f 6e 6f 77 ate ctype?]</now
2cc0: 69 6b 69 3e 3c 62 72 3e 0a 09 3c 6e 6f 77 69 6b iki><br>..<nowik
2cd0: 69 3e 5b 5f 73 74 61 74 65 2f 6e 75 6c 6c 20 63 i>[_state/null c
2ce0: 74 79 70 65 3f 5d 3c 2f 6e 6f 77 69 6b 69 3e 3c type?]</nowiki><
2cf0: 62 72 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c br>.</code></a><
2d00: 2f 68 33 3e 0a 0a 46 6f 72 65 69 67 6e 20 74 79 /h3>..Foreign ty
2d10: 70 65 20 6f 66 20 43 44 20 73 74 61 74 65 73 2c pe of CD states,
2d20: 20 77 68 69 63 68 20 6d 61 79 20 6f 70 74 69 6f which may optio
2d30: 6e 61 6c 6c 79 20 62 65 20 3c 63 6f 64 65 3e 4e nally be <code>N
2d40: 55 4c 4c 3c 2f 63 6f 64 65 3e 2e 0a 0a 4e 6f 74 ULL</code>...Not
2d50: 20 72 65 2d 65 78 70 6f 72 74 65 64 20 66 72 6f re-exported fro
2d60: 6d 20 74 68 65 20 3c 74 74 3e 5b 2e 2f 6d 61 69 m the <tt>[./mai
2d70: 6e 2e 77 69 6b 69 7c 6d 61 69 6e 5d 3c 2f 74 74 n.wiki|main]</tt
2d80: 3e 20 6d 6f 64 75 6c 65 2e 0a 0a 3c 68 32 3e 43 > module...<h2>C
2d90: 48 49 43 4b 45 4e 20 53 70 65 63 69 66 69 63 73 HICKEN Specifics
2da0: 3c 2f 68 32 3e 0a 0a 54 68 65 20 3c 74 74 3e 62 </h2>..The <tt>b
2db0: 61 73 65 3c 2f 74 74 3e 20 6d 6f 64 75 6c 65 20 ase</tt> module
2dc0: 6f 6e 6c 79 20 65 78 70 6f 72 74 73 20 63 68 65 only exports che
2dd0: 63 6b 69 6e 67 20 74 79 70 65 20 63 6f 6e 76 65 cking type conve
2de0: 72 73 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 0a rsion functions.
2df0: 69 6e 73 74 65 61 64 20 6f 66 20 66 6f 72 65 69 instead of forei
2e00: 67 6e 20 74 79 70 65 73 20 73 69 6e 63 65 20 74 gn types since t
2e10: 68 65 20 6c 61 74 74 65 72 20 63 61 6e 6e 6f 74 he latter cannot
2e20: 20 62 65 20 65 78 70 6f 72 74 65 64 2e 20 54 6f be exported. To
2e30: 20 64 65 66 69 6e 65 0a 74 68 65 20 74 79 70 65 define.the type
2e40: 73 20 3c 63 6f 64 65 3e 63 61 6e 76 61 73 3c 2f s <code>canvas</
2e50: 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 6e 6f 6e code>, <code>non
2e60: 6e 75 6c 6c 2d 63 61 6e 76 61 73 3c 2f 63 6f 64 null-canvas</cod
2e70: 65 3e 2c 0a 3c 63 6f 64 65 3e 63 6f 6e 74 65 78 e>,.<code>contex
2e80: 74 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e t</code>, <code>
2e90: 6e 6f 6e 6e 75 6c 6c 2d 63 6f 6e 74 65 78 74 3c nonnull-context<
2ea0: 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 73 74 /code>, <code>st
2eb0: 61 74 65 3c 2f 63 6f 64 65 3e 20 61 6e 64 0a 3c ate</code> and.<
2ec0: 63 6f 64 65 3e 6e 6f 6e 6e 75 6c 6c 2d 73 74 61 code>nonnull-sta
2ed0: 74 65 3c 2f 63 6f 64 65 3e 20 69 6e 20 79 6f 75 te</code> in you
2ee0: 72 20 6f 77 6e 20 6d 6f 64 75 6c 65 2c 20 69 6e r own module, in
2ef0: 63 6c 75 64 65 20 74 68 65 20 66 69 6c 65 0a 3c clude the file.<
2f00: 74 74 3e 22 63 61 6e 76 61 73 2d 64 72 61 77 2d tt>"canvas-draw-
2f10: 74 79 70 65 73 2e 73 63 6d 22 3c 2f 74 74 3e 2e types.scm"</tt>.
2f20: 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e ..<h3><a id="can
2f30: 76 61 73 2d 5f 70 6f 69 6e 74 65 72 22 3e 3c 63 vas-_pointer"><c
2f40: 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28 28 63 61 ode><nowiki>((ca
2f50: 6e 76 61 73 2d 3e 70 6f 69 6e 74 65 72 20 5b 6e nvas->pointer [n
2f60: 6f 6e 6e 75 6c 6c 3f 20 61 6e 79 2f 63 5d 29 20 onnull? any/c])
2f70: 5b 63 61 6e 76 61 73 20 28 6f 72 2f 63 20 63 61 [canvas (or/c ca
2f80: 6e 76 61 73 3f 20 23 66 29 5d 29 20 e2 86 92 20 nvas? #f)]) →
2f90: 28 6f 72 2f 63 20 70 6f 69 6e 74 65 72 3f 20 23 (or/c pointer? #
2fa0: 66 29 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64 f)</nowiki></cod
2fb0: 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 43 68 65 e></a></h3>..Che
2fc0: 63 6b 69 6e 67 20 63 6f 6e 76 65 72 73 69 6f 6e cking conversion
2fd0: 20 66 72 6f 6d 20 63 61 6e 76 61 73 73 65 73 20 from canvasses
2fe0: 74 6f 20 70 6f 69 6e 74 65 72 73 2e 0a 0a 4e 6f to pointers...No
2ff0: 74 20 72 65 2d 65 78 70 6f 72 74 65 64 20 66 72 t re-exported fr
3000: 6f 6d 20 74 68 65 20 3c 74 74 3e 5b 2e 2f 6d 61 om the <tt>[./ma
3010: 69 6e 2e 77 69 6b 69 7c 6d 61 69 6e 5d 3c 2f 74 in.wiki|main]</t
3020: 74 3e 20 6d 6f 64 75 6c 65 2e 0a 0a 3c 68 33 3e t> module...<h3>
3030: 3c 61 20 69 64 3d 22 70 6f 69 6e 74 65 72 2d 5f <a id="pointer-_
3040: 63 61 6e 76 61 73 22 3e 3c 63 6f 64 65 3e 3c 6e canvas"><code><n
3050: 6f 77 69 6b 69 3e 28 28 70 6f 69 6e 74 65 72 2d owiki>((pointer-
3060: 3e 63 61 6e 76 61 73 20 5b 6e 6f 6e 6e 75 6c 6c >canvas [nonnull
3070: 3f 20 61 6e 79 2f 63 5d 29 20 5b 63 61 6e 76 61 ? any/c]) [canva
3080: 73 20 28 6f 72 2f 63 20 70 6f 69 6e 74 65 72 3f s (or/c pointer?
3090: 20 23 66 29 5d 29 20 e2 86 92 20 28 6f 72 2f 63 #f)]) → (or/c
30a0: 20 63 61 6e 76 61 73 3f 20 23 66 29 3c 2f 6e 6f canvas? #f)</no
30b0: 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f 61 3e wiki></code></a>
30c0: 3c 2f 68 33 3e 0a 0a 43 68 65 63 6b 69 6e 67 20 </h3>..Checking
30d0: 63 6f 6e 76 65 72 73 69 6f 6e 20 66 72 6f 6d 20 conversion from
30e0: 70 6f 69 6e 74 65 72 73 20 74 6f 20 63 61 6e 76 pointers to canv
30f0: 61 73 73 65 73 2e 0a 0a 4e 6f 74 20 72 65 2d 65 asses...Not re-e
3100: 78 70 6f 72 74 65 64 20 66 72 6f 6d 20 74 68 65 xported from the
3110: 20 3c 74 74 3e 5b 2e 2f 6d 61 69 6e 2e 77 69 6b <tt>[./main.wik
3120: 69 7c 6d 61 69 6e 5d 3c 2f 74 74 3e 20 6d 6f 64 i|main]</tt> mod
3130: 75 6c 65 2e 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d ule...<h3><a id=
3140: 22 63 6f 6e 74 65 78 74 2d 5f 70 6f 69 6e 74 65 "context-_pointe
3150: 72 22 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69 r"><code><nowiki
3160: 3e 28 28 63 6f 6e 74 65 78 74 2d 3e 70 6f 69 6e >((context->poin
3170: 74 65 72 20 5b 6e 6f 6e 6e 75 6c 6c 3f 20 61 6e ter [nonnull? an
3180: 79 2f 63 5d 29 20 5b 63 6f 6e 74 65 78 74 20 28 y/c]) [context (
3190: 6f 72 2f 63 20 63 6f 6e 74 65 78 74 3f 20 23 66 or/c context? #f
31a0: 29 5d 29 20 e2 86 92 20 28 6f 72 2f 63 20 70 6f )]) → (or/c po
31b0: 69 6e 74 65 72 3f 20 23 66 29 3c 2f 6e 6f 77 69 inter? #f)</nowi
31c0: 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f ki></code></a></
31d0: 68 33 3e 0a 0a 43 68 65 63 6b 69 6e 67 20 63 6f h3>..Checking co
31e0: 6e 76 65 72 73 69 6f 6e 20 66 72 6f 6d 20 63 6f nversion from co
31f0: 6e 74 65 78 74 73 20 74 6f 20 70 6f 69 6e 74 65 ntexts to pointe
3200: 72 73 2e 0a 0a 4e 6f 74 20 72 65 2d 65 78 70 6f rs...Not re-expo
3210: 72 74 65 64 20 66 72 6f 6d 20 74 68 65 20 3c 74 rted from the <t
3220: 74 3e 5b 2e 2f 6d 61 69 6e 2e 77 69 6b 69 7c 6d t>[./main.wiki|m
3230: 61 69 6e 5d 3c 2f 74 74 3e 20 6d 6f 64 75 6c 65 ain]</tt> module
3240: 2e 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 70 6f ...<h3><a id="po
3250: 69 6e 74 65 72 2d 5f 63 6f 6e 74 65 78 74 22 3e inter-_context">
3260: 3c 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28 28 <code><nowiki>((
3270: 70 6f 69 6e 74 65 72 2d 3e 63 6f 6e 74 65 78 74 pointer->context
3280: 20 5b 6e 6f 6e 6e 75 6c 6c 3f 20 61 6e 79 2f 63 [nonnull? any/c
3290: 5d 29 20 5b 63 6f 6e 74 65 78 74 20 28 6f 72 2f ]) [context (or/
32a0: 63 20 70 6f 69 6e 74 65 72 3f 20 23 66 29 5d 29 c pointer? #f)])
32b0: 20 e2 86 92 20 28 6f 72 2f 63 20 63 6f 6e 74 65 → (or/c conte
32c0: 78 74 3f 20 23 66 29 3c 2f 6e 6f 77 69 6b 69 3e xt? #f)</nowiki>
32d0: 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e </code></a></h3>
32e0: 0a 0a 43 68 65 63 6b 69 6e 67 20 63 6f 6e 76 65 ..Checking conve
32f0: 72 73 69 6f 6e 20 66 72 6f 6d 20 70 6f 69 6e 74 rsion from point
3300: 65 72 73 20 74 6f 20 63 6f 6e 74 65 78 74 73 2e ers to contexts.
3310: 0a 0a 4e 6f 74 20 72 65 2d 65 78 70 6f 72 74 65 ..Not re-exporte
3320: 64 20 66 72 6f 6d 20 74 68 65 20 3c 74 74 3e 5b d from the <tt>[
3330: 2e 2f 6d 61 69 6e 2e 77 69 6b 69 7c 6d 61 69 6e ./main.wiki|main
3340: 5d 3c 2f 74 74 3e 20 6d 6f 64 75 6c 65 2e 0a 0a ]</tt> module...
3350: 3c 68 33 3e 3c 61 20 69 64 3d 22 73 74 61 74 65 <h3><a id="state
3360: 2d 5f 70 6f 69 6e 74 65 72 22 3e 3c 63 6f 64 65 -_pointer"><code
3370: 3e 3c 6e 6f 77 69 6b 69 3e 28 28 73 74 61 74 65 ><nowiki>((state
3380: 2d 3e 70 6f 69 6e 74 65 72 20 5b 6e 6f 6e 6e 75 ->pointer [nonnu
3390: 6c 6c 3f 20 61 6e 79 2f 63 5d 29 20 5b 73 74 61 ll? any/c]) [sta
33a0: 74 65 20 28 6f 72 2f 63 20 73 74 61 74 65 3f 20 te (or/c state?
33b0: 23 66 29 5d 29 20 e2 86 92 20 28 6f 72 2f 63 20 #f)]) → (or/c
33c0: 70 6f 69 6e 74 65 72 3f 20 23 66 29 3c 2f 6e 6f pointer? #f)</no
33d0: 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f 61 3e wiki></code></a>
33e0: 3c 2f 68 33 3e 0a 0a 43 68 65 63 6b 69 6e 67 20 </h3>..Checking
33f0: 63 6f 6e 76 65 72 73 69 6f 6e 20 66 72 6f 6d 20 conversion from
3400: 73 74 61 74 65 73 20 74 6f 20 70 6f 69 6e 74 65 states to pointe
3410: 72 73 2e 0a 0a 4e 6f 74 20 72 65 2d 65 78 70 6f rs...Not re-expo
3420: 72 74 65 64 20 66 72 6f 6d 20 74 68 65 20 3c 74 rted from the <t
3430: 74 3e 5b 2e 2f 6d 61 69 6e 2e 77 69 6b 69 7c 6d t>[./main.wiki|m
3440: 61 69 6e 5d 3c 2f 74 74 3e 20 6d 6f 64 75 6c 65 ain]</tt> module
3450: 2e 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 70 6f ...<h3><a id="po
3460: 69 6e 74 65 72 2d 5f 73 74 61 74 65 22 3e 3c 63 inter-_state"><c
3470: 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28 28 70 6f ode><nowiki>((po
3480: 69 6e 74 65 72 2d 3e 73 74 61 74 65 20 5b 6e 6f inter->state [no
3490: 6e 6e 75 6c 6c 3f 20 61 6e 79 2f 63 5d 29 20 5b nnull? any/c]) [
34a0: 73 74 61 74 65 20 28 6f 72 2f 63 20 70 6f 69 6e state (or/c poin
34b0: 74 65 72 3f 20 23 66 29 5d 29 20 e2 86 92 20 28 ter? #f)]) → (
34c0: 6f 72 2f 63 20 73 74 61 74 65 3f 20 23 66 29 3c or/c state? #f)<
34d0: 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c /nowiki></code><
34e0: 2f 61 3e 3c 2f 68 33 3e 0a 0a 43 68 65 63 6b 69 /a></h3>..Checki
34f0: 6e 67 20 63 6f 6e 76 65 72 73 69 6f 6e 20 66 72 ng conversion fr
3500: 6f 6d 20 70 6f 69 6e 74 65 72 73 20 74 6f 20 73 om pointers to s
3510: 74 61 74 65 73 2e 0a 0a 4e 6f 74 20 72 65 2d 65 tates...Not re-e
3520: 78 70 6f 72 74 65 64 20 66 72 6f 6d 20 74 68 65 xported from the
3530: 20 3c 74 74 3e 5b 2e 2f 6d 61 69 6e 2e 77 69 6b <tt>[./main.wik
3540: 69 7c 6d 61 69 6e 5d 3c 2f 74 74 3e 20 6d 6f 64 i|main]</tt> mod
3550: 75 6c 65 2e 0a ule..