cairo 1.15.9-x86-mingw32 → 1.15.10-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (394) hide show
  1. checksums.yaml +4 -4
  2. data/NEWS +20 -0
  3. data/Rakefile +9 -7
  4. data/ext/cairo/rb_cairo.h +1 -1
  5. data/lib/2.2/cairo.so +0 -0
  6. data/lib/2.3/cairo.so +0 -0
  7. data/lib/2.4/cairo.so +0 -0
  8. data/lib/cairo.rb +3 -3
  9. data/test/cairo-test-utils.rb +8 -4
  10. data/test/test_context.rb +1 -1
  11. data/test/test_font_face.rb +1 -1
  12. data/test/test_recording_surface.rb +1 -0
  13. data/vendor/local/bin/fc-cache.exe +0 -0
  14. data/vendor/local/bin/fc-cat.exe +0 -0
  15. data/vendor/local/bin/fc-list.exe +0 -0
  16. data/vendor/local/bin/fc-match.exe +0 -0
  17. data/vendor/local/bin/fc-pattern.exe +0 -0
  18. data/vendor/local/bin/fc-query.exe +0 -0
  19. data/vendor/local/bin/fc-scan.exe +0 -0
  20. data/vendor/local/bin/fc-validate.exe +0 -0
  21. data/vendor/local/bin/freetype-config +78 -28
  22. data/vendor/local/bin/libcairo-2.dll +0 -0
  23. data/vendor/local/bin/libcairo-gobject-2.dll +0 -0
  24. data/vendor/local/bin/libcairo-script-interpreter-2.dll +0 -0
  25. data/vendor/local/bin/libfontconfig-1.dll +0 -0
  26. data/vendor/local/bin/libfreetype-6.dll +0 -0
  27. data/vendor/local/bin/libpixman-1-0.dll +0 -0
  28. data/vendor/local/bin/libpng-config +1 -1
  29. data/vendor/local/bin/libpng16-16.dll +0 -0
  30. data/vendor/local/bin/libpng16-config +1 -1
  31. data/vendor/local/bin/libxml2-2.dll +0 -0
  32. data/vendor/local/bin/png-fix-itxt.exe +0 -0
  33. data/vendor/local/bin/pngfix.exe +0 -0
  34. data/vendor/local/bin/xml2-config +1 -1
  35. data/vendor/local/bin/xmlcatalog.exe +0 -0
  36. data/vendor/local/bin/xmllint.exe +0 -0
  37. data/vendor/local/bin/zlib1211.dll +0 -0
  38. data/vendor/local/etc/fonts/conf.d/30-metric-aliases.conf +56 -16
  39. data/vendor/local/etc/fonts/conf.d/30-urw-aliases.conf +11 -2
  40. data/vendor/local/etc/fonts/conf.d/45-latin.conf +4 -0
  41. data/vendor/local/etc/fonts/conf.d/60-latin.conf +1 -0
  42. data/vendor/local/include/cairo/cairo-pdf.h +7 -8
  43. data/vendor/local/include/cairo/cairo-version.h +1 -1
  44. data/vendor/local/include/fontconfig/fontconfig.h +3 -2
  45. data/vendor/local/include/freetype2/freetype/config/ftconfig.h +10 -1
  46. data/vendor/local/include/freetype2/freetype/config/ftheader.h +14 -1
  47. data/vendor/local/include/freetype2/freetype/config/ftoption.h +79 -22
  48. data/vendor/local/include/freetype2/freetype/config/ftstdlib.h +1 -1
  49. data/vendor/local/include/freetype2/freetype/freetype.h +616 -400
  50. data/vendor/local/include/freetype2/freetype/ftadvanc.h +1 -1
  51. data/vendor/local/include/freetype2/freetype/ftautoh.h +32 -10
  52. data/vendor/local/include/freetype2/freetype/ftbbox.h +1 -1
  53. data/vendor/local/include/freetype2/freetype/ftbdf.h +1 -1
  54. data/vendor/local/include/freetype2/freetype/ftbitmap.h +1 -1
  55. data/vendor/local/include/freetype2/freetype/ftbzip2.h +1 -1
  56. data/vendor/local/include/freetype2/freetype/ftcache.h +1 -1
  57. data/vendor/local/include/freetype2/freetype/ftcffdrv.h +47 -1
  58. data/vendor/local/include/freetype2/freetype/ftchapters.h +1 -0
  59. data/vendor/local/include/freetype2/freetype/ftcid.h +1 -1
  60. data/vendor/local/include/freetype2/freetype/fterrdef.h +5 -1
  61. data/vendor/local/include/freetype2/freetype/fterrors.h +5 -5
  62. data/vendor/local/include/freetype2/freetype/ftfntfmt.h +1 -1
  63. data/vendor/local/include/freetype2/freetype/ftgasp.h +12 -4
  64. data/vendor/local/include/freetype2/freetype/ftglyph.h +11 -2
  65. data/vendor/local/include/freetype2/freetype/ftgxval.h +1 -1
  66. data/vendor/local/include/freetype2/freetype/ftgzip.h +1 -1
  67. data/vendor/local/include/freetype2/freetype/ftimage.h +12 -12
  68. data/vendor/local/include/freetype2/freetype/ftincrem.h +1 -1
  69. data/vendor/local/include/freetype2/freetype/ftlcdfil.h +46 -10
  70. data/vendor/local/include/freetype2/freetype/ftlist.h +1 -1
  71. data/vendor/local/include/freetype2/freetype/ftlzw.h +1 -1
  72. data/vendor/local/include/freetype2/freetype/ftmac.h +6 -5
  73. data/vendor/local/include/freetype2/freetype/ftmm.h +147 -58
  74. data/vendor/local/include/freetype2/freetype/ftmodapi.h +46 -3
  75. data/vendor/local/include/freetype2/freetype/ftmoderr.h +1 -1
  76. data/vendor/local/include/freetype2/freetype/ftotval.h +1 -1
  77. data/vendor/local/include/freetype2/freetype/ftoutln.h +4 -1
  78. data/vendor/local/include/freetype2/freetype/ftpcfdrv.h +105 -0
  79. data/vendor/local/include/freetype2/freetype/ftpfr.h +1 -1
  80. data/vendor/local/include/freetype2/freetype/ftrender.h +1 -1
  81. data/vendor/local/include/freetype2/freetype/ftsizes.h +1 -1
  82. data/vendor/local/include/freetype2/freetype/ftsnames.h +117 -30
  83. data/vendor/local/include/freetype2/freetype/ftstroke.h +2 -2
  84. data/vendor/local/include/freetype2/freetype/ftsynth.h +1 -1
  85. data/vendor/local/include/freetype2/freetype/ftsystem.h +1 -1
  86. data/vendor/local/include/freetype2/freetype/fttrigon.h +1 -1
  87. data/vendor/local/include/freetype2/freetype/ftttdrv.h +5 -6
  88. data/vendor/local/include/freetype2/freetype/fttypes.h +1 -1
  89. data/vendor/local/include/freetype2/freetype/ftwinfnt.h +1 -1
  90. data/vendor/local/include/freetype2/freetype/t1tables.h +3 -3
  91. data/vendor/local/include/freetype2/freetype/ttnameid.h +313 -314
  92. data/vendor/local/include/freetype2/freetype/tttables.h +190 -173
  93. data/vendor/local/include/freetype2/freetype/tttags.h +7 -1
  94. data/vendor/local/include/freetype2/freetype/ttunpat.h +2 -2
  95. data/vendor/local/include/freetype2/ft2build.h +1 -1
  96. data/vendor/local/include/libpng16/png.h +29 -18
  97. data/vendor/local/include/libpng16/pngconf.h +1 -1
  98. data/vendor/local/include/libpng16/pnglibconf.h +5 -2
  99. data/vendor/local/include/libxml2/libxml/HTMLparser.h +2 -2
  100. data/vendor/local/include/libxml2/libxml/schemasInternals.h +1 -1
  101. data/vendor/local/include/libxml2/libxml/xmlreader.h +1 -1
  102. data/vendor/local/include/libxml2/libxml/xmlversion.h +4 -4
  103. data/vendor/local/include/png.h +29 -18
  104. data/vendor/local/include/pngconf.h +1 -1
  105. data/vendor/local/include/pnglibconf.h +5 -2
  106. data/vendor/local/lib/cmake/libxml2/libxml2-config.cmake +2 -2
  107. data/vendor/local/lib/fontconfig.def +1 -1
  108. data/vendor/local/lib/libcairo-gobject.a +0 -0
  109. data/vendor/local/lib/libcairo-gobject.dll.a +0 -0
  110. data/vendor/local/lib/libcairo-gobject.la +2 -2
  111. data/vendor/local/lib/libcairo-script-interpreter.a +0 -0
  112. data/vendor/local/lib/libcairo-script-interpreter.dll.a +0 -0
  113. data/vendor/local/lib/libcairo-script-interpreter.la +2 -2
  114. data/vendor/local/lib/libcairo.a +0 -0
  115. data/vendor/local/lib/libcairo.dll.a +0 -0
  116. data/vendor/local/lib/libcairo.la +2 -2
  117. data/vendor/local/lib/libfontconfig.dll.a +0 -0
  118. data/vendor/local/lib/libfontconfig.la +1 -1
  119. data/vendor/local/lib/libfreetype.a +0 -0
  120. data/vendor/local/lib/libfreetype.dll.a +0 -0
  121. data/vendor/local/lib/libfreetype.la +2 -2
  122. data/vendor/local/lib/libpixman-1.dll.a +0 -0
  123. data/vendor/local/lib/libpng.a +0 -0
  124. data/vendor/local/lib/libpng.dll.a +0 -0
  125. data/vendor/local/lib/libpng.la +2 -2
  126. data/vendor/local/lib/libpng16.a +0 -0
  127. data/vendor/local/lib/libpng16.dll.a +0 -0
  128. data/vendor/local/lib/libpng16.la +2 -2
  129. data/vendor/local/lib/libxml2.a +0 -0
  130. data/vendor/local/lib/libxml2.dll.a +0 -0
  131. data/vendor/local/lib/libxml2.la +1 -1
  132. data/vendor/local/lib/libz.dll.a +0 -0
  133. data/vendor/local/lib/pkgconfig/cairo-fc.pc +1 -1
  134. data/vendor/local/lib/pkgconfig/cairo-ft.pc +1 -1
  135. data/vendor/local/lib/pkgconfig/cairo-gobject.pc +1 -1
  136. data/vendor/local/lib/pkgconfig/cairo-pdf.pc +1 -1
  137. data/vendor/local/lib/pkgconfig/cairo-png.pc +1 -1
  138. data/vendor/local/lib/pkgconfig/cairo-ps.pc +1 -1
  139. data/vendor/local/lib/pkgconfig/cairo-script.pc +1 -1
  140. data/vendor/local/lib/pkgconfig/cairo-svg.pc +1 -1
  141. data/vendor/local/lib/pkgconfig/cairo-win32-font.pc +1 -1
  142. data/vendor/local/lib/pkgconfig/cairo-win32.pc +1 -1
  143. data/vendor/local/lib/pkgconfig/cairo.pc +1 -1
  144. data/vendor/local/lib/pkgconfig/fontconfig.pc +2 -2
  145. data/vendor/local/lib/pkgconfig/freetype2.pc +1 -1
  146. data/vendor/local/lib/pkgconfig/libpng.pc +2 -1
  147. data/vendor/local/lib/pkgconfig/libpng16.pc +2 -1
  148. data/vendor/local/lib/pkgconfig/libxml-2.0.pc +1 -1
  149. data/vendor/local/lib/xml2Conf.sh +1 -1
  150. data/vendor/local/share/aclocal/freetype2.m4 +1 -1
  151. data/vendor/local/share/aclocal/libxml.m4 +1 -1
  152. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/Copyright +0 -0
  153. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/examples/testHTML.c +0 -0
  154. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/examples/testSAX.c +0 -0
  155. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/examples/testXPath.c +0 -0
  156. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/examples/xmllint.c +78 -78
  157. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/DOM.gif +0 -0
  158. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/FAQ.html +0 -0
  159. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/Libxml2-Logo-180x168.gif +0 -0
  160. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/Libxml2-Logo-90x34.gif +0 -0
  161. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/encoding.html +0 -0
  162. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/examples.xml +256 -256
  163. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/examples.xsl +0 -0
  164. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/book1.html +0 -0
  165. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/home.png +0 -0
  166. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/index.html +0 -0
  167. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/left.png +0 -0
  168. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-DOCBparser.html +0 -0
  169. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-HTMLparser.html +4 -4
  170. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-HTMLtree.html +0 -0
  171. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-SAX.html +0 -0
  172. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-SAX2.html +0 -0
  173. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-c14n.html +0 -0
  174. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-catalog.html +0 -0
  175. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-chvalid.html +0 -0
  176. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-debugXML.html +0 -0
  177. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-dict.html +2 -2
  178. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-encoding.html +0 -0
  179. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-entities.html +0 -0
  180. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-globals.html +0 -0
  181. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-hash.html +2 -2
  182. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-lib.html +0 -0
  183. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-list.html +2 -2
  184. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-nanoftp.html +0 -0
  185. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-nanohttp.html +0 -0
  186. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-parser.html +0 -0
  187. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-parserInternals.html +0 -0
  188. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-pattern.html +0 -0
  189. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-relaxng.html +0 -0
  190. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-schemasInternals.html +1 -1
  191. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-schematron.html +0 -0
  192. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-threads.html +0 -0
  193. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-tree.html +1 -1
  194. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-uri.html +0 -0
  195. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-valid.html +0 -0
  196. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xinclude.html +0 -0
  197. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xlink.html +0 -0
  198. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xmlIO.html +0 -0
  199. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xmlautomata.html +0 -0
  200. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xmlerror.html +2 -2
  201. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xmlexports.html +0 -0
  202. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xmlmemory.html +0 -0
  203. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xmlmodule.html +0 -0
  204. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xmlreader.html +2 -2
  205. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xmlregexp.html +0 -0
  206. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xmlsave.html +0 -0
  207. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xmlschemas.html +0 -0
  208. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xmlschemastypes.html +0 -0
  209. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xmlstring.html +3 -3
  210. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xmlunicode.html +0 -0
  211. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xmlversion.html +0 -0
  212. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xmlwriter.html +0 -0
  213. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xpath.html +1 -1
  214. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xpathInternals.html +1 -1
  215. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xpointer.html +1 -1
  216. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/libxml-xzlib.html +0 -0
  217. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/right.png +0 -0
  218. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/html/up.png +0 -0
  219. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/index.html +0 -0
  220. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/io1.c +0 -0
  221. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/io1.res +0 -0
  222. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/io2.c +0 -0
  223. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/io2.res +0 -0
  224. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/libxml.gif +0 -0
  225. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/parse1.c +0 -0
  226. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/parse2.c +0 -0
  227. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/parse3.c +0 -0
  228. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/parse4.c +0 -0
  229. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/reader1.c +0 -0
  230. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/reader1.res +0 -0
  231. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/reader2.c +0 -0
  232. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/reader3.c +0 -0
  233. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/reader3.res +0 -0
  234. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/reader4.c +0 -0
  235. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/reader4.res +0 -0
  236. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/redhat.gif +0 -0
  237. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/smallfootonly.gif +0 -0
  238. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/structure.gif +0 -0
  239. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/test1.xml +0 -0
  240. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/test2.xml +0 -0
  241. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/test3.xml +0 -0
  242. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/testWriter.c +16 -16
  243. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tree1.c +0 -0
  244. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tree1.res +0 -0
  245. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tree2.c +1 -2
  246. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tree2.res +0 -0
  247. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tst.xml +0 -0
  248. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/apa.html +0 -0
  249. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/apb.html +0 -0
  250. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/apc.html +0 -0
  251. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/apd.html +0 -0
  252. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/ape.html +0 -0
  253. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/apf.html +0 -0
  254. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/apg.html +0 -0
  255. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/aph.html +0 -0
  256. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/api.html +0 -0
  257. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/ar01s02.html +0 -0
  258. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/ar01s03.html +0 -0
  259. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/ar01s04.html +0 -0
  260. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/ar01s05.html +0 -0
  261. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/ar01s06.html +0 -0
  262. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/ar01s07.html +0 -0
  263. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/ar01s08.html +0 -0
  264. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/ar01s09.html +0 -0
  265. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/blank.png +0 -0
  266. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/callouts/1.png +0 -0
  267. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/callouts/10.png +0 -0
  268. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/callouts/2.png +0 -0
  269. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/callouts/3.png +0 -0
  270. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/callouts/4.png +0 -0
  271. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/callouts/5.png +0 -0
  272. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/callouts/6.png +0 -0
  273. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/callouts/7.png +0 -0
  274. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/callouts/8.png +0 -0
  275. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/callouts/9.png +0 -0
  276. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/caution.png +0 -0
  277. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/draft.png +0 -0
  278. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/home.png +0 -0
  279. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/important.png +0 -0
  280. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/next.png +0 -0
  281. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/note.png +0 -0
  282. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/prev.png +0 -0
  283. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/tip.png +0 -0
  284. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/toc-blank.png +0 -0
  285. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/toc-minus.png +0 -0
  286. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/toc-plus.png +0 -0
  287. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/up.png +0 -0
  288. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/images/warning.png +0 -0
  289. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/includeaddattribute.c +0 -0
  290. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/includeaddkeyword.c +0 -0
  291. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/includeconvert.c +0 -0
  292. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/includegetattribute.c +0 -0
  293. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/includekeyword.c +0 -0
  294. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/includexpath.c +0 -0
  295. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/index.html +0 -0
  296. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/ix01.html +0 -0
  297. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/tutorial/xmltutorial.pdf +0 -0
  298. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/w3c.png +0 -0
  299. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/writer.xml +0 -0
  300. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/xml.html +154 -8
  301. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/xpath1.c +0 -0
  302. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/xpath1.res +0 -0
  303. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/xpath2.c +0 -0
  304. data/vendor/local/share/doc/{libxml2-2.9.4 → libxml2-2.9.6}/html/xpath2.res +0 -0
  305. data/vendor/local/share/fontconfig/conf.avail/30-metric-aliases.conf +56 -16
  306. data/vendor/local/share/fontconfig/conf.avail/30-urw-aliases.conf +11 -2
  307. data/vendor/local/share/fontconfig/conf.avail/45-latin.conf +4 -0
  308. data/vendor/local/share/fontconfig/conf.avail/60-latin.conf +1 -0
  309. data/vendor/local/share/gtk-doc/html/cairo/bindings-errors.html +5 -6
  310. data/vendor/local/share/gtk-doc/html/cairo/bindings-fonts.html +5 -6
  311. data/vendor/local/share/gtk-doc/html/cairo/bindings-memory.html +5 -6
  312. data/vendor/local/share/gtk-doc/html/cairo/bindings-overloading.html +5 -6
  313. data/vendor/local/share/gtk-doc/html/cairo/bindings-path.html +5 -6
  314. data/vendor/local/share/gtk-doc/html/cairo/bindings-patterns.html +5 -6
  315. data/vendor/local/share/gtk-doc/html/cairo/bindings-return-values.html +5 -6
  316. data/vendor/local/share/gtk-doc/html/cairo/bindings-streams.html +5 -6
  317. data/vendor/local/share/gtk-doc/html/cairo/bindings-surfaces.html +5 -6
  318. data/vendor/local/share/gtk-doc/html/cairo/cairo-Error-handling.html +17 -25
  319. data/vendor/local/share/gtk-doc/html/cairo/cairo-FreeType-Fonts.html +42 -53
  320. data/vendor/local/share/gtk-doc/html/cairo/cairo-Image-Surfaces.html +48 -63
  321. data/vendor/local/share/gtk-doc/html/cairo/cairo-PDF-Surfaces.html +68 -78
  322. data/vendor/local/share/gtk-doc/html/cairo/cairo-PNG-Support.html +34 -47
  323. data/vendor/local/share/gtk-doc/html/cairo/cairo-Paths.html +82 -92
  324. data/vendor/local/share/gtk-doc/html/cairo/cairo-PostScript-Surfaces.html +50 -61
  325. data/vendor/local/share/gtk-doc/html/cairo/cairo-Quartz-(CGFont)-Fonts.html +18 -27
  326. data/vendor/local/share/gtk-doc/html/cairo/cairo-Quartz-Surfaces.html +22 -32
  327. data/vendor/local/share/gtk-doc/html/cairo/cairo-Raster-Sources.html +64 -79
  328. data/vendor/local/share/gtk-doc/html/cairo/cairo-Recording-Surfaces.html +21 -30
  329. data/vendor/local/share/gtk-doc/html/cairo/cairo-Regions.html +99 -125
  330. data/vendor/local/share/gtk-doc/html/cairo/cairo-SVG-Surfaces.html +31 -41
  331. data/vendor/local/share/gtk-doc/html/cairo/cairo-Script-Surfaces.html +43 -56
  332. data/vendor/local/share/gtk-doc/html/cairo/cairo-Tags-and-Links.html +23 -29
  333. data/vendor/local/share/gtk-doc/html/cairo/cairo-Transformations.html +41 -48
  334. data/vendor/local/share/gtk-doc/html/cairo/cairo-Types.html +19 -26
  335. data/vendor/local/share/gtk-doc/html/cairo/cairo-User-Fonts.html +56 -72
  336. data/vendor/local/share/gtk-doc/html/cairo/cairo-Version-Information.html +28 -39
  337. data/vendor/local/share/gtk-doc/html/cairo/cairo-Win32-Fonts.html +39 -51
  338. data/vendor/local/share/gtk-doc/html/cairo/cairo-Win32-Surfaces.html +34 -47
  339. data/vendor/local/share/gtk-doc/html/cairo/cairo-XCB-Surfaces.html +45 -57
  340. data/vendor/local/share/gtk-doc/html/cairo/cairo-XLib-Surfaces.html +62 -79
  341. data/vendor/local/share/gtk-doc/html/cairo/cairo-XLib-XRender-Backend.html +18 -27
  342. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-device-t.html +53 -95
  343. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-font-face-t.html +40 -53
  344. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-font-options-t.html +71 -87
  345. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-matrix-t.html +49 -57
  346. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-pattern-t.html +158 -189
  347. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-scaled-font-t.html +76 -92
  348. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-surface-t.html +146 -164
  349. data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-t.html +234 -264
  350. data/vendor/local/share/gtk-doc/html/cairo/cairo-drawing.html +5 -6
  351. data/vendor/local/share/gtk-doc/html/cairo/cairo-fonts.html +5 -6
  352. data/vendor/local/share/gtk-doc/html/cairo/cairo-support.html +5 -6
  353. data/vendor/local/share/gtk-doc/html/cairo/cairo-surfaces.html +5 -6
  354. data/vendor/local/share/gtk-doc/html/cairo/cairo-text.html +104 -119
  355. data/vendor/local/share/gtk-doc/html/cairo/cairo.devhelp2 +236 -6
  356. data/vendor/local/share/gtk-doc/html/cairo/index-1.10.html +62 -63
  357. data/vendor/local/share/gtk-doc/html/cairo/index-1.12.html +69 -70
  358. data/vendor/local/share/gtk-doc/html/cairo/index-1.14.html +11 -12
  359. data/vendor/local/share/gtk-doc/html/cairo/index-1.2.html +59 -60
  360. data/vendor/local/share/gtk-doc/html/cairo/index-1.4.html +35 -36
  361. data/vendor/local/share/gtk-doc/html/cairo/index-1.6.html +28 -29
  362. data/vendor/local/share/gtk-doc/html/cairo/index-1.8.html +39 -40
  363. data/vendor/local/share/gtk-doc/html/cairo/index-all.html +510 -511
  364. data/vendor/local/share/gtk-doc/html/cairo/index.html +4 -5
  365. data/vendor/local/share/gtk-doc/html/cairo/language-bindings.html +5 -6
  366. data/vendor/local/share/gtk-doc/html/cairo/left-insensitive.png +0 -0
  367. data/vendor/local/share/gtk-doc/html/cairo/left.png +0 -0
  368. data/vendor/local/share/gtk-doc/html/cairo/right.png +0 -0
  369. data/vendor/local/share/gtk-doc/html/cairo/style.css +160 -142
  370. data/vendor/local/share/gtk-doc/html/cairo/up-insensitive.png +0 -0
  371. data/vendor/local/share/gtk-doc/html/libxml2/libxml2-HTMLparser.html +4 -4
  372. data/vendor/local/share/gtk-doc/html/libxml2/libxml2-dict.html +2 -2
  373. data/vendor/local/share/gtk-doc/html/libxml2/libxml2-hash.html +2 -2
  374. data/vendor/local/share/gtk-doc/html/libxml2/libxml2-list.html +2 -2
  375. data/vendor/local/share/gtk-doc/html/libxml2/libxml2-schemasInternals.html +1 -1
  376. data/vendor/local/share/gtk-doc/html/libxml2/libxml2-tree.html +1 -1
  377. data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlerror.html +2 -2
  378. data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlreader.html +2 -2
  379. data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlstring.html +3 -3
  380. data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xpath.html +1 -1
  381. data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xpathInternals.html +1 -1
  382. data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xpointer.html +1 -1
  383. data/vendor/local/share/license/cairo/README +1 -1
  384. data/vendor/local/share/license/fontconfig/README +58 -2
  385. data/vendor/local/share/license/freetype/README +5 -5
  386. data/vendor/local/share/license/freetype/README.git +1 -1
  387. data/vendor/local/share/license/libpng/README +6 -6
  388. data/vendor/local/share/license/libxml2/README.zOS +212 -0
  389. data/vendor/local/share/man/man1/freetype-config.1 +44 -6
  390. data/vendor/local/share/man/man3/libpng.3 +106 -48
  391. data/vendor/local/share/man/man3/libpngpf.3 +4 -4
  392. data/vendor/local/share/man/man5/png.5 +5 -5
  393. metadata +175 -174
  394. data/vendor/local/share/gtk-doc/html/cairo/index.sgml +0 -764
