Hex Artifact Content
Not logged in

Artifact 5899dab62843ee15d82b97dcc952a5cf0b7ff6e3:


0000: 23 21 72 36 72 73 0a 0a 28 6c 69 62 72 61 72 79  #!r6rs..(library
0010: 0a 20 20 20 20 28 73 64 6c 32 20 74 74 66 29 0a  .    (sdl2 ttf).
0020: 20 20 28 65 78 70 6f 72 74 0a 20 20 20 3b 3b 3b    (export.   ;;;
0030: 69 6e 69 74 0a 20 20 20 74 74 66 2d 69 6e 69 74  init.   ttf-init
0040: 0a 20 20 20 74 74 66 2d 77 61 73 2d 69 6e 69 74  .   ttf-was-init
0050: 0a 20 20 20 74 74 66 2d 71 75 69 74 0a 0a 20 20  .   ttf-quit..  
0060: 20 3b 3b 3b 69 6e 66 6f 0a 20 20 20 74 74 66 2d   ;;;info.   ttf-
0070: 6c 69 6e 6b 65 64 2d 76 65 72 73 69 6f 6e 0a 0a  linked-version..
0080: 20 20 20 3b 3b 3b 6c 6f 61 64 69 6e 67 0a 20 20     ;;;loading.  
0090: 20 74 74 66 2d 6f 70 65 6e 2d 66 6f 6e 74 0a 20   ttf-open-font. 
00a0: 20 20 74 74 66 2d 6f 70 65 6e 2d 66 6f 6e 74 2d    ttf-open-font-
00b0: 72 77 0a 20 20 20 74 74 66 2d 6f 70 65 6e 2d 66  rw.   ttf-open-f
00c0: 6f 6e 74 2d 69 6e 64 65 78 0a 20 20 20 74 74 66  ont-index.   ttf
00d0: 2d 6f 70 65 6e 2d 66 6f 6e 74 2d 69 6e 64 65 78  -open-font-index
00e0: 2d 72 77 0a 0a 20 20 20 3b 3b 3b 66 72 65 65 69  -rw..   ;;;freei
00f0: 6e 67 0a 20 20 20 74 74 66 2d 63 6c 6f 73 65 2d  ng.   ttf-close-
0100: 66 6f 6e 74 0a 0a 20 20 20 3b 3b 3b 67 6c 6f 62  font..   ;;;glob
0110: 61 6c 20 61 74 74 72 69 62 75 74 65 73 0a 20 20  al attributes.  
0120: 20 74 74 66 2d 62 79 74 65 2d 73 77 61 70 70 65   ttf-byte-swappe
0130: 64 2d 75 6e 69 63 6f 64 65 0a 0a 20 20 20 3b 3b  d-unicode..   ;;
0140: 3b 66 6f 6e 74 20 73 74 79 6c 65 0a 20 20 20 74  ;font style.   t
0150: 74 66 2d 67 65 74 2d 66 6f 6e 74 2d 73 74 79 6c  tf-get-font-styl
0160: 65 0a 20 20 20 74 74 66 2d 73 65 74 2d 66 6f 6e  e.   ttf-set-fon
0170: 74 2d 73 74 79 6c 65 0a 20 20 20 74 74 66 2d 67  t-style.   ttf-g
0180: 65 74 2d 66 6f 6e 74 2d 6f 75 74 6c 69 6e 65 0a  et-font-outline.
0190: 20 20 20 74 74 66 2d 73 65 74 2d 66 6f 6e 74 2d     ttf-set-font-
01a0: 6f 75 74 6c 69 6e 65 0a 0a 20 20 20 3b 3b 3b 66  outline..   ;;;f
01b0: 6f 6e 74 20 73 65 74 74 69 6e 67 73 0a 20 20 20  ont settings.   
01c0: 74 74 66 2d 67 65 74 2d 66 6f 6e 74 2d 68 69 6e  ttf-get-font-hin
01d0: 74 69 6e 67 0a 20 20 20 74 74 66 2d 73 65 74 2d  ting.   ttf-set-
01e0: 66 6f 6e 74 2d 68 69 6e 74 69 6e 67 0a 20 20 20  font-hinting.   
01f0: 74 74 66 2d 67 65 74 2d 66 6f 6e 74 2d 6b 65 72  ttf-get-font-ker
0200: 6e 69 6e 67 0a 20 20 20 74 74 66 2d 73 65 74 2d  ning.   ttf-set-
0210: 66 6f 6e 74 2d 6b 65 72 6e 69 6e 67 0a 0a 20 20  font-kerning..  
0220: 20 3b 3b 3b 66 6f 6e 74 20 6d 65 74 72 69 63 73   ;;;font metrics
0230: 0a 20 20 20 74 74 66 2d 66 6f 6e 74 2d 68 65 69  .   ttf-font-hei
0240: 67 68 74 0a 20 20 20 74 74 66 2d 66 6f 6e 74 2d  ght.   ttf-font-
0250: 61 73 63 65 6e 74 0a 20 20 20 74 74 66 2d 66 6f  ascent.   ttf-fo
0260: 6e 74 2d 64 65 73 63 65 6e 74 0a 20 20 20 74 74  nt-descent.   tt
0270: 66 2d 66 6f 6e 74 2d 6c 69 6e 65 2d 73 6b 69 70  f-font-line-skip
0280: 0a 0a 20 20 20 3b 3b 3b 66 6f 6e 74 20 61 74 74  ..   ;;;font att
0290: 72 69 62 75 74 65 73 0a 20 20 20 74 74 66 2d 66  ributes.   ttf-f
02a0: 6f 6e 74 2d 66 61 63 65 73 0a 20 20 20 74 74 66  ont-faces.   ttf
02b0: 2d 66 6f 6e 74 2d 66 61 63 65 2d 69 73 2d 66 69  -font-face-is-fi
02c0: 78 65 64 2d 77 69 64 74 68 0a 20 20 20 74 74 66  xed-width.   ttf
02d0: 2d 66 6f 6e 74 2d 66 61 63 65 2d 66 61 6d 69 6c  -font-face-famil
02e0: 79 2d 6e 61 6d 65 0a 20 20 20 74 74 66 2d 66 6f  y-name.   ttf-fo
02f0: 6e 74 2d 66 61 63 65 2d 73 74 79 6c 65 2d 6e 61  nt-face-style-na
0300: 6d 65 0a 0a 20 20 20 3b 3b 3b 67 6c 79 70 68 73  me..   ;;;glyphs
0310: 0a 20 20 20 74 74 66 2d 67 6c 79 70 68 2d 69 73  .   ttf-glyph-is
0320: 2d 70 72 6f 76 69 64 65 64 0a 20 20 20 74 74 66  -provided.   ttf
0330: 2d 67 6c 79 70 68 2d 6d 65 74 72 69 63 73 0a 0a  -glyph-metrics..
0340: 20 20 20 3b 3b 3b 74 65 78 74 20 6d 65 74 72 69     ;;;text metri
0350: 63 73 0a 20 20 20 74 74 66 2d 73 69 7a 65 2d 74  cs.   ttf-size-t
0360: 65 78 74 0a 20 20 20 74 74 66 2d 73 69 7a 65 2d  ext.   ttf-size-
0370: 75 74 2d 66 38 0a 20 20 20 74 74 66 2d 73 69 7a  ut-f8.   ttf-siz
0380: 65 2d 75 6e 69 63 6f 64 65 0a 0a 20 20 20 3b 3b  e-unicode..   ;;
0390: 3b 72 65 6e 64 65 72 20 73 6f 6c 69 64 0a 20 20  ;render solid.  
03a0: 20 73 74 74 66 2d 72 65 6e 64 65 72 2d 74 65 78   sttf-render-tex
03b0: 74 2d 73 6f 6c 69 64 0a 20 20 20 73 74 74 66 2d  t-solid.   sttf-
03c0: 72 65 6e 64 65 72 2d 75 74 2d 66 38 2d 73 6f 6c  render-ut-f8-sol
03d0: 69 64 0a 20 20 20 73 74 74 66 2d 72 65 6e 64 65  id.   sttf-rende
03e0: 72 2d 75 6e 69 63 6f 64 65 2d 73 6f 6c 69 64 0a  r-unicode-solid.
03f0: 20 20 20 73 74 74 66 2d 72 65 6e 64 65 72 2d 67     sttf-render-g
0400: 6c 79 70 68 2d 73 6f 6c 69 64 0a 0a 20 20 20 3b  lyph-solid..   ;
0410: 3b 3b 72 65 6e 64 65 72 20 73 68 61 64 65 64 0a  ;;render shaded.
0420: 20 20 20 73 74 74 66 2d 72 65 6e 64 65 72 2d 74     sttf-render-t
0430: 65 78 74 2d 73 68 61 64 65 64 0a 20 20 20 73 74  ext-shaded.   st
0440: 74 66 2d 72 65 6e 64 65 72 2d 75 74 2d 66 38 2d  tf-render-ut-f8-
0450: 73 68 61 64 65 64 0a 20 20 20 73 74 74 66 2d 72  shaded.   sttf-r
0460: 65 6e 64 65 72 2d 75 6e 69 63 6f 64 65 2d 73 68  ender-unicode-sh
0470: 61 64 65 64 0a 20 20 20 73 74 74 66 2d 72 65 6e  aded.   sttf-ren
0480: 64 65 72 2d 67 6c 79 70 68 2d 73 68 61 64 65 64  der-glyph-shaded
0490: 0a 0a 20 20 20 3b 3b 3b 72 65 6e 64 65 72 20 62  ..   ;;;render b
04a0: 6c 65 6e 64 65 64 0a 20 20 20 73 74 74 66 2d 72  lended.   sttf-r
04b0: 65 6e 64 65 72 2d 74 65 78 74 2d 62 6c 65 6e 64  ender-text-blend
04c0: 65 64 0a 20 20 20 73 74 74 66 2d 72 65 6e 64 65  ed.   sttf-rende
04d0: 72 2d 75 74 2d 66 38 2d 62 6c 65 6e 64 65 64 0a  r-ut-f8-blended.
04e0: 20 20 20 73 74 74 66 2d 72 65 6e 64 65 72 2d 75     sttf-render-u
04f0: 6e 69 63 6f 64 65 2d 62 6c 65 6e 64 65 64 0a 20  nicode-blended. 
0500: 20 20 73 74 74 66 2d 72 65 6e 64 65 72 2d 67 6c    sttf-render-gl
0510: 79 70 68 2d 62 6c 65 6e 64 65 64 0a 0a 20 20 20  yph-blended..   
0520: 3b 3b 3b 6c 69 62 72 61 72 79 20 69 6e 69 74 0a  ;;;library init.
0530: 20 20 20 73 64 6c 2d 74 74 66 2d 6c 69 62 72 61     sdl-ttf-libra
0540: 72 79 2d 69 6e 69 74 0a 20 20 20 73 64 6c 2d 73  ry-init.   sdl-s
0550: 68 69 6d 2d 74 74 66 2d 69 6e 69 74 20 29 0a 20  him-ttf-init ). 
0560: 20 0a 20 20 28 69 6d 70 6f 72 74 20 28 63 68 65   .  (import (che
0570: 7a 73 63 68 65 6d 65 29 20 0a 09 20 20 28 66 66  zscheme) ..  (ff
0580: 69 2d 75 74 69 6c 73 29 0a 09 20 20 28 73 64 6c  i-utils)..  (sdl
0590: 32 29 0a 09 20 20 28 6f 6e 6c 79 20 28 73 72 66  2)..  (only (srf
05a0: 69 20 73 31 20 6c 69 73 74 73 29 20 66 6f 6c 64  i s1 lists) fold
05b0: 29 0a 09 20 20 28 6f 6e 6c 79 20 28 74 68 75 6e  )..  (only (thun
05c0: 64 65 72 2d 75 74 69 6c 73 29 20 73 74 72 69 6e  der-utils) strin
05d0: 67 2d 72 65 70 6c 61 63 65 20 73 74 72 69 6e 67  g-replace string
05e0: 2d 73 70 6c 69 74 29 20 0a 09 20 20 28 6f 6e 6c  -split) ..  (onl
05f0: 79 20 28 73 72 66 69 20 73 31 33 20 73 74 72 69  y (srfi s13 stri
0600: 6e 67 73 29 20 73 74 72 69 6e 67 2d 64 65 6c 65  ngs) string-dele
0610: 74 65 20 73 74 72 69 6e 67 2d 73 75 66 66 69 78  te string-suffix
0620: 3f 20 73 74 72 69 6e 67 2d 70 72 65 66 69 78 3f  ? string-prefix?
0630: 29 0a 09 20 20 28 73 72 66 69 20 73 31 34 20 63  )..  (srfi s14 c
0640: 68 61 72 2d 73 65 74 73 29 29 0a 20 20 0a 20 20  har-sets)).  .  
0650: 28 69 6e 63 6c 75 64 65 20 22 74 74 66 2d 74 79  (include "ttf-ty
0660: 70 65 73 2e 73 73 22 29 0a 20 20 28 69 6e 63 6c  pes.ss").  (incl
0670: 75 64 65 20 22 74 74 66 2d 73 68 69 6d 2d 66 75  ude "ttf-shim-fu
0680: 6e 63 74 69 6f 6e 73 2e 73 73 22 29 0a 20 20 28  nctions.ss").  (
0690: 69 6e 63 6c 75 64 65 20 22 74 74 66 2d 66 75 6e  include "ttf-fun
06a0: 63 74 69 6f 6e 73 2e 73 73 22 29 0a 0a 20 20 28  ctions.ss")..  (
06b0: 64 65 66 69 6e 65 20 28 73 64 6c 2d 74 74 66 2d  define (sdl-ttf-
06c0: 6c 69 62 72 61 72 79 2d 69 6e 69 74 20 2e 20 6c  library-init . l
06d0: 29 0a 20 20 20 20 28 6c 6f 61 64 2d 73 68 61 72  ).    (load-shar
06e0: 65 64 2d 6f 62 6a 65 63 74 20 28 69 66 20 28 6e  ed-object (if (n
06f0: 75 6c 6c 3f 20 6c 29 20 22 6c 69 62 53 44 4c 32  ull? l) "libSDL2
0700: 5f 74 74 66 2e 73 6f 22 20 6c 29 29 29 0a 20 20  _ttf.so" l))).  
0710: 28 64 65 66 69 6e 65 20 28 73 64 6c 2d 73 68 69  (define (sdl-shi
0720: 6d 2d 74 74 66 2d 69 6e 69 74 20 2e 20 6c 29 0a  m-ttf-init . l).
0730: 20 20 20 20 28 6c 6f 61 64 2d 73 68 61 72 65 64      (load-shared
0740: 2d 6f 62 6a 65 63 74 20 28 69 66 20 28 6e 75 6c  -object (if (nul
0750: 6c 3f 20 6c 29 20 22 74 74 66 2d 73 68 69 6d 2f  l? l) "ttf-shim/
0760: 74 74 66 73 68 69 6d 2e 73 6f 22 20 6c 29 29 29  ttfshim.so" l)))
0770: 29 0a                                            ).