Hex Artifact Content
Not logged in

Artifact 4453c02a04f28ce58e54cb33d2801ffa3c0bf4f4:


0000: 0a 0a 20 28 64 65 66 69 6e 65 2d 66 74 79 70 65  .. (define-ftype
0010: 20 73 64 6c 2d 62 6f 6f 6c 2d 74 20 62 6f 6f 6c   sdl-bool-t bool
0020: 65 61 6e 29 0a 20 28 64 65 66 69 6e 65 2d 66 74  ean). (define-ft
0030: 79 70 65 20 75 69 6e 74 38 20 75 6e 73 69 67 6e  ype uint8 unsign
0040: 65 64 2d 38 29 0a 20 28 64 65 66 69 6e 65 2d 66  ed-8). (define-f
0050: 74 79 70 65 20 75 69 6e 74 31 36 20 75 6e 73 69  type uint16 unsi
0060: 67 6e 65 64 2d 31 36 29 0a 20 28 64 65 66 69 6e  gned-16). (defin
0070: 65 2d 66 74 79 70 65 20 73 69 6e 74 31 36 20 69  e-ftype sint16 i
0080: 6e 74 65 67 65 72 2d 31 36 29 0a 20 28 64 65 66  nteger-16). (def
0090: 69 6e 65 2d 66 74 79 70 65 20 75 69 6e 74 33 32  ine-ftype uint32
00a0: 20 75 6e 73 69 67 6e 65 64 2d 33 32 29 0a 20 28   unsigned-32). (
00b0: 64 65 66 69 6e 65 2d 66 74 79 70 65 20 73 69 6e  define-ftype sin
00c0: 74 33 32 20 69 6e 74 65 67 65 72 2d 33 32 29 0a  t32 integer-32).
00d0: 20 28 64 65 66 69 6e 65 2d 66 74 79 70 65 20 73   (define-ftype s
00e0: 69 6e 74 36 34 20 69 6e 74 65 67 65 72 2d 36 34  int64 integer-64
00f0: 29 0a 20 28 64 65 66 69 6e 65 2d 66 74 79 70 65  ). (define-ftype
0100: 20 75 69 6e 74 36 34 20 69 6e 74 65 67 65 72 2d   uint64 integer-
0110: 36 34 29 0a 20 28 64 65 66 69 6e 65 2d 66 74 79  64). (define-fty
0120: 70 65 20 73 69 7a 65 2d 74 20 75 69 6e 74 33 32  pe size-t uint32
0130: 29 0a 20 28 64 65 66 69 6e 65 2d 66 74 79 70 65  ). (define-ftype
0140: 20 76 61 2d 6c 69 73 74 20 76 6f 69 64 2a 29 0a   va-list void*).
0150: 20 28 64 65 66 69 6e 65 2d 66 74 79 70 65 20 69   (define-ftype i
0160: 6e 74 25 20 69 6e 74 29 0a 20 28 64 65 66 69 6e  nt% int). (defin
0170: 65 2d 66 74 79 70 65 20 66 69 6c 65 20 28 73 74  e-ftype file (st
0180: 72 75 63 74 29 29 0a 0a 20 28 64 65 66 69 6e 65  ruct)).. (define
0190: 2d 66 74 79 70 65 20 73 64 6c 2d 69 63 6f 6e 76  -ftype sdl-iconv
01a0: 2d 74 20 76 6f 69 64 2a 29 0a 0a 20 3b 3b 20 43  -t void*).. ;; C
01b0: 6f 6e 64 69 74 69 6f 6e 73 0a 20 28 64 65 66 69  onditions. (defi
01c0: 6e 65 2d 72 65 63 6f 72 64 2d 74 79 70 65 20 28  ne-record-type (
01d0: 26 73 64 6c 32 20 6d 61 6b 65 2d 73 64 6c 32 2d  &sdl2 make-sdl2-
01e0: 63 6f 6e 64 69 74 69 6f 6e 20 24 73 64 6c 32 2d  condition $sdl2-
01f0: 63 6f 6e 64 69 74 69 6f 6e 3f 29 0a 20 20 20 28  condition?).   (
0200: 70 61 72 65 6e 74 20 26 63 6f 6e 64 69 74 69 6f  parent &conditio
0210: 6e 29 0a 20 20 20 28 66 69 65 6c 64 73 20 28 69  n).   (fields (i
0220: 6d 6d 75 74 61 62 6c 65 20 73 74 61 74 75 73 20  mmutable status 
0230: 24 73 64 6c 32 2d 63 6f 6e 64 69 74 69 6f 6e 2d  $sdl2-condition-
0240: 73 74 61 74 75 73 29 29 29 0a 0a 20 28 64 65 66  status))).. (def
0250: 69 6e 65 20 72 74 64 20 28 72 65 63 6f 72 64 2d  ine rtd (record-
0260: 74 79 70 65 2d 64 65 73 63 72 69 70 74 6f 72 20  type-descriptor 
0270: 26 73 64 6c 32 29 29 0a 20 28 64 65 66 69 6e 65  &sdl2)). (define
0280: 20 73 64 6c 32 2d 63 6f 6e 64 69 74 69 6f 6e 3f   sdl2-condition?
0290: 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 70 72 65 64   (condition-pred
02a0: 69 63 61 74 65 20 72 74 64 29 29 0a 20 28 64 65  icate rtd)). (de
02b0: 66 69 6e 65 20 73 64 6c 32 2d 73 74 61 74 75 73  fine sdl2-status
02c0: 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 61 63 63 65   (condition-acce
02d0: 73 73 6f 72 20 72 74 64 20 24 73 64 6c 32 2d 63  ssor rtd $sdl2-c
02e0: 6f 6e 64 69 74 69 6f 6e 2d 73 74 61 74 75 73 29  ondition-status)
02f0: 29 0a 0a                                         )..