@@ -7,16 +7,25 @@
7
7
  -->
8
8
  <alias binding="same">
9
9
  <family>Zapf Dingbats</family>
10
- <accept><family>Dingbats</family></accept>
10
+ <accept>
11
+ <family>D050000L</family>
12
+ <family>Dingbats</family>
13
+ </accept>
11
14
  </alias>
12
15
  <alias binding="same">
13
16
  <family>ITC Zapf Dingbats</family>
14
- <accept><family>Dingbats</family></accept>
17
+ <accept>
18
+ <family>D050000L</family>
19
+ <family>Dingbats</family>
20
+ </accept>
15
21
  </alias>
16
22
  <match target="pattern">
17
23
  <test name="family" compare="eq" ignore-blanks="true">
18
24
  <string>Symbol</string>
19
25
  </test>
26
+ <edit name="family" mode="append" binding="same">
27
+ <string>Standard Symbols PS</string>
28
+ </edit>
20
29
  <edit name="family" mode="append" binding="same">
21
30
  <string>Standard Symbols L</string>
22
31
  </edit>
@@ -227,6 +227,10 @@
227
227
  <family>Nimbus Mono</family>
228
228
  <default><family>monospace</family></default>
229
229
  </alias>
230
+ <alias>
231
+ <family>Nimbus Mono PS</family>
232
+ <default><family>monospace</family></default>
233
+ </alias>
230
234
  <alias>
231
235
  <family>Terminal</family>
232
236
  <default><family>monospace</family></default>
@@ -43,6 +43,7 @@
43
43
  <family>Luxi Mono</family>
44
44
  <family>Nimbus Mono L</family>
45
45
  <family>Nimbus Mono</family>
46
+ <family>Nimbus Mono PS</family>
46
47
  <family>Courier</family>
47
48
  </prefer>
48
49
  </alias>
