cairo 1.15.9-x64-mingw32 → 1.15.10-x64-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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