@@ -87,9 +87,9 @@ cairo_pdf_surface_set_size (cairo_surface_t *surface,
87
87
 
88
88
  /**
89
89
  * cairo_pdf_outline_flags_t:
90
- * @CAIRO_BOOKMARK_FLAG_OPEN: The outline item defaults to open in the PDF viewer (Since 1.16)
91
- * @CAIRO_BOOKMARK_FLAG_BOLD: The outline item is displayed by the viewer in bold text (Since 1.16)
92
- * @CAIRO_BOOKMARK_FLAG_ITALIC: The outline item is displayed by the viewer in italic text (Since 1.16)
90
+ * @CAIRO_PDF_OUTLINE_FLAG_OPEN: The outline item defaults to open in the PDF viewer (Since 1.16)
91
+ * @CAIRO_PDF_OUTLINE_FLAG_BOLD: The outline item is displayed by the viewer in bold text (Since 1.16)
92
+ * @CAIRO_PDF_OUTLINE_FLAG_ITALIC: The outline item is displayed by the viewer in italic text (Since 1.16)
93
93
  *
94
94
  * #cairo_pdf_outline_flags_t is used by the
95
95
  * cairo_pdf_surface_add_outline() function specify the attributes of
@@ -99,9 +99,9 @@ cairo_pdf_surface_set_size (cairo_surface_t *surface,
99
99
  * Since: 1.16
100
100
  **/
101
101
  typedef enum _cairo_pdf_outline_flags {
102
- CAIRO_BOOKMARK_FLAG_OPEN = 0x1,
103
- CAIRO_BOOKMARK_FLAG_BOLD = 0x2,
104
- CAIRO_BOOKMARK_FLAG_ITALIC = 0x4,
102
+ CAIRO_PDF_OUTLINE_FLAG_OPEN = 0x1,
103
+ CAIRO_PDF_OUTLINE_FLAG_BOLD = 0x2,
104
+ CAIRO_PDF_OUTLINE_FLAG_ITALIC = 0x4,
105
105
  } cairo_pdf_outline_flags_t;
106
106
 
107
107
  #define CAIRO_PDF_OUTLINE_ROOT 0
@@ -110,7 +110,7 @@ cairo_public int
110
110
  cairo_pdf_surface_add_outline (cairo_surface_t *surface,
111
111
  int parent_id,
112
112
  const char *utf8,
113
- const char *dest,
113
+ const char *link_attribs,
114
114
  cairo_pdf_outline_flags_t flags);
115
115
 
116
116
  /**
@@ -120,7 +120,6 @@ cairo_pdf_surface_add_outline (cairo_surface_t *surface,
120
120
  * @CAIRO_PDF_METADATA_SUBJECT: The document subject (Since 1.16)
121
121
  * @CAIRO_PDF_METADATA_KEYWORDS: The document keywords (Since 1.16)
122
122
  * @CAIRO_PDF_METADATA_CREATOR: The document creator (Since 1.16)
123
- * @CAIRO_PDF_METADATA_TITLE: The document title (Since 1.16)
124
123
  * @CAIRO_PDF_METADATA_CREATE_DATE: The document creation date (Since 1.16)
125
124
  * @CAIRO_PDF_METADATA_MOD_DATE: The document modification date (Since 1.16)
126
125
  *
@@ -3,6 +3,6 @@
3
3
 
4
4
  #define CAIRO_VERSION_MAJOR 1
5
5
  #define CAIRO_VERSION_MINOR 15
6
- #define CAIRO_VERSION_MICRO 4
6
+ #define CAIRO_VERSION_MICRO 8
7
7
 
8
8
  #endif
@@ -52,7 +52,7 @@ typedef int FcBool;
52
52
 
53
53
  #define FC_MAJOR 2
54
54
  #define FC_MINOR 12
55
- #define FC_REVISION 1
55
+ #define FC_REVISION 4
56
56
 
57
57
  #define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION))
58
58
 
@@ -128,7 +128,8 @@ typedef int FcBool;
128
128
  #define FC_USER_CACHE_FILE ".fonts.cache-" FC_CACHE_VERSION
129
129
 
130
130
  /* Adjust outline rasterizer */
131
- #define FC_CHAR_WIDTH "charwidth" /* Int */
131
+ #define FC_CHARWIDTH "charwidth" /* Int */
132
+ #define FC_CHAR_WIDTH FC_CHARWIDTH
132
133
  #define FC_CHAR_HEIGHT "charheight"/* Int */
133
134
  #define FC_MATRIX "matrix" /* FcMatrix */
134
135
 
@@ -5,7 +5,7 @@
5
5
  /* */
6
6
  /* UNIX-specific configuration file (specification only). */
7
7
  /* */
8
- /* Copyright 1996-2016 by */
8
+ /* Copyright 1996-2017 by */
9
9
  /* David Turner, Robert Wilhelm, and Werner Lemberg. */
10
10
  /* */
11
11
  /* This file is part of the FreeType project, and may only be used, */
@@ -366,6 +366,15 @@ FT_BEGIN_HEADER
366
366
  #endif
367
367
 
368
368
 
369
+ #ifdef _WIN64
370
+ /* only 64bit Windows uses the LLP64 data model, i.e., */
371
+ /* 32bit integers, 64bit pointers */
372
+ #define FT_UINT_TO_POINTER( x ) (void*)(unsigned __int64)(x)
373
+ #else
374
+ #define FT_UINT_TO_POINTER( x ) (void*)(unsigned long)(x)
375
+ #endif
376
+
377
+
369
378
  /*************************************************************************/
370
379
  /* */
371
380
  /* miscellaneous */
@@ -4,7 +4,7 @@
4
4
  /* */
5
5
  /* Build macros of the FreeType 2 library. */
6
6
  /* */
7
- /* Copyright 1996-2016 by */
7
+ /* Copyright 1996-2017 by */
8
8
  /* David Turner, Robert Wilhelm, and Werner Lemberg. */
9
9
  /* */
10
10
  /* This file is part of the FreeType project, and may only be used, */
@@ -354,6 +354,19 @@
354
354
  #define FT_TRUETYPE_DRIVER_H <freetype/ftttdrv.h>
355
355
 
356
356
 
357
+ /*************************************************************************
358
+ *
359
+ * @macro:
360
+ * FT_PCF_DRIVER_H
361
+ *
362
+ * @description:
363
+ * A macro used in #include statements to name the file containing
364
+ * structures and macros related to the PCF driver module.
365
+ *
366
+ */
367
+ #define FT_PCF_DRIVER_H <freetype/ftpcfdrv.h>
368
+
369
+
357
370
  /*************************************************************************
358
371
  *
359
372
  * @macro:
@@ -4,7 +4,7 @@
4
4
  /* */
5
5
  /* User-selectable configuration macros (specification only). */
6
6
  /* */
7
- /* Copyright 1996-2016 by */
7
+ /* Copyright 1996-2017 by */
8
8
  /* David Turner, Robert Wilhelm, and Werner Lemberg. */
9
9
  /* */
10
10
  /* This file is part of the FreeType project, and may only be used, */
@@ -82,8 +82,8 @@ FT_BEGIN_HEADER
82
82
  /* to control the various font drivers and modules. The controllable */
83
83
  /* properties are listed in the section `Controlling FreeType Modules' */
84
84
  /* in the reference's table of contents; currently there are properties */
85
- /* for the auto-hinter (file `ftautoh.h'), CFF (file `ftcffdrv.h'), and */
86
- /* TrueType (file `ftttdrv.h'). */
85
+ /* for the auto-hinter (file `ftautoh.h'), CFF (file `ftcffdrv.h'), */
86
+ /* TrueType (file `ftttdrv.h'), and PCF (file `ftpcfdrv.h'). */
87
87
  /* */
88
88
  /* `FREETYPE_PROPERTIES' has the following syntax form (broken here into */
89
89
  /* multiple lines for better readability). */
@@ -107,20 +107,17 @@ FT_BEGIN_HEADER
107
107
 
108
108
  /*************************************************************************/
109
109
  /* */
110
- /* Uncomment the line below if you want to activate sub-pixel rendering */
111
- /* (a.k.a. LCD rendering, or ClearType) in this build of the library. */
110
+ /* Uncomment the line below if you want to activate LCD rendering */
111
+ /* technology similar to ClearType in this build of the library. This */
112
+ /* technology triples the resolution in the direction color subpixels. */
113
+ /* To mitigate color fringes inherent to this technology, you also need */
114
+ /* to explicitly set up LCD filtering. */
112
115
  /* */
113
116
  /* Note that this feature is covered by several Microsoft patents */
114
117
  /* and should not be activated in any default build of the library. */
115
- /* */
116
- /* This macro has no impact on the FreeType API, only on its */
117
- /* _implementation_. For example, using FT_RENDER_MODE_LCD when calling */
118
- /* FT_Render_Glyph still generates a bitmap that is 3 times wider than */
119
- /* the original size in case this macro isn't defined; however, each */
120
- /* triplet of subpixels has R=G=B. */
121
- /* */
122
- /* This is done to allow FreeType clients to run unmodified, forcing */
123
- /* them to display normal gray-level anti-aliased glyphs. */
118
+ /* When this macro is not defined, FreeType offers alternative LCD */
119
+ /* rendering technology that produces excellent output without LCD */
120
+ /* filtering. */
124
121
  /* */
125
122
  /* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */
126
123
 
@@ -327,7 +324,7 @@ FT_BEGIN_HEADER
327
324
  /* */
328
325
  /* - The TrueType driver will provide its own set of glyph names, */
329
326
  /* if you build it to support postscript names in the TrueType */
330
- /* `post' table. */
327
+ /* `post' table, but will not synthesize a missing Unicode charmap. */
331
328
  /* */
332
329
  /* - The Type 1 driver will not be able to synthesize a Unicode */
333
330
  /* charmap out of the glyphs found in the fonts. */
@@ -640,17 +637,21 @@ FT_BEGIN_HEADER
640
637
  /* [1] for a technical overview on what this means. See `ttinterp.h' */
641
638
  /* for more details on the LEAN option. */
642
639
  /* */
643
- /* There are three options. */
640
+ /* There are three possible values. */
644
641
  /* */
645
- /* 1. This option is associated with the `Infinality' moniker. */
646
- /* Contributed by an individual nicknamed Infinality with the goal of */
642
+ /* Value 1: */
643
+ /* This value is associated with the `Infinality' moniker, */
644
+ /* contributed by an individual nicknamed Infinality with the goal of */
647
645
  /* making TrueType fonts render better than on Windows. A high */
648
646
  /* amount of configurability and flexibility, down to rules for */
649
647
  /* single glyphs in fonts, but also very slow. Its experimental and */
650
648
  /* slow nature and the original developer losing interest meant that */
651
649
  /* this option was never enabled in default builds. */
652
650
  /* */
653
- /* 2. The new default mode for the TrueType driver. The Infinality code */
651
+ /* The corresponding interpreter version is v38. */
652
+ /* */
653
+ /* Value 2: */
654
+ /* The new default mode for the TrueType driver. The Infinality code */
654
655
  /* base was stripped to the bare minimum and all configurability */
655
656
  /* removed in the name of speed and simplicity. The configurability */
656
657
  /* was mainly aimed at legacy fonts like Arial, Times New Roman, or */
@@ -660,14 +661,19 @@ FT_BEGIN_HEADER
660
661
  /* that modern and web fonts render well while legacy fonts render */
661
662
  /* okay. */
662
663
  /* */
663
- /* 3. Compile both. */
664
+ /* The corresponding interpreter version is v40. */
665
+ /* */
666
+ /* Value 3: */
667
+ /* Compile both, making both v38 and v40 available (the latter is the */
668
+ /* default). */
664
669
  /* */
665
670
  /* By undefining these, you get rendering behavior like on Windows */
666
671
  /* without ClearType, i.e., Windows XP without ClearType enabled and */
667
672
  /* Win9x (interpreter version v35). Or not, depending on how much */
668
673
  /* hinting blood and testing tears the font designer put into a given */
669
674
  /* font. If you define one or both subpixel hinting options, you can */
670
- /* switch between between v35 and the ones you define. */
675
+ /* switch between between v35 and the ones you define (using */
676
+ /* `FT_Property_Set'). */
671
677
  /* */
672
678
  /* This option requires TT_CONFIG_OPTION_BYTECODE_INTERPRETER to be */
673
679
  /* defined. */
@@ -832,6 +838,33 @@ FT_BEGIN_HEADER
832
838
  /* #define CFF_CONFIG_OPTION_OLD_ENGINE */
833
839
 
834
840
 
841
+ /*************************************************************************/
842
+ /*************************************************************************/
843
+ /**** ****/
844
+ /**** P C F D R I V E R C O N F I G U R A T I O N ****/
845
+ /**** ****/
846
+ /*************************************************************************/
847
+ /*************************************************************************/
848
+
849
+
850
+ /*************************************************************************/
851
+ /* */
852
+ /* There are many PCF fonts just called `Fixed' which look completely */
853
+ /* different, and which have nothing to do with each other. When */
854
+ /* selecting `Fixed' in KDE or Gnome one gets results that appear rather */
855
+ /* random, the style changes often if one changes the size and one */
856
+ /* cannot select some fonts at all. This option makes the PCF module */
857
+ /* prepend the foundry name (plus a space) to the family name. */
858
+ /* */
859
+ /* We also check whether we have `wide' characters; all put together, we */
860
+ /* get family names like `Sony Fixed' or `Misc Fixed Wide'. */
861
+ /* */
862
+ /* If this option is activated, it can be controlled with the */
863
+ /* `no-long-family-names' property of the pcf driver module. */
864
+ /* */
865
+ /* #define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES */
866
+
867
+
835
868
  /*************************************************************************/
836
869
  /*************************************************************************/
837
870
  /**** ****/
@@ -850,7 +883,9 @@ FT_BEGIN_HEADER
850
883
 
851
884
  /*************************************************************************/
852
885
  /* */
853
- /* Compile autofit module with Indic script support. */
886
+ /* Compile autofit module with fallback Indic script support, covering */
887
+ /* some scripts that the `latin' submodule of the autofit module doesn't */
888
+ /* (yet) handle. */
854
889
  /* */
855
890
  #define AF_CONFIG_OPTION_INDIC
856
891
 
@@ -869,6 +904,26 @@ FT_BEGIN_HEADER
869
904
  /* */
870
905
  #define AF_CONFIG_OPTION_USE_WARPER
871
906
 
907
+ /*************************************************************************/
908
+ /* */
909
+ /* Use TrueType-like size metrics for `light' auto-hinting. */
910
+ /* */
911
+ /* It is strongly recommended to avoid this option, which exists only to */
912
+ /* help some legacy applications retain its appearance and behaviour */
913
+ /* with respect to auto-hinted TrueType fonts. */
914
+ /* */
915
+ /* The very reason this option exists at all are GNU/Linux distributions */
916
+ /* like Fedora that did not un-patch the following change (which was */
917
+ /* present in FreeType between versions 2.4.6 and 2.7.1, inclusive). */
918
+ /* */
919
+ /* 2011-07-16 Steven Chu <steven.f.chu@gmail.com> */
920
+ /* */
921
+ /* [truetype] Fix metrics on size request for scalable fonts. */
922
+ /* */
923
+ /* This problematic commit is now reverted (more or less). */
924
+ /* */
925
+ /* #define AF_CONFIG_OPTION_TT_SIZE_METRICS */
926
+
872
927
  /* */
873
928
 
874
929
 
@@ -886,6 +941,7 @@ FT_BEGIN_HEADER
886
941
  #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
887
942
  #define TT_USE_BYTECODE_INTERPRETER
888
943
 
944
+ #ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
889
945
  #if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 1
890
946
  #define TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
891
947
  #endif
@@ -893,6 +949,7 @@ FT_BEGIN_HEADER
893
949
  #if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 2
894
950
  #define TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
895
951
  #endif
952
+ #endif
896
953
  #endif
897
954
 
898
955
 
@@ -5,7 +5,7 @@
5
5
  /* ANSI-specific library and header configuration file (specification */
6
6
  /* only). */
7
7
  /* */
8
- /* Copyright 2002-2016 by */
8
+ /* Copyright 2002-2017 by */
9
9
  /* David Turner, Robert Wilhelm, and Werner Lemberg. */
10
10
  /* */
11
11
  /* This file is part of the FreeType project, and may only be used, */
@@ -4,7 +4,7 @@
4
4
  /* */
5
5
  /* FreeType high-level API and common types (specification only). */
6
6
  /* */
7
- /* Copyright 1996-2016 by */
7
+ /* Copyright 1996-2017 by */
8
8
  /* David Turner, Robert Wilhelm, and Werner Lemberg. */
9
9
  /* */
10
10
  /* This file is part of the FreeType project, and may only be used, */
@@ -175,6 +175,7 @@ FT_BEGIN_HEADER
175
175
  /* FT_Done_Face */
176
176
  /* FT_Reference_Face */
177
177
  /* FT_New_Memory_Face */
178
+ /* FT_Face_Properties */
178
179
  /* FT_Open_Face */
179
180
  /* FT_Open_Args */
180
181
  /* FT_Parameter */
@@ -265,8 +266,8 @@ FT_BEGIN_HEADER
265
266
  /* FT_Glyph_Metrics */
266
267
  /* */
267
268
  /* <Description> */
268
- /* A structure used to model the metrics of a single glyph. The */
269
- /* values are expressed in 26.6 fractional pixel format; if the flag */
269
+ /* A structure to model the metrics of a single glyph. The values */
270
+ /* are expressed in 26.6 fractional pixel format; if the flag */
270
271
  /* @FT_LOAD_NO_SCALE has been used while loading the glyph, values */
271
272
  /* are expressed in font units instead. */
272
273
  /* */
@@ -305,6 +306,11 @@ FT_BEGIN_HEADER
305
306
  /* `horiAdvance' or `vertAdvance'; you have to manually adjust these */
306
307
  /* values to account for the added width and height. */
307
308
  /* */
309
+ /* FreeType doesn't use the `VORG' table data for CFF fonts because */
310
+ /* it doesn't have an interface to quickly retrieve the glyph height. */
311
+ /* The y~coordinate of the vertical origin can be simply computed as */
312
+ /* `vertBearingY + height' after loading a glyph. */
313
+ /* */
308
314
  typedef struct FT_Glyph_Metrics_
309
315
  {
310
316
  FT_Pos width;
@@ -349,10 +355,10 @@ FT_BEGIN_HEADER
349
355
  /* */
350
356
  /* <Note> */
351
357
  /* Windows FNT: */
352
- /* The nominal size given in a FNT font is not reliable. Thus when */
353
- /* the driver finds it incorrect, it sets `size' to some calculated */
354
- /* values and sets `x_ppem' and `y_ppem' to the pixel width and */
355
- /* height given in the font, respectively. */
358
+ /* The nominal size given in a FNT font is not reliable. If the */
359
+ /* driver finds it incorrect, it sets `size' to some calculated */
360
+ /* values, and `x_ppem' and `y_ppem' to the pixel width and height */
361
+ /* given in the font, respectively. */
356
362
  /* */
357
363
  /* TrueType embedded bitmaps: */
358
364
  /* `size', `width', and `height' values are not contained in the */
@@ -421,9 +427,9 @@ FT_BEGIN_HEADER
421
427
  /* FT_Module */
422
428
  /* */
423
429
  /* <Description> */
424
- /* A handle to a given FreeType module object. Each module can be a */
430
+ /* A handle to a given FreeType module object. A module can be a */
425
431
  /* font driver, a renderer, or anything else that provides services */
426
- /* to the formers. */
432
+ /* to the former. */
427
433
  /* */
428
434
  typedef struct FT_ModuleRec_* FT_Module;
429
435
 
@@ -434,8 +440,8 @@ FT_BEGIN_HEADER
434
440
  /* FT_Driver */
435
441
  /* */
436
442
  /* <Description> */
437
- /* A handle to a given FreeType font driver object. Each font driver */
438
- /* is a special module capable of creating faces from font files. */
443
+ /* A handle to a given FreeType font driver object. A font driver */
444
+ /* is a module capable of creating faces from font files. */
439
445
  /* */
440
446
  typedef struct FT_DriverRec_* FT_Driver;
441
447
 
@@ -446,10 +452,10 @@ FT_BEGIN_HEADER
446
452
  /* FT_Renderer */
447
453
  /* */
448
454
  /* <Description> */
449
- /* A handle to a given FreeType renderer. A renderer is a special */
450
- /* module in charge of converting a glyph image to a bitmap, when */
451
- /* necessary. Each renderer supports a given glyph image format, and */
452
- /* one or more target surface depths. */
455
+ /* A handle to a given FreeType renderer. A renderer is a module in */
456
+ /* charge of converting a glyph's outline image to a bitmap. It */
457
+ /* supports a single glyph image format, and one or more target */
458
+ /* surface depths. */
453
459
  /* */
454
460
  typedef struct FT_RendererRec_* FT_Renderer;
455
461
 
@@ -467,15 +473,15 @@ FT_BEGIN_HEADER
467
473
  /* FT_Face */
468
474
  /* */
469
475
  /* <Description> */
470
- /* A handle to a given typographic face object. A face object models */
471
- /* a given typeface, in a given style. */
476
+ /* A handle to a typographic face object. A face object models a */
477
+ /* given typeface, in a given style. */
472
478
  /* */
473
479
  /* <Note> */
474
- /* Each face object also owns a single @FT_GlyphSlot object, as well */
480
+ /* A face object also owns a single @FT_GlyphSlot object, as well */
475
481
  /* as one or more @FT_Size objects. */
476
482
  /* */
477
483
  /* Use @FT_New_Face or @FT_Open_Face to create a new face object from */
478
- /* a given filepathname or a custom input stream. */
484
+ /* a given filepath or a custom input stream. */
479
485
  /* */
480
486
  /* Use @FT_Done_Face to destroy it (along with its slot and sizes). */
481
487
  /* */
@@ -500,11 +506,11 @@ FT_BEGIN_HEADER
500
506
  /* FT_Size */
501
507
  /* */
502
508
  /* <Description> */
503
- /* A handle to an object used to model a face scaled to a given */
509
+ /* A handle to an object that models a face scaled to a given */
504
510
  /* character size. */
505
511
  /* */
506
512
  /* <Note> */
507
- /* Each @FT_Face has an _active_ @FT_Size object that is used by */
513
+ /* An @FT_Face has one _active_ @FT_Size object that is used by */
508
514
  /* functions like @FT_Load_Glyph to determine the scaling */
509
515
  /* transformation that in turn is used to load and hint glyphs and */
510
516
  /* metrics. */
@@ -531,9 +537,8 @@ FT_BEGIN_HEADER
531
537
  /* FT_GlyphSlot */
532
538
  /* */
533
539
  /* <Description> */
534
- /* A handle to a given `glyph slot'. A slot is a container where it */
535
- /* is possible to load any of the glyphs contained in its parent */
536
- /* face. */
540
+ /* A handle to a given `glyph slot'. A slot is a container that can */
541
+ /* hold any of the glyphs contained in its parent face. */
537
542
  /* */
538
543
  /* In other words, each time you call @FT_Load_Glyph or */
539
544
  /* @FT_Load_Char, the slot's content is erased by the new glyph data, */
@@ -552,13 +557,14 @@ FT_BEGIN_HEADER
552
557
  /* FT_CharMap */
553
558
  /* */
554
559
  /* <Description> */
555
- /* A handle to a given character map. A charmap is used to translate */
556
- /* character codes in a given encoding into glyph indexes for its */
557
- /* parent's face. Some font formats may provide several charmaps per */
558
- /* font. */
560
+ /* A handle to a character map (usually abbreviated to `charmap'). A */
561
+ /* charmap is used to translate character codes in a given encoding */
562
+ /* into glyph indexes for its parent's face. Some font formats may */
563
+ /* provide several charmaps per font. */
559
564
  /* */
560
565
  /* Each face object owns zero or more charmaps, but only one of them */
561
- /* can be `active' and used by @FT_Get_Char_Index or @FT_Load_Char. */
566
+ /* can be `active', providing the data used by @FT_Get_Char_Index or */
567
+ /* @FT_Load_Char. */
562
568
  /* */
563
569
  /* The list of available charmaps in a face is available through the */
564
570
  /* `face->num_charmaps' and `face->charmaps' fields of @FT_FaceRec. */
@@ -569,7 +575,8 @@ FT_BEGIN_HEADER
569
575
  /* <Note> */
570
576
  /* When a new face is created (either through @FT_New_Face or */
571
577
  /* @FT_Open_Face), the library looks for a Unicode charmap within */
572
- /* the list and automatically activates it. */
578
+ /* the list and automatically activates it. If there is no Unicode */
579
+ /* charmap, FreeType doesn't set an `active' charmap. */
573
580
  /* */
574
581
  /* <Also> */
575
582
  /* See @FT_CharMapRec for the publicly accessible fields of a given */
@@ -615,8 +622,8 @@ FT_BEGIN_HEADER
615
622
  /* FT_Encoding */
616
623
  /* */
617
624
  /* <Description> */
618
- /* An enumeration used to specify character sets supported by */
619
- /* charmaps. Used in the @FT_Select_Charmap API function. */
625
+ /* An enumeration to specify character sets supported by charmaps. */
626
+ /* Used in the @FT_Select_Charmap API function. */
620
627
  /* */
621
628
  /* <Note> */
622
629
  /* Despite the name, this enumeration lists specific character */
@@ -630,18 +637,17 @@ FT_BEGIN_HEADER
630
637
  /* The encoding value~0 is reserved. */
631
638
  /* */
632
639
  /* FT_ENCODING_UNICODE :: */
633
- /* Corresponds to the Unicode character set. This value covers */
634
- /* all versions of the Unicode repertoire, including ASCII and */
635
- /* Latin-1. Most fonts include a Unicode charmap, but not all */
636
- /* of them. */
640
+ /* The Unicode character set. This value covers all versions of */
641
+ /* the Unicode repertoire, including ASCII and Latin-1. Most fonts */
642
+ /* include a Unicode charmap, but not all of them. */
637
643
  /* */
638
644
  /* For example, if you want to access Unicode value U+1F028 (and */
639
645
  /* the font contains it), use value 0x1F028 as the input value for */
640
646
  /* @FT_Get_Char_Index. */
641
647
  /* */
642
648
  /* FT_ENCODING_MS_SYMBOL :: */
643
- /* Corresponds to the Microsoft Symbol encoding, used to encode */
644
- /* mathematical symbols and wingdings. For more information, see */
649
+ /* Microsoft Symbol encoding, used to encode mathematical symbols */
650
+ /* and wingdings. For more information, see */
645
651
  /* `http://www.microsoft.com/typography/otspec/recom.htm', */
646
652
  /* `http://www.kostis.net/charsets/symbol.htm', and */
647
653
  /* `http://www.kostis.net/charsets/wingding.htm'. */
@@ -650,60 +656,60 @@ FT_BEGIN_HEADER
650
656
  /* Area) in the range U+F020-U+F0FF. */
651
657
  /* */
652
658
  /* FT_ENCODING_SJIS :: */
653
- /* Corresponds to Japanese SJIS encoding. More info at */
654
- /* `http://en.wikipedia.org/wiki/Shift_JIS'. */
655
- /* See note on multi-byte encodings below. */
659
+ /* Shift JIS encoding for Japanese. More info at */
660
+ /* `http://en.wikipedia.org/wiki/Shift_JIS'. See note on */
661
+ /* multi-byte encodings below. */
656
662
  /* */
657
- /* FT_ENCODING_GB2312 :: */
658
- /* Corresponds to an encoding system for Simplified Chinese as */
659
- /* used in mainland China. */
663
+ /* FT_ENCODING_PRC :: */
664
+ /* Corresponds to encoding systems mainly for Simplified Chinese as */
665
+ /* used in People's Republic of China (PRC). The encoding layout */
666
+ /* is based on GB~2312 and its supersets GBK and GB~18030. */
660
667
  /* */
661
668
  /* FT_ENCODING_BIG5 :: */
662
669
  /* Corresponds to an encoding system for Traditional Chinese as */
663
670
  /* used in Taiwan and Hong Kong. */
664
671
  /* */
665
672
  /* FT_ENCODING_WANSUNG :: */
666
- /* Corresponds to the Korean encoding system known as Wansung. */
673
+ /* Corresponds to the Korean encoding system known as Extended */
674
+ /* Wansung (MS Windows code page 949). */
667
675
  /* For more information see */
668
- /* `https://msdn.microsoft.com/en-US/goglobal/cc305154'. */
676
+ /* `http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit949.txt'. */
669
677
  /* */
670
678
  /* FT_ENCODING_JOHAB :: */
671
679
  /* The Korean standard character set (KS~C 5601-1992), which */
672
680
  /* corresponds to MS Windows code page 1361. This character set */
673
- /* includes all possible Hangeul character combinations. */
681
+ /* includes all possible Hangul character combinations. */
674
682
  /* */
675
683
  /* FT_ENCODING_ADOBE_LATIN_1 :: */
676
684
  /* Corresponds to a Latin-1 encoding as defined in a Type~1 */
677
685
  /* PostScript font. It is limited to 256 character codes. */
678
686
  /* */
679
687
  /* FT_ENCODING_ADOBE_STANDARD :: */
680
- /* Corresponds to the Adobe Standard encoding, as found in Type~1, */
681
- /* CFF, and OpenType/CFF fonts. It is limited to 256 character */
682
- /* codes. */
688
+ /* Adobe Standard encoding, as found in Type~1, CFF, and */
689
+ /* OpenType/CFF fonts. It is limited to 256 character codes. */
683
690
  /* */
684
691
  /* FT_ENCODING_ADOBE_EXPERT :: */
685
- /* Corresponds to the Adobe Expert encoding, as found in Type~1, */
686
- /* CFF, and OpenType/CFF fonts. It is limited to 256 character */
687
- /* codes. */
692
+ /* Adobe Expert encoding, as found in Type~1, CFF, and OpenType/CFF */
693
+ /* fonts. It is limited to 256 character codes. */
688
694
  /* */
689
695
  /* FT_ENCODING_ADOBE_CUSTOM :: */
690
696
  /* Corresponds to a custom encoding, as found in Type~1, CFF, and */
691
697
  /* OpenType/CFF fonts. It is limited to 256 character codes. */
692
698
  /* */
693
699
  /* FT_ENCODING_APPLE_ROMAN :: */
694
- /* Corresponds to the 8-bit Apple roman encoding. Many TrueType */
695
- /* and OpenType fonts contain a charmap for this encoding, since */
696
- /* older versions of Mac OS are able to use it. */
700
+ /* Apple roman encoding. Many TrueType and OpenType fonts contain */
701
+ /* a charmap for this 8-bit encoding, since older versions of Mac */
702
+ /* OS are able to use it. */
697
703
  /* */
698
704
  /* FT_ENCODING_OLD_LATIN_2 :: */
699
- /* This value is deprecated and was never used nor reported by */
705
+ /* This value is deprecated and was neither used nor reported by */
700
706
  /* FreeType. Don't use or test for it. */
701
707
  /* */
702
708
  /* FT_ENCODING_MS_SJIS :: */
703
709
  /* Same as FT_ENCODING_SJIS. Deprecated. */
704
710
  /* */
705
711
  /* FT_ENCODING_MS_GB2312 :: */
706
- /* Same as FT_ENCODING_GB2312. Deprecated. */
712
+ /* Same as FT_ENCODING_PRC. Deprecated. */
707
713
  /* */
708
714
  /* FT_ENCODING_MS_BIG5 :: */
709
715
  /* Same as FT_ENCODING_BIG5. Deprecated. */
@@ -716,7 +722,7 @@ FT_BEGIN_HEADER
716
722
  /* */
717
723
  /* <Note> */
718
724
  /* By default, FreeType automatically synthesizes a Unicode charmap */
719
- /* for PostScript fonts, using their glyph names dictionaries. */
725
+ /* for PostScript fonts, using their glyph name dictionaries. */
720
726
  /* However, it also reports the encodings defined explicitly in the */
721
727
  /* font file, for the cases when they are needed, with the Adobe */
722
728
  /* values as well. */
@@ -736,7 +742,7 @@ FT_BEGIN_HEADER
736
742
  /* Russian). */
737
743
  /* */
738
744
  /* FT_ENCODING_NONE is set if `platform_id' is @TT_PLATFORM_MACINTOSH */
739
- /* and `encoding_id' is not @TT_MAC_ID_ROMAN (otherwise it is set to */
745
+ /* and `encoding_id' is not `TT_MAC_ID_ROMAN' (otherwise it is set to */
740
746
  /* FT_ENCODING_APPLE_ROMAN). */
741
747
  /* */
742
748
  /* If `platform_id' is @TT_PLATFORM_MACINTOSH, use the function */
@@ -748,9 +754,9 @@ FT_BEGIN_HEADER
748
754
  /* to get an idea how to do that. Basically, if the language ID */
749
755
  /* is~0, don't use it, otherwise subtract 1 from the language ID. */
750
756
  /* Then examine `encoding_id'. If, for example, `encoding_id' is */
751
- /* @TT_MAC_ID_ROMAN and the language ID (minus~1) is */
757
+ /* `TT_MAC_ID_ROMAN' and the language ID (minus~1) is */
752
758
  /* `TT_MAC_LANGID_GREEK', it is the Greek encoding, not Roman. */
753
- /* @TT_MAC_ID_ARABIC with `TT_MAC_LANGID_FARSI' means the Farsi */
759
+ /* `TT_MAC_ID_ARABIC' with `TT_MAC_LANGID_FARSI' means the Farsi */
754
760
  /* variant the Arabic encoding. */
755
761
  /* */
756
762
  typedef enum FT_Encoding_
@@ -761,14 +767,15 @@ FT_BEGIN_HEADER
761
767
  FT_ENC_TAG( FT_ENCODING_UNICODE, 'u', 'n', 'i', 'c' ),
762
768
 
763
769
  FT_ENC_TAG( FT_ENCODING_SJIS, 's', 'j', 'i', 's' ),
764
- FT_ENC_TAG( FT_ENCODING_GB2312, 'g', 'b', ' ', ' ' ),
770
+ FT_ENC_TAG( FT_ENCODING_PRC, 'g', 'b', ' ', ' ' ),
765
771
  FT_ENC_TAG( FT_ENCODING_BIG5, 'b', 'i', 'g', '5' ),
766
772
  FT_ENC_TAG( FT_ENCODING_WANSUNG, 'w', 'a', 'n', 's' ),
767
773
  FT_ENC_TAG( FT_ENCODING_JOHAB, 'j', 'o', 'h', 'a' ),
768
774
 
769
- /* for backwards compatibility */
775
+ /* for backward compatibility */
776
+ FT_ENCODING_GB2312 = FT_ENCODING_PRC,
770
777
  FT_ENCODING_MS_SJIS = FT_ENCODING_SJIS,
771
- FT_ENCODING_MS_GB2312 = FT_ENCODING_GB2312,
778
+ FT_ENCODING_MS_GB2312 = FT_ENCODING_PRC,
772
779
  FT_ENCODING_MS_BIG5 = FT_ENCODING_BIG5,
773
780
  FT_ENCODING_MS_WANSUNG = FT_ENCODING_WANSUNG,
774
781
  FT_ENCODING_MS_JOHAB = FT_ENCODING_JOHAB,
@@ -793,7 +800,7 @@ FT_BEGIN_HEADER
793
800
  #define ft_encoding_latin_1 FT_ENCODING_ADOBE_LATIN_1
794
801
  #define ft_encoding_latin_2 FT_ENCODING_OLD_LATIN_2
795
802
  #define ft_encoding_sjis FT_ENCODING_SJIS
796
- #define ft_encoding_gb2312 FT_ENCODING_GB2312
803
+ #define ft_encoding_gb2312 FT_ENCODING_PRC
797
804
  #define ft_encoding_big5 FT_ENCODING_BIG5
798
805
  #define ft_encoding_wansung FT_ENCODING_WANSUNG
799
806
  #define ft_encoding_johab FT_ENCODING_JOHAB
@@ -820,11 +827,11 @@ FT_BEGIN_HEADER
820
827
  /* */
821
828
  /* platform_id :: An ID number describing the platform for the */
822
829
  /* following encoding ID. This comes directly from */
823
- /* the TrueType specification and should be emulated */
824
- /* for other formats. */
830
+ /* the TrueType specification and gets emulated for */
831
+ /* other formats. */
825
832
  /* */
826
833
  /* encoding_id :: A platform specific encoding number. This also */
827
- /* comes from the TrueType specification and should be */
834
+ /* comes from the TrueType specification and gets */
828
835
  /* emulated similarly. */
829
836
  /* */
830
837
  typedef struct FT_CharMapRec_
@@ -852,8 +859,8 @@ FT_BEGIN_HEADER
852
859
  /* FT_Face_Internal */
853
860
  /* */
854
861
  /* <Description> */
855
- /* An opaque handle to an `FT_Face_InternalRec' structure, used to */
856
- /* model private data of a given @FT_Face object. */
862
+ /* An opaque handle to an `FT_Face_InternalRec' structure that models */
863
+ /* the private data of a given @FT_Face object. */
857
864
  /* */
858
865
  /* This structure might change between releases of FreeType~2 and is */
859
866
  /* not generally available to client applications. */
@@ -873,7 +880,7 @@ FT_BEGIN_HEADER
873
880
  /* <Fields> */
874
881
  /* num_faces :: The number of faces in the font file. Some */
875
882
  /* font formats can have multiple faces in */
876
- /* a font file. */
883
+ /* a single font file. */
877
884
  /* */
878
885
  /* face_index :: This field holds two different values. */
879
886
  /* Bits 0-15 are the index of the face in the */
@@ -881,14 +888,15 @@ FT_BEGIN_HEADER
881
888
  /* are set to~0 if there is only one face in */
882
889
  /* the font file. */
883
890
  /* */
884
- /* Bits 16-30 are relevant to GX variation */
885
- /* fonts only, holding the named instance */
886
- /* index for the current face index (starting */
887
- /* with value~1; value~0 indicates font access */
888
- /* without GX variation data). For non-GX */
889
- /* fonts, bits 16-30 are ignored. If we have */
890
- /* the third named instance of face~4, say, */
891
- /* `face_index' is set to 0x00030004. */
891
+ /* Bits 16-30 are relevant to GX and OpenType */
892
+ /* variation fonts only, holding the named */
893
+ /* instance index for the current face index */
894
+ /* (starting with value~1; value~0 indicates */
895
+ /* font access without a named instance). For */
896
+ /* non-variation fonts, bits 16-30 are */
897
+ /* ignored. If we have the third named */
898
+ /* instance of face~4, say, `face_index' is */
899
+ /* set to 0x00030004. */
892
900
  /* */
893
901
  /* Bit 31 is always zero (this is, */
894
902
  /* `face_index' is always a positive value). */
@@ -902,17 +910,21 @@ FT_BEGIN_HEADER
902
910
  /* @FT_STYLE_FLAG_XXX for the details. Bits */
903
911
  /* 16-30 hold the number of named instances */
904
912
  /* available for the current face if we have a */
905
- /* GX variation (sub)font. Bit 31 is always */
906
- /* zero (this is, `style_flags' is always a */
907
- /* positive value). */
913
+ /* GX or OpenType variation (sub)font. Bit 31 */
914
+ /* is always zero (this is, `style_flags' is */
915
+ /* always a positive value). Note that a */
916
+ /* variation font has always at least one */
917
+ /* named instance, namely the default */
918
+ /* instance. */
908
919
  /* */
909
920
  /* num_glyphs :: The number of glyphs in the face. If the */
910
921
  /* face is scalable and has sbits (see */
911
922
  /* `num_fixed_sizes'), it is set to the number */
912
923
  /* of outline glyphs. */
913
924
  /* */
914
- /* For CID-keyed fonts, this value gives the */
915
- /* highest CID used in the font. */
925
+ /* For CID-keyed fonts (not in an SFNT */
926
+ /* wrapper) this value gives the highest CID */
927
+ /* used in the font. */
916
928
  /* */
917
929
  /* family_name :: The face's family name. This is an ASCII */
918
930
  /* string, usually in English, that describes */
@@ -990,8 +1002,8 @@ FT_BEGIN_HEADER
990
1002
  /* expressed in font units. For font formats */
991
1003
  /* not having this information, it is set to */
992
1004
  /* `bbox.yMin'. Note that this field is */
993
- /* usually negative. Only relevant for */
994
- /* scalable formats. */
1005
+ /* negative for values below the baseline. */
1006
+ /* Only relevant for scalable formats. */
995
1007
  /* */
996
1008
  /* height :: This value is the vertical distance */
997
1009
  /* between two consecutive baselines, */
@@ -1034,6 +1046,12 @@ FT_BEGIN_HEADER
1034
1046
  /* Fields may be changed after a call to @FT_Attach_File or */
1035
1047
  /* @FT_Attach_Stream. */
1036
1048
  /* */
1049
+ /* For an OpenType variation font, the values of the following fields */
1050
+ /* can change after a call to @FT_Set_Var_Design_Coordinates (and */
1051
+ /* friends) if the font contains an `MVAR' table: `ascender', */
1052
+ /* `descender', `height', `underline_position', and */
1053
+ /* `underline_thickness'. */
1054
+ /* */
1037
1055
  typedef struct FT_FaceRec_
1038
1056
  {
1039
1057
  FT_Long num_faces;
@@ -1105,49 +1123,51 @@ FT_BEGIN_HEADER
1105
1123
  /* */
1106
1124
  /* <Values> */
1107
1125
  /* FT_FACE_FLAG_SCALABLE :: */
1108
- /* Indicates that the face contains outline glyphs. This doesn't */
1109
- /* prevent bitmap strikes, i.e., a face can have both this and */
1126
+ /* The face contains outline glyphs. Note that a face can contain */
1127
+ /* bitmap strikes also, i.e., a face can have both this flag and */
1110
1128
  /* @FT_FACE_FLAG_FIXED_SIZES set. */
1111
1129
  /* */
1112
1130
  /* FT_FACE_FLAG_FIXED_SIZES :: */
1113
- /* Indicates that the face contains bitmap strikes. See also the */
1131
+ /* The face contains bitmap strikes. See also the */
1114
1132
  /* `num_fixed_sizes' and `available_sizes' fields of @FT_FaceRec. */
1115
1133
  /* */
1116
1134
  /* FT_FACE_FLAG_FIXED_WIDTH :: */
1117
- /* Indicates that the face contains fixed-width characters (like */
1118
- /* Courier, Lucido, MonoType, etc.). */
1135
+ /* The face contains fixed-width characters (like Courier, Lucida, */
1136
+ /* MonoType, etc.). */
1119
1137
  /* */
1120
1138
  /* FT_FACE_FLAG_SFNT :: */
1121
- /* Indicates that the face uses the `sfnt' storage scheme. For */
1122
- /* now, this means TrueType and OpenType. */
1139
+ /* The face uses the SFNT storage scheme. For now, this means */
1140
+ /* TrueType and OpenType. */
1123
1141
  /* */
1124
1142
  /* FT_FACE_FLAG_HORIZONTAL :: */
1125
- /* Indicates that the face contains horizontal glyph metrics. This */
1126
- /* should be set for all common formats. */
1143
+ /* The face contains horizontal glyph metrics. This should be set */
1144
+ /* for all common formats. */
1127
1145
  /* */
1128
1146
  /* FT_FACE_FLAG_VERTICAL :: */
1129
- /* Indicates that the face contains vertical glyph metrics. This */
1130
- /* is only available in some formats, not all of them. */
1147
+ /* The face contains vertical glyph metrics. This is only */
1148
+ /* available in some formats, not all of them. */
1131
1149
  /* */
1132
1150
  /* FT_FACE_FLAG_KERNING :: */
1133
- /* Indicates that the face contains kerning information. If set, */
1134
- /* the kerning distance can be retrieved through the function */
1135
- /* @FT_Get_Kerning. Otherwise the function always return the */
1136
- /* vector (0,0). Note that FreeType doesn't handle kerning data */
1137
- /* from the `GPOS' table (as present in some OpenType fonts). */
1151
+ /* The face contains kerning information. If set, the kerning */
1152
+ /* distance can be retrieved using the function @FT_Get_Kerning. */
1153
+ /* Otherwise the function always return the vector (0,0). Note */
1154
+ /* that FreeType doesn't handle kerning data from the SFNT `GPOS' */
1155
+ /* table (as present in many OpenType fonts). */
1138
1156
  /* */
1139
1157
  /* FT_FACE_FLAG_FAST_GLYPHS :: */
1140
1158
  /* THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT. */
1141
1159
  /* */
1142
1160
  /* FT_FACE_FLAG_MULTIPLE_MASTERS :: */
1143
- /* Indicates that the font contains multiple masters and is capable */
1144
- /* of interpolating between them. See the multiple-masters */
1145
- /* specific API for details. */
1161
+ /* The face contains multiple masters and is capable of */
1162
+ /* interpolating between them. Supported formats are Adobe MM, */
1163
+ /* TrueType GX, and OpenType variation fonts. */
1164
+ /* */
1165
+ /* See the multiple-masters specific API for details. */
1146
1166
  /* */
1147
1167
  /* FT_FACE_FLAG_GLYPH_NAMES :: */
1148
- /* Indicates that the font contains glyph names that can be */
1149
- /* retrieved through @FT_Get_Glyph_Name. Note that some TrueType */
1150
- /* fonts contain broken glyph name tables. Use the function */
1168
+ /* The face contains glyph names, which can be retrieved using */
1169
+ /* @FT_Get_Glyph_Name. Note that some TrueType fonts contain */
1170
+ /* broken glyph name tables. Use the function */
1151
1171
  /* @FT_Has_PS_Glyph_Names when needed. */
1152
1172
  /* */
1153
1173
  /* FT_FACE_FLAG_EXTERNAL_STREAM :: */
@@ -1156,31 +1176,31 @@ FT_BEGIN_HEADER
1156
1176
  /* when @FT_Done_Face is called. Don't read or test this flag. */
1157
1177
  /* */
1158
1178
  /* FT_FACE_FLAG_HINTER :: */
1159
- /* Set if the font driver has a hinting machine of its own. For */
1160
- /* example, with TrueType fonts, it makes sense to use data from */
1161
- /* the SFNT `gasp' table only if the native TrueType hinting engine */
1162
- /* (with the bytecode interpreter) is available and active. */
1179
+ /* The font driver has a hinting machine of its own. For example, */
1180
+ /* with TrueType fonts, it makes sense to use data from the SFNT */
1181
+ /* `gasp' table only if the native TrueType hinting engine (with */
1182
+ /* the bytecode interpreter) is available and active. */
1163
1183
  /* */
1164
1184
  /* FT_FACE_FLAG_CID_KEYED :: */
1165
- /* Set if the font is CID-keyed. In that case, the font is not */
1166
- /* accessed by glyph indices but by CID values. For subsetted */
1167
- /* CID-keyed fonts this has the consequence that not all index */
1168
- /* values are a valid argument to FT_Load_Glyph. Only the CID */
1169
- /* values for which corresponding glyphs in the subsetted font */
1170
- /* exist make FT_Load_Glyph return successfully; in all other cases */
1171
- /* you get an `FT_Err_Invalid_Argument' error. */
1172
- /* */
1173
- /* Note that CID-keyed fonts that are in an SFNT wrapper don't */
1174
- /* have this flag set since the glyphs are accessed in the normal */
1175
- /* way (using contiguous indices); the `CID-ness' isn't visible to */
1176
- /* the application. */
1185
+ /* The face is CID-keyed. In that case, the face is not accessed */
1186
+ /* by glyph indices but by CID values. For subsetted CID-keyed */
1187
+ /* fonts this has the consequence that not all index values are a */
1188
+ /* valid argument to @FT_Load_Glyph. Only the CID values for which */
1189
+ /* corresponding glyphs in the subsetted font exist make */
1190
+ /* `FT_Load_Glyph' return successfully; in all other cases you get */
1191
+ /* an `FT_Err_Invalid_Argument' error. */
1192
+ /* */
1193
+ /* Note that CID-keyed fonts that are in an SFNT wrapper (this is, */
1194
+ /* all OpenType/CFF fonts) don't have this flag set since the */
1195
+ /* glyphs are accessed in the normal way (using contiguous */
1196
+ /* indices); the `CID-ness' isn't visible to the application. */
1177
1197
  /* */
1178
1198
  /* FT_FACE_FLAG_TRICKY :: */
1179
- /* Set if the font is `tricky', this is, it always needs the */
1180
- /* font format's native hinting engine to get a reasonable result. */
1181
- /* A typical example is the Chinese font `mingli.ttf' that uses */
1182
- /* TrueType bytecode instructions to move and scale all of its */
1183
- /* subglyphs. */
1199
+ /* The face is `tricky', this is, it always needs the font format's */
1200
+ /* native hinting engine to get a reasonable result. A typical */
1201
+ /* example is the old Chinese font `mingli.ttf' (but not */
1202
+ /* `mingliu.ttc') that uses TrueType bytecode instructions to move */
1203
+ /* and scale all of its subglyphs. */
1184
1204
  /* */
1185
1205
  /* It is not possible to auto-hint such fonts using */
1186
1206
  /* @FT_LOAD_FORCE_AUTOHINT; it will also ignore */
@@ -1192,8 +1212,8 @@ FT_BEGIN_HEADER
1192
1212
  /* tricky fonts; they are hard-coded in file `ttobjs.c'. */
1193
1213
  /* */
1194
1214
  /* FT_FACE_FLAG_COLOR :: */
1195
- /* Set if the font has color glyph tables. To access color glyphs */
1196
- /* use @FT_LOAD_COLOR. */
1215
+ /* The face has color glyph tables. To access color glyphs use */
1216
+ /* @FT_LOAD_COLOR. */
1197
1217
  /* */
1198
1218
  #define FT_FACE_FLAG_SCALABLE ( 1L << 0 )
1199
1219
  #define FT_FACE_FLAG_FIXED_SIZES ( 1L << 1 )
@@ -1265,7 +1285,7 @@ FT_BEGIN_HEADER
1265
1285
  * @description:
1266
1286
  * A macro that returns true whenever a face object contains a scalable
1267
1287
  * font face (true for TrueType, Type~1, Type~42, CID, OpenType/CFF,
1268
- * and PFR font formats.
1288
+ * and PFR font formats).
1269
1289
  *
1270
1290
  */
1271
1291
  #define FT_IS_SCALABLE( face ) \
@@ -1369,7 +1389,7 @@ FT_BEGIN_HEADER
1369
1389
  *
1370
1390
  * @description:
1371
1391
  * A macro that returns true whenever a face object is a named instance
1372
- * of a GX variation font.
1392
+ * of a GX or OpenType variation font.
1373
1393
  *
1374
1394
  */
1375
1395
  #define FT_IS_NAMED_INSTANCE( face ) \
@@ -1428,15 +1448,15 @@ FT_BEGIN_HEADER
1428
1448
  /* FT_STYLE_FLAG_XXX */
1429
1449
  /* */
1430
1450
  /* <Description> */
1431
- /* A list of bit flags used to indicate the style of a given face. */
1432
- /* These are used in the `style_flags' field of @FT_FaceRec. */
1451
+ /* A list of bit flags to indicate the style of a given face. These */
1452
+ /* are used in the `style_flags' field of @FT_FaceRec. */
1433
1453
  /* */
1434
1454
  /* <Values> */
1435
1455
  /* FT_STYLE_FLAG_ITALIC :: */
1436
- /* Indicates that a given face style is italic or oblique. */
1456
+ /* The face style is italic or oblique. */
1437
1457
  /* */
1438
1458
  /* FT_STYLE_FLAG_BOLD :: */
1439
- /* Indicates that a given face is bold. */
1459
+ /* The face is bold. */
1440
1460
  /* */
1441
1461
  /* <Note> */
1442
1462
  /* The style information as provided by FreeType is very basic. More */
@@ -1477,43 +1497,56 @@ FT_BEGIN_HEADER
1477
1497
  /* hence the term `ppem' (pixels per EM). It is also */
1478
1498
  /* referred to as `nominal height'. */
1479
1499
  /* */
1480
- /* x_scale :: A 16.16 fractional scaling value used to convert */
1500
+ /* x_scale :: A 16.16 fractional scaling value to convert */
1481
1501
  /* horizontal metrics from font units to 26.6 */
1482
1502
  /* fractional pixels. Only relevant for scalable */
1483
1503
  /* font formats. */
1484
1504
  /* */
1485
- /* y_scale :: A 16.16 fractional scaling value used to convert */
1505
+ /* y_scale :: A 16.16 fractional scaling value to convert */
1486
1506
  /* vertical metrics from font units to 26.6 */
1487
1507
  /* fractional pixels. Only relevant for scalable */
1488
1508
  /* font formats. */
1489
1509
  /* */
1490
- /* ascender :: The ascender in 26.6 fractional pixels. See */
1491
- /* @FT_FaceRec for the details. */
1510
+ /* ascender :: The ascender in 26.6 fractional pixels, rounded up */
1511
+ /* to an integer value. See @FT_FaceRec for the */
1512
+ /* details. */
1492
1513
  /* */
1493
- /* descender :: The descender in 26.6 fractional pixels. See */
1494
- /* @FT_FaceRec for the details. */
1514
+ /* descender :: The descender in 26.6 fractional pixels, rounded */
1515
+ /* down to an integer value. See @FT_FaceRec for the */
1516
+ /* details. */
1495
1517
  /* */
1496
- /* height :: The height in 26.6 fractional pixels. See */
1497
- /* @FT_FaceRec for the details. */
1518
+ /* height :: The height in 26.6 fractional pixels, rounded to */
1519
+ /* an integer value. See @FT_FaceRec for the */
1520
+ /* details. */
1498
1521
  /* */
1499
1522
  /* max_advance :: The maximum advance width in 26.6 fractional */
1500
- /* pixels. See @FT_FaceRec for the details. */
1523
+ /* pixels, rounded to an integer value. See */
1524
+ /* @FT_FaceRec for the details. */
1501
1525
  /* */
1502
1526
  /* <Note> */
1503
1527
  /* The scaling values, if relevant, are determined first during a */
1504
1528
  /* size changing operation. The remaining fields are then set by the */
1505
1529
  /* driver. For scalable formats, they are usually set to scaled */
1506
- /* values of the corresponding fields in @FT_FaceRec. */
1530
+ /* values of the corresponding fields in @FT_FaceRec. Some values */
1531
+ /* like ascender or descender are rounded for historical reasons; */
1532
+ /* more precise values (for outline fonts) can be derived by scaling */
1533
+ /* the corresponding @FT_FaceRec values manually, with code similar */
1534
+ /* to the following. */
1507
1535
  /* */
1508
- /* Note that due to glyph hinting, these values might not be exact */
1509
- /* for certain fonts. Thus they must be treated as unreliable */
1510
- /* with an error margin of at least one pixel! */
1536
+ /* { */
1537
+ /* scaled_ascender = FT_MulFix( face->root.ascender, */
1538
+ /* size_metrics->y_scale ); */
1539
+ /* } */
1540
+ /* */
1541
+ /* Note that due to glyph hinting and the selected rendering mode */
1542
+ /* these values are usually not exact; consequently, they must be */
1543
+ /* treated as unreliable with an error margin of at least one pixel! */
1511
1544
  /* */
1512
1545
  /* Indeed, the only way to get the exact metrics is to render _all_ */
1513
1546
  /* glyphs. As this would be a definite performance hit, it is up to */
1514
1547
  /* client applications to perform such computations. */
1515
1548
  /* */
1516
- /* The FT_Size_Metrics structure is valid for bitmap fonts also. */
1549
+ /* The `FT_Size_Metrics' structure is valid for bitmap fonts also. */
1517
1550
  /* */
1518
1551
  typedef struct FT_Size_Metrics_
1519
1552
  {
@@ -1653,8 +1686,8 @@ FT_BEGIN_HEADER
1653
1686
  /* contained in the glyph slot. Typically */
1654
1687
  /* @FT_GLYPH_FORMAT_BITMAP, */
1655
1688
  /* @FT_GLYPH_FORMAT_OUTLINE, or */
1656
- /* @FT_GLYPH_FORMAT_COMPOSITE, but others are */
1657
- /* possible. */
1689
+ /* @FT_GLYPH_FORMAT_COMPOSITE, but other values */
1690
+ /* are possible. */
1658
1691
  /* */
1659
1692
  /* bitmap :: This field is used as a bitmap descriptor */
1660
1693
  /* when the slot format is */
@@ -1669,16 +1702,15 @@ FT_BEGIN_HEADER
1669
1702
  /* glyph slot contains a bitmap. */
1670
1703
  /* */
1671
1704
  /* bitmap_top :: The bitmap's top bearing expressed in integer */
1672
- /* pixels. Remember that this is the distance */
1673
- /* from the baseline to the top-most glyph */
1674
- /* scanline, upwards y~coordinates being */
1675
- /* *positive*. */
1705
+ /* pixels. This is the distance from the */
1706
+ /* baseline to the top-most glyph scanline, */
1707
+ /* upwards y~coordinates being *positive*. */
1676
1708
  /* */
1677
1709
  /* outline :: The outline descriptor for the current glyph */
1678
1710
  /* image if its format is */
1679
1711
  /* @FT_GLYPH_FORMAT_OUTLINE. Once a glyph is */
1680
1712
  /* loaded, `outline' can be transformed, */
1681
- /* distorted, embolded, etc. However, it must */
1713
+ /* distorted, emboldened, etc. However, it must */
1682
1714
  /* not be freed. */
1683
1715
  /* */
1684
1716
  /* num_subglyphs :: The number of subglyphs in a composite glyph. */
@@ -1694,15 +1726,13 @@ FT_BEGIN_HEADER
1694
1726
  /* control_data :: Certain font drivers can also return the */
1695
1727
  /* control data for a given glyph image (e.g. */
1696
1728
  /* TrueType bytecode, Type~1 charstrings, etc.). */
1697
- /* This field is a pointer to such data. */
1729
+ /* This field is a pointer to such data; it is */
1730
+ /* currently internal to FreeType. */
1698
1731
  /* */
1699
1732
  /* control_len :: This is the length in bytes of the control */
1700
- /* data. */
1733
+ /* data. Currently internal to FreeType. */
1701
1734
  /* */
1702
- /* other :: Really wicked formats can use this pointer to */
1703
- /* present their own glyph image to client */
1704
- /* applications. Note that the application */
1705
- /* needs to know about the image format. */
1735
+ /* other :: Reserved. */
1706
1736
  /* */
1707
1737
  /* lsb_delta :: The difference between hinted and unhinted */
1708
1738
  /* left side bearing while auto-hinting is */
@@ -1719,7 +1749,7 @@ FT_BEGIN_HEADER
1719
1749
  /* formats). */
1720
1750
  /* */
1721
1751
  /* This image can later be converted into a bitmap by calling */
1722
- /* @FT_Render_Glyph. This function finds the current renderer for */
1752
+ /* @FT_Render_Glyph. This function searches the current renderer for */
1723
1753
  /* the native image's format, then invokes it. */
1724
1754
  /* */
1725
1755
  /* The renderer is in charge of transforming the native image through */
@@ -1732,29 +1762,55 @@ FT_BEGIN_HEADER
1732
1762
  /* `slot->format' is also changed to @FT_GLYPH_FORMAT_BITMAP. */
1733
1763
  /* */
1734
1764
  /* Here is a small pseudo code fragment that shows how to use */
1735
- /* `lsb_delta' and `rsb_delta': */
1765
+ /* `lsb_delta' and `rsb_delta' to do fractional positioning of */
1766
+ /* glyphs: */
1767
+ /* */
1768
+ /* { */
1769
+ /* FT_GlyphSlot slot = face->glyph; */
1770
+ /* FT_Pos origin_x = 0; */
1771
+ /* */
1772
+ /* */
1773
+ /* for all glyphs do */
1774
+ /* <load glyph with `FT_Load_Glyph'> */
1775
+ /* */
1776
+ /* FT_Outline_Translate( slot->outline, origin_x & 63, 0 ); */
1777
+ /* */
1778
+ /* <save glyph image, or render glyph, or ...> */
1779
+ /* */
1780
+ /* <compute kern between current and next glyph */
1781
+ /* and add it to `origin_x'> */
1782
+ /* */
1783
+ /* origin_x += slot->advance.x; */
1784
+ /* origin_x += slot->rsb_delta - slot->lsb_delta; */
1785
+ /* endfor */
1786
+ /* } */
1787
+ /* */
1788
+ /* Here is another small pseudo code fragment that shows how to use */
1789
+ /* `lsb_delta' and `rsb_delta' to improve integer positioning of */
1790
+ /* glyphs: */
1736
1791
  /* */
1737
1792
  /* { */
1738
- /* FT_Pos origin_x = 0; */
1739
- /* FT_Pos prev_rsb_delta = 0; */
1793
+ /* FT_GlyphSlot slot = face->glyph; */
1794
+ /* FT_Pos origin_x = 0; */
1795
+ /* FT_Pos prev_rsb_delta = 0; */
1740
1796
  /* */
1741
1797
  /* */
1742
1798
  /* for all glyphs do */
1743
- /* <compute kern between current and previous glyph and add it to */
1744
- /* `origin_x'> */
1799
+ /* <compute kern between current and previous glyph */
1800
+ /* and add it to `origin_x'> */
1745
1801
  /* */
1746
1802
  /* <load glyph with `FT_Load_Glyph'> */
1747
1803
  /* */
1748
- /* if ( prev_rsb_delta - face->glyph->lsb_delta >= 32 ) */
1804
+ /* if ( prev_rsb_delta - slot->lsb_delta > 32 ) */
1749
1805
  /* origin_x -= 64; */
1750
- /* else if ( prev_rsb_delta - face->glyph->lsb_delta < -32 ) */
1806
+ /* else if ( prev_rsb_delta - slot->lsb_delta < -31 ) */
1751
1807
  /* origin_x += 64; */
1752
1808
  /* */
1753
- /* prev_rsb_delta = face->glyph->rsb_delta; */
1809
+ /* prev_rsb_delta = slot->rsb_delta; */
1754
1810
  /* */
1755
1811
  /* <save glyph image, or render glyph, or ...> */
1756
1812
  /* */
1757
- /* origin_x += face->glyph->advance.x; */
1813
+ /* origin_x += slot->advance.x; */
1758
1814
  /* endfor */
1759
1815
  /* } */
1760
1816
  /* */
@@ -1828,7 +1884,8 @@ FT_BEGIN_HEADER
1828
1884
  /* <Note> */
1829
1885
  /* In case you want to provide your own memory allocating routines, */
1830
1886
  /* use @FT_New_Library instead, followed by a call to */
1831
- /* @FT_Add_Default_Modules (or a series of calls to @FT_Add_Module). */
1887
+ /* @FT_Add_Default_Modules (or a series of calls to @FT_Add_Module) */
1888
+ /* and @FT_Set_Default_Properties. */
1832
1889
  /* */
1833
1890
  /* See the documentation of @FT_Library and @FT_Face for */
1834
1891
  /* multi-threading issues. */
@@ -1836,6 +1893,11 @@ FT_BEGIN_HEADER
1836
1893
  /* If you need reference-counting (cf. @FT_Reference_Library), use */
1837
1894
  /* @FT_New_Library and @FT_Done_Library. */
1838
1895
  /* */
1896
+ /* If compilation option FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES is */
1897
+ /* set, this function reads the `FREETYPE_PROPERTIES' environment */
1898
+ /* variable to control driver properties. See sections @auto_hinter, */
1899
+ /* @cff_driver, @pcf_driver, and @tt_driver for more. */
1900
+ /* */
1839
1901
  FT_EXPORT( FT_Error )
1840
1902
  FT_Init_FreeType( FT_Library *alibrary );
1841
1903
 
@@ -1906,8 +1968,8 @@ FT_BEGIN_HEADER
1906
1968
  /* FT_Parameter */
1907
1969
  /* */
1908
1970
  /* <Description> */
1909
- /* A simple structure used to pass more or less generic parameters to */
1910
- /* @FT_Open_Face. */
1971
+ /* A simple structure to pass more or less generic parameters to */
1972
+ /* @FT_Open_Face and @FT_Face_Properties. */
1911
1973
  /* */
1912
1974
  /* <Fields> */
1913
1975
  /* tag :: A four-byte identification tag. */
@@ -1932,9 +1994,9 @@ FT_BEGIN_HEADER
1932
1994
  /* FT_Open_Args */
1933
1995
  /* */
1934
1996
  /* <Description> */
1935
- /* A structure used to indicate how to open a new font file or */
1936
- /* stream. A pointer to such a structure can be used as a parameter */
1937
- /* for the functions @FT_Open_Face and @FT_Attach_Stream. */
1997
+ /* A structure to indicate how to open a new font file or stream. A */
1998
+ /* pointer to such a structure can be used as a parameter for the */
1999
+ /* functions @FT_Open_Face and @FT_Attach_Stream. */
1938
2000
  /* */
1939
2001
  /* <Fields> */
1940
2002
  /* flags :: A set of bit flags indicating how to use the */
@@ -1949,9 +2011,10 @@ FT_BEGIN_HEADER
1949
2011
  /* stream :: A handle to a source stream object. */
1950
2012
  /* */
1951
2013
  /* driver :: This field is exclusively used by @FT_Open_Face; */
1952
- /* it simply specifies the font driver to use to open */
1953
- /* the face. If set to~0, FreeType tries to load the */
1954
- /* face with each one of the drivers in its list. */
2014
+ /* it simply specifies the font driver to use for */
2015
+ /* opening the face. If set to NULL, FreeType tries */
2016
+ /* to load the face with each one of the drivers in */
2017
+ /* its list. */
1955
2018
  /* */
1956
2019
  /* num_params :: The number of extra parameters. */
1957
2020
  /* */
@@ -1981,7 +2044,7 @@ FT_BEGIN_HEADER
1981
2044
  /* `num_params' and `params' is used. They are ignored otherwise. */
1982
2045
  /* */
1983
2046
  /* Ideally, both the `pathname' and `params' fields should be tagged */
1984
- /* as `const'; this is missing for API backwards compatibility. In */
2047
+ /* as `const'; this is missing for API backward compatibility. In */
1985
2048
  /* other words, applications should treat them as read-only. */
1986
2049
  /* */
1987
2050
  typedef struct FT_Open_Args_
@@ -2004,7 +2067,7 @@ FT_BEGIN_HEADER
2004
2067
  /* FT_New_Face */
2005
2068
  /* */
2006
2069
  /* <Description> */
2007
- /* This function calls @FT_Open_Face to open a font by its pathname. */
2070
+ /* Call @FT_Open_Face to open a font by its pathname. */
2008
2071
  /* */
2009
2072
  /* <InOut> */
2010
2073
  /* library :: A handle to the library resource. */
@@ -2039,8 +2102,8 @@ FT_BEGIN_HEADER
2039
2102
  /* FT_New_Memory_Face */
2040
2103
  /* */
2041
2104
  /* <Description> */
2042
- /* This function calls @FT_Open_Face to open a font that has been */
2043
- /* loaded into memory. */
2105
+ /* Call @FT_Open_Face to open a font that has been loaded into */
2106
+ /* memory. */
2044
2107
  /* */
2045
2108
  /* <InOut> */
2046
2109
  /* library :: A handle to the library resource. */
@@ -2092,20 +2155,21 @@ FT_BEGIN_HEADER
2092
2155
  /* with value~0). Set it to~0 if there is only one */
2093
2156
  /* face in the font file. */
2094
2157
  /* */
2095
- /* Bits 16-30 are relevant to GX variation fonts only, */
2096
- /* specifying the named instance index for the current */
2097
- /* face index (starting with value~1; value~0 makes */
2098
- /* FreeType ignore named instances). For non-GX fonts, */
2099
- /* bits 16-30 are ignored. Assuming that you want to */
2100
- /* access the third named instance in face~4, */
2101
- /* `face_index' should be set to 0x00030004. If you */
2102
- /* want to access face~4 without GX variation handling, */
2103
- /* simply set `face_index' to value~4. */
2104
- /* */
2105
- /* FT_Open_Face and its siblings can be used to quickly */
2106
- /* check whether the font format of a given font */
2107
- /* resource is supported by FreeType. In general, if */
2108
- /* the `face_index' argument is negative, the */
2158
+ /* Bits 16-30 are relevant to GX and OpenType variation */
2159
+ /* fonts only, specifying the named instance index for */
2160
+ /* the current face index (starting with value~1; */
2161
+ /* value~0 makes FreeType ignore named instances). For */
2162
+ /* non-variation fonts, bits 16-30 are ignored. */
2163
+ /* Assuming that you want to access the third named */
2164
+ /* instance in face~4, `face_index' should be set to */
2165
+ /* 0x00030004. If you want to access face~4 without */
2166
+ /* variation handling, simply set `face_index' to */
2167
+ /* value~4. */
2168
+ /* */
2169
+ /* `FT_Open_Face' and its siblings can be used to */
2170
+ /* quickly check whether the font format of a given */
2171
+ /* font resource is supported by FreeType. In general, */
2172
+ /* if the `face_index' argument is negative, the */
2109
2173
  /* function's return value is~0 if the font format is */
2110
2174
  /* recognized, or non-zero otherwise. The function */
2111
2175
  /* allocates a more or less empty face handle in */
@@ -2114,10 +2178,10 @@ FT_BEGIN_HEADER
2114
2178
  /* `face->num_faces' and `face->style_flags'. For any */
2115
2179
  /* negative value of `face_index', `face->num_faces' */
2116
2180
  /* gives the number of faces within the font file. For */
2117
- /* the negative value `-(N+1)' (with `N' a 16-bit */
2118
- /* value), bits 16-30 in `face->style_flags' give the */
2119
- /* number of named instances in face `N' if we have a */
2120
- /* GX variation font (or zero otherwise). After */
2181
+ /* the negative value `-(N+1)' (with `N' a non-negative */
2182
+ /* 16-bit value), bits 16-30 in `face->style_flags' */
2183
+ /* give the number of named instances in face `N' if we */
2184
+ /* have a variation font (or zero otherwise). After */
2121
2185
  /* examination, the returned @FT_Face structure should */
2122
2186
  /* be deallocated with a call to @FT_Done_Face. */
2123
2187
  /* */
@@ -2224,7 +2288,7 @@ FT_BEGIN_HEADER
2224
2288
  /* FT_Attach_File */
2225
2289
  /* */
2226
2290
  /* <Description> */
2227
- /* This function calls @FT_Attach_Stream to attach a file. */
2291
+ /* Call @FT_Attach_Stream to attach a file. */
2228
2292
  /* */
2229
2293
  /* <InOut> */
2230
2294
  /* face :: The target face object. */
@@ -2268,7 +2332,7 @@ FT_BEGIN_HEADER
2268
2332
  /* */
2269
2333
  /* Client applications are expected to know what they are doing */
2270
2334
  /* when invoking this function. Most drivers simply do not implement */
2271
- /* file attachments. */
2335
+ /* file or stream attachments. */
2272
2336
  /* */
2273
2337
  FT_EXPORT( FT_Error )
2274
2338
  FT_Attach_Stream( FT_Face face,
@@ -2352,11 +2416,11 @@ FT_BEGIN_HEADER
2352
2416
  /* FreeType silently uses outlines if there is no bitmap for a given */
2353
2417
  /* glyph index. */
2354
2418
  /* */
2355
- /* For GX variation fonts, a bitmap strike makes sense only if the */
2356
- /* default instance is active (this is, no glyph variation takes */
2357
- /* place); otherwise, FreeType simply ignores bitmap strikes. The */
2358
- /* same is true for all named instances that are different from the */
2359
- /* default instance. */
2419
+ /* For GX and OpenType variation fonts, a bitmap strike makes sense */
2420
+ /* only if the default instance is active (this is, no glyph */
2421
+ /* variation takes place); otherwise, FreeType simply ignores bitmap */
2422
+ /* strikes. The same is true for all named instances that are */
2423
+ /* different from the default instance. */
2360
2424
  /* */
2361
2425
  /* Don't use this function if you are using the FreeType cache API. */
2362
2426
  /* */
@@ -2389,7 +2453,7 @@ FT_BEGIN_HEADER
2389
2453
  /* */
2390
2454
  /* FT_SIZE_REQUEST_TYPE_REAL_DIM :: */
2391
2455
  /* The real dimension. The sum of the `ascender' and (minus of) */
2392
- /* the `descender' fields of @FT_FaceRec are used to determine both */
2456
+ /* the `descender' fields of @FT_FaceRec is used to determine both */
2393
2457
  /* scaling values. */
2394
2458
  /* */
2395
2459
  /* FT_SIZE_REQUEST_TYPE_BBOX :: */
@@ -2435,7 +2499,7 @@ FT_BEGIN_HEADER
2435
2499
  /* FT_Size_RequestRec */
2436
2500
  /* */
2437
2501
  /* <Description> */
2438
- /* A structure used to model a size request. */
2502
+ /* A structure to model a size request. */
2439
2503
  /* */
2440
2504
  /* <Fields> */
2441
2505
  /* type :: See @FT_Size_Request_Type. */
@@ -2448,14 +2512,16 @@ FT_BEGIN_HEADER
2448
2512
  /* */
2449
2513
  /* horiResolution :: The horizontal resolution (dpi, i.e., pixels per */
2450
2514
  /* inch). If set to zero, `width' is treated as a */
2451
- /* 26.6 fractional *pixel* value. */
2515
+ /* 26.6 fractional *pixel* value, which gets */
2516
+ /* internally rounded to an integer. */
2452
2517
  /* */
2453
2518
  /* vertResolution :: The vertical resolution (dpi, i.e., pixels per */
2454
2519
  /* inch). If set to zero, `height' is treated as a */
2455
- /* 26.6 fractional *pixel* value. */
2520
+ /* 26.6 fractional *pixel* value, which gets */
2521
+ /* internally rounded to an integer. */
2456
2522
  /* */
2457
2523
  /* <Note> */
2458
- /* If `width' is zero, then the horizontal scaling value is set equal */
2524
+ /* If `width' is zero, the horizontal scaling value is set equal */
2459
2525
  /* to the vertical scaling value, and vice versa. */
2460
2526
  /* */
2461
2527
  /* If `type' is FT_SIZE_REQUEST_TYPE_SCALES, `width' and `height' are */
@@ -2512,7 +2578,11 @@ FT_BEGIN_HEADER
2512
2578
  /* size is dependent entirely on how the size is defined in the */
2513
2579
  /* source face. The font designer chooses the final size of each */
2514
2580
  /* glyph relative to this size. For more information refer to */
2515
- /* `http://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html' */
2581
+ /* `https://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html'. */
2582
+ /* */
2583
+ /* Contrary to @FT_Set_Char_Size, this function doesn't have special */
2584
+ /* code to normalize zero-valued widths, heights, or resolutions */
2585
+ /* (which lead to errors in most cases). */
2516
2586
  /* */
2517
2587
  /* Don't use this function if you are using the FreeType cache API. */
2518
2588
  /* */
@@ -2527,8 +2597,7 @@ FT_BEGIN_HEADER
2527
2597
  /* FT_Set_Char_Size */
2528
2598
  /* */
2529
2599
  /* <Description> */
2530
- /* This function calls @FT_Request_Size to request the nominal size */
2531
- /* (in points). */
2600
+ /* Call @FT_Request_Size to request the nominal size (in points). */
2532
2601
  /* */
2533
2602
  /* <InOut> */
2534
2603
  /* face :: A handle to a target face object. */
@@ -2546,6 +2615,10 @@ FT_BEGIN_HEADER
2546
2615
  /* FreeType error code. 0~means success. */
2547
2616
  /* */
2548
2617
  /* <Note> */
2618
+ /* While this function allows fractional points as input values, the */
2619
+ /* resulting ppem value for the given resolution is always rounded to */
2620
+ /* the nearest integer. */
2621
+ /* */
2549
2622
  /* If either the character width or height is zero, it is set equal */
2550
2623
  /* to the other value. */
2551
2624
  /* */
@@ -2571,8 +2644,7 @@ FT_BEGIN_HEADER
2571
2644
  /* FT_Set_Pixel_Sizes */
2572
2645
  /* */
2573
2646
  /* <Description> */
2574
- /* This function calls @FT_Request_Size to request the nominal size */
2575
- /* (in pixels). */
2647
+ /* Call @FT_Request_Size to request the nominal size (in pixels). */
2576
2648
  /* */
2577
2649
  /* <InOut> */
2578
2650
  /* face :: A handle to the target face object. */
@@ -2586,8 +2658,8 @@ FT_BEGIN_HEADER
2586
2658
  /* FreeType error code. 0~means success. */
2587
2659
  /* */
2588
2660
  /* <Note> */
2589
- /* You should not rely on the resulting glyphs matching, or being */
2590
- /* constrained, to this pixel size. Refer to @FT_Request_Size to */
2661
+ /* You should not rely on the resulting glyphs matching or being */
2662
+ /* constrained to this pixel size. Refer to @FT_Request_Size to */
2591
2663
  /* understand how requested sizes relate to actual sizes. */
2592
2664
  /* */
2593
2665
  /* Don't use this function if you are using the FreeType cache API. */
@@ -2604,8 +2676,7 @@ FT_BEGIN_HEADER
2604
2676
  /* FT_Load_Glyph */
2605
2677
  /* */
2606
2678
  /* <Description> */
2607
- /* A function used to load a single glyph into the glyph slot of a */
2608
- /* face object. */
2679
+ /* Load a glyph into the glyph slot of a face object. */
2609
2680
  /* */
2610
2681
  /* <InOut> */
2611
2682
  /* face :: A handle to the target face object where the glyph */
@@ -2650,8 +2721,8 @@ FT_BEGIN_HEADER
2650
2721
  /* FT_Load_Char */
2651
2722
  /* */
2652
2723
  /* <Description> */
2653
- /* A function used to load a single glyph into the glyph slot of a */
2654
- /* face object, according to its character code. */
2724
+ /* Load a glyph into the glyph slot of a face object, accessed by its */
2725
+ /* character code. */
2655
2726
  /* */
2656
2727
  /* <InOut> */
2657
2728
  /* face :: A handle to a target face object where the glyph */
@@ -2673,6 +2744,10 @@ FT_BEGIN_HEADER
2673
2744
  /* <Note> */
2674
2745
  /* This function simply calls @FT_Get_Char_Index and @FT_Load_Glyph. */
2675
2746
  /* */
2747
+ /* Many fonts contain glyphs that can't be loaded by this function */
2748
+ /* since its glyph indices are not listed in any of the font's */
2749
+ /* charmaps. */
2750
+ /* */
2676
2751
  FT_EXPORT( FT_Error )
2677
2752
  FT_Load_Char( FT_Face face,
2678
2753
  FT_ULong char_code,
@@ -2685,8 +2760,8 @@ FT_BEGIN_HEADER
2685
2760
  * FT_LOAD_XXX
2686
2761
  *
2687
2762
  * @description:
2688
- * A list of bit field constants used with @FT_Load_Glyph to indicate
2689
- * what kind of operations to perform during glyph loading.
2763
+ * A list of bit field constants for @FT_Load_Glyph to indicate what
2764
+ * kind of operations to perform during glyph loading.
2690
2765
  *
2691
2766
  * @values:
2692
2767
  * FT_LOAD_DEFAULT ::
@@ -2698,13 +2773,13 @@ FT_BEGIN_HEADER
2698
2773
  * The bitmap data can be accessed from the glyph slot (see note
2699
2774
  * below).
2700
2775
  *
2701
- * 2. If no embedded bitmap is searched or found, FreeType looks for a
2702
- * scalable outline. If one is found, it is loaded from the font
2703
- * file, scaled to device pixels, then `hinted' to the pixel grid
2704
- * in order to optimize it. The outline data can be accessed from
2705
- * the glyph slot (see note below).
2776
+ * 2. If no embedded bitmap is searched for or found, FreeType looks
2777
+ * for a scalable outline. If one is found, it is loaded from
2778
+ * the font file, scaled to device pixels, then `hinted' to the
2779
+ * pixel grid in order to optimize it. The outline data can be
2780
+ * accessed from the glyph slot (see note below).
2706
2781
  *
2707
- * Note that by default, the glyph loader doesn't render outlines into
2782
+ * Note that by default the glyph loader doesn't render outlines into
2708
2783
  * bitmaps. The following flags are used to modify this default
2709
2784
  * behaviour to more specific and useful cases.
2710
2785
  *
@@ -2751,13 +2826,13 @@ FT_BEGIN_HEADER
2751
2826
  * various font formats.
2752
2827
  *
2753
2828
  * FT_LOAD_FORCE_AUTOHINT ::
2754
- * Indicates that the auto-hinter is preferred over the font's native
2755
- * hinter. See also the note below.
2829
+ * Prefer the auto-hinter over the font's native hinter. See also
2830
+ * the note below.
2756
2831
  *
2757
2832
  * FT_LOAD_PEDANTIC ::
2758
- * Indicates that the font driver should perform pedantic verifications
2759
- * during glyph loading. This is mostly used to detect broken glyphs
2760
- * in fonts. By default, FreeType tries to handle broken fonts also.
2833
+ * Make the font driver perform pedantic verifications during glyph
2834
+ * loading. This is mostly used to detect broken glyphs in fonts.
2835
+ * By default, FreeType tries to handle broken fonts also.
2761
2836
  *
2762
2837
  * In particular, errors from the TrueType bytecode engine are not
2763
2838
  * passed to the application if this flag is not set; this might
@@ -2765,17 +2840,16 @@ FT_BEGIN_HEADER
2765
2840
  * bytecode is buggy.
2766
2841
  *
2767
2842
  * FT_LOAD_NO_RECURSE ::
2768
- * Indicate that the font driver should not load composite glyphs
2769
- * recursively. Instead, it should set the `num_subglyph' and
2770
- * `subglyphs' values of the glyph slot accordingly, and set
2771
- * `glyph->format' to @FT_GLYPH_FORMAT_COMPOSITE. The description of
2772
- * subglyphs can then be accessed with @FT_Get_SubGlyph_Info.
2843
+ * Don't load composite glyphs recursively. Instead, the font
2844
+ * driver should set the `num_subglyph' and `subglyphs' values of
2845
+ * the glyph slot accordingly, and set `glyph->format' to
2846
+ * @FT_GLYPH_FORMAT_COMPOSITE. The description of subglyphs can
2847
+ * then be accessed with @FT_Get_SubGlyph_Info.
2773
2848
  *
2774
2849
  * This flag implies @FT_LOAD_NO_SCALE and @FT_LOAD_IGNORE_TRANSFORM.
2775
2850
  *
2776
2851
  * FT_LOAD_IGNORE_TRANSFORM ::
2777
- * Indicates that the transform matrix set by @FT_Set_Transform should
2778
- * be ignored.
2852
+ * Ignore the transform matrix set by @FT_Set_Transform.
2779
2853
  *
2780
2854
  * FT_LOAD_MONOCHROME ::
2781
2855
  * This flag is used with @FT_LOAD_RENDER to indicate that you want to
@@ -2787,36 +2861,34 @@ FT_BEGIN_HEADER
2787
2861
  * monochrome-optimized hinting algorithm is used.
2788
2862
  *
2789
2863
  * FT_LOAD_LINEAR_DESIGN ::
2790
- * Indicates that the `linearHoriAdvance' and `linearVertAdvance'
2791
- * fields of @FT_GlyphSlotRec should be kept in font units. See
2792
- * @FT_GlyphSlotRec for details.
2864
+ * Keep `linearHoriAdvance' and `linearVertAdvance' fields of
2865
+ * @FT_GlyphSlotRec in font units. See @FT_GlyphSlotRec for
2866
+ * details.
2793
2867
  *
2794
2868
  * FT_LOAD_NO_AUTOHINT ::
2795
- * Disable auto-hinter. See also the note below.
2869
+ * Disable the auto-hinter. See also the note below.
2796
2870
  *
2797
2871
  * FT_LOAD_COLOR ::
2798
- * This flag is used to request loading of color embedded-bitmap
2799
- * images. The resulting color bitmaps, if available, will have the
2800
- * @FT_PIXEL_MODE_BGRA format. When the flag is not used and color
2801
- * bitmaps are found, they will be converted to 256-level gray
2802
- * bitmaps transparently. Those bitmaps will be in the
2872
+ * Load embedded color bitmap images. The resulting color bitmaps,
2873
+ * if available, will have the @FT_PIXEL_MODE_BGRA format. If the
2874
+ * flag is not set and color bitmaps are found, they are converted
2875
+ * to 256-level gray bitmaps transparently, using the
2803
2876
  * @FT_PIXEL_MODE_GRAY format.
2804
2877
  *
2805
2878
  * FT_LOAD_COMPUTE_METRICS ::
2806
- * This flag sets computing glyph metrics without the use of bundled
2807
- * metrics tables (for example, the `hdmx' table in TrueType fonts).
2808
- * Well-behaving fonts have optimized bundled metrics and these should
2809
- * be used. This flag is mainly used by font validating or font
2879
+ * Compute glyph metrics from the glyph data, without the use of
2880
+ * bundled metrics tables (for example, the `hdmx' table in TrueType
2881
+ * fonts). This flag is mainly used by font validating or font
2810
2882
  * editing applications, which need to ignore, verify, or edit those
2811
2883
  * tables.
2812
2884
  *
2813
2885
  * Currently, this flag is only implemented for TrueType fonts.
2814
2886
  *
2815
2887
  * FT_LOAD_BITMAP_METRICS_ONLY ::
2816
- * This flag is used to request loading of the metrics and bitmap
2817
- * image information of a (possibly embedded) bitmap glyph without
2818
- * allocating or copying the bitmap image data itself. No effect if
2819
- * the target glyph is not a bitmap image.
2888
+ * Request loading of the metrics and bitmap image information of a
2889
+ * (possibly embedded) bitmap glyph without allocating or copying
2890
+ * the bitmap image data itself. No effect if the target glyph is
2891
+ * not a bitmap image.
2820
2892
  *
2821
2893
  * This flag unsets @FT_LOAD_RENDER.
2822
2894
  *
@@ -2863,14 +2935,14 @@ FT_BEGIN_HEADER
2863
2935
  #define FT_LOAD_MONOCHROME ( 1L << 12 )
2864
2936
  #define FT_LOAD_LINEAR_DESIGN ( 1L << 13 )
2865
2937
  #define FT_LOAD_NO_AUTOHINT ( 1L << 15 )
2866
- /* Bits 16..19 are used by `FT_LOAD_TARGET_' */
2938
+ /* Bits 16-19 are used by `FT_LOAD_TARGET_' */
2867
2939
  #define FT_LOAD_COLOR ( 1L << 20 )
2868
2940
  #define FT_LOAD_COMPUTE_METRICS ( 1L << 21 )
2869
2941
  #define FT_LOAD_BITMAP_METRICS_ONLY ( 1L << 22 )
2870
2942
 
2871
2943
  /* */
2872
2944
 
2873
- /* used internally only by certain font drivers! */
2945
+ /* used internally only by certain font drivers */
2874
2946
  #define FT_LOAD_ADVANCE_ONLY ( 1L << 8 )
2875
2947
  #define FT_LOAD_SBITS_ONLY ( 1L << 14 )
2876
2948
 
@@ -2881,37 +2953,48 @@ FT_BEGIN_HEADER
2881
2953
  * FT_LOAD_TARGET_XXX
2882
2954
  *
2883
2955
  * @description:
2884
- * A list of values that are used to select a specific hinting algorithm
2885
- * to use by the hinter. You should OR one of these values to your
2886
- * `load_flags' when calling @FT_Load_Glyph.
2956
+ * A list of values to select a specific hinting algorithm for the
2957
+ * hinter. You should OR one of these values to your `load_flags'
2958
+ * when calling @FT_Load_Glyph.
2887
2959
  *
2888
- * Note that font's native hinters may ignore the hinting algorithm you
2889
- * have specified (e.g., the TrueType bytecode interpreter). You can set
2890
- * @FT_LOAD_FORCE_AUTOHINT to ensure that the auto-hinter is used.
2960
+ * Note that a font's native hinters may ignore the hinting algorithm
2961
+ * you have specified (e.g., the TrueType bytecode interpreter). You
2962
+ * can set @FT_LOAD_FORCE_AUTOHINT to ensure that the auto-hinter is
2963
+ * used.
2891
2964
  *
2892
2965
  * @values:
2893
2966
  * FT_LOAD_TARGET_NORMAL ::
2894
- * This corresponds to the default hinting algorithm, optimized for
2895
- * standard gray-level rendering. For monochrome output, use
2896
- * @FT_LOAD_TARGET_MONO instead.
2967
+ * The default hinting algorithm, optimized for standard gray-level
2968
+ * rendering. For monochrome output, use @FT_LOAD_TARGET_MONO
2969
+ * instead.
2897
2970
  *
2898
2971
  * FT_LOAD_TARGET_LIGHT ::
2899
2972
  * A lighter hinting algorithm for gray-level modes. Many generated
2900
2973
  * glyphs are fuzzier but better resemble their original shape. This
2901
2974
  * is achieved by snapping glyphs to the pixel grid only vertically
2902
- * (Y-axis), as is done by Microsoft's ClearType and Adobe's
2903
- * proprietary font renderer. This preserves inter-glyph spacing in
2975
+ * (Y-axis), as is done by FreeType's new CFF engine or Microsoft's
2976
+ * ClearType font renderer. This preserves inter-glyph spacing in
2904
2977
  * horizontal text. The snapping is done either by the native font
2905
- * driver if the driver itself and the font support it or by the
2978
+ * driver, if the driver itself and the font support it, or by the
2906
2979
  * auto-hinter.
2907
2980
  *
2981
+ * Advance widths are rounded to integer values; however, using the
2982
+ * `lsb_delta' and `rsb_delta' fields of @FT_GlyphSlotRec, it is
2983
+ * possible to get fractional advance widths for sub-pixel positioning
2984
+ * (which is recommended to use).
2985
+ *
2986
+ * If configuration option AF_CONFIG_OPTION_TT_SIZE_METRICS is active,
2987
+ * TrueType-like metrics are used to make this mode behave similarly
2988
+ * as in unpatched FreeType versions between 2.4.6 and 2.7.1
2989
+ * (inclusive).
2990
+ *
2908
2991
  * FT_LOAD_TARGET_MONO ::
2909
2992
  * Strong hinting algorithm that should only be used for monochrome
2910
2993
  * output. The result is probably unpleasant if the glyph is rendered
2911
2994
  * in non-monochrome modes.
2912
2995
  *
2913
2996
  * FT_LOAD_TARGET_LCD ::
2914
- * A variant of @FT_LOAD_TARGET_NORMAL optimized for horizontally
2997
+ * A variant of @FT_LOAD_TARGET_LIGHT optimized for horizontally
2915
2998
  * decimated LCD displays.
2916
2999
  *
2917
3000
  * FT_LOAD_TARGET_LCD_V ::
@@ -2939,6 +3022,13 @@ FT_BEGIN_HEADER
2939
3022
  * FT_Render_Glyph( face->glyph, FT_RENDER_MODE_LCD );
2940
3023
  * }
2941
3024
  *
3025
+ * In general, you should stick with one rendering mode. For example,
3026
+ * switching between @FT_LOAD_TARGET_NORMAL and @FT_LOAD_TARGET_MONO
3027
+ * enforces a lot of recomputation for TrueType fonts, which is slow.
3028
+ * Another reason is caching: Selecting a different mode usually causes
3029
+ * changes in both the outlines and the rasterized bitmaps; it is thus
3030
+ * necessary to empty the cache after a mode switch to avoid false hits.
3031
+ *
2942
3032
  */
2943
3033
  #define FT_LOAD_TARGET_( x ) ( (FT_Int32)( (x) & 15 ) << 16 )
2944
3034
 
@@ -2968,18 +3058,17 @@ FT_BEGIN_HEADER
2968
3058
  /* FT_Set_Transform */
2969
3059
  /* */
2970
3060
  /* <Description> */
2971
- /* A function used to set the transformation that is applied to glyph */
2972
- /* images when they are loaded into a glyph slot through */
2973
- /* @FT_Load_Glyph. */
3061
+ /* Set the transformation that is applied to glyph images when they */
3062
+ /* are loaded into a glyph slot through @FT_Load_Glyph. */
2974
3063
  /* */
2975
3064
  /* <InOut> */
2976
3065
  /* face :: A handle to the source face object. */
2977
3066
  /* */
2978
3067
  /* <Input> */
2979
- /* matrix :: A pointer to the transformation's 2x2 matrix. Use~0 for */
2980
- /* the identity matrix. */
2981
- /* delta :: A pointer to the translation vector. Use~0 for the null */
2982
- /* vector. */
3068
+ /* matrix :: A pointer to the transformation's 2x2 matrix. Use NULL */
3069
+ /* for the identity matrix. */
3070
+ /* delta :: A pointer to the translation vector. Use NULL for the */
3071
+ /* null vector. */
2983
3072
  /* */
2984
3073
  /* <Note> */
2985
3074
  /* The transformation is only applied to scalable image formats after */
@@ -3002,9 +3091,8 @@ FT_BEGIN_HEADER
3002
3091
  /* FT_Render_Mode */
3003
3092
  /* */
3004
3093
  /* <Description> */
3005
- /* An enumeration type that lists the render modes supported by */
3006
- /* FreeType~2. Each mode corresponds to a specific type of scanline */
3007
- /* conversion performed on the outline. */
3094
+ /* Render modes supported by FreeType~2. Each mode corresponds to a */
3095
+ /* specific type of scanline conversion performed on the outline. */
3008
3096
  /* */
3009
3097
  /* For bitmap fonts and embedded bitmaps the `bitmap->pixel_mode' */
3010
3098
  /* field in the @FT_GlyphSlotRec structure gives the format of the */
@@ -3017,8 +3105,8 @@ FT_BEGIN_HEADER
3017
3105
  /* */
3018
3106
  /* <Values> */
3019
3107
  /* FT_RENDER_MODE_NORMAL :: */
3020
- /* This is the default render mode; it corresponds to 8-bit */
3021
- /* anti-aliased bitmaps. */
3108
+ /* Default render mode; it corresponds to 8-bit anti-aliased */
3109
+ /* bitmaps. */
3022
3110
  /* */
3023
3111
  /* FT_RENDER_MODE_LIGHT :: */
3024
3112
  /* This is equivalent to @FT_RENDER_MODE_NORMAL. It is only */
@@ -3043,11 +3131,13 @@ FT_BEGIN_HEADER
3043
3131
  /* glyph outline in pixels and use the @FT_PIXEL_MODE_LCD_V mode. */
3044
3132
  /* */
3045
3133
  /* <Note> */
3046
- /* The LCD-optimized glyph bitmaps produced by FT_Render_Glyph can be */
3047
- /* filtered to reduce color-fringes by using @FT_Library_SetLcdFilter */
3048
- /* (not active in the default builds). It is up to the caller to */
3049
- /* either call @FT_Library_SetLcdFilter (if available) or do the */
3050
- /* filtering itself. */
3134
+ /* Should you define FT_CONFIG_OPTION_SUBPIXEL_RENDERING in your */
3135
+ /* `ftoption.h', which enables patented ClearType-style rendering, */
3136
+ /* the LCD-optimized glyph bitmaps should be filtered to reduce color */
3137
+ /* fringes inherent to this technology. You can either set up LCD */
3138
+ /* filtering with @FT_Library_SetLcdFilter or @FT_Face_Properties, */
3139
+ /* or do the filtering yourself. The default FreeType LCD rendering */
3140
+ /* technology does not require filtering. */
3051
3141
  /* */
3052
3142
  /* The selected render mode only affects vector glyphs of a font. */
3053
3143
  /* Embedded bitmaps often have a different pixel mode like */
@@ -3088,16 +3178,16 @@ FT_BEGIN_HEADER
3088
3178
  /* convert. */
3089
3179
  /* */
3090
3180
  /* <Input> */
3091
- /* render_mode :: This is the render mode used to render the glyph */
3092
- /* image into a bitmap. See @FT_Render_Mode for a */
3093
- /* list of possible values. */
3181
+ /* render_mode :: The render mode used to render the glyph image into */
3182
+ /* a bitmap. See @FT_Render_Mode for a list of */
3183
+ /* possible values. */
3094
3184
  /* */
3095
3185
  /* <Return> */
3096
3186
  /* FreeType error code. 0~means success. */
3097
3187
  /* */
3098
3188
  /* <Note> */
3099
3189
  /* To get meaningful results, font scaling values must be set with */
3100
- /* functions like @FT_Set_Char_Size before calling FT_Render_Glyph. */
3190
+ /* functions like @FT_Set_Char_Size before calling `FT_Render_Glyph'. */
3101
3191
  /* */
3102
3192
  /* When FreeType outputs a bitmap of a glyph, it really outputs an */
3103
3193
  /* alpha coverage map. If a pixel is completely covered by a */
@@ -3123,7 +3213,7 @@ FT_BEGIN_HEADER
3123
3213
  /* this does not translate to 50% brightness for that pixel on our */
3124
3214
  /* sRGB and gamma~2.2 screens. Due to their non-linearity, they */
3125
3215
  /* dwell longer in the darks and only a pixel value of about 186 */
3126
- /* results in 50% brightness 128 ends up too dark on both bright */
3216
+ /* results in 50% brightness -- 128 ends up too dark on both bright */
3127
3217
  /* and dark backgrounds. The net result is that dark text looks */
3128
3218
  /* burnt-out, pixely and blotchy on bright background, bright text */
3129
3219
  /* too frail on dark backgrounds, and colored text on colored */
@@ -3187,17 +3277,15 @@ FT_BEGIN_HEADER
3187
3277
  /* FT_Kerning_Mode */
3188
3278
  /* */
3189
3279
  /* <Description> */
3190
- /* An enumeration used to specify which kerning values to return in */
3280
+ /* An enumeration to specify the format of kerning values returned by */
3191
3281
  /* @FT_Get_Kerning. */
3192
3282
  /* */
3193
3283
  /* <Values> */
3194
3284
  /* FT_KERNING_DEFAULT :: Return grid-fitted kerning distances in */
3195
- /* pixels (value is~0). Whether they are */
3196
- /* scaled depends on @FT_LOAD_NO_SCALE. */
3285
+ /* 26.6 fractional pixels. */
3197
3286
  /* */
3198
3287
  /* FT_KERNING_UNFITTED :: Return un-grid-fitted kerning distances in */
3199
- /* 26.6 fractional pixels. Whether they are */
3200
- /* scaled depends on @FT_LOAD_NO_SCALE. */
3288
+ /* 26.6 fractional pixels. */
3201
3289
  /* */
3202
3290
  /* FT_KERNING_UNSCALED :: Return the kerning vector in original font */
3203
3291
  /* units. */
@@ -3207,9 +3295,13 @@ FT_BEGIN_HEADER
3207
3295
  /* FreeType heuristically scale down kerning distances at small ppem */
3208
3296
  /* values so that they don't become too big. */
3209
3297
  /* */
3298
+ /* Both FT_KERNING_DEFAULT and FT_KERNING_UNFITTED use the current */
3299
+ /* horizontal scaling factor (as set e.g. with @FT_Set_Char_Size) to */
3300
+ /* convert font units to pixels. */
3301
+ /* */
3210
3302
  typedef enum FT_Kerning_Mode_
3211
3303
  {
3212
- FT_KERNING_DEFAULT = 0,
3304
+ FT_KERNING_DEFAULT = 0,
3213
3305
  FT_KERNING_UNFITTED,
3214
3306
  FT_KERNING_UNSCALED
3215
3307
 
@@ -3229,7 +3321,7 @@ FT_BEGIN_HEADER
3229
3321
  /* FT_Get_Kerning */
3230
3322
  /* */
3231
3323
  /* <Description> */
3232
- /* Return the kerning vector between two glyphs of a same face. */
3324
+ /* Return the kerning vector between two glyphs of the same face. */
3233
3325
  /* */
3234
3326
  /* <Input> */
3235
3327
  /* face :: A handle to a source face object. */
@@ -3257,6 +3349,10 @@ FT_BEGIN_HEADER
3257
3349
  /* kernings, are out of the scope of this API function -- they can be */
3258
3350
  /* implemented through format-specific interfaces. */
3259
3351
  /* */
3352
+ /* Kerning for OpenType fonts implemented in a `GPOS' table is not */
3353
+ /* supported; use @FT_HAS_KERNING to find out whether a font has data */
3354
+ /* that can be extracted with `FT_Get_Kerning'. */
3355
+ /* */
3260
3356
  FT_EXPORT( FT_Error )
3261
3357
  FT_Get_Kerning( FT_Face face,
3262
3358
  FT_UInt left_glyph,
@@ -3296,7 +3392,7 @@ FT_BEGIN_HEADER
3296
3392
  /* @FT_Attach_Stream). */
3297
3393
  /* */
3298
3394
  /* Only very few AFM files come with track kerning data; please refer */
3299
- /* to the Adobe's AFM specification for more details. */
3395
+ /* to Adobe's AFM specification for more details. */
3300
3396
  /* */
3301
3397
  FT_EXPORT( FT_Error )
3302
3398
  FT_Get_Track_Kerning( FT_Face face,
@@ -3358,7 +3454,7 @@ FT_BEGIN_HEADER
3358
3454
  /* */
3359
3455
  /* <Description> */
3360
3456
  /* Retrieve the ASCII PostScript name of a given face, if available. */
3361
- /* This only works with PostScript and TrueType fonts. */
3457
+ /* This only works with PostScript, TrueType, and OpenType fonts. */
3362
3458
  /* */
3363
3459
  /* <Input> */
3364
3460
  /* face :: A handle to the source face object. */
@@ -3370,6 +3466,13 @@ FT_BEGIN_HEADER
3370
3466
  /* The returned pointer is owned by the face and is destroyed with */
3371
3467
  /* it. */
3372
3468
  /* */
3469
+ /* For variation fonts, this string changes if you select a different */
3470
+ /* instance, and you have to call `FT_Get_PostScript_Name' again to */
3471
+ /* retrieve it. FreeType follows Adobe TechNote #5902, `Generating */
3472
+ /* PostScript Names for Fonts Using OpenType Font Variations'. */
3473
+ /* */
3474
+ /* http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/font/pdfs/5902.AdobePSNameGeneration.html */
3475
+ /* */
3373
3476
  FT_EXPORT( const char* )
3374
3477
  FT_Get_Postscript_Name( FT_Face face );
3375
3478
 
@@ -3429,7 +3532,8 @@ FT_BEGIN_HEADER
3429
3532
  /* the face (i.e., if it is not listed in the `face->charmaps' */
3430
3533
  /* table). */
3431
3534
  /* */
3432
- /* It also fails if a type~14 charmap is selected. */
3535
+ /* It also fails if an OpenType type~14 charmap is selected (which */
3536
+ /* doesn't map character codes to glyph indices at all). */
3433
3537
  /* */
3434
3538
  FT_EXPORT( FT_Error )
3435
3539
  FT_Set_Charmap( FT_Face face,
@@ -3464,7 +3568,7 @@ FT_BEGIN_HEADER
3464
3568
  /* */
3465
3569
  /* <Description> */
3466
3570
  /* Return the glyph index of a given character code. This function */
3467
- /* uses a charmap object to do the mapping. */
3571
+ /* uses the currently selected charmap to do the mapping. */
3468
3572
  /* */
3469
3573
  /* <Input> */
3470
3574
  /* face :: A handle to the source face object. */
@@ -3498,9 +3602,8 @@ FT_BEGIN_HEADER
3498
3602
  /* FT_Get_First_Char */
3499
3603
  /* */
3500
3604
  /* <Description> */
3501
- /* This function is used to return the first character code in the */
3502
- /* current charmap of a given face. It also returns the */
3503
- /* corresponding glyph index. */
3605
+ /* Return the first character code in the current charmap of a given */
3606
+ /* face, together with its corresponding glyph index. */
3504
3607
  /* */
3505
3608
  /* <Input> */
3506
3609
  /* face :: A handle to the source face object. */
@@ -3513,7 +3616,7 @@ FT_BEGIN_HEADER
3513
3616
  /* The charmap's first character code. */
3514
3617
  /* */
3515
3618
  /* <Note> */
3516
- /* You should use this function with @FT_Get_Next_Char to be able to */
3619
+ /* You should use this function together with @FT_Get_Next_Char to */
3517
3620
  /* parse all character codes available in a given charmap. The code */
3518
3621
  /* should look like this: */
3519
3622
  /* */
@@ -3553,12 +3656,13 @@ FT_BEGIN_HEADER
3553
3656
  /* FT_Get_Next_Char */
3554
3657
  /* */
3555
3658
  /* <Description> */
3556
- /* This function is used to return the next character code in the */
3557
- /* current charmap of a given face following the value `char_code', */
3558
- /* as well as the corresponding glyph index. */
3659
+ /* Return the next character code in the current charmap of a given */
3660
+ /* face following the value `char_code', as well as the corresponding */
3661
+ /* glyph index. */
3559
3662
  /* */
3560
3663
  /* <Input> */
3561
3664
  /* face :: A handle to the source face object. */
3665
+ /* */
3562
3666
  /* char_code :: The starting character code. */
3563
3667
  /* */
3564
3668
  /* <Output> */
@@ -3571,7 +3675,7 @@ FT_BEGIN_HEADER
3571
3675
  /* <Note> */
3572
3676
  /* You should use this function with @FT_Get_First_Char to walk */
3573
3677
  /* over all character codes available in a given charmap. See the */
3574
- /* note for this function for a simple code example. */
3678
+ /* note for that function for a simple code example. */
3575
3679
  /* */
3576
3680
  /* Note that `*agindex' is set to~0 when there are no more codes in */
3577
3681
  /* the charmap. */
@@ -3582,14 +3686,109 @@ FT_BEGIN_HEADER
3582
3686
  FT_UInt *agindex );
3583
3687
 
3584
3688
 
3689
+ /*************************************************************************
3690
+ *
3691
+ * @function:
3692
+ * FT_Face_Properties
3693
+ *
3694
+ * @description:
3695
+ * Set or override certain (library or module-wide) properties on a
3696
+ * face-by-face basis. Useful for finer-grained control and avoiding
3697
+ * locks on shared structures (threads can modify their own faces as
3698
+ * they see fit).
3699
+ *
3700
+ * Contrary to @FT_Property_Set, this function uses @FT_Parameter so
3701
+ * that you can pass multiple properties to the target face in one call.
3702
+ * Note that only a subset of the available properties can be
3703
+ * controlled.
3704
+ *
3705
+ * * Stem darkening (@FT_PARAM_TAG_STEM_DARKENING, corresponding to the
3706
+ * property `no-stem-darkening' provided by the `autofit' and `cff'
3707
+ * modules; see @no-stem-darkening[autofit] and
3708
+ * @no-stem-darkening[cff]).
3709
+ *
3710
+ * * LCD filter weights (@FT_PARAM_TAG_LCD_FILTER_WEIGHTS, corresponding
3711
+ * to function @FT_Library_SetLcdFilterWeights).
3712
+ *
3713
+ * * Seed value for the CFF `random' operator
3714
+ * (@FT_PARAM_TAG_RANDOM_SEED, corresponding to the `random-seed'
3715
+ * property provided by the `cff' module; see @random-seed).
3716
+ *
3717
+ * Pass NULL as `data' in @FT_Parameter for a given tag to reset the
3718
+ * option and use the library or module default again.
3719
+ *
3720
+ * @input:
3721
+ * face ::
3722
+ * A handle to the source face object.
3723
+ *
3724
+ * num_properties ::
3725
+ * The number of properties that follow.
3726
+ *
3727
+ * properties ::
3728
+ * A handle to an @FT_Parameter array with `num_properties' elements.
3729
+ *
3730
+ * @return:
3731
+ * FreeType error code. 0~means success.
3732
+ *
3733
+ * @note:
3734
+ * Here an example that sets three properties. You must define
3735
+ * FT_CONFIG_OPTION_SUBPIXEL_RENDERING to make the LCD filter examples
3736
+ * work.
3737
+ *
3738
+ * {
3739
+ * FT_Parameter property1;
3740
+ * FT_Bool darken_stems = 1;
3741
+ *
3742
+ * FT_Parameter property2;
3743
+ * FT_LcdFiveTapFilter custom_weight =
3744
+ * { 0x11, 0x44, 0x56, 0x44, 0x11 };
3745
+ *
3746
+ * FT_Parameter property3;
3747
+ * FT_Int32 random_seed = 314159265;
3748
+ *
3749
+ * FT_Parameter properties[3] = { property1,
3750
+ * property2,
3751
+ * property3 };
3752
+ *
3753
+ *
3754
+ * property1.tag = FT_PARAM_TAG_STEM_DARKENING;
3755
+ * property1.data = &darken_stems;
3756
+ *
3757
+ * property2.tag = FT_PARAM_TAG_LCD_FILTER_WEIGHTS;
3758
+ * property2.data = custom_weight;
3759
+ *
3760
+ * property3.tag = FT_PARAM_TAG_RANDOM_SEED;
3761
+ * property3.data = &random_seed;
3762
+ *
3763
+ * FT_Face_Properties( face, 3, properties );
3764
+ * }
3765
+ *
3766
+ * The next example resets a single property to its default value.
3767
+ *
3768
+ * {
3769
+ * FT_Parameter property;
3770
+ *
3771
+ *
3772
+ * property.tag = FT_PARAM_TAG_LCD_FILTER_WEIGHTS;
3773
+ * property.data = NULL;
3774
+ *
3775
+ * FT_Face_Properties( face, 1, &property );
3776
+ * }
3777
+ *
3778
+ */
3779
+ FT_EXPORT( FT_Error )
3780
+ FT_Face_Properties( FT_Face face,
3781
+ FT_UInt num_properties,
3782
+ FT_Parameter* properties );
3783
+
3784
+
3585
3785
  /*************************************************************************/
3586
3786
  /* */
3587
3787
  /* <Function> */
3588
3788
  /* FT_Get_Name_Index */
3589
3789
  /* */
3590
3790
  /* <Description> */
3591
- /* Return the glyph index of a given glyph name. This function uses */
3592
- /* driver specific objects to do the translation. */
3791
+ /* Return the glyph index of a given glyph name. */
3593
3792
  /* */
3594
3793
  /* <Input> */
3595
3794
  /* face :: A handle to the source face object. */
@@ -3610,8 +3809,10 @@ FT_BEGIN_HEADER
3610
3809
  * FT_SUBGLYPH_FLAG_XXX
3611
3810
  *
3612
3811
  * @description:
3613
- * A list of constants used to describe subglyphs. Please refer to the
3614
- * TrueType specification for the meaning of the various flags.
3812
+ * A list of constants describing subglyphs. Please refer to the
3813
+ * `glyf' table description in the OpenType specification for the
3814
+ * meaning of the various flags (which get synthesized for
3815
+ * non-OpenType subglyphs).
3615
3816
  *
3616
3817
  * @values:
3617
3818
  * FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS ::
@@ -3672,7 +3873,7 @@ FT_BEGIN_HEADER
3672
3873
  * @note:
3673
3874
  * The values of `*p_arg1', `*p_arg2', and `*p_transform' must be
3674
3875
  * interpreted depending on the flags returned in `*p_flags'. See the
3675
- * TrueType specification for details.
3876
+ * OpenType specification for details.
3676
3877
  *
3677
3878
  */
3678
3879
  FT_EXPORT( FT_Error )
@@ -3712,33 +3913,31 @@ FT_BEGIN_HEADER
3712
3913
  /* the font software copyright owner. */
3713
3914
  /* */
3714
3915
  /* FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING :: */
3715
- /* If this bit is set, the font may be embedded and temporarily */
3716
- /* loaded on the remote system. Documents containing Preview & */
3717
- /* Print fonts must be opened `read-only'; no edits can be applied */
3718
- /* to the document. */
3916
+ /* The font may be embedded and temporarily loaded on the remote */
3917
+ /* system. Documents containing Preview & Print fonts must be */
3918
+ /* opened `read-only'; no edits can be applied to the document. */
3719
3919
  /* */
3720
3920
  /* FT_FSTYPE_EDITABLE_EMBEDDING :: */
3721
- /* If this bit is set, the font may be embedded but must only be */
3722
- /* installed temporarily on other systems. In contrast to Preview */
3723
- /* & Print fonts, documents containing editable fonts may be opened */
3724
- /* for reading, editing is permitted, and changes may be saved. */
3921
+ /* The font may be embedded but must only be installed temporarily */
3922
+ /* on other systems. In contrast to Preview & Print fonts, */
3923
+ /* documents containing editable fonts may be opened for reading, */
3924
+ /* editing is permitted, and changes may be saved. */
3725
3925
  /* */
3726
3926
  /* FT_FSTYPE_NO_SUBSETTING :: */
3727
- /* If this bit is set, the font may not be subsetted prior to */
3728
- /* embedding. */
3927
+ /* The font may not be subsetted prior to embedding. */
3729
3928
  /* */
3730
3929
  /* FT_FSTYPE_BITMAP_EMBEDDING_ONLY :: */
3731
- /* If this bit is set, only bitmaps contained in the font may be */
3732
- /* embedded; no outline data may be embedded. If there are no */
3733
- /* bitmaps available in the font, then the font is unembeddable. */
3930
+ /* Only bitmaps contained in the font may be embedded; no outline */
3931
+ /* data may be embedded. If there are no bitmaps available in the */
3932
+ /* font, then the font is unembeddable. */
3734
3933
  /* */
3735
3934
  /* <Note> */
3736
3935
  /* The flags are ORed together, thus more than a single value can be */
3737
3936
  /* returned. */
3738
3937
  /* */
3739
- /* While the fsType flags can indicate that a font may be embedded, a */
3740
- /* license with the font vendor may be separately required to use the */
3741
- /* font in this way. */
3938
+ /* While the `fsType' flags can indicate that a font may be embedded, */
3939
+ /* a license with the font vendor may be separately required to use */
3940
+ /* the font in this way. */
3742
3941
  /* */
3743
3942
  #define FT_FSTYPE_INSTALLABLE_EMBEDDING 0x0000
3744
3943
  #define FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING 0x0002
@@ -3754,13 +3953,13 @@ FT_BEGIN_HEADER
3754
3953
  /* FT_Get_FSType_Flags */
3755
3954
  /* */
3756
3955
  /* <Description> */
3757
- /* Return the fsType flags for a font. */
3956
+ /* Return the `fsType' flags for a font. */
3758
3957
  /* */
3759
3958
  /* <Input> */
3760
3959
  /* face :: A handle to the source face object. */
3761
3960
  /* */
3762
3961
  /* <Return> */
3763
- /* The fsType flags, @FT_FSTYPE_XXX. */
3962
+ /* The `fsType' flags, see @FT_FSTYPE_XXX. */
3764
3963
  /* */
3765
3964
  /* <Note> */
3766
3965
  /* Use this function rather than directly reading the `fs_type' field */
@@ -3780,39 +3979,51 @@ FT_BEGIN_HEADER
3780
3979
  /* glyph_variants */
3781
3980
  /* */
3782
3981
  /* <Title> */
3783
- /* Glyph Variants */
3982
+ /* Unicode Variation Sequences */
3784
3983
  /* */
3785
3984
  /* <Abstract> */
3786
- /* The FreeType~2 interface to Unicode Ideographic Variation */
3787
- /* Sequences (IVS), using the SFNT cmap format~14. */
3985
+ /* The FreeType~2 interface to Unicode Variation Sequences (UVS), */
3986
+ /* using the SFNT cmap format~14. */
3788
3987
  /* */
3789
3988
  /* <Description> */
3790
- /* Many CJK characters have variant forms. They are a sort of grey */
3791
- /* area somewhere between being totally irrelevant and semantically */
3792
- /* distinct; for this reason, the Unicode consortium decided to */
3793
- /* introduce Ideographic Variation Sequences (IVS), consisting of a */
3794
- /* Unicode base character and one of 240 variant selectors */
3795
- /* (U+E0100-U+E01EF), instead of further extending the already huge */
3796
- /* code range for CJK characters. */
3797
- /* */
3798
- /* An IVS is registered and unique; for further details please refer */
3799
- /* to Unicode Technical Standard #37, the Ideographic Variation */
3800
- /* Database: */
3801
- /* */
3802
- /* http://www.unicode.org/reports/tr37/ */
3803
- /* */
3804
- /* To date (November 2014), the character with the most variants is */
3805
- /* U+9089, having 32 such IVS. */
3806
- /* */
3807
- /* Adobe and MS decided to support IVS with a new cmap subtable */
3808
- /* (format~14). It is an odd subtable because it is not a mapping of */
3809
- /* input code points to glyphs, but contains lists of all variants */
3810
- /* supported by the font. */
3811
- /* */
3812
- /* A variant may be either `default' or `non-default'. A default */
3813
- /* variant is the one you will get for that code point if you look it */
3814
- /* up in the standard Unicode cmap. A non-default variant is a */
3815
- /* different glyph. */
3989
+ /* Many characters, especially for CJK scripts, have variant forms. */
3990
+ /* They are a sort of grey area somewhere between being totally */
3991
+ /* irrelevant and semantically distinct; for this reason, the Unicode */
3992
+ /* consortium decided to introduce Variation Sequences (VS), */
3993
+ /* consisting of a Unicode base character and a variation selector */
3994
+ /* instead of further extending the already huge number of */
3995
+ /* characters. */
3996
+ /* */
3997
+ /* Unicode maintains two different sets, namely `Standardized */
3998
+ /* Variation Sequences' and registered `Ideographic Variation */
3999
+ /* Sequences' (IVS), collected in the `Ideographic Variation */
4000
+ /* Database' (IVD). */
4001
+ /* */
4002
+ /* http://unicode.org/Public/UCD/latest/ucd/StandardizedVariants.txt */
4003
+ /* http://unicode.org/reports/tr37/ */
4004
+ /* http://unicode.org/ivd/ */
4005
+ /* */
4006
+ /* To date (January 2017), the character with the most ideographic */
4007
+ /* variations is U+9089, having 32 such IVS. */
4008
+ /* */
4009
+ /* Three Mongolian Variation Selectors have the values U+180B-U+180D; */
4010
+ /* 256 generic Variation Selectors are encoded in the ranges */
4011
+ /* U+FE00-U+FE0F and U+E0100-U+E01EF. IVS currently use Variation */
4012
+ /* Selectors from the range U+E0100-U+E01EF only. */
4013
+ /* */
4014
+ /* A VS consists of the base character value followed by a single */
4015
+ /* Variation Selector. For example, to get the first variation of */
4016
+ /* U+9089, you have to write the character sequence `U+9089 U+E0100'. */
4017
+ /* */
4018
+ /* Adobe and MS decided to support both standardized and ideographic */
4019
+ /* VS with a new cmap subtable (format~14). It is an odd subtable */
4020
+ /* because it is not a mapping of input code points to glyphs, but */
4021
+ /* contains lists of all variations supported by the font. */
4022
+ /* */
4023
+ /* A variation may be either `default' or `non-default' for a given */
4024
+ /* font. A default variation is the one you will get for that code */
4025
+ /* point if you look it up in the standard Unicode cmap. A */
4026
+ /* non-default variation is a different glyph. */
3816
4027
  /* */
3817
4028
  /*************************************************************************/
3818
4029
 
@@ -3868,8 +4079,8 @@ FT_BEGIN_HEADER
3868
4079
  /* FT_Face_GetCharVariantIsDefault */
3869
4080
  /* */
3870
4081
  /* <Description> */
3871
- /* Check whether this variant of this Unicode character is the one to */
3872
- /* be found in the `cmap'. */
4082
+ /* Check whether this variation of this Unicode character is the one */
4083
+ /* to be found in the `cmap'. */
3873
4084
  /* */
3874
4085
  /* <Input> */
3875
4086
  /* face :: */
@@ -3883,7 +4094,7 @@ FT_BEGIN_HEADER
3883
4094
  /* */
3884
4095
  /* <Return> */
3885
4096
  /* 1~if found in the standard (Unicode) cmap, 0~if found in the */
3886
- /* variation selector cmap, or -1 if it is not a variant. */
4097
+ /* variation selector cmap, or -1 if it is not a variation. */
3887
4098
  /* */
3888
4099
  /* <Note> */
3889
4100
  /* This function is only meaningful if the font has a variation */
@@ -3904,7 +4115,7 @@ FT_BEGIN_HEADER
3904
4115
  /* FT_Face_GetVariantSelectors */
3905
4116
  /* */
3906
4117
  /* <Description> */
3907
- /* Return a zero-terminated list of Unicode variant selectors found */
4118
+ /* Return a zero-terminated list of Unicode variation selectors found */
3908
4119
  /* in the font. */
3909
4120
  /* */
3910
4121
  /* <Input> */
@@ -3913,7 +4124,7 @@ FT_BEGIN_HEADER
3913
4124
  /* */
3914
4125
  /* <Return> */
3915
4126
  /* A pointer to an array of selector code points, or NULL if there is */
3916
- /* no valid variant selector cmap subtable. */
4127
+ /* no valid variation selector cmap subtable. */
3917
4128
  /* */
3918
4129
  /* <Note> */
3919
4130
  /* The last item in the array is~0; the array is owned by the */
@@ -3933,7 +4144,7 @@ FT_BEGIN_HEADER
3933
4144
  /* FT_Face_GetVariantsOfChar */
3934
4145
  /* */
3935
4146
  /* <Description> */
3936
- /* Return a zero-terminated list of Unicode variant selectors found */
4147
+ /* Return a zero-terminated list of Unicode variation selectors found */
3937
4148
  /* for the specified character code. */
3938
4149
  /* */
3939
4150
  /* <Input> */
@@ -3944,7 +4155,7 @@ FT_BEGIN_HEADER
3944
4155
  /* The character codepoint in Unicode. */
3945
4156
  /* */
3946
4157
  /* <Return> */
3947
- /* A pointer to an array of variant selector code points that are */
4158
+ /* A pointer to an array of variation selector code points that are */
3948
4159
  /* active for the given character, or NULL if the corresponding list */
3949
4160
  /* is empty. */
3950
4161
  /* */
@@ -3968,19 +4179,19 @@ FT_BEGIN_HEADER
3968
4179
  /* */
3969
4180
  /* <Description> */
3970
4181
  /* Return a zero-terminated list of Unicode character codes found for */
3971
- /* the specified variant selector. */
4182
+ /* the specified variation selector. */
3972
4183
  /* */
3973
4184
  /* <Input> */
3974
4185
  /* face :: */
3975
4186
  /* A handle to the source face object. */
3976
4187
  /* */
3977
4188
  /* variantSelector :: */
3978
- /* The variant selector code point in Unicode. */
4189
+ /* The variation selector code point in Unicode. */
3979
4190
  /* */
3980
4191
  /* <Return> */
3981
4192
  /* A list of all the code points that are specified by this selector */
3982
4193
  /* (both default and non-default codes are returned) or NULL if there */
3983
- /* is no valid cmap or the variant selector is invalid. */
4194
+ /* is no valid cmap or the variation selector is invalid. */
3984
4195
  /* */
3985
4196
  /* <Note> */
3986
4197
  /* The last item in the array is~0; the array is owned by the */
@@ -4030,16 +4241,17 @@ FT_BEGIN_HEADER
4030
4241
  /* FT_MulDiv */
4031
4242
  /* */
4032
4243
  /* <Description> */
4033
- /* A very simple function used to perform the computation `(a*b)/c' */
4034
- /* with maximum accuracy (it uses a 64-bit intermediate integer */
4035
- /* whenever necessary). */
4244
+ /* Compute `(a*b)/c' with maximum accuracy, using a 64-bit */
4245
+ /* intermediate integer whenever necessary. */
4036
4246
  /* */
4037
4247
  /* This function isn't necessarily as fast as some processor specific */
4038
4248
  /* operations, but is at least completely portable. */
4039
4249
  /* */
4040
4250
  /* <Input> */
4041
4251
  /* a :: The first multiplier. */
4252
+ /* */
4042
4253
  /* b :: The second multiplier. */
4254
+ /* */
4043
4255
  /* c :: The divisor. */
4044
4256
  /* */
4045
4257
  /* <Return> */
@@ -4059,12 +4271,12 @@ FT_BEGIN_HEADER
4059
4271
  /* FT_MulFix */
4060
4272
  /* */
4061
4273
  /* <Description> */
4062
- /* A very simple function used to perform the computation */
4063
- /* `(a*b)/0x10000' with maximum accuracy. Most of the time this is */
4064
- /* used to multiply a given value by a 16.16 fixed-point factor. */
4274
+ /* Compute `(a*b)/0x10000' with maximum accuracy. Its main use is to */
4275
+ /* multiply a given value by a 16.16 fixed-point factor. */
4065
4276
  /* */
4066
4277
  /* <Input> */
4067
4278
  /* a :: The first multiplier. */
4279
+ /* */
4068
4280
  /* b :: The second multiplier. Use a 16.16 factor here whenever */
4069
4281
  /* possible (see note below). */
4070
4282
  /* */
@@ -4093,12 +4305,12 @@ FT_BEGIN_HEADER
4093
4305
  /* FT_DivFix */
4094
4306
  /* */
4095
4307
  /* <Description> */
4096
- /* A very simple function used to perform the computation */
4097
- /* `(a*0x10000)/b' with maximum accuracy. Most of the time, this is */
4098
- /* used to divide a given value by a 16.16 fixed-point factor. */
4308
+ /* Compute `(a*0x10000)/b' with maximum accuracy. Its main use is to */
4309
+ /* divide a given value by a 16.16 fixed-point factor. */
4099
4310
  /* */
4100
4311
  /* <Input> */
4101
4312
  /* a :: The numerator. */
4313
+ /* */
4102
4314
  /* b :: The denominator. Use a 16.16 factor here. */
4103
4315
  /* */
4104
4316
  /* <Return> */
@@ -4115,15 +4327,18 @@ FT_BEGIN_HEADER
4115
4327
  /* FT_RoundFix */
4116
4328
  /* */
4117
4329
  /* <Description> */
4118
- /* A very simple function used to round a 16.16 fixed number. */
4330
+ /* Round a 16.16 fixed number. */
4119
4331
  /* */
4120
4332
  /* <Input> */
4121
4333
  /* a :: The number to be rounded. */
4122
4334
  /* */
4123
4335
  /* <Return> */
4124
- /* `a' rounded to nearest 16.16 fixed integer, halfway cases away */
4336
+ /* `a' rounded to the nearest 16.16 fixed integer, halfway cases away */
4125
4337
  /* from zero. */
4126
4338
  /* */
4339
+ /* <Note> */
4340
+ /* The function uses wrap-around arithmetic. */
4341
+ /* */
4127
4342
  FT_EXPORT( FT_Fixed )
4128
4343
  FT_RoundFix( FT_Fixed a );
4129
4344
 
@@ -4134,8 +4349,7 @@ FT_BEGIN_HEADER
4134
4349
  /* FT_CeilFix */
4135
4350
  /* */
4136
4351
  /* <Description> */
4137
- /* A very simple function used to compute the ceiling function of a */
4138
- /* 16.16 fixed number. */
4352
+ /* Compute the smallest following integer of a 16.16 fixed number. */
4139
4353
  /* */
4140
4354
  /* <Input> */
4141
4355
  /* a :: The number for which the ceiling function is to be computed. */
@@ -4143,6 +4357,9 @@ FT_BEGIN_HEADER
4143
4357
  /* <Return> */
4144
4358
  /* `a' rounded towards plus infinity. */
4145
4359
  /* */
4360
+ /* <Note> */
4361
+ /* The function uses wrap-around arithmetic. */
4362
+ /* */
4146
4363
  FT_EXPORT( FT_Fixed )
4147
4364
  FT_CeilFix( FT_Fixed a );
4148
4365
 
@@ -4153,8 +4370,7 @@ FT_BEGIN_HEADER
4153
4370
  /* FT_FloorFix */
4154
4371
  /* */
4155
4372
  /* <Description> */
4156
- /* A very simple function used to compute the floor function of a */
4157
- /* 16.16 fixed number. */
4373
+ /* Compute the largest previous integer of a 16.16 fixed number. */
4158
4374
  /* */
4159
4375
  /* <Input> */
4160
4376
  /* a :: The number for which the floor function is to be computed. */
@@ -4240,7 +4456,7 @@ FT_BEGIN_HEADER
4240
4456
  *
4241
4457
  */
4242
4458
  #define FREETYPE_MAJOR 2
4243
- #define FREETYPE_MINOR 7
4459
+ #define FREETYPE_MINOR 8
4244
4460
  #define FREETYPE_PATCH 1
4245
4461
 
4246
4462