poppler 0.90.2.3-x86-mingw32 → 0.90.3-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (759) hide show
  1. data/ChangeLog +11 -0
  2. data/ext/poppler/depend +4 -2
  3. data/ext/poppler/rbpoppler-form-field.c +2 -2
  4. data/ext/poppler/rbpoppler-page.c +12 -3
  5. data/lib/1.8/poppler.so +0 -0
  6. data/lib/1.9/poppler.so +0 -0
  7. data/vendor/local/bin/fc-cache.exe +0 -0
  8. data/vendor/local/bin/fc-cat.exe +0 -0
  9. data/vendor/local/bin/fc-list.exe +0 -0
  10. data/vendor/local/bin/freetype-config +160 -0
  11. data/vendor/local/bin/freetype6.dll +0 -0
  12. data/vendor/local/bin/gtk-demo.exe +0 -0
  13. data/vendor/local/bin/gtk-query-immodules-2.0.exe +0 -0
  14. data/vendor/local/bin/gtk-update-icon-cache.exe +0 -0
  15. data/vendor/local/bin/libatk-1.0-0.dll +0 -0
  16. data/vendor/local/bin/libcairo-2.dll +0 -0
  17. data/vendor/local/bin/libcairo-gobject-2.dll +0 -0
  18. data/vendor/local/bin/libcairo-script-interpreter-2.dll +0 -0
  19. data/vendor/local/bin/libexpat-1.dll +0 -0
  20. data/vendor/local/bin/libfontconfig-1.dll +0 -0
  21. data/vendor/local/bin/libgailutil-18.dll +0 -0
  22. data/vendor/local/bin/libgcc_s_dw2-1.dll +0 -0
  23. data/vendor/local/bin/libgdk-win32-2.0-0.dll +0 -0
  24. data/vendor/local/bin/libgtk-win32-2.0-0.dll +0 -0
  25. data/vendor/local/bin/libpango-1.0-0.dll +0 -0
  26. data/vendor/local/bin/libpangocairo-1.0-0.dll +0 -0
  27. data/vendor/local/bin/libpangoft2-1.0-0.dll +0 -0
  28. data/vendor/local/bin/libpangowin32-1.0-0.dll +0 -0
  29. data/vendor/local/bin/pango-querymodules.exe +0 -0
  30. data/vendor/local/bin/pango-view.exe +0 -0
  31. data/vendor/local/bin/pkg-config.exe +0 -0
  32. data/vendor/local/bin/xmlwf.exe +0 -0
  33. data/vendor/local/bin/zlib1.dll +0 -0
  34. data/vendor/local/etc/fonts/fonts.conf +151 -0
  35. data/vendor/local/etc/fonts/fonts.dtd +224 -0
  36. data/vendor/local/etc/gtk-2.0/gtk.immodules +1 -1
  37. data/vendor/local/etc/pango/pango.modules +1 -1
  38. data/vendor/local/gtk+-bundle_2.22.0-20101016_win32.README.txt +29 -0
  39. data/vendor/local/include/atk-1.0/atk/atk-enum-types.h +45 -0
  40. data/vendor/local/include/atk-1.0/atk/atk.h +56 -0
  41. data/vendor/local/include/atk-1.0/atk/atkaction.h +111 -0
  42. data/vendor/local/include/atk-1.0/atk/atkcomponent.h +171 -0
  43. data/vendor/local/include/atk-1.0/atk/atkdocument.h +83 -0
  44. data/vendor/local/include/atk-1.0/atk/atkeditabletext.h +104 -0
  45. data/vendor/local/include/atk-1.0/atk/atkgobjectaccessible.h +65 -0
  46. data/vendor/local/include/atk-1.0/atk/atkhyperlink.h +106 -0
  47. data/vendor/local/include/atk-1.0/atk/atkhyperlinkimpl.h +75 -0
  48. data/vendor/local/include/atk-1.0/atk/atkhypertext.h +78 -0
  49. data/vendor/local/include/atk-1.0/atk/atkimage.h +87 -0
  50. data/vendor/local/include/atk-1.0/atk/atkmisc.h +89 -0
  51. data/vendor/local/include/atk-1.0/atk/atknoopobject.h +55 -0
  52. data/vendor/local/include/atk-1.0/atk/atknoopobjectfactory.h +57 -0
  53. data/vendor/local/include/atk-1.0/atk/atkobject.h +649 -0
  54. data/vendor/local/include/atk-1.0/atk/atkobjectfactory.h +67 -0
  55. data/vendor/local/include/atk-1.0/atk/atkplug.h +61 -0
  56. data/vendor/local/include/atk-1.0/atk/atkregistry.h +69 -0
  57. data/vendor/local/include/atk-1.0/atk/atkrelation.h +89 -0
  58. data/vendor/local/include/atk-1.0/atk/atkrelationset.h +78 -0
  59. data/vendor/local/include/atk-1.0/atk/atkrelationtype.h +83 -0
  60. data/vendor/local/include/atk-1.0/atk/atkselection.h +95 -0
  61. data/vendor/local/include/atk-1.0/atk/atksocket.h +65 -0
  62. data/vendor/local/include/atk-1.0/atk/atkstate.h +178 -0
  63. data/vendor/local/include/atk-1.0/atk/atkstateset.h +80 -0
  64. data/vendor/local/include/atk-1.0/atk/atkstreamablecontent.h +105 -0
  65. data/vendor/local/include/atk-1.0/atk/atktable.h +217 -0
  66. data/vendor/local/include/atk-1.0/atk/atktext.h +365 -0
  67. data/vendor/local/include/atk-1.0/atk/atkutil.h +313 -0
  68. data/vendor/local/include/atk-1.0/atk/atkvalue.h +93 -0
  69. data/vendor/local/include/expat.h +1014 -0
  70. data/vendor/local/include/expat_external.h +115 -0
  71. data/vendor/local/include/fontconfig/fcfreetype.h +59 -0
  72. data/vendor/local/include/fontconfig/fcprivate.h +123 -0
  73. data/vendor/local/include/fontconfig/fontconfig.h +963 -0
  74. data/vendor/local/include/freetype2/freetype/config/ftconfig.h +477 -0
  75. data/vendor/local/include/freetype2/freetype/config/ftheader.h +780 -0
  76. data/vendor/local/include/freetype2/freetype/config/ftmodule.h +20 -0
  77. data/vendor/local/include/freetype2/freetype/config/ftoption.h +733 -0
  78. data/vendor/local/include/freetype2/freetype/config/ftstdlib.h +173 -0
  79. data/vendor/local/include/freetype2/freetype/freetype.h +3919 -0
  80. data/vendor/local/include/freetype2/freetype/ftadvanc.h +179 -0
  81. data/vendor/local/include/freetype2/freetype/ftbbox.h +94 -0
  82. data/vendor/local/include/freetype2/freetype/ftbdf.h +209 -0
  83. data/vendor/local/include/freetype2/freetype/ftbitmap.h +227 -0
  84. data/vendor/local/include/freetype2/freetype/ftcache.h +1125 -0
  85. data/vendor/local/include/freetype2/freetype/ftchapters.h +103 -0
  86. data/vendor/local/include/freetype2/freetype/ftcid.h +166 -0
  87. data/vendor/local/include/freetype2/freetype/fterrdef.h +244 -0
  88. data/vendor/local/include/freetype2/freetype/fterrors.h +206 -0
  89. data/vendor/local/include/freetype2/freetype/ftgasp.h +120 -0
  90. data/vendor/local/include/freetype2/freetype/ftglyph.h +613 -0
  91. data/vendor/local/include/freetype2/freetype/ftgxval.h +358 -0
  92. data/vendor/local/include/freetype2/freetype/ftgzip.h +102 -0
  93. data/vendor/local/include/freetype2/freetype/ftimage.h +1301 -0
  94. data/vendor/local/include/freetype2/freetype/ftincrem.h +353 -0
  95. data/vendor/local/include/freetype2/freetype/ftlcdfil.h +213 -0
  96. data/vendor/local/include/freetype2/freetype/ftlist.h +277 -0
  97. data/vendor/local/include/freetype2/freetype/ftlzw.h +99 -0
  98. data/vendor/local/include/freetype2/freetype/ftmac.h +274 -0
  99. data/vendor/local/include/freetype2/freetype/ftmm.h +378 -0
  100. data/vendor/local/include/freetype2/freetype/ftmodapi.h +483 -0
  101. data/vendor/local/include/freetype2/freetype/ftmoderr.h +155 -0
  102. data/vendor/local/include/freetype2/freetype/ftotval.h +203 -0
  103. data/vendor/local/include/freetype2/freetype/ftoutln.h +537 -0
  104. data/vendor/local/include/freetype2/freetype/ftpfr.h +172 -0
  105. data/vendor/local/include/freetype2/freetype/ftrender.h +230 -0
  106. data/vendor/local/include/freetype2/freetype/ftsizes.h +159 -0
  107. data/vendor/local/include/freetype2/freetype/ftsnames.h +200 -0
  108. data/vendor/local/include/freetype2/freetype/ftstroke.h +716 -0
  109. data/vendor/local/include/freetype2/freetype/ftsynth.h +80 -0
  110. data/vendor/local/include/freetype2/freetype/ftsystem.h +347 -0
  111. data/vendor/local/include/freetype2/freetype/fttrigon.h +350 -0
  112. data/vendor/local/include/freetype2/freetype/fttypes.h +588 -0
  113. data/vendor/local/include/freetype2/freetype/ftwinfnt.h +274 -0
  114. data/vendor/local/include/freetype2/freetype/ftxf86.h +83 -0
  115. data/vendor/local/include/freetype2/freetype/t1tables.h +504 -0
  116. data/vendor/local/include/freetype2/freetype/ttnameid.h +1247 -0
  117. data/vendor/local/include/freetype2/freetype/tttables.h +759 -0
  118. data/vendor/local/include/freetype2/freetype/tttags.h +107 -0
  119. data/vendor/local/include/freetype2/freetype/ttunpat.h +59 -0
  120. data/vendor/local/include/ft2build.h +61 -0
  121. data/vendor/local/include/pango-1.0/pango/pango-enum-types.h +2 -2
  122. data/vendor/local/include/pango-1.0/pango/pango-features.h +2 -2
  123. data/vendor/local/include/pixman-1/pixman-version.h +50 -0
  124. data/vendor/local/include/pixman-1/pixman.h +936 -0
  125. data/vendor/local/include/zconf.h +461 -0
  126. data/vendor/local/include/zlib.h +1589 -0
  127. data/vendor/local/lib/atk-1.0.def +238 -0
  128. data/vendor/local/lib/atk-1.0.lib +0 -0
  129. data/vendor/local/lib/cairo.lib +0 -0
  130. data/vendor/local/lib/expat.lib +0 -0
  131. data/vendor/local/lib/fontconfig.def +195 -0
  132. data/vendor/local/lib/fontconfig.lib +0 -0
  133. data/vendor/local/lib/freetype.def +186 -0
  134. data/vendor/local/lib/freetype.lib +0 -0
  135. data/vendor/local/lib/gailutil.lib +0 -0
  136. data/vendor/local/lib/gdk-win32-2.0.lib +0 -0
  137. data/vendor/local/lib/gtk-2.0/2.10.0/engines/libpixmap.dll +0 -0
  138. data/vendor/local/lib/gtk-2.0/2.10.0/engines/libwimp.dll +0 -0
  139. data/vendor/local/lib/gtk-2.0/modules/libgail.dll +0 -0
  140. data/vendor/local/lib/gtk-win32-2.0.lib +0 -0
  141. data/vendor/local/lib/libatk-1.0.dll.a +0 -0
  142. data/vendor/local/lib/libcairo-gobject.dll.a +0 -0
  143. data/vendor/local/lib/libcairo-script-interpreter.dll.a +0 -0
  144. data/vendor/local/lib/libcairo.dll.a +0 -0
  145. data/vendor/local/lib/libexpat.def +73 -0
  146. data/vendor/local/lib/libexpat.dll.a +0 -0
  147. data/vendor/local/lib/libfontconfig.dll.a +0 -0
  148. data/vendor/local/lib/libfreetype.dll.a +0 -0
  149. data/vendor/local/lib/libgailutil.dll.a +0 -0
  150. data/vendor/local/lib/libgdk-win32-2.0.dll.a +0 -0
  151. data/vendor/local/lib/libgtk-win32-2.0.dll.a +0 -0
  152. data/vendor/local/lib/libpango-1.0.dll.a +0 -0
  153. data/vendor/local/lib/libpangocairo-1.0.dll.a +0 -0
  154. data/vendor/local/lib/libpangoft2-1.0.dll.a +0 -0
  155. data/vendor/local/lib/libpangowin32-1.0.dll.a +0 -0
  156. data/vendor/local/lib/libpixman-1.a +0 -0
  157. data/vendor/local/lib/libz.dll.a +0 -0
  158. data/vendor/local/lib/pango-1.0.lib +0 -0
  159. data/vendor/local/lib/pangocairo-1.0.lib +0 -0
  160. data/vendor/local/lib/pangoft2-1.0.lib +0 -0
  161. data/vendor/local/lib/pangowin32-1.0.lib +0 -0
  162. data/vendor/local/lib/pkgconfig/atk.pc +11 -0
  163. data/vendor/local/lib/pkgconfig/cairo-fc.pc +1 -1
  164. data/vendor/local/lib/pkgconfig/cairo-ft.pc +1 -1
  165. data/vendor/local/lib/pkgconfig/cairo-gobject.pc +1 -1
  166. data/vendor/local/lib/pkgconfig/cairo-pdf.pc +1 -1
  167. data/vendor/local/lib/pkgconfig/cairo-png.pc +1 -1
  168. data/vendor/local/lib/pkgconfig/cairo-ps.pc +1 -1
  169. data/vendor/local/lib/pkgconfig/cairo-svg.pc +1 -1
  170. data/vendor/local/lib/pkgconfig/cairo-win32-font.pc +1 -1
  171. data/vendor/local/lib/pkgconfig/cairo-win32.pc +1 -1
  172. data/vendor/local/lib/pkgconfig/cairo.pc +1 -1
  173. data/vendor/local/lib/pkgconfig/fontconfig.pc +11 -0
  174. data/vendor/local/lib/pkgconfig/freetype2.pc +12 -0
  175. data/vendor/local/lib/pkgconfig/gail.pc +1 -1
  176. data/vendor/local/lib/pkgconfig/gdk-2.0.pc +1 -1
  177. data/vendor/local/lib/pkgconfig/gdk-win32-2.0.pc +1 -1
  178. data/vendor/local/lib/pkgconfig/gtk+-2.0.pc +1 -1
  179. data/vendor/local/lib/pkgconfig/gtk+-win32-2.0.pc +1 -1
  180. data/vendor/local/lib/pkgconfig/pango.pc +2 -2
  181. data/vendor/local/lib/pkgconfig/pangocairo.pc +2 -2
  182. data/vendor/local/lib/pkgconfig/pangoft2.pc +2 -2
  183. data/vendor/local/lib/pkgconfig/pangowin32.pc +2 -2
  184. data/vendor/local/lib/pkgconfig/pixman-1.pc +11 -0
  185. data/vendor/local/lib/zdll.lib +0 -0
  186. data/vendor/local/lib/zlib.def +67 -0
  187. data/vendor/local/man/man1/xmlwf.1 +251 -0
  188. data/vendor/local/manifest/atk-dev_1.32.0-1_win32.mft +37 -0
  189. data/vendor/local/manifest/atk_1.32.0-1_win32.mft +95 -0
  190. data/vendor/local/manifest/{cairo-dev_1.10.0-1_win32.mft → cairo-dev_1.10.0-2_win32.mft} +6 -4
  191. data/vendor/local/manifest/cairo_1.10.0-2_win32.mft +7 -0
  192. data/vendor/local/manifest/expat-dev_2.0.1-1_win32.mft +10 -0
  193. data/vendor/local/manifest/expat_2.0.1-1_win32.mft +2 -0
  194. data/vendor/local/manifest/fontconfig-dev_2.8.0-2_win32.mft +387 -0
  195. data/vendor/local/manifest/fontconfig_2.8.0-2_win32.mft +3 -0
  196. data/vendor/local/manifest/freetype-dev_2.4.2-1_win32.mft +56 -0
  197. data/vendor/local/manifest/freetype_2.4.2-1_win32.mft +2 -0
  198. data/vendor/local/manifest/gtk+-bundle_2.22.0-20101016_win32.mft +2910 -0
  199. data/vendor/local/manifest/{pango-dev_1.28.1-2_win32.mft → pango-dev_1.28.3-1_win32.mft} +5 -5
  200. data/vendor/local/manifest/{pango_1.28.1-2_win32.mft → pango_1.28.3-1_win32.mft} +2 -2
  201. data/vendor/local/manifest/zlib-dev_1.2.5-2_win32.mft +8 -0
  202. data/vendor/local/manifest/zlib_1.2.5-2_win32.mft +2 -0
  203. data/vendor/local/share/aclocal/freetype2.m4 +194 -0
  204. data/vendor/local/share/aclocal/pkg.m4 +155 -0
  205. data/vendor/local/share/doc/cairo_1.10.0-2_win32/COPYING +33 -0
  206. data/vendor/local/share/doc/cairo_1.10.0-2_win32/COPYING-LGPL-2.1 +510 -0
  207. data/vendor/local/share/doc/cairo_1.10.0-2_win32/COPYING-MPL-1.1 +470 -0
  208. data/vendor/local/share/doc/fontconfig/fontconfig-devel.pdf +42484 -4
  209. data/vendor/local/share/doc/fontconfig/fontconfig-devel.txt +5046 -0
  210. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcatomiccreate.html +224 -0
  211. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcatomicdeletenew.html +216 -0
  212. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcatomicdestroy.html +210 -0
  213. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcatomiclock.html +223 -0
  214. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcatomicnewfile.html +222 -0
  215. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcatomicorigfile.html +221 -0
  216. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcatomicreplaceorig.html +223 -0
  217. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcatomicunlock.html +216 -0
  218. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcblanksadd.html +222 -0
  219. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcblankscreate.html +216 -0
  220. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcblanksdestroy.html +216 -0
  221. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcblanksismember.html +211 -0
  222. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccachecopyset.html +228 -0
  223. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccachedir.html +221 -0
  224. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccachenumfont.html +211 -0
  225. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccachenumsubdir.html +221 -0
  226. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccachesubdir.html +244 -0
  227. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccharsetaddchar.html +226 -0
  228. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccharsetcopy.html +227 -0
  229. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccharsetcount.html +221 -0
  230. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccharsetcoverage.html +249 -0
  231. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccharsetcreate.html +220 -0
  232. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccharsetdestroy.html +226 -0
  233. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccharsetequal.html +232 -0
  234. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccharsetfirstpage.html +238 -0
  235. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccharsethaschar.html +231 -0
  236. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccharsetintersect.html +232 -0
  237. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccharsetintersectcount.html +231 -0
  238. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccharsetissubset.html +231 -0
  239. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccharsetmerge.html +261 -0
  240. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccharsetnew.html +208 -0
  241. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccharsetnextpage.html +243 -0
  242. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccharsetsubtract.html +231 -0
  243. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccharsetsubtractcount.html +231 -0
  244. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fccharsetunion.html +231 -0
  245. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfigappfontadddir.html +229 -0
  246. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfigappfontaddfile.html +228 -0
  247. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfigappfontclear.html +222 -0
  248. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfigbuildfonts.html +224 -0
  249. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfigcreate.html +216 -0
  250. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfigdestroy.html +219 -0
  251. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfigenablehome.html +230 -0
  252. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfigfilename.html +237 -0
  253. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfiggetblanks.html +225 -0
  254. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfiggetcache.html +217 -0
  255. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfiggetcachedirs.html +227 -0
  256. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfiggetconfigdirs.html +228 -0
  257. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfiggetconfigfiles.html +227 -0
  258. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfiggetcurrent.html +216 -0
  259. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfiggetfontdirs.html +229 -0
  260. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfiggetfonts.html +234 -0
  261. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfiggetrescaninterval.html +230 -0
  262. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfighome.html +221 -0
  263. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfigparseandload.html +220 -0
  264. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfigreference.html +231 -0
  265. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfigsetcurrent.html +222 -0
  266. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfigsetrescaninterval.html +229 -0
  267. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfigsubstitute.html +233 -0
  268. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfigsubstitutewithpat.html +251 -0
  269. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcconfiguptodate.html +228 -0
  270. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcdefaultsubstitute.html +234 -0
  271. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcdircacheload.html +239 -0
  272. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcdircacheloadfile.html +233 -0
  273. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcdircacheread.html +239 -0
  274. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcdircacheunlink.html +239 -0
  275. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcdircacheunload.html +211 -0
  276. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcdircachevalid.html +222 -0
  277. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcdirsave.html +245 -0
  278. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcdirscan.html +266 -0
  279. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfileisdir.html +222 -0
  280. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfilescan.html +276 -0
  281. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfini.html +219 -0
  282. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfontlist.html +244 -0
  283. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfontmatch.html +262 -0
  284. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfontrenderprepare.html +259 -0
  285. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfontsetadd.html +223 -0
  286. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfontsetcreate.html +216 -0
  287. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfontsetdestroy.html +217 -0
  288. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfontsetlist.html +261 -0
  289. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfontsetmatch.html +273 -0
  290. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfontsetprint.html +224 -0
  291. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfontsetsort.html +303 -0
  292. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfontsetsortdestroy.html +222 -0
  293. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfontsort.html +289 -0
  294. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfreetypecharindex.html +226 -0
  295. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfreetypecharset.html +225 -0
  296. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfreetypecharsetandspacing.html +241 -0
  297. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfreetypequery.html +233 -0
  298. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcfreetypequeryface.html +222 -0
  299. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcgetlangs.html +216 -0
  300. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcgetversion.html +216 -0
  301. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcinit.html +219 -0
  302. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcinitbringuptodate.html +208 -0
  303. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcinitloadconfig.html +217 -0
  304. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcinitloadconfigandfonts.html +217 -0
  305. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcinitreinitialize.html +219 -0
  306. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcislower.html +222 -0
  307. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcisupper.html +222 -0
  308. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fclanggetcharset.html +205 -0
  309. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fclangsetadd.html +239 -0
  310. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fclangsetcompare.html +239 -0
  311. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fclangsetcontains.html +259 -0
  312. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fclangsetcopy.html +225 -0
  313. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fclangsetcreate.html +219 -0
  314. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fclangsetdestroy.html +220 -0
  315. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fclangsetequal.html +232 -0
  316. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fclangsetgetlangs.html +221 -0
  317. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fclangsethash.html +233 -0
  318. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fclangsethaslang.html +255 -0
  319. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcmatrixcopy.html +225 -0
  320. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcmatrixequal.html +236 -0
  321. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcmatrixinit.html +225 -0
  322. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcmatrixmultiply.html +246 -0
  323. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcmatrixrotate.html +261 -0
  324. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcmatrixscale.html +261 -0
  325. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcmatrixshear.html +250 -0
  326. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcnameconstant.html +221 -0
  327. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcnamegetconstant.html +221 -0
  328. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcnamegetobjecttype.html +210 -0
  329. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcnameparse.html +221 -0
  330. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcnameregisterconstants.html +228 -0
  331. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcnameregisterobjecttypes.html +228 -0
  332. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcnameunparse.html +218 -0
  333. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcnameunregisterconstants.html +228 -0
  334. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcnameunregisterobjecttypes.html +226 -0
  335. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcobjectsetadd.html +222 -0
  336. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcobjectsetbuild.html +262 -0
  337. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcobjectsetcreate.html +216 -0
  338. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcobjectsetdestroy.html +216 -0
  339. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcpatternadd-type.html +404 -0
  340. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcpatternadd.html +240 -0
  341. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcpatternaddweak.html +242 -0
  342. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcpatternbuild.html +313 -0
  343. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcpatterncreate.html +216 -0
  344. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcpatterndel.html +222 -0
  345. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcpatterndestroy.html +217 -0
  346. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcpatternduplicate.html +223 -0
  347. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcpatternequal.html +231 -0
  348. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcpatternequalsubset.html +242 -0
  349. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcpatternfilter.html +244 -0
  350. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcpatternformat.html +602 -0
  351. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcpatternget-type.html +435 -0
  352. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcpatternget.html +249 -0
  353. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcpatternhash.html +217 -0
  354. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcpatternprint.html +218 -0
  355. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcpatternreference.html +222 -0
  356. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcpatternremove.html +227 -0
  357. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrbasename.html +212 -0
  358. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrcmp.html +232 -0
  359. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrcmpignorecase.html +233 -0
  360. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrcopy.html +226 -0
  361. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrcopyfilename.html +234 -0
  362. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrdirname.html +223 -0
  363. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrdowncase.html +222 -0
  364. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrfree.html +217 -0
  365. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrlistcreate.html +221 -0
  366. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrlistdone.html +210 -0
  367. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrlistnext.html +221 -0
  368. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrplus.html +233 -0
  369. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrsetadd.html +231 -0
  370. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrsetaddfilename.html +233 -0
  371. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrsetcreate.html +216 -0
  372. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrsetdel.html +237 -0
  373. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrsetdestroy.html +221 -0
  374. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrsetequal.html +233 -0
  375. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrsetmember.html +232 -0
  376. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrstr.html +244 -0
  377. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcstrstrignorecase.html +244 -0
  378. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fctolower.html +222 -0
  379. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcucs4toutf8.html +233 -0
  380. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcutf16len.html +278 -0
  381. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcutf16toucs4.html +265 -0
  382. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcutf8len.html +261 -0
  383. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcutf8toucs4.html +249 -0
  384. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcvaluedestroy.html +222 -0
  385. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcvalueequal.html +212 -0
  386. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcvalueprint.html +223 -0
  387. data/vendor/local/share/doc/fontconfig/fontconfig-devel/fcvaluesave.html +227 -0
  388. data/vendor/local/share/doc/fontconfig/fontconfig-devel/ln12.html +128 -0
  389. data/vendor/local/share/doc/fontconfig/fontconfig-devel/t1.html +133 -0
  390. data/vendor/local/share/doc/fontconfig/fontconfig-devel/x102.html +1463 -0
  391. data/vendor/local/share/doc/fontconfig/fontconfig-devel/x19.html +264 -0
  392. data/vendor/local/share/doc/fontconfig/fontconfig-devel/x31.html +590 -0
  393. data/vendor/local/share/doc/fontconfig/fontconfig-user.html +1352 -0
  394. data/vendor/local/share/doc/fontconfig/fontconfig-user.pdf +0 -0
  395. data/vendor/local/share/doc/fontconfig/fontconfig-user.txt +644 -0
  396. data/vendor/local/share/doc/gtk+-bundle_2.22.0-20101016_win32/components.lst +28 -0
  397. data/vendor/local/share/doc/{pango-1.28.1 → pango-1.28.3}/COPYING +0 -0
  398. data/vendor/local/share/doc/{pango-dev-1.28.1 → pango-dev-1.28.3}/COPYING +0 -0
  399. data/vendor/local/share/gtk-doc/html/pango/PangoEngineLang.html +44 -50
  400. data/vendor/local/share/gtk-doc/html/pango/PangoEngineShape.html +45 -51
  401. data/vendor/local/share/gtk-doc/html/pango/PangoFcDecoder.html +44 -61
  402. data/vendor/local/share/gtk-doc/html/pango/PangoFcFont.html +89 -101
  403. data/vendor/local/share/gtk-doc/html/pango/PangoFcFontMap.html +173 -171
  404. data/vendor/local/share/gtk-doc/html/pango/PangoMarkupFormat.html +6 -27
  405. data/vendor/local/share/gtk-doc/html/pango/index-1.10.html +3 -24
  406. data/vendor/local/share/gtk-doc/html/pango/index-1.12.html +3 -24
  407. data/vendor/local/share/gtk-doc/html/pango/index-1.14.html +3 -24
  408. data/vendor/local/share/gtk-doc/html/pango/index-1.16.html +3 -24
  409. data/vendor/local/share/gtk-doc/html/pango/index-1.18.html +5 -26
  410. data/vendor/local/share/gtk-doc/html/pango/index-1.2.html +3 -24
  411. data/vendor/local/share/gtk-doc/html/pango/index-1.20.html +5 -26
  412. data/vendor/local/share/gtk-doc/html/pango/index-1.22.html +5 -26
  413. data/vendor/local/share/gtk-doc/html/pango/index-1.24.html +3 -24
  414. data/vendor/local/share/gtk-doc/html/pango/index-1.26.html +3 -24
  415. data/vendor/local/share/gtk-doc/html/pango/index-1.28.html +3 -24
  416. data/vendor/local/share/gtk-doc/html/pango/index-1.4.html +3 -24
  417. data/vendor/local/share/gtk-doc/html/pango/index-1.6.html +6 -27
  418. data/vendor/local/share/gtk-doc/html/pango/index-1.8.html +22 -43
  419. data/vendor/local/share/gtk-doc/html/pango/index-all.html +70 -91
  420. data/vendor/local/share/gtk-doc/html/pango/index-deprecated.html +3 -24
  421. data/vendor/local/share/gtk-doc/html/pango/index.html +5 -26
  422. data/vendor/local/share/gtk-doc/html/pango/index.sgml +31 -30
  423. data/vendor/local/share/gtk-doc/html/pango/lowlevel.html +6 -27
  424. data/vendor/local/share/gtk-doc/html/pango/pango-ATSUI-Fonts.html +20 -39
  425. data/vendor/local/share/gtk-doc/html/pango/pango-Bidirectional-Text.html +73 -88
  426. data/vendor/local/share/gtk-doc/html/pango/pango-Cairo-Rendering.html +405 -320
  427. data/vendor/local/share/gtk-doc/html/pango/pango-Coverage-Maps.html +85 -97
  428. data/vendor/local/share/gtk-doc/html/pango/pango-Engines.html +69 -84
  429. data/vendor/local/share/gtk-doc/html/pango/pango-Fonts.html +695 -645
  430. data/vendor/local/share/gtk-doc/html/pango/pango-FreeType-Fonts-and-Rendering.html +225 -228
  431. data/vendor/local/share/gtk-doc/html/pango/pango-Glyph-Storage.html +523 -494
  432. data/vendor/local/share/gtk-doc/html/pango/pango-Layout-Objects.html +819 -742
  433. data/vendor/local/share/gtk-doc/html/pango/pango-Miscellaneous-Utilities.html +203 -204
  434. data/vendor/local/share/gtk-doc/html/pango/pango-Modules.html +58 -75
  435. data/vendor/local/share/gtk-doc/html/pango/pango-OpenType-Font-Handling.html +422 -405
  436. data/vendor/local/share/gtk-doc/html/pango/pango-Scripts-and-Languages.html +144 -142
  437. data/vendor/local/share/gtk-doc/html/pango/pango-Tab-Stops.html +120 -130
  438. data/vendor/local/share/gtk-doc/html/pango/pango-Text-Attributes.html +618 -576
  439. data/vendor/local/share/gtk-doc/html/pango/pango-Text-Processing.html +397 -384
  440. data/vendor/local/share/gtk-doc/html/pango/pango-Version-Checking.html +44 -58
  441. data/vendor/local/share/gtk-doc/html/pango/pango-Vertical-Text.html +73 -84
  442. data/vendor/local/share/gtk-doc/html/pango/pango-Win32-Fonts-and-Rendering.html +220 -217
  443. data/vendor/local/share/gtk-doc/html/pango/pango-X-Fonts-and-Rendering.html +303 -302
  444. data/vendor/local/share/gtk-doc/html/pango/pango-Xft-Fonts-and-Rendering.html +293 -292
  445. data/vendor/local/share/gtk-doc/html/pango/pango-hierarchy.html +5 -26
  446. data/vendor/local/share/gtk-doc/html/pango/pango-pango-renderer.html +1009 -0
  447. data/vendor/local/share/gtk-doc/html/pango/pango-querymodules.html +7 -28
  448. data/vendor/local/share/gtk-doc/html/pango/pango.devhelp +68 -68
  449. data/vendor/local/share/gtk-doc/html/pango/pango.devhelp2 +72 -72
  450. data/vendor/local/share/gtk-doc/html/pango/pango.html +3 -24
  451. data/vendor/local/share/gtk-doc/html/pango/rendering.html +3 -24
  452. data/vendor/local/share/gtk-doc/html/pango/style.css +21 -13
  453. data/vendor/local/share/gtk-doc/html/pango/tools.html +3 -24
  454. data/vendor/local/share/locale/af/LC_MESSAGES/atk10.mo +0 -0
  455. data/vendor/local/share/locale/am/LC_MESSAGES/atk10.mo +0 -0
  456. data/vendor/local/share/locale/ar/LC_MESSAGES/atk10.mo +0 -0
  457. data/vendor/local/share/locale/as/LC_MESSAGES/atk10.mo +0 -0
  458. data/vendor/local/share/locale/ast/LC_MESSAGES/atk10.mo +0 -0
  459. data/vendor/local/share/locale/az/LC_MESSAGES/atk10.mo +0 -0
  460. data/vendor/local/share/locale/be/LC_MESSAGES/atk10.mo +0 -0
  461. data/vendor/local/share/locale/be@latin/LC_MESSAGES/atk10.mo +0 -0
  462. data/vendor/local/share/locale/bg/LC_MESSAGES/atk10.mo +0 -0
  463. data/vendor/local/share/locale/bn/LC_MESSAGES/atk10.mo +0 -0
  464. data/vendor/local/share/locale/bn_IN/LC_MESSAGES/atk10.mo +0 -0
  465. data/vendor/local/share/locale/bs/LC_MESSAGES/atk10.mo +0 -0
  466. data/vendor/local/share/locale/ca/LC_MESSAGES/atk10.mo +0 -0
  467. data/vendor/local/share/locale/ca@valencia/LC_MESSAGES/atk10.mo +0 -0
  468. data/vendor/local/share/locale/cs/LC_MESSAGES/atk10.mo +0 -0
  469. data/vendor/local/share/locale/cy/LC_MESSAGES/atk10.mo +0 -0
  470. data/vendor/local/share/locale/da/LC_MESSAGES/atk10.mo +0 -0
  471. data/vendor/local/share/locale/de/LC_MESSAGES/atk10.mo +0 -0
  472. data/vendor/local/share/locale/dz/LC_MESSAGES/atk10.mo +0 -0
  473. data/vendor/local/share/locale/el/LC_MESSAGES/atk10.mo +0 -0
  474. data/vendor/local/share/locale/en@shaw/LC_MESSAGES/atk10.mo +0 -0
  475. data/vendor/local/share/locale/en_CA/LC_MESSAGES/atk10.mo +0 -0
  476. data/vendor/local/share/locale/en_GB/LC_MESSAGES/atk10.mo +0 -0
  477. data/vendor/local/share/locale/eo/LC_MESSAGES/atk10.mo +0 -0
  478. data/vendor/local/share/locale/es/LC_MESSAGES/atk10.mo +0 -0
  479. data/vendor/local/share/locale/et/LC_MESSAGES/atk10.mo +0 -0
  480. data/vendor/local/share/locale/eu/LC_MESSAGES/atk10.mo +0 -0
  481. data/vendor/local/share/locale/fa/LC_MESSAGES/atk10.mo +0 -0
  482. data/vendor/local/share/locale/fi/LC_MESSAGES/atk10.mo +0 -0
  483. data/vendor/local/share/locale/fr/LC_MESSAGES/atk10.mo +0 -0
  484. data/vendor/local/share/locale/ga/LC_MESSAGES/atk10.mo +0 -0
  485. data/vendor/local/share/locale/gl/LC_MESSAGES/atk10.mo +0 -0
  486. data/vendor/local/share/locale/gu/LC_MESSAGES/atk10.mo +0 -0
  487. data/vendor/local/share/locale/he/LC_MESSAGES/atk10.mo +0 -0
  488. data/vendor/local/share/locale/hi/LC_MESSAGES/atk10.mo +0 -0
  489. data/vendor/local/share/locale/hr/LC_MESSAGES/atk10.mo +0 -0
  490. data/vendor/local/share/locale/hu/LC_MESSAGES/atk10.mo +0 -0
  491. data/vendor/local/share/locale/hy/LC_MESSAGES/atk10.mo +0 -0
  492. data/vendor/local/share/locale/id/LC_MESSAGES/atk10.mo +0 -0
  493. data/vendor/local/share/locale/is/LC_MESSAGES/atk10.mo +0 -0
  494. data/vendor/local/share/locale/it/LC_MESSAGES/atk10.mo +0 -0
  495. data/vendor/local/share/locale/ja/LC_MESSAGES/atk10.mo +0 -0
  496. data/vendor/local/share/locale/ka/LC_MESSAGES/atk10.mo +0 -0
  497. data/vendor/local/share/locale/kk/LC_MESSAGES/atk10.mo +0 -0
  498. data/vendor/local/share/locale/kn/LC_MESSAGES/atk10.mo +0 -0
  499. data/vendor/local/share/locale/ko/LC_MESSAGES/atk10.mo +0 -0
  500. data/vendor/local/share/locale/ku/LC_MESSAGES/atk10.mo +0 -0
  501. data/vendor/local/share/locale/li/LC_MESSAGES/atk10.mo +0 -0
  502. data/vendor/local/share/locale/lt/LC_MESSAGES/atk10.mo +0 -0
  503. data/vendor/local/share/locale/lv/LC_MESSAGES/atk10.mo +0 -0
  504. data/vendor/local/share/locale/mai/LC_MESSAGES/atk10.mo +0 -0
  505. data/vendor/local/share/locale/mk/LC_MESSAGES/atk10.mo +0 -0
  506. data/vendor/local/share/locale/ml/LC_MESSAGES/atk10.mo +0 -0
  507. data/vendor/local/share/locale/mn/LC_MESSAGES/atk10.mo +0 -0
  508. data/vendor/local/share/locale/mr/LC_MESSAGES/atk10.mo +0 -0
  509. data/vendor/local/share/locale/ms/LC_MESSAGES/atk10.mo +0 -0
  510. data/vendor/local/share/locale/nb/LC_MESSAGES/atk10.mo +0 -0
  511. data/vendor/local/share/locale/ne/LC_MESSAGES/atk10.mo +0 -0
  512. data/vendor/local/share/locale/nl/LC_MESSAGES/atk10.mo +0 -0
  513. data/vendor/local/share/locale/nn/LC_MESSAGES/atk10.mo +0 -0
  514. data/vendor/local/share/locale/oc/LC_MESSAGES/atk10.mo +0 -0
  515. data/vendor/local/share/locale/or/LC_MESSAGES/atk10.mo +0 -0
  516. data/vendor/local/share/locale/pa/LC_MESSAGES/atk10.mo +0 -0
  517. data/vendor/local/share/locale/pl/LC_MESSAGES/atk10.mo +0 -0
  518. data/vendor/local/share/locale/ps/LC_MESSAGES/atk10.mo +0 -0
  519. data/vendor/local/share/locale/pt/LC_MESSAGES/atk10.mo +0 -0
  520. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/atk10.mo +0 -0
  521. data/vendor/local/share/locale/ro/LC_MESSAGES/atk10.mo +0 -0
  522. data/vendor/local/share/locale/ru/LC_MESSAGES/atk10.mo +0 -0
  523. data/vendor/local/share/locale/rw/LC_MESSAGES/atk10.mo +0 -0
  524. data/vendor/local/share/locale/si/LC_MESSAGES/atk10.mo +0 -0
  525. data/vendor/local/share/locale/sk/LC_MESSAGES/atk10.mo +0 -0
  526. data/vendor/local/share/locale/sl/LC_MESSAGES/atk10.mo +0 -0
  527. data/vendor/local/share/locale/sq/LC_MESSAGES/atk10.mo +0 -0
  528. data/vendor/local/share/locale/sr/LC_MESSAGES/atk10.mo +0 -0
  529. data/vendor/local/share/locale/sr@ije/LC_MESSAGES/atk10.mo +0 -0
  530. data/vendor/local/share/locale/sr@latin/LC_MESSAGES/atk10.mo +0 -0
  531. data/vendor/local/share/locale/sv/LC_MESSAGES/atk10.mo +0 -0
  532. data/vendor/local/share/locale/ta/LC_MESSAGES/atk10.mo +0 -0
  533. data/vendor/local/share/locale/te/LC_MESSAGES/atk10.mo +0 -0
  534. data/vendor/local/share/locale/th/LC_MESSAGES/atk10.mo +0 -0
  535. data/vendor/local/share/locale/tk/LC_MESSAGES/atk10.mo +0 -0
  536. data/vendor/local/share/locale/tr/LC_MESSAGES/atk10.mo +0 -0
  537. data/vendor/local/share/locale/tt/LC_MESSAGES/atk10.mo +0 -0
  538. data/vendor/local/share/locale/ug/LC_MESSAGES/atk10.mo +0 -0
  539. data/vendor/local/share/locale/uk/LC_MESSAGES/atk10.mo +0 -0
  540. data/vendor/local/share/locale/vi/LC_MESSAGES/atk10.mo +0 -0
  541. data/vendor/local/share/locale/wa/LC_MESSAGES/atk10.mo +0 -0
  542. data/vendor/local/share/locale/xh/LC_MESSAGES/atk10.mo +0 -0
  543. data/vendor/local/share/locale/yi/LC_MESSAGES/atk10.mo +0 -0
  544. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/atk10.mo +0 -0
  545. data/vendor/local/share/locale/zh_HK/LC_MESSAGES/atk10.mo +0 -0
  546. data/vendor/local/share/locale/zh_TW/LC_MESSAGES/atk10.mo +0 -0
  547. data/vendor/local/share/man/man1/fc-cache.1 +70 -0
  548. data/vendor/local/share/man/man1/fc-cat.1 +44 -0
  549. data/vendor/local/share/man/man1/fc-list.1 +72 -0
  550. data/vendor/local/share/man/man1/fc-match.1 +73 -0
  551. data/vendor/local/share/man/man1/fc-query.1 +57 -0
  552. data/vendor/local/share/man/man1/fc-scan.1 +52 -0
  553. data/vendor/local/share/man/man1/pango-querymodules.1 +2 -2
  554. data/vendor/local/share/man/man1/pango-view.1 +1 -1
  555. data/vendor/local/share/man/man3/FcAtomicCreate.3 +19 -0
  556. data/vendor/local/share/man/man3/FcAtomicDeleteNew.3 +16 -0
  557. data/vendor/local/share/man/man3/FcAtomicDestroy.3 +16 -0
  558. data/vendor/local/share/man/man3/FcAtomicLock.3 +18 -0
  559. data/vendor/local/share/man/man3/FcAtomicNewFile.3 +17 -0
  560. data/vendor/local/share/man/man3/FcAtomicOrigFile.3 +16 -0
  561. data/vendor/local/share/man/man3/FcAtomicReplaceOrig.3 +18 -0
  562. data/vendor/local/share/man/man3/FcAtomicUnlock.3 +16 -0
  563. data/vendor/local/share/man/man3/FcBlanksAdd.3 +18 -0
  564. data/vendor/local/share/man/man3/FcBlanksCreate.3 +16 -0
  565. data/vendor/local/share/man/man3/FcBlanksDestroy.3 +16 -0
  566. data/vendor/local/share/man/man3/FcBlanksIsMember.3 +18 -0
  567. data/vendor/local/share/man/man3/FcCacheCopySet.3 +18 -0
  568. data/vendor/local/share/man/man3/FcCacheDir.3 +16 -0
  569. data/vendor/local/share/man/man3/FcCacheNumFont.3 +17 -0
  570. data/vendor/local/share/man/man3/FcCacheNumSubdir.3 +16 -0
  571. data/vendor/local/share/man/man3/FcCacheSubdir.3 +20 -0
  572. data/vendor/local/share/man/man3/FcCharSetAddChar.3 +19 -0
  573. data/vendor/local/share/man/man3/FcCharSetCopy.3 +17 -0
  574. data/vendor/local/share/man/man3/FcCharSetCount.3 +16 -0
  575. data/vendor/local/share/man/man3/FcCharSetCoverage.3 +23 -0
  576. data/vendor/local/share/man/man3/FcCharSetCreate.3 +17 -0
  577. data/vendor/local/share/man/man3/FcCharSetDestroy.3 +18 -0
  578. data/vendor/local/share/man/man3/FcCharSetEqual.3 +18 -0
  579. data/vendor/local/share/man/man3/FcCharSetFirstPage.3 +20 -0
  580. data/vendor/local/share/man/man3/FcCharSetHasChar.3 +17 -0
  581. data/vendor/local/share/man/man3/FcCharSetIntersect.3 +18 -0
  582. data/vendor/local/share/man/man3/FcCharSetIntersectCount.3 +17 -0
  583. data/vendor/local/share/man/man3/FcCharSetIsSubset.3 +17 -0
  584. data/vendor/local/share/man/man3/FcCharSetMerge.3 +23 -0
  585. data/vendor/local/share/man/man3/FcCharSetNew.3 +16 -0
  586. data/vendor/local/share/man/man3/FcCharSetNextPage.3 +20 -0
  587. data/vendor/local/share/man/man3/FcCharSetSubtract.3 +17 -0
  588. data/vendor/local/share/man/man3/FcCharSetSubtractCount.3 +17 -0
  589. data/vendor/local/share/man/man3/FcCharSetUnion.3 +17 -0
  590. data/vendor/local/share/man/man3/FcConfigAppFontAddDir.3 +20 -0
  591. data/vendor/local/share/man/man3/FcConfigAppFontAddFile.3 +19 -0
  592. data/vendor/local/share/man/man3/FcConfigAppFontClear.3 +17 -0
  593. data/vendor/local/share/man/man3/FcConfigBuildFonts.3 +19 -0
  594. data/vendor/local/share/man/man3/FcConfigCreate.3 +16 -0
  595. data/vendor/local/share/man/man3/FcConfigDestroy.3 +19 -0
  596. data/vendor/local/share/man/man3/FcConfigEnableHome.3 +20 -0
  597. data/vendor/local/share/man/man3/FcConfigFilename.3 +26 -0
  598. data/vendor/local/share/man/man3/FcConfigGetBlanks.3 +20 -0
  599. data/vendor/local/share/man/man3/FcConfigGetCache.3 +17 -0
  600. data/vendor/local/share/man/man3/FcConfigGetCacheDirs.3 +19 -0
  601. data/vendor/local/share/man/man3/FcConfigGetConfigDirs.3 +18 -0
  602. data/vendor/local/share/man/man3/FcConfigGetConfigFiles.3 +17 -0
  603. data/vendor/local/share/man/man3/FcConfigGetCurrent.3 +16 -0
  604. data/vendor/local/share/man/man3/FcConfigGetFontDirs.3 +19 -0
  605. data/vendor/local/share/man/man3/FcConfigGetFonts.3 +20 -0
  606. data/vendor/local/share/man/man3/FcConfigGetRescanInterval.3 +20 -0
  607. data/vendor/local/share/man/man3/FcConfigHome.3 +18 -0
  608. data/vendor/local/share/man/man3/FcConfigParseAndLoad.3 +23 -0
  609. data/vendor/local/share/man/man3/FcConfigReference.3 +21 -0
  610. data/vendor/local/share/man/man3/FcConfigSetCurrent.3 +17 -0
  611. data/vendor/local/share/man/man3/FcConfigSetRescanInterval.3 +20 -0
  612. data/vendor/local/share/man/man3/FcConfigSubstitute.3 +20 -0
  613. data/vendor/local/share/man/man3/FcConfigSubstituteWithPat.3 +24 -0
  614. data/vendor/local/share/man/man3/FcConfigUptoDate.3 +18 -0
  615. data/vendor/local/share/man/man3/FcDefaultSubstitute.3 +27 -0
  616. data/vendor/local/share/man/man3/FcDirCacheLoad.3 +21 -0
  617. data/vendor/local/share/man/man3/FcDirCacheLoadFile.3 +19 -0
  618. data/vendor/local/share/man/man3/FcDirCacheRead.3 +21 -0
  619. data/vendor/local/share/man/man3/FcDirCacheUnlink.3 +20 -0
  620. data/vendor/local/share/man/man3/FcDirCacheUnload.3 +17 -0
  621. data/vendor/local/share/man/man3/FcDirCacheValid.3 +17 -0
  622. data/vendor/local/share/man/man3/FcDirSave.3 +22 -0
  623. data/vendor/local/share/man/man3/FcDirScan.3 +26 -0
  624. data/vendor/local/share/man/man3/FcFileIsDir.3 +17 -0
  625. data/vendor/local/share/man/man3/FcFileScan.3 +31 -0
  626. data/vendor/local/share/man/man3/FcFini.3 +19 -0
  627. data/vendor/local/share/man/man3/FcFontList.3 +21 -0
  628. data/vendor/local/share/man/man3/FcFontMatch.3 +25 -0
  629. data/vendor/local/share/man/man3/FcFontRenderPrepare.3 +21 -0
  630. data/vendor/local/share/man/man3/FcFontSetAdd.3 +19 -0
  631. data/vendor/local/share/man/man3/FcFontSetCreate.3 +16 -0
  632. data/vendor/local/share/man/man3/FcFontSetDestroy.3 +17 -0
  633. data/vendor/local/share/man/man3/FcFontSetList.3 +25 -0
  634. data/vendor/local/share/man/man3/FcFontSetMatch.3 +28 -0
  635. data/vendor/local/share/man/man3/FcFontSetPrint.3 +19 -0
  636. data/vendor/local/share/man/man3/FcFontSetSort.3 +39 -0
  637. data/vendor/local/share/man/man3/FcFontSetSortDestroy.3 +19 -0
  638. data/vendor/local/share/man/man3/FcFontSort.3 +33 -0
  639. data/vendor/local/share/man/man3/FcFreeTypeCharIndex.3 +22 -0
  640. data/vendor/local/share/man/man3/FcFreeTypeCharSet.3 +21 -0
  641. data/vendor/local/share/man/man3/FcFreeTypeCharSetAndSpacing.3 +28 -0
  642. data/vendor/local/share/man/man3/FcFreeTypeQuery.3 +21 -0
  643. data/vendor/local/share/man/man3/FcFreeTypeQueryFace.3 +21 -0
  644. data/vendor/local/share/man/man3/FcGetLangs.3 +16 -0
  645. data/vendor/local/share/man/man3/FcGetVersion.3 +16 -0
  646. data/vendor/local/share/man/man3/FcInit.3 +19 -0
  647. data/vendor/local/share/man/man3/FcInitBringUptoDate.3 +19 -0
  648. data/vendor/local/share/man/man3/FcInitLoadConfig.3 +17 -0
  649. data/vendor/local/share/man/man3/FcInitLoadConfigAndFonts.3 +17 -0
  650. data/vendor/local/share/man/man3/FcInitReinitialize.3 +19 -0
  651. data/vendor/local/share/man/man3/FcIsLower.3 +17 -0
  652. data/vendor/local/share/man/man3/FcIsUpper.3 +17 -0
  653. data/vendor/local/share/man/man3/FcLangGetCharSet.3 +16 -0
  654. data/vendor/local/share/man/man3/FcLangSetAdd.3 +20 -0
  655. data/vendor/local/share/man/man3/FcLangSetCompare.3 +22 -0
  656. data/vendor/local/share/man/man3/FcLangSetContains.3 +22 -0
  657. data/vendor/local/share/man/man3/FcLangSetCopy.3 +17 -0
  658. data/vendor/local/share/man/man3/FcLangSetCreate.3 +16 -0
  659. data/vendor/local/share/man/man3/FcLangSetDestroy.3 +17 -0
  660. data/vendor/local/share/man/man3/FcLangSetEqual.3 +18 -0
  661. data/vendor/local/share/man/man3/FcLangSetGetLangs.3 +16 -0
  662. data/vendor/local/share/man/man3/FcLangSetHasLang.3 +23 -0
  663. data/vendor/local/share/man/man3/FcLangSetHash.3 +20 -0
  664. data/vendor/local/share/man/man3/FcMatrixCopy.3 +17 -0
  665. data/vendor/local/share/man/man3/FcMatrixEqual.3 +19 -0
  666. data/vendor/local/share/man/man3/FcMatrixInit.3 +17 -0
  667. data/vendor/local/share/man/man3/FcMatrixMultiply.3 +20 -0
  668. data/vendor/local/share/man/man3/FcMatrixRotate.3 +27 -0
  669. data/vendor/local/share/man/man3/FcMatrixScale.3 +27 -0
  670. data/vendor/local/share/man/man3/FcMatrixShear.3 +27 -0
  671. data/vendor/local/share/man/man3/FcNameConstant.3 +18 -0
  672. data/vendor/local/share/man/man3/FcNameGetConstant.3 +16 -0
  673. data/vendor/local/share/man/man3/FcNameGetObjectType.3 +16 -0
  674. data/vendor/local/share/man/man3/FcNameParse.3 +16 -0
  675. data/vendor/local/share/man/man3/FcNameRegisterConstants.3 +19 -0
  676. data/vendor/local/share/man/man3/FcNameRegisterObjectTypes.3 +19 -0
  677. data/vendor/local/share/man/man3/FcNameUnparse.3 +18 -0
  678. data/vendor/local/share/man/man3/FcNameUnregisterConstants.3 +19 -0
  679. data/vendor/local/share/man/man3/FcNameUnregisterObjectTypes.3 +17 -0
  680. data/vendor/local/share/man/man3/FcObjectSetAdd.3 +18 -0
  681. data/vendor/local/share/man/man3/FcObjectSetBuild.3 +26 -0
  682. data/vendor/local/share/man/man3/FcObjectSetCreate.3 +16 -0
  683. data/vendor/local/share/man/man3/FcObjectSetDestroy.3 +16 -0
  684. data/vendor/local/share/man/man3/FcPatternAdd-Type.3 +49 -0
  685. data/vendor/local/share/man/man3/FcPatternAdd.3 +23 -0
  686. data/vendor/local/share/man/man3/FcPatternAddWeak.3 +20 -0
  687. data/vendor/local/share/man/man3/FcPatternBuild.3 +50 -0
  688. data/vendor/local/share/man/man3/FcPatternCreate.3 +16 -0
  689. data/vendor/local/share/man/man3/FcPatternDel.3 +18 -0
  690. data/vendor/local/share/man/man3/FcPatternDestroy.3 +17 -0
  691. data/vendor/local/share/man/man3/FcPatternDuplicate.3 +18 -0
  692. data/vendor/local/share/man/man3/FcPatternEqual.3 +17 -0
  693. data/vendor/local/share/man/man3/FcPatternEqualSubset.3 +19 -0
  694. data/vendor/local/share/man/man3/FcPatternFilter.3 +20 -0
  695. data/vendor/local/share/man/man3/FcPatternFormat.3 +205 -0
  696. data/vendor/local/share/man/man3/FcPatternGet-Type.3 +56 -0
  697. data/vendor/local/share/man/man3/FcPatternGet.3 +22 -0
  698. data/vendor/local/share/man/man3/FcPatternHash.3 +17 -0
  699. data/vendor/local/share/man/man3/FcPatternPrint.3 +18 -0
  700. data/vendor/local/share/man/man3/FcPatternReference.3 +17 -0
  701. data/vendor/local/share/man/man3/FcPatternRemove.3 +19 -0
  702. data/vendor/local/share/man/man3/FcStrBasename.3 +18 -0
  703. data/vendor/local/share/man/man3/FcStrCmp.3 +18 -0
  704. data/vendor/local/share/man/man3/FcStrCmpIgnoreCase.3 +19 -0
  705. data/vendor/local/share/man/man3/FcStrCopy.3 +18 -0
  706. data/vendor/local/share/man/man3/FcStrCopyFilename.3 +23 -0
  707. data/vendor/local/share/man/man3/FcStrDirname.3 +18 -0
  708. data/vendor/local/share/man/man3/FcStrDowncase.3 +17 -0
  709. data/vendor/local/share/man/man3/FcStrFree.3 +17 -0
  710. data/vendor/local/share/man/man3/FcStrListCreate.3 +16 -0
  711. data/vendor/local/share/man/man3/FcStrListDone.3 +16 -0
  712. data/vendor/local/share/man/man3/FcStrListNext.3 +16 -0
  713. data/vendor/local/share/man/man3/FcStrPlus.3 +19 -0
  714. data/vendor/local/share/man/man3/FcStrSetAdd.3 +17 -0
  715. data/vendor/local/share/man/man3/FcStrSetAddFilename.3 +19 -0
  716. data/vendor/local/share/man/man3/FcStrSetCreate.3 +16 -0
  717. data/vendor/local/share/man/man3/FcStrSetDel.3 +18 -0
  718. data/vendor/local/share/man/man3/FcStrSetDestroy.3 +16 -0
  719. data/vendor/local/share/man/man3/FcStrSetEqual.3 +19 -0
  720. data/vendor/local/share/man/man3/FcStrSetMember.3 +18 -0
  721. data/vendor/local/share/man/man3/FcStrStr.3 +20 -0
  722. data/vendor/local/share/man/man3/FcStrStrIgnoreCase.3 +20 -0
  723. data/vendor/local/share/man/man3/FcToLower.3 +17 -0
  724. data/vendor/local/share/man/man3/FcUcs4ToUtf8.3 +19 -0
  725. data/vendor/local/share/man/man3/FcUtf16Len.3 +27 -0
  726. data/vendor/local/share/man/man3/FcUtf16ToUcs4.3 +23 -0
  727. data/vendor/local/share/man/man3/FcUtf8Len.3 +24 -0
  728. data/vendor/local/share/man/man3/FcUtf8ToUcs4.3 +21 -0
  729. data/vendor/local/share/man/man3/FcValueDestroy.3 +17 -0
  730. data/vendor/local/share/man/man3/FcValueEqual.3 +19 -0
  731. data/vendor/local/share/man/man3/FcValuePrint.3 +18 -0
  732. data/vendor/local/share/man/man3/FcValueSave.3 +17 -0
  733. data/vendor/local/share/man/man5/fonts-conf.5 +644 -0
  734. data/vendor/local/src/tml/packaging/atk_1.32.0-1_win32.log +730 -0
  735. data/vendor/local/src/tml/packaging/atk_1.32.0-1_win32.sh +53 -0
  736. data/vendor/local/src/tml/packaging/cairo_1.10.0-2_win32.log +1263 -0
  737. data/vendor/local/src/tml/packaging/cairo_1.10.0-2_win32.sh +84 -0
  738. data/vendor/local/src/tml/packaging/expat_2.0.1-1_win32.log +188 -0
  739. data/vendor/local/src/tml/packaging/expat_2.0.1-1_win32.sh +68 -0
  740. data/vendor/local/src/tml/packaging/fontconfig_2.8.0-2_win32.log +999 -0
  741. data/vendor/local/src/tml/packaging/fontconfig_2.8.0-2_win32.sh +79 -0
  742. data/vendor/local/src/tml/packaging/freetype_2.4.2-1_win32.log +364 -0
  743. data/vendor/local/src/tml/packaging/freetype_2.4.2-1_win32.sh +93 -0
  744. data/vendor/local/src/tml/packaging/{gtk+_2.22.0-1_win32.log → gtk+_2.22.0-2_win32.log} +1835 -1832
  745. data/vendor/local/src/tml/packaging/{gtk+_2.22.0-1_win32.sh → gtk+_2.22.0-2_win32.sh} +26 -1
  746. data/vendor/local/src/tml/packaging/{pango_1.28.1-2_win32.log → pango_1.28.3-1_win32.log} +293 -413
  747. data/vendor/local/src/tml/packaging/pango_1.28.3-1_win32.sh +56 -0
  748. data/vendor/local/src/tml/packaging/pixman_0.18.4-2_win32.log +291 -0
  749. data/vendor/local/src/tml/packaging/pixman_0.18.4-2_win32.sh +141 -0
  750. data/vendor/local/src/tml/packaging/pkg-config_0.23-3_win32.log +215 -0
  751. data/vendor/local/src/tml/packaging/pkg-config_0.23-3_win32.sh +278 -0
  752. data/vendor/local/src/tml/packaging/zlib_1.2.5-2_win32.log +42 -0
  753. data/vendor/local/src/tml/packaging/zlib_1.2.5-2_win32.sh +189 -0
  754. metadata +647 -26
  755. data/vendor/local/manifest/cairo_1.10.0-1_win32.mft +0 -5
  756. data/vendor/local/manifest/gtk+-dev_2.22.0-1_win32.mft +0 -947
  757. data/vendor/local/manifest/gtk+_2.22.0-1_win32.mft +0 -225
  758. data/vendor/local/share/gtk-doc/html/pango/PangoRenderer.html +0 -1002
  759. data/vendor/local/src/tml/packaging/pango_1.28.1-2_win32.sh +0 -579
@@ -0,0 +1,173 @@
1
+ /***************************************************************************/
2
+ /* */
3
+ /* ftstdlib.h */
4
+ /* */
5
+ /* ANSI-specific library and header configuration file (specification */
6
+ /* only). */
7
+ /* */
8
+ /* Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2009 by */
9
+ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
10
+ /* */
11
+ /* This file is part of the FreeType project, and may only be used, */
12
+ /* modified, and distributed under the terms of the FreeType project */
13
+ /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
14
+ /* this file you indicate that you have read the license and */
15
+ /* understand and accept it fully. */
16
+ /* */
17
+ /***************************************************************************/
18
+
19
+
20
+ /*************************************************************************/
21
+ /* */
22
+ /* This file is used to group all #includes to the ANSI C library that */
23
+ /* FreeType normally requires. It also defines macros to rename the */
24
+ /* standard functions within the FreeType source code. */
25
+ /* */
26
+ /* Load a file which defines __FTSTDLIB_H__ before this one to override */
27
+ /* it. */
28
+ /* */
29
+ /*************************************************************************/
30
+
31
+
32
+ #ifndef __FTSTDLIB_H__
33
+ #define __FTSTDLIB_H__
34
+
35
+
36
+ #include <stddef.h>
37
+
38
+ #define ft_ptrdiff_t ptrdiff_t
39
+
40
+
41
+ /**********************************************************************/
42
+ /* */
43
+ /* integer limits */
44
+ /* */
45
+ /* UINT_MAX and ULONG_MAX are used to automatically compute the size */
46
+ /* of `int' and `long' in bytes at compile-time. So far, this works */
47
+ /* for all platforms the library has been tested on. */
48
+ /* */
49
+ /* Note that on the extremely rare platforms that do not provide */
50
+ /* integer types that are _exactly_ 16 and 32 bits wide (e.g. some */
51
+ /* old Crays where `int' is 36 bits), we do not make any guarantee */
52
+ /* about the correct behaviour of FT2 with all fonts. */
53
+ /* */
54
+ /* In these case, `ftconfig.h' will refuse to compile anyway with a */
55
+ /* message like `couldn't find 32-bit type' or something similar. */
56
+ /* */
57
+ /**********************************************************************/
58
+
59
+
60
+ #include <limits.h>
61
+
62
+ #define FT_CHAR_BIT CHAR_BIT
63
+ #define FT_INT_MAX INT_MAX
64
+ #define FT_INT_MIN INT_MIN
65
+ #define FT_UINT_MAX UINT_MAX
66
+ #define FT_ULONG_MAX ULONG_MAX
67
+
68
+
69
+ /**********************************************************************/
70
+ /* */
71
+ /* character and string processing */
72
+ /* */
73
+ /**********************************************************************/
74
+
75
+
76
+ #include <string.h>
77
+
78
+ #define ft_memchr memchr
79
+ #define ft_memcmp memcmp
80
+ #define ft_memcpy memcpy
81
+ #define ft_memmove memmove
82
+ #define ft_memset memset
83
+ #define ft_strcat strcat
84
+ #define ft_strcmp strcmp
85
+ #define ft_strcpy strcpy
86
+ #define ft_strlen strlen
87
+ #define ft_strncmp strncmp
88
+ #define ft_strncpy strncpy
89
+ #define ft_strrchr strrchr
90
+ #define ft_strstr strstr
91
+
92
+
93
+ /**********************************************************************/
94
+ /* */
95
+ /* file handling */
96
+ /* */
97
+ /**********************************************************************/
98
+
99
+
100
+ #include <stdio.h>
101
+
102
+ #define FT_FILE FILE
103
+ #define ft_fclose fclose
104
+ #define ft_fopen fopen
105
+ #define ft_fread fread
106
+ #define ft_fseek fseek
107
+ #define ft_ftell ftell
108
+ #define ft_sprintf sprintf
109
+
110
+
111
+ /**********************************************************************/
112
+ /* */
113
+ /* sorting */
114
+ /* */
115
+ /**********************************************************************/
116
+
117
+
118
+ #include <stdlib.h>
119
+
120
+ #define ft_qsort qsort
121
+
122
+
123
+ /**********************************************************************/
124
+ /* */
125
+ /* memory allocation */
126
+ /* */
127
+ /**********************************************************************/
128
+
129
+
130
+ #define ft_scalloc calloc
131
+ #define ft_sfree free
132
+ #define ft_smalloc malloc
133
+ #define ft_srealloc realloc
134
+
135
+
136
+ /**********************************************************************/
137
+ /* */
138
+ /* miscellaneous */
139
+ /* */
140
+ /**********************************************************************/
141
+
142
+
143
+ #define ft_atol atol
144
+ #define ft_labs labs
145
+
146
+
147
+ /**********************************************************************/
148
+ /* */
149
+ /* execution control */
150
+ /* */
151
+ /**********************************************************************/
152
+
153
+
154
+ #include <setjmp.h>
155
+
156
+ #define ft_jmp_buf jmp_buf /* note: this cannot be a typedef since */
157
+ /* jmp_buf is defined as a macro */
158
+ /* on certain platforms */
159
+
160
+ #define ft_longjmp longjmp
161
+ #define ft_setjmp( b ) setjmp( *(jmp_buf*) &(b) ) /* same thing here */
162
+
163
+
164
+ /* the following is only used for debugging purposes, i.e., if */
165
+ /* FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined */
166
+
167
+ #include <stdarg.h>
168
+
169
+
170
+ #endif /* __FTSTDLIB_H__ */
171
+
172
+
173
+ /* END */
@@ -0,0 +1,3919 @@
1
+ /***************************************************************************/
2
+ /* */
3
+ /* freetype.h */
4
+ /* */
5
+ /* FreeType high-level API and common types (specification only). */
6
+ /* */
7
+ /* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, */
8
+ /* 2010 by */
9
+ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
10
+ /* */
11
+ /* This file is part of the FreeType project, and may only be used, */
12
+ /* modified, and distributed under the terms of the FreeType project */
13
+ /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
14
+ /* this file you indicate that you have read the license and */
15
+ /* understand and accept it fully. */
16
+ /* */
17
+ /***************************************************************************/
18
+
19
+
20
+ #ifndef FT_FREETYPE_H
21
+ #error "`ft2build.h' hasn't been included yet!"
22
+ #error "Please always use macros to include FreeType header files."
23
+ #error "Example:"
24
+ #error " #include <ft2build.h>"
25
+ #error " #include FT_FREETYPE_H"
26
+ #endif
27
+
28
+
29
+ #ifndef __FREETYPE_H__
30
+ #define __FREETYPE_H__
31
+
32
+
33
+ #include <ft2build.h>
34
+ #include FT_CONFIG_CONFIG_H
35
+ #include FT_ERRORS_H
36
+ #include FT_TYPES_H
37
+
38
+
39
+ FT_BEGIN_HEADER
40
+
41
+
42
+
43
+ /*************************************************************************/
44
+ /* */
45
+ /* <Section> */
46
+ /* user_allocation */
47
+ /* */
48
+ /* <Title> */
49
+ /* User allocation */
50
+ /* */
51
+ /* <Abstract> */
52
+ /* How client applications should allocate FreeType data structures. */
53
+ /* */
54
+ /* <Description> */
55
+ /* FreeType assumes that structures allocated by the user and passed */
56
+ /* as arguments are zeroed out except for the actual data. In other */
57
+ /* words, it is recommended to use `calloc' (or variants of it) */
58
+ /* instead of `malloc' for allocation. */
59
+ /* */
60
+ /*************************************************************************/
61
+
62
+
63
+
64
+ /*************************************************************************/
65
+ /*************************************************************************/
66
+ /* */
67
+ /* B A S I C T Y P E S */
68
+ /* */
69
+ /*************************************************************************/
70
+ /*************************************************************************/
71
+
72
+
73
+ /*************************************************************************/
74
+ /* */
75
+ /* <Section> */
76
+ /* base_interface */
77
+ /* */
78
+ /* <Title> */
79
+ /* Base Interface */
80
+ /* */
81
+ /* <Abstract> */
82
+ /* The FreeType~2 base font interface. */
83
+ /* */
84
+ /* <Description> */
85
+ /* This section describes the public high-level API of FreeType~2. */
86
+ /* */
87
+ /* <Order> */
88
+ /* FT_Library */
89
+ /* FT_Face */
90
+ /* FT_Size */
91
+ /* FT_GlyphSlot */
92
+ /* FT_CharMap */
93
+ /* FT_Encoding */
94
+ /* */
95
+ /* FT_FaceRec */
96
+ /* */
97
+ /* FT_FACE_FLAG_SCALABLE */
98
+ /* FT_FACE_FLAG_FIXED_SIZES */
99
+ /* FT_FACE_FLAG_FIXED_WIDTH */
100
+ /* FT_FACE_FLAG_HORIZONTAL */
101
+ /* FT_FACE_FLAG_VERTICAL */
102
+ /* FT_FACE_FLAG_SFNT */
103
+ /* FT_FACE_FLAG_KERNING */
104
+ /* FT_FACE_FLAG_MULTIPLE_MASTERS */
105
+ /* FT_FACE_FLAG_GLYPH_NAMES */
106
+ /* FT_FACE_FLAG_EXTERNAL_STREAM */
107
+ /* FT_FACE_FLAG_FAST_GLYPHS */
108
+ /* FT_FACE_FLAG_HINTER */
109
+ /* */
110
+ /* FT_STYLE_FLAG_BOLD */
111
+ /* FT_STYLE_FLAG_ITALIC */
112
+ /* */
113
+ /* FT_SizeRec */
114
+ /* FT_Size_Metrics */
115
+ /* */
116
+ /* FT_GlyphSlotRec */
117
+ /* FT_Glyph_Metrics */
118
+ /* FT_SubGlyph */
119
+ /* */
120
+ /* FT_Bitmap_Size */
121
+ /* */
122
+ /* FT_Init_FreeType */
123
+ /* FT_Done_FreeType */
124
+ /* */
125
+ /* FT_New_Face */
126
+ /* FT_Done_Face */
127
+ /* FT_New_Memory_Face */
128
+ /* FT_Open_Face */
129
+ /* FT_Open_Args */
130
+ /* FT_Parameter */
131
+ /* FT_Attach_File */
132
+ /* FT_Attach_Stream */
133
+ /* */
134
+ /* FT_Set_Char_Size */
135
+ /* FT_Set_Pixel_Sizes */
136
+ /* FT_Request_Size */
137
+ /* FT_Select_Size */
138
+ /* FT_Size_Request_Type */
139
+ /* FT_Size_Request */
140
+ /* FT_Set_Transform */
141
+ /* FT_Load_Glyph */
142
+ /* FT_Get_Char_Index */
143
+ /* FT_Get_Name_Index */
144
+ /* FT_Load_Char */
145
+ /* */
146
+ /* FT_OPEN_MEMORY */
147
+ /* FT_OPEN_STREAM */
148
+ /* FT_OPEN_PATHNAME */
149
+ /* FT_OPEN_DRIVER */
150
+ /* FT_OPEN_PARAMS */
151
+ /* */
152
+ /* FT_LOAD_DEFAULT */
153
+ /* FT_LOAD_RENDER */
154
+ /* FT_LOAD_MONOCHROME */
155
+ /* FT_LOAD_LINEAR_DESIGN */
156
+ /* FT_LOAD_NO_SCALE */
157
+ /* FT_LOAD_NO_HINTING */
158
+ /* FT_LOAD_NO_BITMAP */
159
+ /* FT_LOAD_CROP_BITMAP */
160
+ /* */
161
+ /* FT_LOAD_VERTICAL_LAYOUT */
162
+ /* FT_LOAD_IGNORE_TRANSFORM */
163
+ /* FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH */
164
+ /* FT_LOAD_FORCE_AUTOHINT */
165
+ /* FT_LOAD_NO_RECURSE */
166
+ /* FT_LOAD_PEDANTIC */
167
+ /* */
168
+ /* FT_LOAD_TARGET_NORMAL */
169
+ /* FT_LOAD_TARGET_LIGHT */
170
+ /* FT_LOAD_TARGET_MONO */
171
+ /* FT_LOAD_TARGET_LCD */
172
+ /* FT_LOAD_TARGET_LCD_V */
173
+ /* */
174
+ /* FT_Render_Glyph */
175
+ /* FT_Render_Mode */
176
+ /* FT_Get_Kerning */
177
+ /* FT_Kerning_Mode */
178
+ /* FT_Get_Track_Kerning */
179
+ /* FT_Get_Glyph_Name */
180
+ /* FT_Get_Postscript_Name */
181
+ /* */
182
+ /* FT_CharMapRec */
183
+ /* FT_Select_Charmap */
184
+ /* FT_Set_Charmap */
185
+ /* FT_Get_Charmap_Index */
186
+ /* */
187
+ /* FT_FSTYPE_INSTALLABLE_EMBEDDING */
188
+ /* FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING */
189
+ /* FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING */
190
+ /* FT_FSTYPE_EDITABLE_EMBEDDING */
191
+ /* FT_FSTYPE_NO_SUBSETTING */
192
+ /* FT_FSTYPE_BITMAP_EMBEDDING_ONLY */
193
+ /* */
194
+ /* FT_Get_FSType_Flags */
195
+ /* */
196
+ /*************************************************************************/
197
+
198
+
199
+ /*************************************************************************/
200
+ /* */
201
+ /* <Struct> */
202
+ /* FT_Glyph_Metrics */
203
+ /* */
204
+ /* <Description> */
205
+ /* A structure used to model the metrics of a single glyph. The */
206
+ /* values are expressed in 26.6 fractional pixel format; if the flag */
207
+ /* @FT_LOAD_NO_SCALE has been used while loading the glyph, values */
208
+ /* are expressed in font units instead. */
209
+ /* */
210
+ /* <Fields> */
211
+ /* width :: */
212
+ /* The glyph's width. */
213
+ /* */
214
+ /* height :: */
215
+ /* The glyph's height. */
216
+ /* */
217
+ /* horiBearingX :: */
218
+ /* Left side bearing for horizontal layout. */
219
+ /* */
220
+ /* horiBearingY :: */
221
+ /* Top side bearing for horizontal layout. */
222
+ /* */
223
+ /* horiAdvance :: */
224
+ /* Advance width for horizontal layout. */
225
+ /* */
226
+ /* vertBearingX :: */
227
+ /* Left side bearing for vertical layout. */
228
+ /* */
229
+ /* vertBearingY :: */
230
+ /* Top side bearing for vertical layout. */
231
+ /* */
232
+ /* vertAdvance :: */
233
+ /* Advance height for vertical layout. */
234
+ /* */
235
+ /* <Note> */
236
+ /* If not disabled with @FT_LOAD_NO_HINTING, the values represent */
237
+ /* dimensions of the hinted glyph (in case hinting is applicable). */
238
+ /* */
239
+ typedef struct FT_Glyph_Metrics_
240
+ {
241
+ FT_Pos width;
242
+ FT_Pos height;
243
+
244
+ FT_Pos horiBearingX;
245
+ FT_Pos horiBearingY;
246
+ FT_Pos horiAdvance;
247
+
248
+ FT_Pos vertBearingX;
249
+ FT_Pos vertBearingY;
250
+ FT_Pos vertAdvance;
251
+
252
+ } FT_Glyph_Metrics;
253
+
254
+
255
+ /*************************************************************************/
256
+ /* */
257
+ /* <Struct> */
258
+ /* FT_Bitmap_Size */
259
+ /* */
260
+ /* <Description> */
261
+ /* This structure models the metrics of a bitmap strike (i.e., a set */
262
+ /* of glyphs for a given point size and resolution) in a bitmap font. */
263
+ /* It is used for the `available_sizes' field of @FT_Face. */
264
+ /* */
265
+ /* <Fields> */
266
+ /* height :: The vertical distance, in pixels, between two */
267
+ /* consecutive baselines. It is always positive. */
268
+ /* */
269
+ /* width :: The average width, in pixels, of all glyphs in the */
270
+ /* strike. */
271
+ /* */
272
+ /* size :: The nominal size of the strike in 26.6 fractional */
273
+ /* points. This field is not very useful. */
274
+ /* */
275
+ /* x_ppem :: The horizontal ppem (nominal width) in 26.6 fractional */
276
+ /* pixels. */
277
+ /* */
278
+ /* y_ppem :: The vertical ppem (nominal height) in 26.6 fractional */
279
+ /* pixels. */
280
+ /* */
281
+ /* <Note> */
282
+ /* Windows FNT: */
283
+ /* The nominal size given in a FNT font is not reliable. Thus when */
284
+ /* the driver finds it incorrect, it sets `size' to some calculated */
285
+ /* values and sets `x_ppem' and `y_ppem' to the pixel width and */
286
+ /* height given in the font, respectively. */
287
+ /* */
288
+ /* TrueType embedded bitmaps: */
289
+ /* `size', `width', and `height' values are not contained in the */
290
+ /* bitmap strike itself. They are computed from the global font */
291
+ /* parameters. */
292
+ /* */
293
+ typedef struct FT_Bitmap_Size_
294
+ {
295
+ FT_Short height;
296
+ FT_Short width;
297
+
298
+ FT_Pos size;
299
+
300
+ FT_Pos x_ppem;
301
+ FT_Pos y_ppem;
302
+
303
+ } FT_Bitmap_Size;
304
+
305
+
306
+ /*************************************************************************/
307
+ /*************************************************************************/
308
+ /* */
309
+ /* O B J E C T C L A S S E S */
310
+ /* */
311
+ /*************************************************************************/
312
+ /*************************************************************************/
313
+
314
+ /*************************************************************************/
315
+ /* */
316
+ /* <Type> */
317
+ /* FT_Library */
318
+ /* */
319
+ /* <Description> */
320
+ /* A handle to a FreeType library instance. Each `library' is */
321
+ /* completely independent from the others; it is the `root' of a set */
322
+ /* of objects like fonts, faces, sizes, etc. */
323
+ /* */
324
+ /* It also embeds a memory manager (see @FT_Memory), as well as a */
325
+ /* scan-line converter object (see @FT_Raster). */
326
+ /* */
327
+ /* For multi-threading applications each thread should have its own */
328
+ /* FT_Library object. */
329
+ /* */
330
+ /* <Note> */
331
+ /* Library objects are normally created by @FT_Init_FreeType, and */
332
+ /* destroyed with @FT_Done_FreeType. */
333
+ /* */
334
+ typedef struct FT_LibraryRec_ *FT_Library;
335
+
336
+
337
+ /*************************************************************************/
338
+ /* */
339
+ /* <Type> */
340
+ /* FT_Module */
341
+ /* */
342
+ /* <Description> */
343
+ /* A handle to a given FreeType module object. Each module can be a */
344
+ /* font driver, a renderer, or anything else that provides services */
345
+ /* to the formers. */
346
+ /* */
347
+ typedef struct FT_ModuleRec_* FT_Module;
348
+
349
+
350
+ /*************************************************************************/
351
+ /* */
352
+ /* <Type> */
353
+ /* FT_Driver */
354
+ /* */
355
+ /* <Description> */
356
+ /* A handle to a given FreeType font driver object. Each font driver */
357
+ /* is a special module capable of creating faces from font files. */
358
+ /* */
359
+ typedef struct FT_DriverRec_* FT_Driver;
360
+
361
+
362
+ /*************************************************************************/
363
+ /* */
364
+ /* <Type> */
365
+ /* FT_Renderer */
366
+ /* */
367
+ /* <Description> */
368
+ /* A handle to a given FreeType renderer. A renderer is a special */
369
+ /* module in charge of converting a glyph image to a bitmap, when */
370
+ /* necessary. Each renderer supports a given glyph image format, and */
371
+ /* one or more target surface depths. */
372
+ /* */
373
+ typedef struct FT_RendererRec_* FT_Renderer;
374
+
375
+
376
+ /*************************************************************************/
377
+ /* */
378
+ /* <Type> */
379
+ /* FT_Face */
380
+ /* */
381
+ /* <Description> */
382
+ /* A handle to a given typographic face object. A face object models */
383
+ /* a given typeface, in a given style. */
384
+ /* */
385
+ /* <Note> */
386
+ /* Each face object also owns a single @FT_GlyphSlot object, as well */
387
+ /* as one or more @FT_Size objects. */
388
+ /* */
389
+ /* Use @FT_New_Face or @FT_Open_Face to create a new face object from */
390
+ /* a given filepathname or a custom input stream. */
391
+ /* */
392
+ /* Use @FT_Done_Face to destroy it (along with its slot and sizes). */
393
+ /* */
394
+ /* <Also> */
395
+ /* See @FT_FaceRec for the publicly accessible fields of a given face */
396
+ /* object. */
397
+ /* */
398
+ typedef struct FT_FaceRec_* FT_Face;
399
+
400
+
401
+ /*************************************************************************/
402
+ /* */
403
+ /* <Type> */
404
+ /* FT_Size */
405
+ /* */
406
+ /* <Description> */
407
+ /* A handle to an object used to model a face scaled to a given */
408
+ /* character size. */
409
+ /* */
410
+ /* <Note> */
411
+ /* Each @FT_Face has an _active_ @FT_Size object that is used by */
412
+ /* functions like @FT_Load_Glyph to determine the scaling */
413
+ /* transformation which is used to load and hint glyphs and metrics. */
414
+ /* */
415
+ /* You can use @FT_Set_Char_Size, @FT_Set_Pixel_Sizes, */
416
+ /* @FT_Request_Size or even @FT_Select_Size to change the content */
417
+ /* (i.e., the scaling values) of the active @FT_Size. */
418
+ /* */
419
+ /* You can use @FT_New_Size to create additional size objects for a */
420
+ /* given @FT_Face, but they won't be used by other functions until */
421
+ /* you activate it through @FT_Activate_Size. Only one size can be */
422
+ /* activated at any given time per face. */
423
+ /* */
424
+ /* <Also> */
425
+ /* See @FT_SizeRec for the publicly accessible fields of a given size */
426
+ /* object. */
427
+ /* */
428
+ typedef struct FT_SizeRec_* FT_Size;
429
+
430
+
431
+ /*************************************************************************/
432
+ /* */
433
+ /* <Type> */
434
+ /* FT_GlyphSlot */
435
+ /* */
436
+ /* <Description> */
437
+ /* A handle to a given `glyph slot'. A slot is a container where it */
438
+ /* is possible to load any of the glyphs contained in its parent */
439
+ /* face. */
440
+ /* */
441
+ /* In other words, each time you call @FT_Load_Glyph or */
442
+ /* @FT_Load_Char, the slot's content is erased by the new glyph data, */
443
+ /* i.e., the glyph's metrics, its image (bitmap or outline), and */
444
+ /* other control information. */
445
+ /* */
446
+ /* <Also> */
447
+ /* See @FT_GlyphSlotRec for the publicly accessible glyph fields. */
448
+ /* */
449
+ typedef struct FT_GlyphSlotRec_* FT_GlyphSlot;
450
+
451
+
452
+ /*************************************************************************/
453
+ /* */
454
+ /* <Type> */
455
+ /* FT_CharMap */
456
+ /* */
457
+ /* <Description> */
458
+ /* A handle to a given character map. A charmap is used to translate */
459
+ /* character codes in a given encoding into glyph indexes for its */
460
+ /* parent's face. Some font formats may provide several charmaps per */
461
+ /* font. */
462
+ /* */
463
+ /* Each face object owns zero or more charmaps, but only one of them */
464
+ /* can be `active' and used by @FT_Get_Char_Index or @FT_Load_Char. */
465
+ /* */
466
+ /* The list of available charmaps in a face is available through the */
467
+ /* `face->num_charmaps' and `face->charmaps' fields of @FT_FaceRec. */
468
+ /* */
469
+ /* The currently active charmap is available as `face->charmap'. */
470
+ /* You should call @FT_Set_Charmap to change it. */
471
+ /* */
472
+ /* <Note> */
473
+ /* When a new face is created (either through @FT_New_Face or */
474
+ /* @FT_Open_Face), the library looks for a Unicode charmap within */
475
+ /* the list and automatically activates it. */
476
+ /* */
477
+ /* <Also> */
478
+ /* See @FT_CharMapRec for the publicly accessible fields of a given */
479
+ /* character map. */
480
+ /* */
481
+ typedef struct FT_CharMapRec_* FT_CharMap;
482
+
483
+
484
+ /*************************************************************************/
485
+ /* */
486
+ /* <Macro> */
487
+ /* FT_ENC_TAG */
488
+ /* */
489
+ /* <Description> */
490
+ /* This macro converts four-letter tags into an unsigned long. It is */
491
+ /* used to define `encoding' identifiers (see @FT_Encoding). */
492
+ /* */
493
+ /* <Note> */
494
+ /* Since many 16-bit compilers don't like 32-bit enumerations, you */
495
+ /* should redefine this macro in case of problems to something like */
496
+ /* this: */
497
+ /* */
498
+ /* { */
499
+ /* #define FT_ENC_TAG( value, a, b, c, d ) value */
500
+ /* } */
501
+ /* */
502
+ /* to get a simple enumeration without assigning special numbers. */
503
+ /* */
504
+
505
+ #ifndef FT_ENC_TAG
506
+ #define FT_ENC_TAG( value, a, b, c, d ) \
507
+ value = ( ( (FT_UInt32)(a) << 24 ) | \
508
+ ( (FT_UInt32)(b) << 16 ) | \
509
+ ( (FT_UInt32)(c) << 8 ) | \
510
+ (FT_UInt32)(d) )
511
+
512
+ #endif /* FT_ENC_TAG */
513
+
514
+
515
+ /*************************************************************************/
516
+ /* */
517
+ /* <Enum> */
518
+ /* FT_Encoding */
519
+ /* */
520
+ /* <Description> */
521
+ /* An enumeration used to specify character sets supported by */
522
+ /* charmaps. Used in the @FT_Select_Charmap API function. */
523
+ /* */
524
+ /* <Note> */
525
+ /* Despite the name, this enumeration lists specific character */
526
+ /* repertories (i.e., charsets), and not text encoding methods (e.g., */
527
+ /* UTF-8, UTF-16, etc.). */
528
+ /* */
529
+ /* Other encodings might be defined in the future. */
530
+ /* */
531
+ /* <Values> */
532
+ /* FT_ENCODING_NONE :: */
533
+ /* The encoding value~0 is reserved. */
534
+ /* */
535
+ /* FT_ENCODING_UNICODE :: */
536
+ /* Corresponds to the Unicode character set. This value covers */
537
+ /* all versions of the Unicode repertoire, including ASCII and */
538
+ /* Latin-1. Most fonts include a Unicode charmap, but not all */
539
+ /* of them. */
540
+ /* */
541
+ /* For example, if you want to access Unicode value U+1F028 (and */
542
+ /* the font contains it), use value 0x1F028 as the input value for */
543
+ /* @FT_Get_Char_Index. */
544
+ /* */
545
+ /* FT_ENCODING_MS_SYMBOL :: */
546
+ /* Corresponds to the Microsoft Symbol encoding, used to encode */
547
+ /* mathematical symbols in the 32..255 character code range. For */
548
+ /* more information, see `http://www.ceviz.net/symbol.htm'. */
549
+ /* */
550
+ /* FT_ENCODING_SJIS :: */
551
+ /* Corresponds to Japanese SJIS encoding. More info at */
552
+ /* at `http://langsupport.japanreference.com/encoding.shtml'. */
553
+ /* See note on multi-byte encodings below. */
554
+ /* */
555
+ /* FT_ENCODING_GB2312 :: */
556
+ /* Corresponds to an encoding system for Simplified Chinese as used */
557
+ /* used in mainland China. */
558
+ /* */
559
+ /* FT_ENCODING_BIG5 :: */
560
+ /* Corresponds to an encoding system for Traditional Chinese as */
561
+ /* used in Taiwan and Hong Kong. */
562
+ /* */
563
+ /* FT_ENCODING_WANSUNG :: */
564
+ /* Corresponds to the Korean encoding system known as Wansung. */
565
+ /* For more information see */
566
+ /* `http://www.microsoft.com/typography/unicode/949.txt'. */
567
+ /* */
568
+ /* FT_ENCODING_JOHAB :: */
569
+ /* The Korean standard character set (KS~C 5601-1992), which */
570
+ /* corresponds to MS Windows code page 1361. This character set */
571
+ /* includes all possible Hangeul character combinations. */
572
+ /* */
573
+ /* FT_ENCODING_ADOBE_LATIN_1 :: */
574
+ /* Corresponds to a Latin-1 encoding as defined in a Type~1 */
575
+ /* PostScript font. It is limited to 256 character codes. */
576
+ /* */
577
+ /* FT_ENCODING_ADOBE_STANDARD :: */
578
+ /* Corresponds to the Adobe Standard encoding, as found in Type~1, */
579
+ /* CFF, and OpenType/CFF fonts. It is limited to 256 character */
580
+ /* codes. */
581
+ /* */
582
+ /* FT_ENCODING_ADOBE_EXPERT :: */
583
+ /* Corresponds to the Adobe Expert encoding, as found in Type~1, */
584
+ /* CFF, and OpenType/CFF fonts. It is limited to 256 character */
585
+ /* codes. */
586
+ /* */
587
+ /* FT_ENCODING_ADOBE_CUSTOM :: */
588
+ /* Corresponds to a custom encoding, as found in Type~1, CFF, and */
589
+ /* OpenType/CFF fonts. It is limited to 256 character codes. */
590
+ /* */
591
+ /* FT_ENCODING_APPLE_ROMAN :: */
592
+ /* Corresponds to the 8-bit Apple roman encoding. Many TrueType */
593
+ /* and OpenType fonts contain a charmap for this encoding, since */
594
+ /* older versions of Mac OS are able to use it. */
595
+ /* */
596
+ /* FT_ENCODING_OLD_LATIN_2 :: */
597
+ /* This value is deprecated and was never used nor reported by */
598
+ /* FreeType. Don't use or test for it. */
599
+ /* */
600
+ /* FT_ENCODING_MS_SJIS :: */
601
+ /* Same as FT_ENCODING_SJIS. Deprecated. */
602
+ /* */
603
+ /* FT_ENCODING_MS_GB2312 :: */
604
+ /* Same as FT_ENCODING_GB2312. Deprecated. */
605
+ /* */
606
+ /* FT_ENCODING_MS_BIG5 :: */
607
+ /* Same as FT_ENCODING_BIG5. Deprecated. */
608
+ /* */
609
+ /* FT_ENCODING_MS_WANSUNG :: */
610
+ /* Same as FT_ENCODING_WANSUNG. Deprecated. */
611
+ /* */
612
+ /* FT_ENCODING_MS_JOHAB :: */
613
+ /* Same as FT_ENCODING_JOHAB. Deprecated. */
614
+ /* */
615
+ /* <Note> */
616
+ /* By default, FreeType automatically synthesizes a Unicode charmap */
617
+ /* for PostScript fonts, using their glyph names dictionaries. */
618
+ /* However, it also reports the encodings defined explicitly in the */
619
+ /* font file, for the cases when they are needed, with the Adobe */
620
+ /* values as well. */
621
+ /* */
622
+ /* FT_ENCODING_NONE is set by the BDF and PCF drivers if the charmap */
623
+ /* is neither Unicode nor ISO-8859-1 (otherwise it is set to */
624
+ /* FT_ENCODING_UNICODE). Use @FT_Get_BDF_Charset_ID to find out */
625
+ /* which encoding is really present. If, for example, the */
626
+ /* `cs_registry' field is `KOI8' and the `cs_encoding' field is `R', */
627
+ /* the font is encoded in KOI8-R. */
628
+ /* */
629
+ /* FT_ENCODING_NONE is always set (with a single exception) by the */
630
+ /* winfonts driver. Use @FT_Get_WinFNT_Header and examine the */
631
+ /* `charset' field of the @FT_WinFNT_HeaderRec structure to find out */
632
+ /* which encoding is really present. For example, */
633
+ /* @FT_WinFNT_ID_CP1251 (204) means Windows code page 1251 (for */
634
+ /* Russian). */
635
+ /* */
636
+ /* FT_ENCODING_NONE is set if `platform_id' is @TT_PLATFORM_MACINTOSH */
637
+ /* and `encoding_id' is not @TT_MAC_ID_ROMAN (otherwise it is set to */
638
+ /* FT_ENCODING_APPLE_ROMAN). */
639
+ /* */
640
+ /* If `platform_id' is @TT_PLATFORM_MACINTOSH, use the function */
641
+ /* @FT_Get_CMap_Language_ID to query the Mac language ID which may */
642
+ /* be needed to be able to distinguish Apple encoding variants. See */
643
+ /* */
644
+ /* http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/README.TXT */
645
+ /* */
646
+ /* to get an idea how to do that. Basically, if the language ID */
647
+ /* is~0, don't use it, otherwise subtract 1 from the language ID. */
648
+ /* Then examine `encoding_id'. If, for example, `encoding_id' is */
649
+ /* @TT_MAC_ID_ROMAN and the language ID (minus~1) is */
650
+ /* `TT_MAC_LANGID_GREEK', it is the Greek encoding, not Roman. */
651
+ /* @TT_MAC_ID_ARABIC with `TT_MAC_LANGID_FARSI' means the Farsi */
652
+ /* variant the Arabic encoding. */
653
+ /* */
654
+ typedef enum FT_Encoding_
655
+ {
656
+ FT_ENC_TAG( FT_ENCODING_NONE, 0, 0, 0, 0 ),
657
+
658
+ FT_ENC_TAG( FT_ENCODING_MS_SYMBOL, 's', 'y', 'm', 'b' ),
659
+ FT_ENC_TAG( FT_ENCODING_UNICODE, 'u', 'n', 'i', 'c' ),
660
+
661
+ FT_ENC_TAG( FT_ENCODING_SJIS, 's', 'j', 'i', 's' ),
662
+ FT_ENC_TAG( FT_ENCODING_GB2312, 'g', 'b', ' ', ' ' ),
663
+ FT_ENC_TAG( FT_ENCODING_BIG5, 'b', 'i', 'g', '5' ),
664
+ FT_ENC_TAG( FT_ENCODING_WANSUNG, 'w', 'a', 'n', 's' ),
665
+ FT_ENC_TAG( FT_ENCODING_JOHAB, 'j', 'o', 'h', 'a' ),
666
+
667
+ /* for backwards compatibility */
668
+ FT_ENCODING_MS_SJIS = FT_ENCODING_SJIS,
669
+ FT_ENCODING_MS_GB2312 = FT_ENCODING_GB2312,
670
+ FT_ENCODING_MS_BIG5 = FT_ENCODING_BIG5,
671
+ FT_ENCODING_MS_WANSUNG = FT_ENCODING_WANSUNG,
672
+ FT_ENCODING_MS_JOHAB = FT_ENCODING_JOHAB,
673
+
674
+ FT_ENC_TAG( FT_ENCODING_ADOBE_STANDARD, 'A', 'D', 'O', 'B' ),
675
+ FT_ENC_TAG( FT_ENCODING_ADOBE_EXPERT, 'A', 'D', 'B', 'E' ),
676
+ FT_ENC_TAG( FT_ENCODING_ADOBE_CUSTOM, 'A', 'D', 'B', 'C' ),
677
+ FT_ENC_TAG( FT_ENCODING_ADOBE_LATIN_1, 'l', 'a', 't', '1' ),
678
+
679
+ FT_ENC_TAG( FT_ENCODING_OLD_LATIN_2, 'l', 'a', 't', '2' ),
680
+
681
+ FT_ENC_TAG( FT_ENCODING_APPLE_ROMAN, 'a', 'r', 'm', 'n' )
682
+
683
+ } FT_Encoding;
684
+
685
+
686
+ /*************************************************************************/
687
+ /* */
688
+ /* <Enum> */
689
+ /* ft_encoding_xxx */
690
+ /* */
691
+ /* <Description> */
692
+ /* These constants are deprecated; use the corresponding @FT_Encoding */
693
+ /* values instead. */
694
+ /* */
695
+ #define ft_encoding_none FT_ENCODING_NONE
696
+ #define ft_encoding_unicode FT_ENCODING_UNICODE
697
+ #define ft_encoding_symbol FT_ENCODING_MS_SYMBOL
698
+ #define ft_encoding_latin_1 FT_ENCODING_ADOBE_LATIN_1
699
+ #define ft_encoding_latin_2 FT_ENCODING_OLD_LATIN_2
700
+ #define ft_encoding_sjis FT_ENCODING_SJIS
701
+ #define ft_encoding_gb2312 FT_ENCODING_GB2312
702
+ #define ft_encoding_big5 FT_ENCODING_BIG5
703
+ #define ft_encoding_wansung FT_ENCODING_WANSUNG
704
+ #define ft_encoding_johab FT_ENCODING_JOHAB
705
+
706
+ #define ft_encoding_adobe_standard FT_ENCODING_ADOBE_STANDARD
707
+ #define ft_encoding_adobe_expert FT_ENCODING_ADOBE_EXPERT
708
+ #define ft_encoding_adobe_custom FT_ENCODING_ADOBE_CUSTOM
709
+ #define ft_encoding_apple_roman FT_ENCODING_APPLE_ROMAN
710
+
711
+
712
+ /*************************************************************************/
713
+ /* */
714
+ /* <Struct> */
715
+ /* FT_CharMapRec */
716
+ /* */
717
+ /* <Description> */
718
+ /* The base charmap structure. */
719
+ /* */
720
+ /* <Fields> */
721
+ /* face :: A handle to the parent face object. */
722
+ /* */
723
+ /* encoding :: An @FT_Encoding tag identifying the charmap. Use */
724
+ /* this with @FT_Select_Charmap. */
725
+ /* */
726
+ /* platform_id :: An ID number describing the platform for the */
727
+ /* following encoding ID. This comes directly from */
728
+ /* the TrueType specification and should be emulated */
729
+ /* for other formats. */
730
+ /* */
731
+ /* encoding_id :: A platform specific encoding number. This also */
732
+ /* comes from the TrueType specification and should be */
733
+ /* emulated similarly. */
734
+ /* */
735
+ typedef struct FT_CharMapRec_
736
+ {
737
+ FT_Face face;
738
+ FT_Encoding encoding;
739
+ FT_UShort platform_id;
740
+ FT_UShort encoding_id;
741
+
742
+ } FT_CharMapRec;
743
+
744
+
745
+ /*************************************************************************/
746
+ /*************************************************************************/
747
+ /* */
748
+ /* B A S E O B J E C T C L A S S E S */
749
+ /* */
750
+ /*************************************************************************/
751
+ /*************************************************************************/
752
+
753
+
754
+ /*************************************************************************/
755
+ /* */
756
+ /* <Type> */
757
+ /* FT_Face_Internal */
758
+ /* */
759
+ /* <Description> */
760
+ /* An opaque handle to an `FT_Face_InternalRec' structure, used to */
761
+ /* model private data of a given @FT_Face object. */
762
+ /* */
763
+ /* This structure might change between releases of FreeType~2 and is */
764
+ /* not generally available to client applications. */
765
+ /* */
766
+ typedef struct FT_Face_InternalRec_* FT_Face_Internal;
767
+
768
+
769
+ /*************************************************************************/
770
+ /* */
771
+ /* <Struct> */
772
+ /* FT_FaceRec */
773
+ /* */
774
+ /* <Description> */
775
+ /* FreeType root face class structure. A face object models a */
776
+ /* typeface in a font file. */
777
+ /* */
778
+ /* <Fields> */
779
+ /* num_faces :: The number of faces in the font file. Some */
780
+ /* font formats can have multiple faces in */
781
+ /* a font file. */
782
+ /* */
783
+ /* face_index :: The index of the face in the font file. It */
784
+ /* is set to~0 if there is only one face in */
785
+ /* the font file. */
786
+ /* */
787
+ /* face_flags :: A set of bit flags that give important */
788
+ /* information about the face; see */
789
+ /* @FT_FACE_FLAG_XXX for the details. */
790
+ /* */
791
+ /* style_flags :: A set of bit flags indicating the style of */
792
+ /* the face; see @FT_STYLE_FLAG_XXX for the */
793
+ /* details. */
794
+ /* */
795
+ /* num_glyphs :: The number of glyphs in the face. If the */
796
+ /* face is scalable and has sbits (see */
797
+ /* `num_fixed_sizes'), it is set to the number */
798
+ /* of outline glyphs. */
799
+ /* */
800
+ /* For CID-keyed fonts, this value gives the */
801
+ /* highest CID used in the font. */
802
+ /* */
803
+ /* family_name :: The face's family name. This is an ASCII */
804
+ /* string, usually in English, which describes */
805
+ /* the typeface's family (like `Times New */
806
+ /* Roman', `Bodoni', `Garamond', etc). This */
807
+ /* is a least common denominator used to list */
808
+ /* fonts. Some formats (TrueType & OpenType) */
809
+ /* provide localized and Unicode versions of */
810
+ /* this string. Applications should use the */
811
+ /* format specific interface to access them. */
812
+ /* Can be NULL (e.g., in fonts embedded in a */
813
+ /* PDF file). */
814
+ /* */
815
+ /* style_name :: The face's style name. This is an ASCII */
816
+ /* string, usually in English, which describes */
817
+ /* the typeface's style (like `Italic', */
818
+ /* `Bold', `Condensed', etc). Not all font */
819
+ /* formats provide a style name, so this field */
820
+ /* is optional, and can be set to NULL. As */
821
+ /* for `family_name', some formats provide */
822
+ /* localized and Unicode versions of this */
823
+ /* string. Applications should use the format */
824
+ /* specific interface to access them. */
825
+ /* */
826
+ /* num_fixed_sizes :: The number of bitmap strikes in the face. */
827
+ /* Even if the face is scalable, there might */
828
+ /* still be bitmap strikes, which are called */
829
+ /* `sbits' in that case. */
830
+ /* */
831
+ /* available_sizes :: An array of @FT_Bitmap_Size for all bitmap */
832
+ /* strikes in the face. It is set to NULL if */
833
+ /* there is no bitmap strike. */
834
+ /* */
835
+ /* num_charmaps :: The number of charmaps in the face. */
836
+ /* */
837
+ /* charmaps :: An array of the charmaps of the face. */
838
+ /* */
839
+ /* generic :: A field reserved for client uses. See the */
840
+ /* @FT_Generic type description. */
841
+ /* */
842
+ /* bbox :: The font bounding box. Coordinates are */
843
+ /* expressed in font units (see */
844
+ /* `units_per_EM'). The box is large enough */
845
+ /* to contain any glyph from the font. Thus, */
846
+ /* `bbox.yMax' can be seen as the `maximal */
847
+ /* ascender', and `bbox.yMin' as the `minimal */
848
+ /* descender'. Only relevant for scalable */
849
+ /* formats. */
850
+ /* */
851
+ /* Note that the bounding box might be off by */
852
+ /* (at least) one pixel for hinted fonts. See */
853
+ /* @FT_Size_Metrics for further discussion. */
854
+ /* */
855
+ /* units_per_EM :: The number of font units per EM square for */
856
+ /* this face. This is typically 2048 for */
857
+ /* TrueType fonts, and 1000 for Type~1 fonts. */
858
+ /* Only relevant for scalable formats. */
859
+ /* */
860
+ /* ascender :: The typographic ascender of the face, */
861
+ /* expressed in font units. For font formats */
862
+ /* not having this information, it is set to */
863
+ /* `bbox.yMax'. Only relevant for scalable */
864
+ /* formats. */
865
+ /* */
866
+ /* descender :: The typographic descender of the face, */
867
+ /* expressed in font units. For font formats */
868
+ /* not having this information, it is set to */
869
+ /* `bbox.yMin'. Note that this field is */
870
+ /* usually negative. Only relevant for */
871
+ /* scalable formats. */
872
+ /* */
873
+ /* height :: The height is the vertical distance */
874
+ /* between two consecutive baselines, */
875
+ /* expressed in font units. It is always */
876
+ /* positive. Only relevant for scalable */
877
+ /* formats. */
878
+ /* */
879
+ /* max_advance_width :: The maximal advance width, in font units, */
880
+ /* for all glyphs in this face. This can be */
881
+ /* used to make word wrapping computations */
882
+ /* faster. Only relevant for scalable */
883
+ /* formats. */
884
+ /* */
885
+ /* max_advance_height :: The maximal advance height, in font units, */
886
+ /* for all glyphs in this face. This is only */
887
+ /* relevant for vertical layouts, and is set */
888
+ /* to `height' for fonts that do not provide */
889
+ /* vertical metrics. Only relevant for */
890
+ /* scalable formats. */
891
+ /* */
892
+ /* underline_position :: The position, in font units, of the */
893
+ /* underline line for this face. It is the */
894
+ /* center of the underlining stem. Only */
895
+ /* relevant for scalable formats. */
896
+ /* */
897
+ /* underline_thickness :: The thickness, in font units, of the */
898
+ /* underline for this face. Only relevant for */
899
+ /* scalable formats. */
900
+ /* */
901
+ /* glyph :: The face's associated glyph slot(s). */
902
+ /* */
903
+ /* size :: The current active size for this face. */
904
+ /* */
905
+ /* charmap :: The current active charmap for this face. */
906
+ /* */
907
+ /* <Note> */
908
+ /* Fields may be changed after a call to @FT_Attach_File or */
909
+ /* @FT_Attach_Stream. */
910
+ /* */
911
+ typedef struct FT_FaceRec_
912
+ {
913
+ FT_Long num_faces;
914
+ FT_Long face_index;
915
+
916
+ FT_Long face_flags;
917
+ FT_Long style_flags;
918
+
919
+ FT_Long num_glyphs;
920
+
921
+ FT_String* family_name;
922
+ FT_String* style_name;
923
+
924
+ FT_Int num_fixed_sizes;
925
+ FT_Bitmap_Size* available_sizes;
926
+
927
+ FT_Int num_charmaps;
928
+ FT_CharMap* charmaps;
929
+
930
+ FT_Generic generic;
931
+
932
+ /*# The following member variables (down to `underline_thickness') */
933
+ /*# are only relevant to scalable outlines; cf. @FT_Bitmap_Size */
934
+ /*# for bitmap fonts. */
935
+ FT_BBox bbox;
936
+
937
+ FT_UShort units_per_EM;
938
+ FT_Short ascender;
939
+ FT_Short descender;
940
+ FT_Short height;
941
+
942
+ FT_Short max_advance_width;
943
+ FT_Short max_advance_height;
944
+
945
+ FT_Short underline_position;
946
+ FT_Short underline_thickness;
947
+
948
+ FT_GlyphSlot glyph;
949
+ FT_Size size;
950
+ FT_CharMap charmap;
951
+
952
+ /*@private begin */
953
+
954
+ FT_Driver driver;
955
+ FT_Memory memory;
956
+ FT_Stream stream;
957
+
958
+ FT_ListRec sizes_list;
959
+
960
+ FT_Generic autohint;
961
+ void* extensions;
962
+
963
+ FT_Face_Internal internal;
964
+
965
+ /*@private end */
966
+
967
+ } FT_FaceRec;
968
+
969
+
970
+ /*************************************************************************/
971
+ /* */
972
+ /* <Enum> */
973
+ /* FT_FACE_FLAG_XXX */
974
+ /* */
975
+ /* <Description> */
976
+ /* A list of bit flags used in the `face_flags' field of the */
977
+ /* @FT_FaceRec structure. They inform client applications of */
978
+ /* properties of the corresponding face. */
979
+ /* */
980
+ /* <Values> */
981
+ /* FT_FACE_FLAG_SCALABLE :: */
982
+ /* Indicates that the face contains outline glyphs. This doesn't */
983
+ /* prevent bitmap strikes, i.e., a face can have both this and */
984
+ /* and @FT_FACE_FLAG_FIXED_SIZES set. */
985
+ /* */
986
+ /* FT_FACE_FLAG_FIXED_SIZES :: */
987
+ /* Indicates that the face contains bitmap strikes. See also the */
988
+ /* `num_fixed_sizes' and `available_sizes' fields of @FT_FaceRec. */
989
+ /* */
990
+ /* FT_FACE_FLAG_FIXED_WIDTH :: */
991
+ /* Indicates that the face contains fixed-width characters (like */
992
+ /* Courier, Lucido, MonoType, etc.). */
993
+ /* */
994
+ /* FT_FACE_FLAG_SFNT :: */
995
+ /* Indicates that the face uses the `sfnt' storage scheme. For */
996
+ /* now, this means TrueType and OpenType. */
997
+ /* */
998
+ /* FT_FACE_FLAG_HORIZONTAL :: */
999
+ /* Indicates that the face contains horizontal glyph metrics. This */
1000
+ /* should be set for all common formats. */
1001
+ /* */
1002
+ /* FT_FACE_FLAG_VERTICAL :: */
1003
+ /* Indicates that the face contains vertical glyph metrics. This */
1004
+ /* is only available in some formats, not all of them. */
1005
+ /* */
1006
+ /* FT_FACE_FLAG_KERNING :: */
1007
+ /* Indicates that the face contains kerning information. If set, */
1008
+ /* the kerning distance can be retrieved through the function */
1009
+ /* @FT_Get_Kerning. Otherwise the function always return the */
1010
+ /* vector (0,0). Note that FreeType doesn't handle kerning data */
1011
+ /* from the `GPOS' table (as present in some OpenType fonts). */
1012
+ /* */
1013
+ /* FT_FACE_FLAG_FAST_GLYPHS :: */
1014
+ /* THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT. */
1015
+ /* */
1016
+ /* FT_FACE_FLAG_MULTIPLE_MASTERS :: */
1017
+ /* Indicates that the font contains multiple masters and is capable */
1018
+ /* of interpolating between them. See the multiple-masters */
1019
+ /* specific API for details. */
1020
+ /* */
1021
+ /* FT_FACE_FLAG_GLYPH_NAMES :: */
1022
+ /* Indicates that the font contains glyph names that can be */
1023
+ /* retrieved through @FT_Get_Glyph_Name. Note that some TrueType */
1024
+ /* fonts contain broken glyph name tables. Use the function */
1025
+ /* @FT_Has_PS_Glyph_Names when needed. */
1026
+ /* */
1027
+ /* FT_FACE_FLAG_EXTERNAL_STREAM :: */
1028
+ /* Used internally by FreeType to indicate that a face's stream was */
1029
+ /* provided by the client application and should not be destroyed */
1030
+ /* when @FT_Done_Face is called. Don't read or test this flag. */
1031
+ /* */
1032
+ /* FT_FACE_FLAG_HINTER :: */
1033
+ /* Set if the font driver has a hinting machine of its own. For */
1034
+ /* example, with TrueType fonts, it makes sense to use data from */
1035
+ /* the SFNT `gasp' table only if the native TrueType hinting engine */
1036
+ /* (with the bytecode interpreter) is available and active. */
1037
+ /* */
1038
+ /* FT_FACE_FLAG_CID_KEYED :: */
1039
+ /* Set if the font is CID-keyed. In that case, the font is not */
1040
+ /* accessed by glyph indices but by CID values. For subsetted */
1041
+ /* CID-keyed fonts this has the consequence that not all index */
1042
+ /* values are a valid argument to FT_Load_Glyph. Only the CID */
1043
+ /* values for which corresponding glyphs in the subsetted font */
1044
+ /* exist make FT_Load_Glyph return successfully; in all other cases */
1045
+ /* you get an `FT_Err_Invalid_Argument' error. */
1046
+ /* */
1047
+ /* Note that CID-keyed fonts which are in an SFNT wrapper don't */
1048
+ /* have this flag set since the glyphs are accessed in the normal */
1049
+ /* way (using contiguous indices); the `CID-ness' isn't visible to */
1050
+ /* the application. */
1051
+ /* */
1052
+ /* FT_FACE_FLAG_TRICKY :: */
1053
+ /* Set if the font is `tricky', this is, it always needs the */
1054
+ /* font format's native hinting engine to get a reasonable result. */
1055
+ /* A typical example is the Chinese font `mingli.ttf' which uses */
1056
+ /* TrueType bytecode instructions to move and scale all of its */
1057
+ /* subglyphs. */
1058
+ /* */
1059
+ /* It is not possible to autohint such fonts using */
1060
+ /* @FT_LOAD_FORCE_AUTOHINT; it will also ignore */
1061
+ /* @FT_LOAD_NO_HINTING. You have to set both FT_LOAD_NO_HINTING */
1062
+ /* and @FT_LOAD_NO_AUTOHINT to really disable hinting; however, you */
1063
+ /* probably never want this except for demonstration purposes. */
1064
+ /* */
1065
+ /* Currently, there are six TrueType fonts in the list of tricky */
1066
+ /* fonts; they are hard-coded in file `ttobjs.c'. */
1067
+ /* */
1068
+ #define FT_FACE_FLAG_SCALABLE ( 1L << 0 )
1069
+ #define FT_FACE_FLAG_FIXED_SIZES ( 1L << 1 )
1070
+ #define FT_FACE_FLAG_FIXED_WIDTH ( 1L << 2 )
1071
+ #define FT_FACE_FLAG_SFNT ( 1L << 3 )
1072
+ #define FT_FACE_FLAG_HORIZONTAL ( 1L << 4 )
1073
+ #define FT_FACE_FLAG_VERTICAL ( 1L << 5 )
1074
+ #define FT_FACE_FLAG_KERNING ( 1L << 6 )
1075
+ #define FT_FACE_FLAG_FAST_GLYPHS ( 1L << 7 )
1076
+ #define FT_FACE_FLAG_MULTIPLE_MASTERS ( 1L << 8 )
1077
+ #define FT_FACE_FLAG_GLYPH_NAMES ( 1L << 9 )
1078
+ #define FT_FACE_FLAG_EXTERNAL_STREAM ( 1L << 10 )
1079
+ #define FT_FACE_FLAG_HINTER ( 1L << 11 )
1080
+ #define FT_FACE_FLAG_CID_KEYED ( 1L << 12 )
1081
+ #define FT_FACE_FLAG_TRICKY ( 1L << 13 )
1082
+
1083
+
1084
+ /*************************************************************************
1085
+ *
1086
+ * @macro:
1087
+ * FT_HAS_HORIZONTAL( face )
1088
+ *
1089
+ * @description:
1090
+ * A macro that returns true whenever a face object contains
1091
+ * horizontal metrics (this is true for all font formats though).
1092
+ *
1093
+ * @also:
1094
+ * @FT_HAS_VERTICAL can be used to check for vertical metrics.
1095
+ *
1096
+ */
1097
+ #define FT_HAS_HORIZONTAL( face ) \
1098
+ ( face->face_flags & FT_FACE_FLAG_HORIZONTAL )
1099
+
1100
+
1101
+ /*************************************************************************
1102
+ *
1103
+ * @macro:
1104
+ * FT_HAS_VERTICAL( face )
1105
+ *
1106
+ * @description:
1107
+ * A macro that returns true whenever a face object contains vertical
1108
+ * metrics.
1109
+ *
1110
+ */
1111
+ #define FT_HAS_VERTICAL( face ) \
1112
+ ( face->face_flags & FT_FACE_FLAG_VERTICAL )
1113
+
1114
+
1115
+ /*************************************************************************
1116
+ *
1117
+ * @macro:
1118
+ * FT_HAS_KERNING( face )
1119
+ *
1120
+ * @description:
1121
+ * A macro that returns true whenever a face object contains kerning
1122
+ * data that can be accessed with @FT_Get_Kerning.
1123
+ *
1124
+ */
1125
+ #define FT_HAS_KERNING( face ) \
1126
+ ( face->face_flags & FT_FACE_FLAG_KERNING )
1127
+
1128
+
1129
+ /*************************************************************************
1130
+ *
1131
+ * @macro:
1132
+ * FT_IS_SCALABLE( face )
1133
+ *
1134
+ * @description:
1135
+ * A macro that returns true whenever a face object contains a scalable
1136
+ * font face (true for TrueType, Type~1, Type~42, CID, OpenType/CFF,
1137
+ * and PFR font formats.
1138
+ *
1139
+ */
1140
+ #define FT_IS_SCALABLE( face ) \
1141
+ ( face->face_flags & FT_FACE_FLAG_SCALABLE )
1142
+
1143
+
1144
+ /*************************************************************************
1145
+ *
1146
+ * @macro:
1147
+ * FT_IS_SFNT( face )
1148
+ *
1149
+ * @description:
1150
+ * A macro that returns true whenever a face object contains a font
1151
+ * whose format is based on the SFNT storage scheme. This usually
1152
+ * means: TrueType fonts, OpenType fonts, as well as SFNT-based embedded
1153
+ * bitmap fonts.
1154
+ *
1155
+ * If this macro is true, all functions defined in @FT_SFNT_NAMES_H and
1156
+ * @FT_TRUETYPE_TABLES_H are available.
1157
+ *
1158
+ */
1159
+ #define FT_IS_SFNT( face ) \
1160
+ ( face->face_flags & FT_FACE_FLAG_SFNT )
1161
+
1162
+
1163
+ /*************************************************************************
1164
+ *
1165
+ * @macro:
1166
+ * FT_IS_FIXED_WIDTH( face )
1167
+ *
1168
+ * @description:
1169
+ * A macro that returns true whenever a face object contains a font face
1170
+ * that contains fixed-width (or `monospace', `fixed-pitch', etc.)
1171
+ * glyphs.
1172
+ *
1173
+ */
1174
+ #define FT_IS_FIXED_WIDTH( face ) \
1175
+ ( face->face_flags & FT_FACE_FLAG_FIXED_WIDTH )
1176
+
1177
+
1178
+ /*************************************************************************
1179
+ *
1180
+ * @macro:
1181
+ * FT_HAS_FIXED_SIZES( face )
1182
+ *
1183
+ * @description:
1184
+ * A macro that returns true whenever a face object contains some
1185
+ * embedded bitmaps. See the `available_sizes' field of the
1186
+ * @FT_FaceRec structure.
1187
+ *
1188
+ */
1189
+ #define FT_HAS_FIXED_SIZES( face ) \
1190
+ ( face->face_flags & FT_FACE_FLAG_FIXED_SIZES )
1191
+
1192
+
1193
+ /*************************************************************************
1194
+ *
1195
+ * @macro:
1196
+ * FT_HAS_FAST_GLYPHS( face )
1197
+ *
1198
+ * @description:
1199
+ * Deprecated.
1200
+ *
1201
+ */
1202
+ #define FT_HAS_FAST_GLYPHS( face ) 0
1203
+
1204
+
1205
+ /*************************************************************************
1206
+ *
1207
+ * @macro:
1208
+ * FT_HAS_GLYPH_NAMES( face )
1209
+ *
1210
+ * @description:
1211
+ * A macro that returns true whenever a face object contains some glyph
1212
+ * names that can be accessed through @FT_Get_Glyph_Name.
1213
+ *
1214
+ */
1215
+ #define FT_HAS_GLYPH_NAMES( face ) \
1216
+ ( face->face_flags & FT_FACE_FLAG_GLYPH_NAMES )
1217
+
1218
+
1219
+ /*************************************************************************
1220
+ *
1221
+ * @macro:
1222
+ * FT_HAS_MULTIPLE_MASTERS( face )
1223
+ *
1224
+ * @description:
1225
+ * A macro that returns true whenever a face object contains some
1226
+ * multiple masters. The functions provided by @FT_MULTIPLE_MASTERS_H
1227
+ * are then available to choose the exact design you want.
1228
+ *
1229
+ */
1230
+ #define FT_HAS_MULTIPLE_MASTERS( face ) \
1231
+ ( face->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS )
1232
+
1233
+
1234
+ /*************************************************************************
1235
+ *
1236
+ * @macro:
1237
+ * FT_IS_CID_KEYED( face )
1238
+ *
1239
+ * @description:
1240
+ * A macro that returns true whenever a face object contains a CID-keyed
1241
+ * font. See the discussion of @FT_FACE_FLAG_CID_KEYED for more
1242
+ * details.
1243
+ *
1244
+ * If this macro is true, all functions defined in @FT_CID_H are
1245
+ * available.
1246
+ *
1247
+ */
1248
+ #define FT_IS_CID_KEYED( face ) \
1249
+ ( face->face_flags & FT_FACE_FLAG_CID_KEYED )
1250
+
1251
+
1252
+ /*************************************************************************
1253
+ *
1254
+ * @macro:
1255
+ * FT_IS_TRICKY( face )
1256
+ *
1257
+ * @description:
1258
+ * A macro that returns true whenever a face represents a `tricky' font.
1259
+ * See the discussion of @FT_FACE_FLAG_TRICKY for more details.
1260
+ *
1261
+ */
1262
+ #define FT_IS_TRICKY( face ) \
1263
+ ( face->face_flags & FT_FACE_FLAG_TRICKY )
1264
+
1265
+
1266
+ /*************************************************************************/
1267
+ /* */
1268
+ /* <Const> */
1269
+ /* FT_STYLE_FLAG_XXX */
1270
+ /* */
1271
+ /* <Description> */
1272
+ /* A list of bit-flags used to indicate the style of a given face. */
1273
+ /* These are used in the `style_flags' field of @FT_FaceRec. */
1274
+ /* */
1275
+ /* <Values> */
1276
+ /* FT_STYLE_FLAG_ITALIC :: */
1277
+ /* Indicates that a given face style is italic or oblique. */
1278
+ /* */
1279
+ /* FT_STYLE_FLAG_BOLD :: */
1280
+ /* Indicates that a given face is bold. */
1281
+ /* */
1282
+ /* <Note> */
1283
+ /* The style information as provided by FreeType is very basic. More */
1284
+ /* details are beyond the scope and should be done on a higher level */
1285
+ /* (for example, by analyzing various fields of the `OS/2' table in */
1286
+ /* SFNT based fonts). */
1287
+ /* */
1288
+ #define FT_STYLE_FLAG_ITALIC ( 1 << 0 )
1289
+ #define FT_STYLE_FLAG_BOLD ( 1 << 1 )
1290
+
1291
+
1292
+ /*************************************************************************/
1293
+ /* */
1294
+ /* <Type> */
1295
+ /* FT_Size_Internal */
1296
+ /* */
1297
+ /* <Description> */
1298
+ /* An opaque handle to an `FT_Size_InternalRec' structure, used to */
1299
+ /* model private data of a given @FT_Size object. */
1300
+ /* */
1301
+ typedef struct FT_Size_InternalRec_* FT_Size_Internal;
1302
+
1303
+
1304
+ /*************************************************************************/
1305
+ /* */
1306
+ /* <Struct> */
1307
+ /* FT_Size_Metrics */
1308
+ /* */
1309
+ /* <Description> */
1310
+ /* The size metrics structure gives the metrics of a size object. */
1311
+ /* */
1312
+ /* <Fields> */
1313
+ /* x_ppem :: The width of the scaled EM square in pixels, hence */
1314
+ /* the term `ppem' (pixels per EM). It is also */
1315
+ /* referred to as `nominal width'. */
1316
+ /* */
1317
+ /* y_ppem :: The height of the scaled EM square in pixels, */
1318
+ /* hence the term `ppem' (pixels per EM). It is also */
1319
+ /* referred to as `nominal height'. */
1320
+ /* */
1321
+ /* x_scale :: A 16.16 fractional scaling value used to convert */
1322
+ /* horizontal metrics from font units to 26.6 */
1323
+ /* fractional pixels. Only relevant for scalable */
1324
+ /* font formats. */
1325
+ /* */
1326
+ /* y_scale :: A 16.16 fractional scaling value used to convert */
1327
+ /* vertical metrics from font units to 26.6 */
1328
+ /* fractional pixels. Only relevant for scalable */
1329
+ /* font formats. */
1330
+ /* */
1331
+ /* ascender :: The ascender in 26.6 fractional pixels. See */
1332
+ /* @FT_FaceRec for the details. */
1333
+ /* */
1334
+ /* descender :: The descender in 26.6 fractional pixels. See */
1335
+ /* @FT_FaceRec for the details. */
1336
+ /* */
1337
+ /* height :: The height in 26.6 fractional pixels. See */
1338
+ /* @FT_FaceRec for the details. */
1339
+ /* */
1340
+ /* max_advance :: The maximal advance width in 26.6 fractional */
1341
+ /* pixels. See @FT_FaceRec for the details. */
1342
+ /* */
1343
+ /* <Note> */
1344
+ /* The scaling values, if relevant, are determined first during a */
1345
+ /* size changing operation. The remaining fields are then set by the */
1346
+ /* driver. For scalable formats, they are usually set to scaled */
1347
+ /* values of the corresponding fields in @FT_FaceRec. */
1348
+ /* */
1349
+ /* Note that due to glyph hinting, these values might not be exact */
1350
+ /* for certain fonts. Thus they must be treated as unreliable */
1351
+ /* with an error margin of at least one pixel! */
1352
+ /* */
1353
+ /* Indeed, the only way to get the exact metrics is to render _all_ */
1354
+ /* glyphs. As this would be a definite performance hit, it is up to */
1355
+ /* client applications to perform such computations. */
1356
+ /* */
1357
+ /* The FT_Size_Metrics structure is valid for bitmap fonts also. */
1358
+ /* */
1359
+ typedef struct FT_Size_Metrics_
1360
+ {
1361
+ FT_UShort x_ppem; /* horizontal pixels per EM */
1362
+ FT_UShort y_ppem; /* vertical pixels per EM */
1363
+
1364
+ FT_Fixed x_scale; /* scaling values used to convert font */
1365
+ FT_Fixed y_scale; /* units to 26.6 fractional pixels */
1366
+
1367
+ FT_Pos ascender; /* ascender in 26.6 frac. pixels */
1368
+ FT_Pos descender; /* descender in 26.6 frac. pixels */
1369
+ FT_Pos height; /* text height in 26.6 frac. pixels */
1370
+ FT_Pos max_advance; /* max horizontal advance, in 26.6 pixels */
1371
+
1372
+ } FT_Size_Metrics;
1373
+
1374
+
1375
+ /*************************************************************************/
1376
+ /* */
1377
+ /* <Struct> */
1378
+ /* FT_SizeRec */
1379
+ /* */
1380
+ /* <Description> */
1381
+ /* FreeType root size class structure. A size object models a face */
1382
+ /* object at a given size. */
1383
+ /* */
1384
+ /* <Fields> */
1385
+ /* face :: Handle to the parent face object. */
1386
+ /* */
1387
+ /* generic :: A typeless pointer, which is unused by the FreeType */
1388
+ /* library or any of its drivers. It can be used by */
1389
+ /* client applications to link their own data to each size */
1390
+ /* object. */
1391
+ /* */
1392
+ /* metrics :: Metrics for this size object. This field is read-only. */
1393
+ /* */
1394
+ typedef struct FT_SizeRec_
1395
+ {
1396
+ FT_Face face; /* parent face object */
1397
+ FT_Generic generic; /* generic pointer for client uses */
1398
+ FT_Size_Metrics metrics; /* size metrics */
1399
+ FT_Size_Internal internal;
1400
+
1401
+ } FT_SizeRec;
1402
+
1403
+
1404
+ /*************************************************************************/
1405
+ /* */
1406
+ /* <Struct> */
1407
+ /* FT_SubGlyph */
1408
+ /* */
1409
+ /* <Description> */
1410
+ /* The subglyph structure is an internal object used to describe */
1411
+ /* subglyphs (for example, in the case of composites). */
1412
+ /* */
1413
+ /* <Note> */
1414
+ /* The subglyph implementation is not part of the high-level API, */
1415
+ /* hence the forward structure declaration. */
1416
+ /* */
1417
+ /* You can however retrieve subglyph information with */
1418
+ /* @FT_Get_SubGlyph_Info. */
1419
+ /* */
1420
+ typedef struct FT_SubGlyphRec_* FT_SubGlyph;
1421
+
1422
+
1423
+ /*************************************************************************/
1424
+ /* */
1425
+ /* <Type> */
1426
+ /* FT_Slot_Internal */
1427
+ /* */
1428
+ /* <Description> */
1429
+ /* An opaque handle to an `FT_Slot_InternalRec' structure, used to */
1430
+ /* model private data of a given @FT_GlyphSlot object. */
1431
+ /* */
1432
+ typedef struct FT_Slot_InternalRec_* FT_Slot_Internal;
1433
+
1434
+
1435
+ /*************************************************************************/
1436
+ /* */
1437
+ /* <Struct> */
1438
+ /* FT_GlyphSlotRec */
1439
+ /* */
1440
+ /* <Description> */
1441
+ /* FreeType root glyph slot class structure. A glyph slot is a */
1442
+ /* container where individual glyphs can be loaded, be they in */
1443
+ /* outline or bitmap format. */
1444
+ /* */
1445
+ /* <Fields> */
1446
+ /* library :: A handle to the FreeType library instance */
1447
+ /* this slot belongs to. */
1448
+ /* */
1449
+ /* face :: A handle to the parent face object. */
1450
+ /* */
1451
+ /* next :: In some cases (like some font tools), several */
1452
+ /* glyph slots per face object can be a good */
1453
+ /* thing. As this is rare, the glyph slots are */
1454
+ /* listed through a direct, single-linked list */
1455
+ /* using its `next' field. */
1456
+ /* */
1457
+ /* generic :: A typeless pointer which is unused by the */
1458
+ /* FreeType library or any of its drivers. It */
1459
+ /* can be used by client applications to link */
1460
+ /* their own data to each glyph slot object. */
1461
+ /* */
1462
+ /* metrics :: The metrics of the last loaded glyph in the */
1463
+ /* slot. The returned values depend on the last */
1464
+ /* load flags (see the @FT_Load_Glyph API */
1465
+ /* function) and can be expressed either in 26.6 */
1466
+ /* fractional pixels or font units. */
1467
+ /* */
1468
+ /* Note that even when the glyph image is */
1469
+ /* transformed, the metrics are not. */
1470
+ /* */
1471
+ /* linearHoriAdvance :: The advance width of the unhinted glyph. */
1472
+ /* Its value is expressed in 16.16 fractional */
1473
+ /* pixels, unless @FT_LOAD_LINEAR_DESIGN is set */
1474
+ /* when loading the glyph. This field can be */
1475
+ /* important to perform correct WYSIWYG layout. */
1476
+ /* Only relevant for outline glyphs. */
1477
+ /* */
1478
+ /* linearVertAdvance :: The advance height of the unhinted glyph. */
1479
+ /* Its value is expressed in 16.16 fractional */
1480
+ /* pixels, unless @FT_LOAD_LINEAR_DESIGN is set */
1481
+ /* when loading the glyph. This field can be */
1482
+ /* important to perform correct WYSIWYG layout. */
1483
+ /* Only relevant for outline glyphs. */
1484
+ /* */
1485
+ /* advance :: This shorthand is, depending on */
1486
+ /* @FT_LOAD_IGNORE_TRANSFORM, the transformed */
1487
+ /* advance width for the glyph (in 26.6 */
1488
+ /* fractional pixel format). As specified with */
1489
+ /* @FT_LOAD_VERTICAL_LAYOUT, it uses either the */
1490
+ /* `horiAdvance' or the `vertAdvance' value of */
1491
+ /* `metrics' field. */
1492
+ /* */
1493
+ /* format :: This field indicates the format of the image */
1494
+ /* contained in the glyph slot. Typically */
1495
+ /* @FT_GLYPH_FORMAT_BITMAP, */
1496
+ /* @FT_GLYPH_FORMAT_OUTLINE, or */
1497
+ /* @FT_GLYPH_FORMAT_COMPOSITE, but others are */
1498
+ /* possible. */
1499
+ /* */
1500
+ /* bitmap :: This field is used as a bitmap descriptor */
1501
+ /* when the slot format is */
1502
+ /* @FT_GLYPH_FORMAT_BITMAP. Note that the */
1503
+ /* address and content of the bitmap buffer can */
1504
+ /* change between calls of @FT_Load_Glyph and a */
1505
+ /* few other functions. */
1506
+ /* */
1507
+ /* bitmap_left :: This is the bitmap's left bearing expressed */
1508
+ /* in integer pixels. Of course, this is only */
1509
+ /* valid if the format is */
1510
+ /* @FT_GLYPH_FORMAT_BITMAP. */
1511
+ /* */
1512
+ /* bitmap_top :: This is the bitmap's top bearing expressed in */
1513
+ /* integer pixels. Remember that this is the */
1514
+ /* distance from the baseline to the top-most */
1515
+ /* glyph scanline, upwards y~coordinates being */
1516
+ /* *positive*. */
1517
+ /* */
1518
+ /* outline :: The outline descriptor for the current glyph */
1519
+ /* image if its format is */
1520
+ /* @FT_GLYPH_FORMAT_OUTLINE. Once a glyph is */
1521
+ /* loaded, `outline' can be transformed, */
1522
+ /* distorted, embolded, etc. However, it must */
1523
+ /* not be freed. */
1524
+ /* */
1525
+ /* num_subglyphs :: The number of subglyphs in a composite glyph. */
1526
+ /* This field is only valid for the composite */
1527
+ /* glyph format that should normally only be */
1528
+ /* loaded with the @FT_LOAD_NO_RECURSE flag. */
1529
+ /* For now this is internal to FreeType. */
1530
+ /* */
1531
+ /* subglyphs :: An array of subglyph descriptors for */
1532
+ /* composite glyphs. There are `num_subglyphs' */
1533
+ /* elements in there. Currently internal to */
1534
+ /* FreeType. */
1535
+ /* */
1536
+ /* control_data :: Certain font drivers can also return the */
1537
+ /* control data for a given glyph image (e.g. */
1538
+ /* TrueType bytecode, Type~1 charstrings, etc.). */
1539
+ /* This field is a pointer to such data. */
1540
+ /* */
1541
+ /* control_len :: This is the length in bytes of the control */
1542
+ /* data. */
1543
+ /* */
1544
+ /* other :: Really wicked formats can use this pointer to */
1545
+ /* present their own glyph image to client */
1546
+ /* applications. Note that the application */
1547
+ /* needs to know about the image format. */
1548
+ /* */
1549
+ /* lsb_delta :: The difference between hinted and unhinted */
1550
+ /* left side bearing while autohinting is */
1551
+ /* active. Zero otherwise. */
1552
+ /* */
1553
+ /* rsb_delta :: The difference between hinted and unhinted */
1554
+ /* right side bearing while autohinting is */
1555
+ /* active. Zero otherwise. */
1556
+ /* */
1557
+ /* <Note> */
1558
+ /* If @FT_Load_Glyph is called with default flags (see */
1559
+ /* @FT_LOAD_DEFAULT) the glyph image is loaded in the glyph slot in */
1560
+ /* its native format (e.g., an outline glyph for TrueType and Type~1 */
1561
+ /* formats). */
1562
+ /* */
1563
+ /* This image can later be converted into a bitmap by calling */
1564
+ /* @FT_Render_Glyph. This function finds the current renderer for */
1565
+ /* the native image's format, then invokes it. */
1566
+ /* */
1567
+ /* The renderer is in charge of transforming the native image through */
1568
+ /* the slot's face transformation fields, then converting it into a */
1569
+ /* bitmap that is returned in `slot->bitmap'. */
1570
+ /* */
1571
+ /* Note that `slot->bitmap_left' and `slot->bitmap_top' are also used */
1572
+ /* to specify the position of the bitmap relative to the current pen */
1573
+ /* position (e.g., coordinates (0,0) on the baseline). Of course, */
1574
+ /* `slot->format' is also changed to @FT_GLYPH_FORMAT_BITMAP. */
1575
+ /* */
1576
+ /* <Note> */
1577
+ /* Here a small pseudo code fragment which shows how to use */
1578
+ /* `lsb_delta' and `rsb_delta': */
1579
+ /* */
1580
+ /* { */
1581
+ /* FT_Pos origin_x = 0; */
1582
+ /* FT_Pos prev_rsb_delta = 0; */
1583
+ /* */
1584
+ /* */
1585
+ /* for all glyphs do */
1586
+ /* <compute kern between current and previous glyph and add it to */
1587
+ /* `origin_x'> */
1588
+ /* */
1589
+ /* <load glyph with `FT_Load_Glyph'> */
1590
+ /* */
1591
+ /* if ( prev_rsb_delta - face->glyph->lsb_delta >= 32 ) */
1592
+ /* origin_x -= 64; */
1593
+ /* else if ( prev_rsb_delta - face->glyph->lsb_delta < -32 ) */
1594
+ /* origin_x += 64; */
1595
+ /* */
1596
+ /* prev_rsb_delta = face->glyph->rsb_delta; */
1597
+ /* */
1598
+ /* <save glyph image, or render glyph, or ...> */
1599
+ /* */
1600
+ /* origin_x += face->glyph->advance.x; */
1601
+ /* endfor */
1602
+ /* } */
1603
+ /* */
1604
+ typedef struct FT_GlyphSlotRec_
1605
+ {
1606
+ FT_Library library;
1607
+ FT_Face face;
1608
+ FT_GlyphSlot next;
1609
+ FT_UInt reserved; /* retained for binary compatibility */
1610
+ FT_Generic generic;
1611
+
1612
+ FT_Glyph_Metrics metrics;
1613
+ FT_Fixed linearHoriAdvance;
1614
+ FT_Fixed linearVertAdvance;
1615
+ FT_Vector advance;
1616
+
1617
+ FT_Glyph_Format format;
1618
+
1619
+ FT_Bitmap bitmap;
1620
+ FT_Int bitmap_left;
1621
+ FT_Int bitmap_top;
1622
+
1623
+ FT_Outline outline;
1624
+
1625
+ FT_UInt num_subglyphs;
1626
+ FT_SubGlyph subglyphs;
1627
+
1628
+ void* control_data;
1629
+ long control_len;
1630
+
1631
+ FT_Pos lsb_delta;
1632
+ FT_Pos rsb_delta;
1633
+
1634
+ void* other;
1635
+
1636
+ FT_Slot_Internal internal;
1637
+
1638
+ } FT_GlyphSlotRec;
1639
+
1640
+
1641
+ /*************************************************************************/
1642
+ /*************************************************************************/
1643
+ /* */
1644
+ /* F U N C T I O N S */
1645
+ /* */
1646
+ /*************************************************************************/
1647
+ /*************************************************************************/
1648
+
1649
+
1650
+ /*************************************************************************/
1651
+ /* */
1652
+ /* <Function> */
1653
+ /* FT_Init_FreeType */
1654
+ /* */
1655
+ /* <Description> */
1656
+ /* Initialize a new FreeType library object. The set of modules */
1657
+ /* that are registered by this function is determined at build time. */
1658
+ /* */
1659
+ /* <Output> */
1660
+ /* alibrary :: A handle to a new library object. */
1661
+ /* */
1662
+ /* <Return> */
1663
+ /* FreeType error code. 0~means success. */
1664
+ /* */
1665
+ /* <Note> */
1666
+ /* In case you want to provide your own memory allocating routines, */
1667
+ /* use @FT_New_Library instead, followed by a call to */
1668
+ /* @FT_Add_Default_Modules (or a series of calls to @FT_Add_Module). */
1669
+ /* */
1670
+ FT_EXPORT( FT_Error )
1671
+ FT_Init_FreeType( FT_Library *alibrary );
1672
+
1673
+
1674
+ /*************************************************************************/
1675
+ /* */
1676
+ /* <Function> */
1677
+ /* FT_Done_FreeType */
1678
+ /* */
1679
+ /* <Description> */
1680
+ /* Destroy a given FreeType library object and all of its children, */
1681
+ /* including resources, drivers, faces, sizes, etc. */
1682
+ /* */
1683
+ /* <Input> */
1684
+ /* library :: A handle to the target library object. */
1685
+ /* */
1686
+ /* <Return> */
1687
+ /* FreeType error code. 0~means success. */
1688
+ /* */
1689
+ FT_EXPORT( FT_Error )
1690
+ FT_Done_FreeType( FT_Library library );
1691
+
1692
+
1693
+ /*************************************************************************/
1694
+ /* */
1695
+ /* <Enum> */
1696
+ /* FT_OPEN_XXX */
1697
+ /* */
1698
+ /* <Description> */
1699
+ /* A list of bit-field constants used within the `flags' field of the */
1700
+ /* @FT_Open_Args structure. */
1701
+ /* */
1702
+ /* <Values> */
1703
+ /* FT_OPEN_MEMORY :: This is a memory-based stream. */
1704
+ /* */
1705
+ /* FT_OPEN_STREAM :: Copy the stream from the `stream' field. */
1706
+ /* */
1707
+ /* FT_OPEN_PATHNAME :: Create a new input stream from a C~path */
1708
+ /* name. */
1709
+ /* */
1710
+ /* FT_OPEN_DRIVER :: Use the `driver' field. */
1711
+ /* */
1712
+ /* FT_OPEN_PARAMS :: Use the `num_params' and `params' fields. */
1713
+ /* */
1714
+ /* ft_open_memory :: Deprecated; use @FT_OPEN_MEMORY instead. */
1715
+ /* */
1716
+ /* ft_open_stream :: Deprecated; use @FT_OPEN_STREAM instead. */
1717
+ /* */
1718
+ /* ft_open_pathname :: Deprecated; use @FT_OPEN_PATHNAME instead. */
1719
+ /* */
1720
+ /* ft_open_driver :: Deprecated; use @FT_OPEN_DRIVER instead. */
1721
+ /* */
1722
+ /* ft_open_params :: Deprecated; use @FT_OPEN_PARAMS instead. */
1723
+ /* */
1724
+ /* <Note> */
1725
+ /* The `FT_OPEN_MEMORY', `FT_OPEN_STREAM', and `FT_OPEN_PATHNAME' */
1726
+ /* flags are mutually exclusive. */
1727
+ /* */
1728
+ #define FT_OPEN_MEMORY 0x1
1729
+ #define FT_OPEN_STREAM 0x2
1730
+ #define FT_OPEN_PATHNAME 0x4
1731
+ #define FT_OPEN_DRIVER 0x8
1732
+ #define FT_OPEN_PARAMS 0x10
1733
+
1734
+ #define ft_open_memory FT_OPEN_MEMORY /* deprecated */
1735
+ #define ft_open_stream FT_OPEN_STREAM /* deprecated */
1736
+ #define ft_open_pathname FT_OPEN_PATHNAME /* deprecated */
1737
+ #define ft_open_driver FT_OPEN_DRIVER /* deprecated */
1738
+ #define ft_open_params FT_OPEN_PARAMS /* deprecated */
1739
+
1740
+
1741
+ /*************************************************************************/
1742
+ /* */
1743
+ /* <Struct> */
1744
+ /* FT_Parameter */
1745
+ /* */
1746
+ /* <Description> */
1747
+ /* A simple structure used to pass more or less generic parameters to */
1748
+ /* @FT_Open_Face. */
1749
+ /* */
1750
+ /* <Fields> */
1751
+ /* tag :: A four-byte identification tag. */
1752
+ /* */
1753
+ /* data :: A pointer to the parameter data. */
1754
+ /* */
1755
+ /* <Note> */
1756
+ /* The ID and function of parameters are driver-specific. See the */
1757
+ /* various FT_PARAM_TAG_XXX flags for more information. */
1758
+ /* */
1759
+ typedef struct FT_Parameter_
1760
+ {
1761
+ FT_ULong tag;
1762
+ FT_Pointer data;
1763
+
1764
+ } FT_Parameter;
1765
+
1766
+
1767
+ /*************************************************************************/
1768
+ /* */
1769
+ /* <Struct> */
1770
+ /* FT_Open_Args */
1771
+ /* */
1772
+ /* <Description> */
1773
+ /* A structure used to indicate how to open a new font file or */
1774
+ /* stream. A pointer to such a structure can be used as a parameter */
1775
+ /* for the functions @FT_Open_Face and @FT_Attach_Stream. */
1776
+ /* */
1777
+ /* <Fields> */
1778
+ /* flags :: A set of bit flags indicating how to use the */
1779
+ /* structure. */
1780
+ /* */
1781
+ /* memory_base :: The first byte of the file in memory. */
1782
+ /* */
1783
+ /* memory_size :: The size in bytes of the file in memory. */
1784
+ /* */
1785
+ /* pathname :: A pointer to an 8-bit file pathname. */
1786
+ /* */
1787
+ /* stream :: A handle to a source stream object. */
1788
+ /* */
1789
+ /* driver :: This field is exclusively used by @FT_Open_Face; */
1790
+ /* it simply specifies the font driver to use to open */
1791
+ /* the face. If set to~0, FreeType tries to load the */
1792
+ /* face with each one of the drivers in its list. */
1793
+ /* */
1794
+ /* num_params :: The number of extra parameters. */
1795
+ /* */
1796
+ /* params :: Extra parameters passed to the font driver when */
1797
+ /* opening a new face. */
1798
+ /* */
1799
+ /* <Note> */
1800
+ /* The stream type is determined by the contents of `flags' which */
1801
+ /* are tested in the following order by @FT_Open_Face: */
1802
+ /* */
1803
+ /* If the `FT_OPEN_MEMORY' bit is set, assume that this is a */
1804
+ /* memory file of `memory_size' bytes, located at `memory_address'. */
1805
+ /* The data are are not copied, and the client is responsible for */
1806
+ /* releasing and destroying them _after_ the corresponding call to */
1807
+ /* @FT_Done_Face. */
1808
+ /* */
1809
+ /* Otherwise, if the `FT_OPEN_STREAM' bit is set, assume that a */
1810
+ /* custom input stream `stream' is used. */
1811
+ /* */
1812
+ /* Otherwise, if the `FT_OPEN_PATHNAME' bit is set, assume that this */
1813
+ /* is a normal file and use `pathname' to open it. */
1814
+ /* */
1815
+ /* If the `FT_OPEN_DRIVER' bit is set, @FT_Open_Face only tries to */
1816
+ /* open the file with the driver whose handler is in `driver'. */
1817
+ /* */
1818
+ /* If the `FT_OPEN_PARAMS' bit is set, the parameters given by */
1819
+ /* `num_params' and `params' is used. They are ignored otherwise. */
1820
+ /* */
1821
+ /* Ideally, both the `pathname' and `params' fields should be tagged */
1822
+ /* as `const'; this is missing for API backwards compatibility. In */
1823
+ /* other words, applications should treat them as read-only. */
1824
+ /* */
1825
+ typedef struct FT_Open_Args_
1826
+ {
1827
+ FT_UInt flags;
1828
+ const FT_Byte* memory_base;
1829
+ FT_Long memory_size;
1830
+ FT_String* pathname;
1831
+ FT_Stream stream;
1832
+ FT_Module driver;
1833
+ FT_Int num_params;
1834
+ FT_Parameter* params;
1835
+
1836
+ } FT_Open_Args;
1837
+
1838
+
1839
+ /*************************************************************************/
1840
+ /* */
1841
+ /* <Function> */
1842
+ /* FT_New_Face */
1843
+ /* */
1844
+ /* <Description> */
1845
+ /* This function calls @FT_Open_Face to open a font by its pathname. */
1846
+ /* */
1847
+ /* <InOut> */
1848
+ /* library :: A handle to the library resource. */
1849
+ /* */
1850
+ /* <Input> */
1851
+ /* pathname :: A path to the font file. */
1852
+ /* */
1853
+ /* face_index :: The index of the face within the font. The first */
1854
+ /* face has index~0. */
1855
+ /* */
1856
+ /* <Output> */
1857
+ /* aface :: A handle to a new face object. If `face_index' is */
1858
+ /* greater than or equal to zero, it must be non-NULL. */
1859
+ /* See @FT_Open_Face for more details. */
1860
+ /* */
1861
+ /* <Return> */
1862
+ /* FreeType error code. 0~means success. */
1863
+ /* */
1864
+ FT_EXPORT( FT_Error )
1865
+ FT_New_Face( FT_Library library,
1866
+ const char* filepathname,
1867
+ FT_Long face_index,
1868
+ FT_Face *aface );
1869
+
1870
+
1871
+ /*************************************************************************/
1872
+ /* */
1873
+ /* <Function> */
1874
+ /* FT_New_Memory_Face */
1875
+ /* */
1876
+ /* <Description> */
1877
+ /* This function calls @FT_Open_Face to open a font which has been */
1878
+ /* loaded into memory. */
1879
+ /* */
1880
+ /* <InOut> */
1881
+ /* library :: A handle to the library resource. */
1882
+ /* */
1883
+ /* <Input> */
1884
+ /* file_base :: A pointer to the beginning of the font data. */
1885
+ /* */
1886
+ /* file_size :: The size of the memory chunk used by the font data. */
1887
+ /* */
1888
+ /* face_index :: The index of the face within the font. The first */
1889
+ /* face has index~0. */
1890
+ /* */
1891
+ /* <Output> */
1892
+ /* aface :: A handle to a new face object. If `face_index' is */
1893
+ /* greater than or equal to zero, it must be non-NULL. */
1894
+ /* See @FT_Open_Face for more details. */
1895
+ /* */
1896
+ /* <Return> */
1897
+ /* FreeType error code. 0~means success. */
1898
+ /* */
1899
+ /* <Note> */
1900
+ /* You must not deallocate the memory before calling @FT_Done_Face. */
1901
+ /* */
1902
+ FT_EXPORT( FT_Error )
1903
+ FT_New_Memory_Face( FT_Library library,
1904
+ const FT_Byte* file_base,
1905
+ FT_Long file_size,
1906
+ FT_Long face_index,
1907
+ FT_Face *aface );
1908
+
1909
+
1910
+ /*************************************************************************/
1911
+ /* */
1912
+ /* <Function> */
1913
+ /* FT_Open_Face */
1914
+ /* */
1915
+ /* <Description> */
1916
+ /* Create a face object from a given resource described by */
1917
+ /* @FT_Open_Args. */
1918
+ /* */
1919
+ /* <InOut> */
1920
+ /* library :: A handle to the library resource. */
1921
+ /* */
1922
+ /* <Input> */
1923
+ /* args :: A pointer to an `FT_Open_Args' structure which must */
1924
+ /* be filled by the caller. */
1925
+ /* */
1926
+ /* face_index :: The index of the face within the font. The first */
1927
+ /* face has index~0. */
1928
+ /* */
1929
+ /* <Output> */
1930
+ /* aface :: A handle to a new face object. If `face_index' is */
1931
+ /* greater than or equal to zero, it must be non-NULL. */
1932
+ /* See note below. */
1933
+ /* */
1934
+ /* <Return> */
1935
+ /* FreeType error code. 0~means success. */
1936
+ /* */
1937
+ /* <Note> */
1938
+ /* Unlike FreeType 1.x, this function automatically creates a glyph */
1939
+ /* slot for the face object which can be accessed directly through */
1940
+ /* `face->glyph'. */
1941
+ /* */
1942
+ /* FT_Open_Face can be used to quickly check whether the font */
1943
+ /* format of a given font resource is supported by FreeType. If the */
1944
+ /* `face_index' field is negative, the function's return value is~0 */
1945
+ /* if the font format is recognized, or non-zero otherwise; */
1946
+ /* the function returns a more or less empty face handle in `*aface' */
1947
+ /* (if `aface' isn't NULL). The only useful field in this special */
1948
+ /* case is `face->num_faces' which gives the number of faces within */
1949
+ /* the font file. After examination, the returned @FT_Face structure */
1950
+ /* should be deallocated with a call to @FT_Done_Face. */
1951
+ /* */
1952
+ /* Each new face object created with this function also owns a */
1953
+ /* default @FT_Size object, accessible as `face->size'. */
1954
+ /* */
1955
+ /* See the discussion of reference counters in the description of */
1956
+ /* @FT_Reference_Face. */
1957
+ /* */
1958
+ FT_EXPORT( FT_Error )
1959
+ FT_Open_Face( FT_Library library,
1960
+ const FT_Open_Args* args,
1961
+ FT_Long face_index,
1962
+ FT_Face *aface );
1963
+
1964
+
1965
+ /*************************************************************************/
1966
+ /* */
1967
+ /* <Function> */
1968
+ /* FT_Attach_File */
1969
+ /* */
1970
+ /* <Description> */
1971
+ /* This function calls @FT_Attach_Stream to attach a file. */
1972
+ /* */
1973
+ /* <InOut> */
1974
+ /* face :: The target face object. */
1975
+ /* */
1976
+ /* <Input> */
1977
+ /* filepathname :: The pathname. */
1978
+ /* */
1979
+ /* <Return> */
1980
+ /* FreeType error code. 0~means success. */
1981
+ /* */
1982
+ FT_EXPORT( FT_Error )
1983
+ FT_Attach_File( FT_Face face,
1984
+ const char* filepathname );
1985
+
1986
+
1987
+ /*************************************************************************/
1988
+ /* */
1989
+ /* <Function> */
1990
+ /* FT_Attach_Stream */
1991
+ /* */
1992
+ /* <Description> */
1993
+ /* `Attach' data to a face object. Normally, this is used to read */
1994
+ /* additional information for the face object. For example, you can */
1995
+ /* attach an AFM file that comes with a Type~1 font to get the */
1996
+ /* kerning values and other metrics. */
1997
+ /* */
1998
+ /* <InOut> */
1999
+ /* face :: The target face object. */
2000
+ /* */
2001
+ /* <Input> */
2002
+ /* parameters :: A pointer to @FT_Open_Args which must be filled by */
2003
+ /* the caller. */
2004
+ /* */
2005
+ /* <Return> */
2006
+ /* FreeType error code. 0~means success. */
2007
+ /* */
2008
+ /* <Note> */
2009
+ /* The meaning of the `attach' (i.e., what really happens when the */
2010
+ /* new file is read) is not fixed by FreeType itself. It really */
2011
+ /* depends on the font format (and thus the font driver). */
2012
+ /* */
2013
+ /* Client applications are expected to know what they are doing */
2014
+ /* when invoking this function. Most drivers simply do not implement */
2015
+ /* file attachments. */
2016
+ /* */
2017
+ FT_EXPORT( FT_Error )
2018
+ FT_Attach_Stream( FT_Face face,
2019
+ FT_Open_Args* parameters );
2020
+
2021
+
2022
+ /*************************************************************************/
2023
+ /* */
2024
+ /* <Function> */
2025
+ /* FT_Reference_Face */
2026
+ /* */
2027
+ /* <Description> */
2028
+ /* A counter gets initialized to~1 at the time an @FT_Face structure */
2029
+ /* is created. This function increments the counter. @FT_Done_Face */
2030
+ /* then only destroys a face if the counter is~1, otherwise it simply */
2031
+ /* decrements the counter. */
2032
+ /* */
2033
+ /* This function helps in managing life-cycles of structures which */
2034
+ /* reference @FT_Face objects. */
2035
+ /* */
2036
+ /* <Input> */
2037
+ /* face :: A handle to a target face object. */
2038
+ /* */
2039
+ /* <Return> */
2040
+ /* FreeType error code. 0~means success. */
2041
+ /* */
2042
+ /* <Since> */
2043
+ /* 2.4.2 */
2044
+ /* */
2045
+ FT_EXPORT( FT_Error )
2046
+ FT_Reference_Face( FT_Face face );
2047
+
2048
+
2049
+ /*************************************************************************/
2050
+ /* */
2051
+ /* <Function> */
2052
+ /* FT_Done_Face */
2053
+ /* */
2054
+ /* <Description> */
2055
+ /* Discard a given face object, as well as all of its child slots and */
2056
+ /* sizes. */
2057
+ /* */
2058
+ /* <Input> */
2059
+ /* face :: A handle to a target face object. */
2060
+ /* */
2061
+ /* <Return> */
2062
+ /* FreeType error code. 0~means success. */
2063
+ /* */
2064
+ /* <Note> */
2065
+ /* See the discussion of reference counters in the description of */
2066
+ /* @FT_Reference_Face. */
2067
+ /* */
2068
+ FT_EXPORT( FT_Error )
2069
+ FT_Done_Face( FT_Face face );
2070
+
2071
+
2072
+ /*************************************************************************/
2073
+ /* */
2074
+ /* <Function> */
2075
+ /* FT_Select_Size */
2076
+ /* */
2077
+ /* <Description> */
2078
+ /* Select a bitmap strike. */
2079
+ /* */
2080
+ /* <InOut> */
2081
+ /* face :: A handle to a target face object. */
2082
+ /* */
2083
+ /* <Input> */
2084
+ /* strike_index :: The index of the bitmap strike in the */
2085
+ /* `available_sizes' field of @FT_FaceRec structure. */
2086
+ /* */
2087
+ /* <Return> */
2088
+ /* FreeType error code. 0~means success. */
2089
+ /* */
2090
+ FT_EXPORT( FT_Error )
2091
+ FT_Select_Size( FT_Face face,
2092
+ FT_Int strike_index );
2093
+
2094
+
2095
+ /*************************************************************************/
2096
+ /* */
2097
+ /* <Enum> */
2098
+ /* FT_Size_Request_Type */
2099
+ /* */
2100
+ /* <Description> */
2101
+ /* An enumeration type that lists the supported size request types. */
2102
+ /* */
2103
+ /* <Values> */
2104
+ /* FT_SIZE_REQUEST_TYPE_NOMINAL :: */
2105
+ /* The nominal size. The `units_per_EM' field of @FT_FaceRec is */
2106
+ /* used to determine both scaling values. */
2107
+ /* */
2108
+ /* FT_SIZE_REQUEST_TYPE_REAL_DIM :: */
2109
+ /* The real dimension. The sum of the the `Ascender' and (minus */
2110
+ /* of) the `Descender' fields of @FT_FaceRec are used to determine */
2111
+ /* both scaling values. */
2112
+ /* */
2113
+ /* FT_SIZE_REQUEST_TYPE_BBOX :: */
2114
+ /* The font bounding box. The width and height of the `bbox' field */
2115
+ /* of @FT_FaceRec are used to determine the horizontal and vertical */
2116
+ /* scaling value, respectively. */
2117
+ /* */
2118
+ /* FT_SIZE_REQUEST_TYPE_CELL :: */
2119
+ /* The `max_advance_width' field of @FT_FaceRec is used to */
2120
+ /* determine the horizontal scaling value; the vertical scaling */
2121
+ /* value is determined the same way as */
2122
+ /* @FT_SIZE_REQUEST_TYPE_REAL_DIM does. Finally, both scaling */
2123
+ /* values are set to the smaller one. This type is useful if you */
2124
+ /* want to specify the font size for, say, a window of a given */
2125
+ /* dimension and 80x24 cells. */
2126
+ /* */
2127
+ /* FT_SIZE_REQUEST_TYPE_SCALES :: */
2128
+ /* Specify the scaling values directly. */
2129
+ /* */
2130
+ /* <Note> */
2131
+ /* The above descriptions only apply to scalable formats. For bitmap */
2132
+ /* formats, the behaviour is up to the driver. */
2133
+ /* */
2134
+ /* See the note section of @FT_Size_Metrics if you wonder how size */
2135
+ /* requesting relates to scaling values. */
2136
+ /* */
2137
+ typedef enum FT_Size_Request_Type_
2138
+ {
2139
+ FT_SIZE_REQUEST_TYPE_NOMINAL,
2140
+ FT_SIZE_REQUEST_TYPE_REAL_DIM,
2141
+ FT_SIZE_REQUEST_TYPE_BBOX,
2142
+ FT_SIZE_REQUEST_TYPE_CELL,
2143
+ FT_SIZE_REQUEST_TYPE_SCALES,
2144
+
2145
+ FT_SIZE_REQUEST_TYPE_MAX
2146
+
2147
+ } FT_Size_Request_Type;
2148
+
2149
+
2150
+ /*************************************************************************/
2151
+ /* */
2152
+ /* <Struct> */
2153
+ /* FT_Size_RequestRec */
2154
+ /* */
2155
+ /* <Description> */
2156
+ /* A structure used to model a size request. */
2157
+ /* */
2158
+ /* <Fields> */
2159
+ /* type :: See @FT_Size_Request_Type. */
2160
+ /* */
2161
+ /* width :: The desired width. */
2162
+ /* */
2163
+ /* height :: The desired height. */
2164
+ /* */
2165
+ /* horiResolution :: The horizontal resolution. If set to zero, */
2166
+ /* `width' is treated as a 26.6 fractional pixel */
2167
+ /* value. */
2168
+ /* */
2169
+ /* vertResolution :: The vertical resolution. If set to zero, */
2170
+ /* `height' is treated as a 26.6 fractional pixel */
2171
+ /* value. */
2172
+ /* */
2173
+ /* <Note> */
2174
+ /* If `width' is zero, then the horizontal scaling value is set equal */
2175
+ /* to the vertical scaling value, and vice versa. */
2176
+ /* */
2177
+ typedef struct FT_Size_RequestRec_
2178
+ {
2179
+ FT_Size_Request_Type type;
2180
+ FT_Long width;
2181
+ FT_Long height;
2182
+ FT_UInt horiResolution;
2183
+ FT_UInt vertResolution;
2184
+
2185
+ } FT_Size_RequestRec;
2186
+
2187
+
2188
+ /*************************************************************************/
2189
+ /* */
2190
+ /* <Struct> */
2191
+ /* FT_Size_Request */
2192
+ /* */
2193
+ /* <Description> */
2194
+ /* A handle to a size request structure. */
2195
+ /* */
2196
+ typedef struct FT_Size_RequestRec_ *FT_Size_Request;
2197
+
2198
+
2199
+ /*************************************************************************/
2200
+ /* */
2201
+ /* <Function> */
2202
+ /* FT_Request_Size */
2203
+ /* */
2204
+ /* <Description> */
2205
+ /* Resize the scale of the active @FT_Size object in a face. */
2206
+ /* */
2207
+ /* <InOut> */
2208
+ /* face :: A handle to a target face object. */
2209
+ /* */
2210
+ /* <Input> */
2211
+ /* req :: A pointer to a @FT_Size_RequestRec. */
2212
+ /* */
2213
+ /* <Return> */
2214
+ /* FreeType error code. 0~means success. */
2215
+ /* */
2216
+ /* <Note> */
2217
+ /* Although drivers may select the bitmap strike matching the */
2218
+ /* request, you should not rely on this if you intend to select a */
2219
+ /* particular bitmap strike. Use @FT_Select_Size instead in that */
2220
+ /* case. */
2221
+ /* */
2222
+ FT_EXPORT( FT_Error )
2223
+ FT_Request_Size( FT_Face face,
2224
+ FT_Size_Request req );
2225
+
2226
+
2227
+ /*************************************************************************/
2228
+ /* */
2229
+ /* <Function> */
2230
+ /* FT_Set_Char_Size */
2231
+ /* */
2232
+ /* <Description> */
2233
+ /* This function calls @FT_Request_Size to request the nominal size */
2234
+ /* (in points). */
2235
+ /* */
2236
+ /* <InOut> */
2237
+ /* face :: A handle to a target face object. */
2238
+ /* */
2239
+ /* <Input> */
2240
+ /* char_width :: The nominal width, in 26.6 fractional points. */
2241
+ /* */
2242
+ /* char_height :: The nominal height, in 26.6 fractional points. */
2243
+ /* */
2244
+ /* horz_resolution :: The horizontal resolution in dpi. */
2245
+ /* */
2246
+ /* vert_resolution :: The vertical resolution in dpi. */
2247
+ /* */
2248
+ /* <Return> */
2249
+ /* FreeType error code. 0~means success. */
2250
+ /* */
2251
+ /* <Note> */
2252
+ /* If either the character width or height is zero, it is set equal */
2253
+ /* to the other value. */
2254
+ /* */
2255
+ /* If either the horizontal or vertical resolution is zero, it is set */
2256
+ /* equal to the other value. */
2257
+ /* */
2258
+ /* A character width or height smaller than 1pt is set to 1pt; if */
2259
+ /* both resolution values are zero, they are set to 72dpi. */
2260
+ /* */
2261
+ /* Don't use this function if you are using the FreeType cache API. */
2262
+ /* */
2263
+ FT_EXPORT( FT_Error )
2264
+ FT_Set_Char_Size( FT_Face face,
2265
+ FT_F26Dot6 char_width,
2266
+ FT_F26Dot6 char_height,
2267
+ FT_UInt horz_resolution,
2268
+ FT_UInt vert_resolution );
2269
+
2270
+
2271
+ /*************************************************************************/
2272
+ /* */
2273
+ /* <Function> */
2274
+ /* FT_Set_Pixel_Sizes */
2275
+ /* */
2276
+ /* <Description> */
2277
+ /* This function calls @FT_Request_Size to request the nominal size */
2278
+ /* (in pixels). */
2279
+ /* */
2280
+ /* <InOut> */
2281
+ /* face :: A handle to the target face object. */
2282
+ /* */
2283
+ /* <Input> */
2284
+ /* pixel_width :: The nominal width, in pixels. */
2285
+ /* */
2286
+ /* pixel_height :: The nominal height, in pixels. */
2287
+ /* */
2288
+ /* <Return> */
2289
+ /* FreeType error code. 0~means success. */
2290
+ /* */
2291
+ FT_EXPORT( FT_Error )
2292
+ FT_Set_Pixel_Sizes( FT_Face face,
2293
+ FT_UInt pixel_width,
2294
+ FT_UInt pixel_height );
2295
+
2296
+
2297
+ /*************************************************************************/
2298
+ /* */
2299
+ /* <Function> */
2300
+ /* FT_Load_Glyph */
2301
+ /* */
2302
+ /* <Description> */
2303
+ /* A function used to load a single glyph into the glyph slot of a */
2304
+ /* face object. */
2305
+ /* */
2306
+ /* <InOut> */
2307
+ /* face :: A handle to the target face object where the glyph */
2308
+ /* is loaded. */
2309
+ /* */
2310
+ /* <Input> */
2311
+ /* glyph_index :: The index of the glyph in the font file. For */
2312
+ /* CID-keyed fonts (either in PS or in CFF format) */
2313
+ /* this argument specifies the CID value. */
2314
+ /* */
2315
+ /* load_flags :: A flag indicating what to load for this glyph. The */
2316
+ /* @FT_LOAD_XXX constants can be used to control the */
2317
+ /* glyph loading process (e.g., whether the outline */
2318
+ /* should be scaled, whether to load bitmaps or not, */
2319
+ /* whether to hint the outline, etc). */
2320
+ /* */
2321
+ /* <Return> */
2322
+ /* FreeType error code. 0~means success. */
2323
+ /* */
2324
+ /* <Note> */
2325
+ /* The loaded glyph may be transformed. See @FT_Set_Transform for */
2326
+ /* the details. */
2327
+ /* */
2328
+ /* For subsetted CID-keyed fonts, `FT_Err_Invalid_Argument' is */
2329
+ /* returned for invalid CID values (this is, for CID values which */
2330
+ /* don't have a corresponding glyph in the font). See the discussion */
2331
+ /* of the @FT_FACE_FLAG_CID_KEYED flag for more details. */
2332
+ /* */
2333
+ FT_EXPORT( FT_Error )
2334
+ FT_Load_Glyph( FT_Face face,
2335
+ FT_UInt glyph_index,
2336
+ FT_Int32 load_flags );
2337
+
2338
+
2339
+ /*************************************************************************/
2340
+ /* */
2341
+ /* <Function> */
2342
+ /* FT_Load_Char */
2343
+ /* */
2344
+ /* <Description> */
2345
+ /* A function used to load a single glyph into the glyph slot of a */
2346
+ /* face object, according to its character code. */
2347
+ /* */
2348
+ /* <InOut> */
2349
+ /* face :: A handle to a target face object where the glyph */
2350
+ /* is loaded. */
2351
+ /* */
2352
+ /* <Input> */
2353
+ /* char_code :: The glyph's character code, according to the */
2354
+ /* current charmap used in the face. */
2355
+ /* */
2356
+ /* load_flags :: A flag indicating what to load for this glyph. The */
2357
+ /* @FT_LOAD_XXX constants can be used to control the */
2358
+ /* glyph loading process (e.g., whether the outline */
2359
+ /* should be scaled, whether to load bitmaps or not, */
2360
+ /* whether to hint the outline, etc). */
2361
+ /* */
2362
+ /* <Return> */
2363
+ /* FreeType error code. 0~means success. */
2364
+ /* */
2365
+ /* <Note> */
2366
+ /* This function simply calls @FT_Get_Char_Index and @FT_Load_Glyph. */
2367
+ /* */
2368
+ FT_EXPORT( FT_Error )
2369
+ FT_Load_Char( FT_Face face,
2370
+ FT_ULong char_code,
2371
+ FT_Int32 load_flags );
2372
+
2373
+
2374
+ /*************************************************************************
2375
+ *
2376
+ * @enum:
2377
+ * FT_LOAD_XXX
2378
+ *
2379
+ * @description:
2380
+ * A list of bit-field constants used with @FT_Load_Glyph to indicate
2381
+ * what kind of operations to perform during glyph loading.
2382
+ *
2383
+ * @values:
2384
+ * FT_LOAD_DEFAULT ::
2385
+ * Corresponding to~0, this value is used as the default glyph load
2386
+ * operation. In this case, the following happens:
2387
+ *
2388
+ * 1. FreeType looks for a bitmap for the glyph corresponding to the
2389
+ * face's current size. If one is found, the function returns.
2390
+ * The bitmap data can be accessed from the glyph slot (see note
2391
+ * below).
2392
+ *
2393
+ * 2. If no embedded bitmap is searched or found, FreeType looks for a
2394
+ * scalable outline. If one is found, it is loaded from the font
2395
+ * file, scaled to device pixels, then `hinted' to the pixel grid
2396
+ * in order to optimize it. The outline data can be accessed from
2397
+ * the glyph slot (see note below).
2398
+ *
2399
+ * Note that by default, the glyph loader doesn't render outlines into
2400
+ * bitmaps. The following flags are used to modify this default
2401
+ * behaviour to more specific and useful cases.
2402
+ *
2403
+ * FT_LOAD_NO_SCALE ::
2404
+ * Don't scale the outline glyph loaded, but keep it in font units.
2405
+ *
2406
+ * This flag implies @FT_LOAD_NO_HINTING and @FT_LOAD_NO_BITMAP, and
2407
+ * unsets @FT_LOAD_RENDER.
2408
+ *
2409
+ * FT_LOAD_NO_HINTING ::
2410
+ * Disable hinting. This generally generates `blurrier' bitmap glyph
2411
+ * when the glyph is rendered in any of the anti-aliased modes. See
2412
+ * also the note below.
2413
+ *
2414
+ * This flag is implied by @FT_LOAD_NO_SCALE.
2415
+ *
2416
+ * FT_LOAD_RENDER ::
2417
+ * Call @FT_Render_Glyph after the glyph is loaded. By default, the
2418
+ * glyph is rendered in @FT_RENDER_MODE_NORMAL mode. This can be
2419
+ * overridden by @FT_LOAD_TARGET_XXX or @FT_LOAD_MONOCHROME.
2420
+ *
2421
+ * This flag is unset by @FT_LOAD_NO_SCALE.
2422
+ *
2423
+ * FT_LOAD_NO_BITMAP ::
2424
+ * Ignore bitmap strikes when loading. Bitmap-only fonts ignore this
2425
+ * flag.
2426
+ *
2427
+ * @FT_LOAD_NO_SCALE always sets this flag.
2428
+ *
2429
+ * FT_LOAD_VERTICAL_LAYOUT ::
2430
+ * Load the glyph for vertical text layout. _Don't_ use it as it is
2431
+ * problematic currently.
2432
+ *
2433
+ * FT_LOAD_FORCE_AUTOHINT ::
2434
+ * Indicates that the auto-hinter is preferred over the font's native
2435
+ * hinter. See also the note below.
2436
+ *
2437
+ * FT_LOAD_CROP_BITMAP ::
2438
+ * Indicates that the font driver should crop the loaded bitmap glyph
2439
+ * (i.e., remove all space around its black bits). Not all drivers
2440
+ * implement this.
2441
+ *
2442
+ * FT_LOAD_PEDANTIC ::
2443
+ * Indicates that the font driver should perform pedantic verifications
2444
+ * during glyph loading. This is mostly used to detect broken glyphs
2445
+ * in fonts. By default, FreeType tries to handle broken fonts also.
2446
+ *
2447
+ * FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH ::
2448
+ * Indicates that the font driver should ignore the global advance
2449
+ * width defined in the font. By default, that value is used as the
2450
+ * advance width for all glyphs when the face has
2451
+ * @FT_FACE_FLAG_FIXED_WIDTH set.
2452
+ *
2453
+ * This flag exists for historical reasons (to support buggy CJK
2454
+ * fonts).
2455
+ *
2456
+ * FT_LOAD_NO_RECURSE ::
2457
+ * This flag is only used internally. It merely indicates that the
2458
+ * font driver should not load composite glyphs recursively. Instead,
2459
+ * it should set the `num_subglyph' and `subglyphs' values of the
2460
+ * glyph slot accordingly, and set `glyph->format' to
2461
+ * @FT_GLYPH_FORMAT_COMPOSITE.
2462
+ *
2463
+ * The description of sub-glyphs is not available to client
2464
+ * applications for now.
2465
+ *
2466
+ * This flag implies @FT_LOAD_NO_SCALE and @FT_LOAD_IGNORE_TRANSFORM.
2467
+ *
2468
+ * FT_LOAD_IGNORE_TRANSFORM ::
2469
+ * Indicates that the transform matrix set by @FT_Set_Transform should
2470
+ * be ignored.
2471
+ *
2472
+ * FT_LOAD_MONOCHROME ::
2473
+ * This flag is used with @FT_LOAD_RENDER to indicate that you want to
2474
+ * render an outline glyph to a 1-bit monochrome bitmap glyph, with
2475
+ * 8~pixels packed into each byte of the bitmap data.
2476
+ *
2477
+ * Note that this has no effect on the hinting algorithm used. You
2478
+ * should rather use @FT_LOAD_TARGET_MONO so that the
2479
+ * monochrome-optimized hinting algorithm is used.
2480
+ *
2481
+ * FT_LOAD_LINEAR_DESIGN ::
2482
+ * Indicates that the `linearHoriAdvance' and `linearVertAdvance'
2483
+ * fields of @FT_GlyphSlotRec should be kept in font units. See
2484
+ * @FT_GlyphSlotRec for details.
2485
+ *
2486
+ * FT_LOAD_NO_AUTOHINT ::
2487
+ * Disable auto-hinter. See also the note below.
2488
+ *
2489
+ * @note:
2490
+ * By default, hinting is enabled and the font's native hinter (see
2491
+ * @FT_FACE_FLAG_HINTER) is preferred over the auto-hinter. You can
2492
+ * disable hinting by setting @FT_LOAD_NO_HINTING or change the
2493
+ * precedence by setting @FT_LOAD_FORCE_AUTOHINT. You can also set
2494
+ * @FT_LOAD_NO_AUTOHINT in case you don't want the auto-hinter to be
2495
+ * used at all.
2496
+ *
2497
+ * See the description of @FT_FACE_FLAG_TRICKY for a special exception
2498
+ * (affecting only a handful of Asian fonts).
2499
+ *
2500
+ * Besides deciding which hinter to use, you can also decide which
2501
+ * hinting algorithm to use. See @FT_LOAD_TARGET_XXX for details.
2502
+ *
2503
+ */
2504
+ #define FT_LOAD_DEFAULT 0x0
2505
+ #define FT_LOAD_NO_SCALE 0x1
2506
+ #define FT_LOAD_NO_HINTING 0x2
2507
+ #define FT_LOAD_RENDER 0x4
2508
+ #define FT_LOAD_NO_BITMAP 0x8
2509
+ #define FT_LOAD_VERTICAL_LAYOUT 0x10
2510
+ #define FT_LOAD_FORCE_AUTOHINT 0x20
2511
+ #define FT_LOAD_CROP_BITMAP 0x40
2512
+ #define FT_LOAD_PEDANTIC 0x80
2513
+ #define FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH 0x200
2514
+ #define FT_LOAD_NO_RECURSE 0x400
2515
+ #define FT_LOAD_IGNORE_TRANSFORM 0x800
2516
+ #define FT_LOAD_MONOCHROME 0x1000
2517
+ #define FT_LOAD_LINEAR_DESIGN 0x2000
2518
+ #define FT_LOAD_NO_AUTOHINT 0x8000U
2519
+
2520
+ /* */
2521
+
2522
+ /* used internally only by certain font drivers! */
2523
+ #define FT_LOAD_ADVANCE_ONLY 0x100
2524
+ #define FT_LOAD_SBITS_ONLY 0x4000
2525
+
2526
+
2527
+ /**************************************************************************
2528
+ *
2529
+ * @enum:
2530
+ * FT_LOAD_TARGET_XXX
2531
+ *
2532
+ * @description:
2533
+ * A list of values that are used to select a specific hinting algorithm
2534
+ * to use by the hinter. You should OR one of these values to your
2535
+ * `load_flags' when calling @FT_Load_Glyph.
2536
+ *
2537
+ * Note that font's native hinters may ignore the hinting algorithm you
2538
+ * have specified (e.g., the TrueType bytecode interpreter). You can set
2539
+ * @FT_LOAD_FORCE_AUTOHINT to ensure that the auto-hinter is used.
2540
+ *
2541
+ * Also note that @FT_LOAD_TARGET_LIGHT is an exception, in that it
2542
+ * always implies @FT_LOAD_FORCE_AUTOHINT.
2543
+ *
2544
+ * @values:
2545
+ * FT_LOAD_TARGET_NORMAL ::
2546
+ * This corresponds to the default hinting algorithm, optimized for
2547
+ * standard gray-level rendering. For monochrome output, use
2548
+ * @FT_LOAD_TARGET_MONO instead.
2549
+ *
2550
+ * FT_LOAD_TARGET_LIGHT ::
2551
+ * A lighter hinting algorithm for non-monochrome modes. Many
2552
+ * generated glyphs are more fuzzy but better resemble its original
2553
+ * shape. A bit like rendering on Mac OS~X.
2554
+ *
2555
+ * As a special exception, this target implies @FT_LOAD_FORCE_AUTOHINT.
2556
+ *
2557
+ * FT_LOAD_TARGET_MONO ::
2558
+ * Strong hinting algorithm that should only be used for monochrome
2559
+ * output. The result is probably unpleasant if the glyph is rendered
2560
+ * in non-monochrome modes.
2561
+ *
2562
+ * FT_LOAD_TARGET_LCD ::
2563
+ * A variant of @FT_LOAD_TARGET_NORMAL optimized for horizontally
2564
+ * decimated LCD displays.
2565
+ *
2566
+ * FT_LOAD_TARGET_LCD_V ::
2567
+ * A variant of @FT_LOAD_TARGET_NORMAL optimized for vertically
2568
+ * decimated LCD displays.
2569
+ *
2570
+ * @note:
2571
+ * You should use only _one_ of the FT_LOAD_TARGET_XXX values in your
2572
+ * `load_flags'. They can't be ORed.
2573
+ *
2574
+ * If @FT_LOAD_RENDER is also set, the glyph is rendered in the
2575
+ * corresponding mode (i.e., the mode which matches the used algorithm
2576
+ * best) unless @FT_LOAD_MONOCHROME is set.
2577
+ *
2578
+ * You can use a hinting algorithm that doesn't correspond to the same
2579
+ * rendering mode. As an example, it is possible to use the `light'
2580
+ * hinting algorithm and have the results rendered in horizontal LCD
2581
+ * pixel mode, with code like
2582
+ *
2583
+ * {
2584
+ * FT_Load_Glyph( face, glyph_index,
2585
+ * load_flags | FT_LOAD_TARGET_LIGHT );
2586
+ *
2587
+ * FT_Render_Glyph( face->glyph, FT_RENDER_MODE_LCD );
2588
+ * }
2589
+ *
2590
+ */
2591
+ #define FT_LOAD_TARGET_( x ) ( (FT_Int32)( (x) & 15 ) << 16 )
2592
+
2593
+ #define FT_LOAD_TARGET_NORMAL FT_LOAD_TARGET_( FT_RENDER_MODE_NORMAL )
2594
+ #define FT_LOAD_TARGET_LIGHT FT_LOAD_TARGET_( FT_RENDER_MODE_LIGHT )
2595
+ #define FT_LOAD_TARGET_MONO FT_LOAD_TARGET_( FT_RENDER_MODE_MONO )
2596
+ #define FT_LOAD_TARGET_LCD FT_LOAD_TARGET_( FT_RENDER_MODE_LCD )
2597
+ #define FT_LOAD_TARGET_LCD_V FT_LOAD_TARGET_( FT_RENDER_MODE_LCD_V )
2598
+
2599
+
2600
+ /**************************************************************************
2601
+ *
2602
+ * @macro:
2603
+ * FT_LOAD_TARGET_MODE
2604
+ *
2605
+ * @description:
2606
+ * Return the @FT_Render_Mode corresponding to a given
2607
+ * @FT_LOAD_TARGET_XXX value.
2608
+ *
2609
+ */
2610
+ #define FT_LOAD_TARGET_MODE( x ) ( (FT_Render_Mode)( ( (x) >> 16 ) & 15 ) )
2611
+
2612
+
2613
+ /*************************************************************************/
2614
+ /* */
2615
+ /* <Function> */
2616
+ /* FT_Set_Transform */
2617
+ /* */
2618
+ /* <Description> */
2619
+ /* A function used to set the transformation that is applied to glyph */
2620
+ /* images when they are loaded into a glyph slot through */
2621
+ /* @FT_Load_Glyph. */
2622
+ /* */
2623
+ /* <InOut> */
2624
+ /* face :: A handle to the source face object. */
2625
+ /* */
2626
+ /* <Input> */
2627
+ /* matrix :: A pointer to the transformation's 2x2 matrix. Use~0 for */
2628
+ /* the identity matrix. */
2629
+ /* delta :: A pointer to the translation vector. Use~0 for the null */
2630
+ /* vector. */
2631
+ /* */
2632
+ /* <Note> */
2633
+ /* The transformation is only applied to scalable image formats after */
2634
+ /* the glyph has been loaded. It means that hinting is unaltered by */
2635
+ /* the transformation and is performed on the character size given in */
2636
+ /* the last call to @FT_Set_Char_Size or @FT_Set_Pixel_Sizes. */
2637
+ /* */
2638
+ /* Note that this also transforms the `face.glyph.advance' field, but */
2639
+ /* *not* the values in `face.glyph.metrics'. */
2640
+ /* */
2641
+ FT_EXPORT( void )
2642
+ FT_Set_Transform( FT_Face face,
2643
+ FT_Matrix* matrix,
2644
+ FT_Vector* delta );
2645
+
2646
+
2647
+ /*************************************************************************/
2648
+ /* */
2649
+ /* <Enum> */
2650
+ /* FT_Render_Mode */
2651
+ /* */
2652
+ /* <Description> */
2653
+ /* An enumeration type that lists the render modes supported by */
2654
+ /* FreeType~2. Each mode corresponds to a specific type of scanline */
2655
+ /* conversion performed on the outline. */
2656
+ /* */
2657
+ /* For bitmap fonts and embedded bitmaps the `bitmap->pixel_mode' */
2658
+ /* field in the @FT_GlyphSlotRec structure gives the format of the */
2659
+ /* returned bitmap. */
2660
+ /* */
2661
+ /* All modes except @FT_RENDER_MODE_MONO use 256 levels of opacity. */
2662
+ /* */
2663
+ /* <Values> */
2664
+ /* FT_RENDER_MODE_NORMAL :: */
2665
+ /* This is the default render mode; it corresponds to 8-bit */
2666
+ /* anti-aliased bitmaps. */
2667
+ /* */
2668
+ /* FT_RENDER_MODE_LIGHT :: */
2669
+ /* This is equivalent to @FT_RENDER_MODE_NORMAL. It is only */
2670
+ /* defined as a separate value because render modes are also used */
2671
+ /* indirectly to define hinting algorithm selectors. See */
2672
+ /* @FT_LOAD_TARGET_XXX for details. */
2673
+ /* */
2674
+ /* FT_RENDER_MODE_MONO :: */
2675
+ /* This mode corresponds to 1-bit bitmaps (with 2~levels of */
2676
+ /* opacity). */
2677
+ /* */
2678
+ /* FT_RENDER_MODE_LCD :: */
2679
+ /* This mode corresponds to horizontal RGB and BGR sub-pixel */
2680
+ /* displays like LCD screens. It produces 8-bit bitmaps that are */
2681
+ /* 3~times the width of the original glyph outline in pixels, and */
2682
+ /* which use the @FT_PIXEL_MODE_LCD mode. */
2683
+ /* */
2684
+ /* FT_RENDER_MODE_LCD_V :: */
2685
+ /* This mode corresponds to vertical RGB and BGR sub-pixel displays */
2686
+ /* (like PDA screens, rotated LCD displays, etc.). It produces */
2687
+ /* 8-bit bitmaps that are 3~times the height of the original */
2688
+ /* glyph outline in pixels and use the @FT_PIXEL_MODE_LCD_V mode. */
2689
+ /* */
2690
+ /* <Note> */
2691
+ /* The LCD-optimized glyph bitmaps produced by FT_Render_Glyph can be */
2692
+ /* filtered to reduce color-fringes by using @FT_Library_SetLcdFilter */
2693
+ /* (not active in the default builds). It is up to the caller to */
2694
+ /* either call @FT_Library_SetLcdFilter (if available) or do the */
2695
+ /* filtering itself. */
2696
+ /* */
2697
+ /* The selected render mode only affects vector glyphs of a font. */
2698
+ /* Embedded bitmaps often have a different pixel mode like */
2699
+ /* @FT_PIXEL_MODE_MONO. You can use @FT_Bitmap_Convert to transform */
2700
+ /* them into 8-bit pixmaps. */
2701
+ /* */
2702
+ typedef enum FT_Render_Mode_
2703
+ {
2704
+ FT_RENDER_MODE_NORMAL = 0,
2705
+ FT_RENDER_MODE_LIGHT,
2706
+ FT_RENDER_MODE_MONO,
2707
+ FT_RENDER_MODE_LCD,
2708
+ FT_RENDER_MODE_LCD_V,
2709
+
2710
+ FT_RENDER_MODE_MAX
2711
+
2712
+ } FT_Render_Mode;
2713
+
2714
+
2715
+ /*************************************************************************/
2716
+ /* */
2717
+ /* <Enum> */
2718
+ /* ft_render_mode_xxx */
2719
+ /* */
2720
+ /* <Description> */
2721
+ /* These constants are deprecated. Use the corresponding */
2722
+ /* @FT_Render_Mode values instead. */
2723
+ /* */
2724
+ /* <Values> */
2725
+ /* ft_render_mode_normal :: see @FT_RENDER_MODE_NORMAL */
2726
+ /* ft_render_mode_mono :: see @FT_RENDER_MODE_MONO */
2727
+ /* */
2728
+ #define ft_render_mode_normal FT_RENDER_MODE_NORMAL
2729
+ #define ft_render_mode_mono FT_RENDER_MODE_MONO
2730
+
2731
+
2732
+ /*************************************************************************/
2733
+ /* */
2734
+ /* <Function> */
2735
+ /* FT_Render_Glyph */
2736
+ /* */
2737
+ /* <Description> */
2738
+ /* Convert a given glyph image to a bitmap. It does so by inspecting */
2739
+ /* the glyph image format, finding the relevant renderer, and */
2740
+ /* invoking it. */
2741
+ /* */
2742
+ /* <InOut> */
2743
+ /* slot :: A handle to the glyph slot containing the image to */
2744
+ /* convert. */
2745
+ /* */
2746
+ /* <Input> */
2747
+ /* render_mode :: This is the render mode used to render the glyph */
2748
+ /* image into a bitmap. See @FT_Render_Mode for a */
2749
+ /* list of possible values. */
2750
+ /* */
2751
+ /* <Return> */
2752
+ /* FreeType error code. 0~means success. */
2753
+ /* */
2754
+ FT_EXPORT( FT_Error )
2755
+ FT_Render_Glyph( FT_GlyphSlot slot,
2756
+ FT_Render_Mode render_mode );
2757
+
2758
+
2759
+ /*************************************************************************/
2760
+ /* */
2761
+ /* <Enum> */
2762
+ /* FT_Kerning_Mode */
2763
+ /* */
2764
+ /* <Description> */
2765
+ /* An enumeration used to specify which kerning values to return in */
2766
+ /* @FT_Get_Kerning. */
2767
+ /* */
2768
+ /* <Values> */
2769
+ /* FT_KERNING_DEFAULT :: Return scaled and grid-fitted kerning */
2770
+ /* distances (value is~0). */
2771
+ /* */
2772
+ /* FT_KERNING_UNFITTED :: Return scaled but un-grid-fitted kerning */
2773
+ /* distances. */
2774
+ /* */
2775
+ /* FT_KERNING_UNSCALED :: Return the kerning vector in original font */
2776
+ /* units. */
2777
+ /* */
2778
+ typedef enum FT_Kerning_Mode_
2779
+ {
2780
+ FT_KERNING_DEFAULT = 0,
2781
+ FT_KERNING_UNFITTED,
2782
+ FT_KERNING_UNSCALED
2783
+
2784
+ } FT_Kerning_Mode;
2785
+
2786
+
2787
+ /*************************************************************************/
2788
+ /* */
2789
+ /* <Const> */
2790
+ /* ft_kerning_default */
2791
+ /* */
2792
+ /* <Description> */
2793
+ /* This constant is deprecated. Please use @FT_KERNING_DEFAULT */
2794
+ /* instead. */
2795
+ /* */
2796
+ #define ft_kerning_default FT_KERNING_DEFAULT
2797
+
2798
+
2799
+ /*************************************************************************/
2800
+ /* */
2801
+ /* <Const> */
2802
+ /* ft_kerning_unfitted */
2803
+ /* */
2804
+ /* <Description> */
2805
+ /* This constant is deprecated. Please use @FT_KERNING_UNFITTED */
2806
+ /* instead. */
2807
+ /* */
2808
+ #define ft_kerning_unfitted FT_KERNING_UNFITTED
2809
+
2810
+
2811
+ /*************************************************************************/
2812
+ /* */
2813
+ /* <Const> */
2814
+ /* ft_kerning_unscaled */
2815
+ /* */
2816
+ /* <Description> */
2817
+ /* This constant is deprecated. Please use @FT_KERNING_UNSCALED */
2818
+ /* instead. */
2819
+ /* */
2820
+ #define ft_kerning_unscaled FT_KERNING_UNSCALED
2821
+
2822
+
2823
+ /*************************************************************************/
2824
+ /* */
2825
+ /* <Function> */
2826
+ /* FT_Get_Kerning */
2827
+ /* */
2828
+ /* <Description> */
2829
+ /* Return the kerning vector between two glyphs of a same face. */
2830
+ /* */
2831
+ /* <Input> */
2832
+ /* face :: A handle to a source face object. */
2833
+ /* */
2834
+ /* left_glyph :: The index of the left glyph in the kern pair. */
2835
+ /* */
2836
+ /* right_glyph :: The index of the right glyph in the kern pair. */
2837
+ /* */
2838
+ /* kern_mode :: See @FT_Kerning_Mode for more information. */
2839
+ /* Determines the scale and dimension of the returned */
2840
+ /* kerning vector. */
2841
+ /* */
2842
+ /* <Output> */
2843
+ /* akerning :: The kerning vector. This is either in font units */
2844
+ /* or in pixels (26.6 format) for scalable formats, */
2845
+ /* and in pixels for fixed-sizes formats. */
2846
+ /* */
2847
+ /* <Return> */
2848
+ /* FreeType error code. 0~means success. */
2849
+ /* */
2850
+ /* <Note> */
2851
+ /* Only horizontal layouts (left-to-right & right-to-left) are */
2852
+ /* supported by this method. Other layouts, or more sophisticated */
2853
+ /* kernings, are out of the scope of this API function -- they can be */
2854
+ /* implemented through format-specific interfaces. */
2855
+ /* */
2856
+ FT_EXPORT( FT_Error )
2857
+ FT_Get_Kerning( FT_Face face,
2858
+ FT_UInt left_glyph,
2859
+ FT_UInt right_glyph,
2860
+ FT_UInt kern_mode,
2861
+ FT_Vector *akerning );
2862
+
2863
+
2864
+ /*************************************************************************/
2865
+ /* */
2866
+ /* <Function> */
2867
+ /* FT_Get_Track_Kerning */
2868
+ /* */
2869
+ /* <Description> */
2870
+ /* Return the track kerning for a given face object at a given size. */
2871
+ /* */
2872
+ /* <Input> */
2873
+ /* face :: A handle to a source face object. */
2874
+ /* */
2875
+ /* point_size :: The point size in 16.16 fractional points. */
2876
+ /* */
2877
+ /* degree :: The degree of tightness. */
2878
+ /* */
2879
+ /* <Output> */
2880
+ /* akerning :: The kerning in 16.16 fractional points. */
2881
+ /* */
2882
+ /* <Return> */
2883
+ /* FreeType error code. 0~means success. */
2884
+ /* */
2885
+ FT_EXPORT( FT_Error )
2886
+ FT_Get_Track_Kerning( FT_Face face,
2887
+ FT_Fixed point_size,
2888
+ FT_Int degree,
2889
+ FT_Fixed* akerning );
2890
+
2891
+
2892
+ /*************************************************************************/
2893
+ /* */
2894
+ /* <Function> */
2895
+ /* FT_Get_Glyph_Name */
2896
+ /* */
2897
+ /* <Description> */
2898
+ /* Retrieve the ASCII name of a given glyph in a face. This only */
2899
+ /* works for those faces where @FT_HAS_GLYPH_NAMES(face) returns~1. */
2900
+ /* */
2901
+ /* <Input> */
2902
+ /* face :: A handle to a source face object. */
2903
+ /* */
2904
+ /* glyph_index :: The glyph index. */
2905
+ /* */
2906
+ /* buffer_max :: The maximal number of bytes available in the */
2907
+ /* buffer. */
2908
+ /* */
2909
+ /* <Output> */
2910
+ /* buffer :: A pointer to a target buffer where the name is */
2911
+ /* copied to. */
2912
+ /* */
2913
+ /* <Return> */
2914
+ /* FreeType error code. 0~means success. */
2915
+ /* */
2916
+ /* <Note> */
2917
+ /* An error is returned if the face doesn't provide glyph names or if */
2918
+ /* the glyph index is invalid. In all cases of failure, the first */
2919
+ /* byte of `buffer' is set to~0 to indicate an empty name. */
2920
+ /* */
2921
+ /* The glyph name is truncated to fit within the buffer if it is too */
2922
+ /* long. The returned string is always zero-terminated. */
2923
+ /* */
2924
+ /* This function is not compiled within the library if the config */
2925
+ /* macro `FT_CONFIG_OPTION_NO_GLYPH_NAMES' is defined in */
2926
+ /* `include/freetype/config/ftoptions.h'. */
2927
+ /* */
2928
+ FT_EXPORT( FT_Error )
2929
+ FT_Get_Glyph_Name( FT_Face face,
2930
+ FT_UInt glyph_index,
2931
+ FT_Pointer buffer,
2932
+ FT_UInt buffer_max );
2933
+
2934
+
2935
+ /*************************************************************************/
2936
+ /* */
2937
+ /* <Function> */
2938
+ /* FT_Get_Postscript_Name */
2939
+ /* */
2940
+ /* <Description> */
2941
+ /* Retrieve the ASCII PostScript name of a given face, if available. */
2942
+ /* This only works with PostScript and TrueType fonts. */
2943
+ /* */
2944
+ /* <Input> */
2945
+ /* face :: A handle to the source face object. */
2946
+ /* */
2947
+ /* <Return> */
2948
+ /* A pointer to the face's PostScript name. NULL if unavailable. */
2949
+ /* */
2950
+ /* <Note> */
2951
+ /* The returned pointer is owned by the face and is destroyed with */
2952
+ /* it. */
2953
+ /* */
2954
+ FT_EXPORT( const char* )
2955
+ FT_Get_Postscript_Name( FT_Face face );
2956
+
2957
+
2958
+ /*************************************************************************/
2959
+ /* */
2960
+ /* <Function> */
2961
+ /* FT_Select_Charmap */
2962
+ /* */
2963
+ /* <Description> */
2964
+ /* Select a given charmap by its encoding tag (as listed in */
2965
+ /* `freetype.h'). */
2966
+ /* */
2967
+ /* <InOut> */
2968
+ /* face :: A handle to the source face object. */
2969
+ /* */
2970
+ /* <Input> */
2971
+ /* encoding :: A handle to the selected encoding. */
2972
+ /* */
2973
+ /* <Return> */
2974
+ /* FreeType error code. 0~means success. */
2975
+ /* */
2976
+ /* <Note> */
2977
+ /* This function returns an error if no charmap in the face */
2978
+ /* corresponds to the encoding queried here. */
2979
+ /* */
2980
+ /* Because many fonts contain more than a single cmap for Unicode */
2981
+ /* encoding, this function has some special code to select the one */
2982
+ /* which covers Unicode best (`best' in the sense that a UCS-4 cmap */
2983
+ /* is preferred to a UCS-2 cmap). It is thus preferable to */
2984
+ /* @FT_Set_Charmap in this case. */
2985
+ /* */
2986
+ FT_EXPORT( FT_Error )
2987
+ FT_Select_Charmap( FT_Face face,
2988
+ FT_Encoding encoding );
2989
+
2990
+
2991
+ /*************************************************************************/
2992
+ /* */
2993
+ /* <Function> */
2994
+ /* FT_Set_Charmap */
2995
+ /* */
2996
+ /* <Description> */
2997
+ /* Select a given charmap for character code to glyph index mapping. */
2998
+ /* */
2999
+ /* <InOut> */
3000
+ /* face :: A handle to the source face object. */
3001
+ /* */
3002
+ /* <Input> */
3003
+ /* charmap :: A handle to the selected charmap. */
3004
+ /* */
3005
+ /* <Return> */
3006
+ /* FreeType error code. 0~means success. */
3007
+ /* */
3008
+ /* <Note> */
3009
+ /* This function returns an error if the charmap is not part of */
3010
+ /* the face (i.e., if it is not listed in the `face->charmaps' */
3011
+ /* table). */
3012
+ /* */
3013
+ /* It also fails if a type~14 charmap is selected. */
3014
+ /* */
3015
+ FT_EXPORT( FT_Error )
3016
+ FT_Set_Charmap( FT_Face face,
3017
+ FT_CharMap charmap );
3018
+
3019
+
3020
+ /*************************************************************************
3021
+ *
3022
+ * @function:
3023
+ * FT_Get_Charmap_Index
3024
+ *
3025
+ * @description:
3026
+ * Retrieve index of a given charmap.
3027
+ *
3028
+ * @input:
3029
+ * charmap ::
3030
+ * A handle to a charmap.
3031
+ *
3032
+ * @return:
3033
+ * The index into the array of character maps within the face to which
3034
+ * `charmap' belongs. If an error occurs, -1 is returned.
3035
+ *
3036
+ */
3037
+ FT_EXPORT( FT_Int )
3038
+ FT_Get_Charmap_Index( FT_CharMap charmap );
3039
+
3040
+
3041
+ /*************************************************************************/
3042
+ /* */
3043
+ /* <Function> */
3044
+ /* FT_Get_Char_Index */
3045
+ /* */
3046
+ /* <Description> */
3047
+ /* Return the glyph index of a given character code. This function */
3048
+ /* uses a charmap object to do the mapping. */
3049
+ /* */
3050
+ /* <Input> */
3051
+ /* face :: A handle to the source face object. */
3052
+ /* */
3053
+ /* charcode :: The character code. */
3054
+ /* */
3055
+ /* <Return> */
3056
+ /* The glyph index. 0~means `undefined character code'. */
3057
+ /* */
3058
+ /* <Note> */
3059
+ /* If you use FreeType to manipulate the contents of font files */
3060
+ /* directly, be aware that the glyph index returned by this function */
3061
+ /* doesn't always correspond to the internal indices used within */
3062
+ /* the file. This is done to ensure that value~0 always corresponds */
3063
+ /* to the `missing glyph'. */
3064
+ /* */
3065
+ FT_EXPORT( FT_UInt )
3066
+ FT_Get_Char_Index( FT_Face face,
3067
+ FT_ULong charcode );
3068
+
3069
+
3070
+ /*************************************************************************/
3071
+ /* */
3072
+ /* <Function> */
3073
+ /* FT_Get_First_Char */
3074
+ /* */
3075
+ /* <Description> */
3076
+ /* This function is used to return the first character code in the */
3077
+ /* current charmap of a given face. It also returns the */
3078
+ /* corresponding glyph index. */
3079
+ /* */
3080
+ /* <Input> */
3081
+ /* face :: A handle to the source face object. */
3082
+ /* */
3083
+ /* <Output> */
3084
+ /* agindex :: Glyph index of first character code. 0~if charmap is */
3085
+ /* empty. */
3086
+ /* */
3087
+ /* <Return> */
3088
+ /* The charmap's first character code. */
3089
+ /* */
3090
+ /* <Note> */
3091
+ /* You should use this function with @FT_Get_Next_Char to be able to */
3092
+ /* parse all character codes available in a given charmap. The code */
3093
+ /* should look like this: */
3094
+ /* */
3095
+ /* { */
3096
+ /* FT_ULong charcode; */
3097
+ /* FT_UInt gindex; */
3098
+ /* */
3099
+ /* */
3100
+ /* charcode = FT_Get_First_Char( face, &gindex ); */
3101
+ /* while ( gindex != 0 ) */
3102
+ /* { */
3103
+ /* ... do something with (charcode,gindex) pair ... */
3104
+ /* */
3105
+ /* charcode = FT_Get_Next_Char( face, charcode, &gindex ); */
3106
+ /* } */
3107
+ /* } */
3108
+ /* */
3109
+ /* Note that `*agindex' is set to~0 if the charmap is empty. The */
3110
+ /* result itself can be~0 in two cases: if the charmap is empty or */
3111
+ /* if the value~0 is the first valid character code. */
3112
+ /* */
3113
+ FT_EXPORT( FT_ULong )
3114
+ FT_Get_First_Char( FT_Face face,
3115
+ FT_UInt *agindex );
3116
+
3117
+
3118
+ /*************************************************************************/
3119
+ /* */
3120
+ /* <Function> */
3121
+ /* FT_Get_Next_Char */
3122
+ /* */
3123
+ /* <Description> */
3124
+ /* This function is used to return the next character code in the */
3125
+ /* current charmap of a given face following the value `char_code', */
3126
+ /* as well as the corresponding glyph index. */
3127
+ /* */
3128
+ /* <Input> */
3129
+ /* face :: A handle to the source face object. */
3130
+ /* char_code :: The starting character code. */
3131
+ /* */
3132
+ /* <Output> */
3133
+ /* agindex :: Glyph index of next character code. 0~if charmap */
3134
+ /* is empty. */
3135
+ /* */
3136
+ /* <Return> */
3137
+ /* The charmap's next character code. */
3138
+ /* */
3139
+ /* <Note> */
3140
+ /* You should use this function with @FT_Get_First_Char to walk */
3141
+ /* over all character codes available in a given charmap. See the */
3142
+ /* note for this function for a simple code example. */
3143
+ /* */
3144
+ /* Note that `*agindex' is set to~0 when there are no more codes in */
3145
+ /* the charmap. */
3146
+ /* */
3147
+ FT_EXPORT( FT_ULong )
3148
+ FT_Get_Next_Char( FT_Face face,
3149
+ FT_ULong char_code,
3150
+ FT_UInt *agindex );
3151
+
3152
+
3153
+ /*************************************************************************/
3154
+ /* */
3155
+ /* <Function> */
3156
+ /* FT_Get_Name_Index */
3157
+ /* */
3158
+ /* <Description> */
3159
+ /* Return the glyph index of a given glyph name. This function uses */
3160
+ /* driver specific objects to do the translation. */
3161
+ /* */
3162
+ /* <Input> */
3163
+ /* face :: A handle to the source face object. */
3164
+ /* */
3165
+ /* glyph_name :: The glyph name. */
3166
+ /* */
3167
+ /* <Return> */
3168
+ /* The glyph index. 0~means `undefined character code'. */
3169
+ /* */
3170
+ FT_EXPORT( FT_UInt )
3171
+ FT_Get_Name_Index( FT_Face face,
3172
+ FT_String* glyph_name );
3173
+
3174
+
3175
+ /*************************************************************************
3176
+ *
3177
+ * @macro:
3178
+ * FT_SUBGLYPH_FLAG_XXX
3179
+ *
3180
+ * @description:
3181
+ * A list of constants used to describe subglyphs. Please refer to the
3182
+ * TrueType specification for the meaning of the various flags.
3183
+ *
3184
+ * @values:
3185
+ * FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS ::
3186
+ * FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES ::
3187
+ * FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID ::
3188
+ * FT_SUBGLYPH_FLAG_SCALE ::
3189
+ * FT_SUBGLYPH_FLAG_XY_SCALE ::
3190
+ * FT_SUBGLYPH_FLAG_2X2 ::
3191
+ * FT_SUBGLYPH_FLAG_USE_MY_METRICS ::
3192
+ *
3193
+ */
3194
+ #define FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS 1
3195
+ #define FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES 2
3196
+ #define FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID 4
3197
+ #define FT_SUBGLYPH_FLAG_SCALE 8
3198
+ #define FT_SUBGLYPH_FLAG_XY_SCALE 0x40
3199
+ #define FT_SUBGLYPH_FLAG_2X2 0x80
3200
+ #define FT_SUBGLYPH_FLAG_USE_MY_METRICS 0x200
3201
+
3202
+
3203
+ /*************************************************************************
3204
+ *
3205
+ * @func:
3206
+ * FT_Get_SubGlyph_Info
3207
+ *
3208
+ * @description:
3209
+ * Retrieve a description of a given subglyph. Only use it if
3210
+ * `glyph->format' is @FT_GLYPH_FORMAT_COMPOSITE; an error is
3211
+ * returned otherwise.
3212
+ *
3213
+ * @input:
3214
+ * glyph ::
3215
+ * The source glyph slot.
3216
+ *
3217
+ * sub_index ::
3218
+ * The index of the subglyph. Must be less than
3219
+ * `glyph->num_subglyphs'.
3220
+ *
3221
+ * @output:
3222
+ * p_index ::
3223
+ * The glyph index of the subglyph.
3224
+ *
3225
+ * p_flags ::
3226
+ * The subglyph flags, see @FT_SUBGLYPH_FLAG_XXX.
3227
+ *
3228
+ * p_arg1 ::
3229
+ * The subglyph's first argument (if any).
3230
+ *
3231
+ * p_arg2 ::
3232
+ * The subglyph's second argument (if any).
3233
+ *
3234
+ * p_transform ::
3235
+ * The subglyph transformation (if any).
3236
+ *
3237
+ * @return:
3238
+ * FreeType error code. 0~means success.
3239
+ *
3240
+ * @note:
3241
+ * The values of `*p_arg1', `*p_arg2', and `*p_transform' must be
3242
+ * interpreted depending on the flags returned in `*p_flags'. See the
3243
+ * TrueType specification for details.
3244
+ *
3245
+ */
3246
+ FT_EXPORT( FT_Error )
3247
+ FT_Get_SubGlyph_Info( FT_GlyphSlot glyph,
3248
+ FT_UInt sub_index,
3249
+ FT_Int *p_index,
3250
+ FT_UInt *p_flags,
3251
+ FT_Int *p_arg1,
3252
+ FT_Int *p_arg2,
3253
+ FT_Matrix *p_transform );
3254
+
3255
+
3256
+ /*************************************************************************/
3257
+ /* */
3258
+ /* <Enum> */
3259
+ /* FT_FSTYPE_XXX */
3260
+ /* */
3261
+ /* <Description> */
3262
+ /* A list of bit flags used in the `fsType' field of the OS/2 table */
3263
+ /* in a TrueType or OpenType font and the `FSType' entry in a */
3264
+ /* PostScript font. These bit flags are returned by */
3265
+ /* @FT_Get_FSType_Flags; they inform client applications of embedding */
3266
+ /* and subsetting restrictions associated with a font. */
3267
+ /* */
3268
+ /* See http://www.adobe.com/devnet/acrobat/pdfs/FontPolicies.pdf for */
3269
+ /* more details. */
3270
+ /* */
3271
+ /* <Values> */
3272
+ /* FT_FSTYPE_INSTALLABLE_EMBEDDING :: */
3273
+ /* Fonts with no fsType bit set may be embedded and permanently */
3274
+ /* installed on the remote system by an application. */
3275
+ /* */
3276
+ /* FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING :: */
3277
+ /* Fonts that have only this bit set must not be modified, embedded */
3278
+ /* or exchanged in any manner without first obtaining permission of */
3279
+ /* the font software copyright owner. */
3280
+ /* */
3281
+ /* FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING :: */
3282
+ /* If this bit is set, the font may be embedded and temporarily */
3283
+ /* loaded on the remote system. Documents containing Preview & */
3284
+ /* Print fonts must be opened `read-only'; no edits can be applied */
3285
+ /* to the document. */
3286
+ /* */
3287
+ /* FT_FSTYPE_EDITABLE_EMBEDDING :: */
3288
+ /* If this bit is set, the font may be embedded but must only be */
3289
+ /* installed temporarily on other systems. In contrast to Preview */
3290
+ /* & Print fonts, documents containing editable fonts may be opened */
3291
+ /* for reading, editing is permitted, and changes may be saved. */
3292
+ /* */
3293
+ /* FT_FSTYPE_NO_SUBSETTING :: */
3294
+ /* If this bit is set, the font may not be subsetted prior to */
3295
+ /* embedding. */
3296
+ /* */
3297
+ /* FT_FSTYPE_BITMAP_EMBEDDING_ONLY :: */
3298
+ /* If this bit is set, only bitmaps contained in the font may be */
3299
+ /* embedded; no outline data may be embedded. If there are no */
3300
+ /* bitmaps available in the font, then the font is unembeddable. */
3301
+ /* */
3302
+ /* <Note> */
3303
+ /* While the fsType flags can indicate that a font may be embedded, a */
3304
+ /* license with the font vendor may be separately required to use the */
3305
+ /* font in this way. */
3306
+ /* */
3307
+ #define FT_FSTYPE_INSTALLABLE_EMBEDDING 0x0000
3308
+ #define FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING 0x0002
3309
+ #define FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING 0x0004
3310
+ #define FT_FSTYPE_EDITABLE_EMBEDDING 0x0008
3311
+ #define FT_FSTYPE_NO_SUBSETTING 0x0100
3312
+ #define FT_FSTYPE_BITMAP_EMBEDDING_ONLY 0x0200
3313
+
3314
+
3315
+ /*************************************************************************/
3316
+ /* */
3317
+ /* <Function> */
3318
+ /* FT_Get_FSType_Flags */
3319
+ /* */
3320
+ /* <Description> */
3321
+ /* Return the fsType flags for a font. */
3322
+ /* */
3323
+ /* <Input> */
3324
+ /* face :: A handle to the source face object. */
3325
+ /* */
3326
+ /* <Return> */
3327
+ /* The fsType flags, @FT_FSTYPE_XXX. */
3328
+ /* */
3329
+ /* <Note> */
3330
+ /* Use this function rather than directly reading the `fs_type' field */
3331
+ /* in the @PS_FontInfoRec structure which is only guaranteed to */
3332
+ /* return the correct results for Type~1 fonts. */
3333
+ /* */
3334
+ FT_EXPORT( FT_UShort )
3335
+ FT_Get_FSType_Flags( FT_Face face );
3336
+
3337
+
3338
+ /*************************************************************************/
3339
+ /* */
3340
+ /* <Section> */
3341
+ /* glyph_variants */
3342
+ /* */
3343
+ /* <Title> */
3344
+ /* Glyph Variants */
3345
+ /* */
3346
+ /* <Abstract> */
3347
+ /* The FreeType~2 interface to Unicode Ideographic Variation */
3348
+ /* Sequences (IVS), using the SFNT cmap format~14. */
3349
+ /* */
3350
+ /* <Description> */
3351
+ /* Many CJK characters have variant forms. They are a sort of grey */
3352
+ /* area somewhere between being totally irrelevant and semantically */
3353
+ /* distinct; for this reason, the Unicode consortium decided to */
3354
+ /* introduce Ideographic Variation Sequences (IVS), consisting of a */
3355
+ /* Unicode base character and one of 240 variant selectors */
3356
+ /* (U+E0100-U+E01EF), instead of further extending the already huge */
3357
+ /* code range for CJK characters. */
3358
+ /* */
3359
+ /* An IVS is registered and unique; for further details please refer */
3360
+ /* to Unicode Technical Report #37, the Ideographic Variation */
3361
+ /* Database. To date (October 2007), the character with the most */
3362
+ /* variants is U+908A, having 8~such IVS. */
3363
+ /* */
3364
+ /* Adobe and MS decided to support IVS with a new cmap subtable */
3365
+ /* (format~14). It is an odd subtable because it is not a mapping of */
3366
+ /* input code points to glyphs, but contains lists of all variants */
3367
+ /* supported by the font. */
3368
+ /* */
3369
+ /* A variant may be either `default' or `non-default'. A default */
3370
+ /* variant is the one you will get for that code point if you look it */
3371
+ /* up in the standard Unicode cmap. A non-default variant is a */
3372
+ /* different glyph. */
3373
+ /* */
3374
+ /*************************************************************************/
3375
+
3376
+
3377
+ /*************************************************************************/
3378
+ /* */
3379
+ /* <Function> */
3380
+ /* FT_Face_GetCharVariantIndex */
3381
+ /* */
3382
+ /* <Description> */
3383
+ /* Return the glyph index of a given character code as modified by */
3384
+ /* the variation selector. */
3385
+ /* */
3386
+ /* <Input> */
3387
+ /* face :: */
3388
+ /* A handle to the source face object. */
3389
+ /* */
3390
+ /* charcode :: */
3391
+ /* The character code point in Unicode. */
3392
+ /* */
3393
+ /* variantSelector :: */
3394
+ /* The Unicode code point of the variation selector. */
3395
+ /* */
3396
+ /* <Return> */
3397
+ /* The glyph index. 0~means either `undefined character code', or */
3398
+ /* `undefined selector code', or `no variation selector cmap */
3399
+ /* subtable', or `current CharMap is not Unicode'. */
3400
+ /* */
3401
+ /* <Note> */
3402
+ /* If you use FreeType to manipulate the contents of font files */
3403
+ /* directly, be aware that the glyph index returned by this function */
3404
+ /* doesn't always correspond to the internal indices used within */
3405
+ /* the file. This is done to ensure that value~0 always corresponds */
3406
+ /* to the `missing glyph'. */
3407
+ /* */
3408
+ /* This function is only meaningful if */
3409
+ /* a) the font has a variation selector cmap sub table, */
3410
+ /* and */
3411
+ /* b) the current charmap has a Unicode encoding. */
3412
+ /* */
3413
+ /* <Since> */
3414
+ /* 2.3.6 */
3415
+ /* */
3416
+ FT_EXPORT( FT_UInt )
3417
+ FT_Face_GetCharVariantIndex( FT_Face face,
3418
+ FT_ULong charcode,
3419
+ FT_ULong variantSelector );
3420
+
3421
+
3422
+ /*************************************************************************/
3423
+ /* */
3424
+ /* <Function> */
3425
+ /* FT_Face_GetCharVariantIsDefault */
3426
+ /* */
3427
+ /* <Description> */
3428
+ /* Check whether this variant of this Unicode character is the one to */
3429
+ /* be found in the `cmap'. */
3430
+ /* */
3431
+ /* <Input> */
3432
+ /* face :: */
3433
+ /* A handle to the source face object. */
3434
+ /* */
3435
+ /* charcode :: */
3436
+ /* The character codepoint in Unicode. */
3437
+ /* */
3438
+ /* variantSelector :: */
3439
+ /* The Unicode codepoint of the variation selector. */
3440
+ /* */
3441
+ /* <Return> */
3442
+ /* 1~if found in the standard (Unicode) cmap, 0~if found in the */
3443
+ /* variation selector cmap, or -1 if it is not a variant. */
3444
+ /* */
3445
+ /* <Note> */
3446
+ /* This function is only meaningful if the font has a variation */
3447
+ /* selector cmap subtable. */
3448
+ /* */
3449
+ /* <Since> */
3450
+ /* 2.3.6 */
3451
+ /* */
3452
+ FT_EXPORT( FT_Int )
3453
+ FT_Face_GetCharVariantIsDefault( FT_Face face,
3454
+ FT_ULong charcode,
3455
+ FT_ULong variantSelector );
3456
+
3457
+
3458
+ /*************************************************************************/
3459
+ /* */
3460
+ /* <Function> */
3461
+ /* FT_Face_GetVariantSelectors */
3462
+ /* */
3463
+ /* <Description> */
3464
+ /* Return a zero-terminated list of Unicode variant selectors found */
3465
+ /* in the font. */
3466
+ /* */
3467
+ /* <Input> */
3468
+ /* face :: */
3469
+ /* A handle to the source face object. */
3470
+ /* */
3471
+ /* <Return> */
3472
+ /* A pointer to an array of selector code points, or NULL if there is */
3473
+ /* no valid variant selector cmap subtable. */
3474
+ /* */
3475
+ /* <Note> */
3476
+ /* The last item in the array is~0; the array is owned by the */
3477
+ /* @FT_Face object but can be overwritten or released on the next */
3478
+ /* call to a FreeType function. */
3479
+ /* */
3480
+ /* <Since> */
3481
+ /* 2.3.6 */
3482
+ /* */
3483
+ FT_EXPORT( FT_UInt32* )
3484
+ FT_Face_GetVariantSelectors( FT_Face face );
3485
+
3486
+
3487
+ /*************************************************************************/
3488
+ /* */
3489
+ /* <Function> */
3490
+ /* FT_Face_GetVariantsOfChar */
3491
+ /* */
3492
+ /* <Description> */
3493
+ /* Return a zero-terminated list of Unicode variant selectors found */
3494
+ /* for the specified character code. */
3495
+ /* */
3496
+ /* <Input> */
3497
+ /* face :: */
3498
+ /* A handle to the source face object. */
3499
+ /* */
3500
+ /* charcode :: */
3501
+ /* The character codepoint in Unicode. */
3502
+ /* */
3503
+ /* <Return> */
3504
+ /* A pointer to an array of variant selector code points which are */
3505
+ /* active for the given character, or NULL if the corresponding list */
3506
+ /* is empty. */
3507
+ /* */
3508
+ /* <Note> */
3509
+ /* The last item in the array is~0; the array is owned by the */
3510
+ /* @FT_Face object but can be overwritten or released on the next */
3511
+ /* call to a FreeType function. */
3512
+ /* */
3513
+ /* <Since> */
3514
+ /* 2.3.6 */
3515
+ /* */
3516
+ FT_EXPORT( FT_UInt32* )
3517
+ FT_Face_GetVariantsOfChar( FT_Face face,
3518
+ FT_ULong charcode );
3519
+
3520
+
3521
+ /*************************************************************************/
3522
+ /* */
3523
+ /* <Function> */
3524
+ /* FT_Face_GetCharsOfVariant */
3525
+ /* */
3526
+ /* <Description> */
3527
+ /* Return a zero-terminated list of Unicode character codes found for */
3528
+ /* the specified variant selector. */
3529
+ /* */
3530
+ /* <Input> */
3531
+ /* face :: */
3532
+ /* A handle to the source face object. */
3533
+ /* */
3534
+ /* variantSelector :: */
3535
+ /* The variant selector code point in Unicode. */
3536
+ /* */
3537
+ /* <Return> */
3538
+ /* A list of all the code points which are specified by this selector */
3539
+ /* (both default and non-default codes are returned) or NULL if there */
3540
+ /* is no valid cmap or the variant selector is invalid. */
3541
+ /* */
3542
+ /* <Note> */
3543
+ /* The last item in the array is~0; the array is owned by the */
3544
+ /* @FT_Face object but can be overwritten or released on the next */
3545
+ /* call to a FreeType function. */
3546
+ /* */
3547
+ /* <Since> */
3548
+ /* 2.3.6 */
3549
+ /* */
3550
+ FT_EXPORT( FT_UInt32* )
3551
+ FT_Face_GetCharsOfVariant( FT_Face face,
3552
+ FT_ULong variantSelector );
3553
+
3554
+
3555
+ /*************************************************************************/
3556
+ /* */
3557
+ /* <Section> */
3558
+ /* computations */
3559
+ /* */
3560
+ /* <Title> */
3561
+ /* Computations */
3562
+ /* */
3563
+ /* <Abstract> */
3564
+ /* Crunching fixed numbers and vectors. */
3565
+ /* */
3566
+ /* <Description> */
3567
+ /* This section contains various functions used to perform */
3568
+ /* computations on 16.16 fixed-float numbers or 2d vectors. */
3569
+ /* */
3570
+ /* <Order> */
3571
+ /* FT_MulDiv */
3572
+ /* FT_MulFix */
3573
+ /* FT_DivFix */
3574
+ /* FT_RoundFix */
3575
+ /* FT_CeilFix */
3576
+ /* FT_FloorFix */
3577
+ /* FT_Vector_Transform */
3578
+ /* FT_Matrix_Multiply */
3579
+ /* FT_Matrix_Invert */
3580
+ /* */
3581
+ /*************************************************************************/
3582
+
3583
+
3584
+ /*************************************************************************/
3585
+ /* */
3586
+ /* <Function> */
3587
+ /* FT_MulDiv */
3588
+ /* */
3589
+ /* <Description> */
3590
+ /* A very simple function used to perform the computation `(a*b)/c' */
3591
+ /* with maximal accuracy (it uses a 64-bit intermediate integer */
3592
+ /* whenever necessary). */
3593
+ /* */
3594
+ /* This function isn't necessarily as fast as some processor specific */
3595
+ /* operations, but is at least completely portable. */
3596
+ /* */
3597
+ /* <Input> */
3598
+ /* a :: The first multiplier. */
3599
+ /* b :: The second multiplier. */
3600
+ /* c :: The divisor. */
3601
+ /* */
3602
+ /* <Return> */
3603
+ /* The result of `(a*b)/c'. This function never traps when trying to */
3604
+ /* divide by zero; it simply returns `MaxInt' or `MinInt' depending */
3605
+ /* on the signs of `a' and `b'. */
3606
+ /* */
3607
+ FT_EXPORT( FT_Long )
3608
+ FT_MulDiv( FT_Long a,
3609
+ FT_Long b,
3610
+ FT_Long c );
3611
+
3612
+
3613
+ /* */
3614
+
3615
+ /* The following #if 0 ... #endif is for the documentation formatter, */
3616
+ /* hiding the internal `FT_MULFIX_INLINED' macro. */
3617
+
3618
+ #if 0
3619
+ /*************************************************************************/
3620
+ /* */
3621
+ /* <Function> */
3622
+ /* FT_MulFix */
3623
+ /* */
3624
+ /* <Description> */
3625
+ /* A very simple function used to perform the computation */
3626
+ /* `(a*b)/0x10000' with maximal accuracy. Most of the time this is */
3627
+ /* used to multiply a given value by a 16.16 fixed float factor. */
3628
+ /* */
3629
+ /* <Input> */
3630
+ /* a :: The first multiplier. */
3631
+ /* b :: The second multiplier. Use a 16.16 factor here whenever */
3632
+ /* possible (see note below). */
3633
+ /* */
3634
+ /* <Return> */
3635
+ /* The result of `(a*b)/0x10000'. */
3636
+ /* */
3637
+ /* <Note> */
3638
+ /* This function has been optimized for the case where the absolute */
3639
+ /* value of `a' is less than 2048, and `b' is a 16.16 scaling factor. */
3640
+ /* As this happens mainly when scaling from notional units to */
3641
+ /* fractional pixels in FreeType, it resulted in noticeable speed */
3642
+ /* improvements between versions 2.x and 1.x. */
3643
+ /* */
3644
+ /* As a conclusion, always try to place a 16.16 factor as the */
3645
+ /* _second_ argument of this function; this can make a great */
3646
+ /* difference. */
3647
+ /* */
3648
+ FT_EXPORT( FT_Long )
3649
+ FT_MulFix( FT_Long a,
3650
+ FT_Long b );
3651
+
3652
+ /* */
3653
+ #endif
3654
+
3655
+ #ifdef FT_MULFIX_INLINED
3656
+ #define FT_MulFix( a, b ) FT_MULFIX_INLINED( a, b )
3657
+ #else
3658
+ FT_EXPORT( FT_Long )
3659
+ FT_MulFix( FT_Long a,
3660
+ FT_Long b );
3661
+ #endif
3662
+
3663
+
3664
+ /*************************************************************************/
3665
+ /* */
3666
+ /* <Function> */
3667
+ /* FT_DivFix */
3668
+ /* */
3669
+ /* <Description> */
3670
+ /* A very simple function used to perform the computation */
3671
+ /* `(a*0x10000)/b' with maximal accuracy. Most of the time, this is */
3672
+ /* used to divide a given value by a 16.16 fixed float factor. */
3673
+ /* */
3674
+ /* <Input> */
3675
+ /* a :: The first multiplier. */
3676
+ /* b :: The second multiplier. Use a 16.16 factor here whenever */
3677
+ /* possible (see note below). */
3678
+ /* */
3679
+ /* <Return> */
3680
+ /* The result of `(a*0x10000)/b'. */
3681
+ /* */
3682
+ /* <Note> */
3683
+ /* The optimization for FT_DivFix() is simple: If (a~<<~16) fits in */
3684
+ /* 32~bits, then the division is computed directly. Otherwise, we */
3685
+ /* use a specialized version of @FT_MulDiv. */
3686
+ /* */
3687
+ FT_EXPORT( FT_Long )
3688
+ FT_DivFix( FT_Long a,
3689
+ FT_Long b );
3690
+
3691
+
3692
+ /*************************************************************************/
3693
+ /* */
3694
+ /* <Function> */
3695
+ /* FT_RoundFix */
3696
+ /* */
3697
+ /* <Description> */
3698
+ /* A very simple function used to round a 16.16 fixed number. */
3699
+ /* */
3700
+ /* <Input> */
3701
+ /* a :: The number to be rounded. */
3702
+ /* */
3703
+ /* <Return> */
3704
+ /* The result of `(a + 0x8000) & -0x10000'. */
3705
+ /* */
3706
+ FT_EXPORT( FT_Fixed )
3707
+ FT_RoundFix( FT_Fixed a );
3708
+
3709
+
3710
+ /*************************************************************************/
3711
+ /* */
3712
+ /* <Function> */
3713
+ /* FT_CeilFix */
3714
+ /* */
3715
+ /* <Description> */
3716
+ /* A very simple function used to compute the ceiling function of a */
3717
+ /* 16.16 fixed number. */
3718
+ /* */
3719
+ /* <Input> */
3720
+ /* a :: The number for which the ceiling function is to be computed. */
3721
+ /* */
3722
+ /* <Return> */
3723
+ /* The result of `(a + 0x10000 - 1) & -0x10000'. */
3724
+ /* */
3725
+ FT_EXPORT( FT_Fixed )
3726
+ FT_CeilFix( FT_Fixed a );
3727
+
3728
+
3729
+ /*************************************************************************/
3730
+ /* */
3731
+ /* <Function> */
3732
+ /* FT_FloorFix */
3733
+ /* */
3734
+ /* <Description> */
3735
+ /* A very simple function used to compute the floor function of a */
3736
+ /* 16.16 fixed number. */
3737
+ /* */
3738
+ /* <Input> */
3739
+ /* a :: The number for which the floor function is to be computed. */
3740
+ /* */
3741
+ /* <Return> */
3742
+ /* The result of `a & -0x10000'. */
3743
+ /* */
3744
+ FT_EXPORT( FT_Fixed )
3745
+ FT_FloorFix( FT_Fixed a );
3746
+
3747
+
3748
+ /*************************************************************************/
3749
+ /* */
3750
+ /* <Function> */
3751
+ /* FT_Vector_Transform */
3752
+ /* */
3753
+ /* <Description> */
3754
+ /* Transform a single vector through a 2x2 matrix. */
3755
+ /* */
3756
+ /* <InOut> */
3757
+ /* vector :: The target vector to transform. */
3758
+ /* */
3759
+ /* <Input> */
3760
+ /* matrix :: A pointer to the source 2x2 matrix. */
3761
+ /* */
3762
+ /* <Note> */
3763
+ /* The result is undefined if either `vector' or `matrix' is invalid. */
3764
+ /* */
3765
+ FT_EXPORT( void )
3766
+ FT_Vector_Transform( FT_Vector* vec,
3767
+ const FT_Matrix* matrix );
3768
+
3769
+
3770
+ /*************************************************************************/
3771
+ /* */
3772
+ /* <Section> */
3773
+ /* version */
3774
+ /* */
3775
+ /* <Title> */
3776
+ /* FreeType Version */
3777
+ /* */
3778
+ /* <Abstract> */
3779
+ /* Functions and macros related to FreeType versions. */
3780
+ /* */
3781
+ /* <Description> */
3782
+ /* Note that those functions and macros are of limited use because */
3783
+ /* even a new release of FreeType with only documentation changes */
3784
+ /* increases the version number. */
3785
+ /* */
3786
+ /*************************************************************************/
3787
+
3788
+
3789
+ /*************************************************************************
3790
+ *
3791
+ * @enum:
3792
+ * FREETYPE_XXX
3793
+ *
3794
+ * @description:
3795
+ * These three macros identify the FreeType source code version.
3796
+ * Use @FT_Library_Version to access them at runtime.
3797
+ *
3798
+ * @values:
3799
+ * FREETYPE_MAJOR :: The major version number.
3800
+ * FREETYPE_MINOR :: The minor version number.
3801
+ * FREETYPE_PATCH :: The patch level.
3802
+ *
3803
+ * @note:
3804
+ * The version number of FreeType if built as a dynamic link library
3805
+ * with the `libtool' package is _not_ controlled by these three
3806
+ * macros.
3807
+ *
3808
+ */
3809
+ #define FREETYPE_MAJOR 2
3810
+ #define FREETYPE_MINOR 4
3811
+ #define FREETYPE_PATCH 2
3812
+
3813
+
3814
+ /*************************************************************************/
3815
+ /* */
3816
+ /* <Function> */
3817
+ /* FT_Library_Version */
3818
+ /* */
3819
+ /* <Description> */
3820
+ /* Return the version of the FreeType library being used. This is */
3821
+ /* useful when dynamically linking to the library, since one cannot */
3822
+ /* use the macros @FREETYPE_MAJOR, @FREETYPE_MINOR, and */
3823
+ /* @FREETYPE_PATCH. */
3824
+ /* */
3825
+ /* <Input> */
3826
+ /* library :: A source library handle. */
3827
+ /* */
3828
+ /* <Output> */
3829
+ /* amajor :: The major version number. */
3830
+ /* */
3831
+ /* aminor :: The minor version number. */
3832
+ /* */
3833
+ /* apatch :: The patch version number. */
3834
+ /* */
3835
+ /* <Note> */
3836
+ /* The reason why this function takes a `library' argument is because */
3837
+ /* certain programs implement library initialization in a custom way */
3838
+ /* that doesn't use @FT_Init_FreeType. */
3839
+ /* */
3840
+ /* In such cases, the library version might not be available before */
3841
+ /* the library object has been created. */
3842
+ /* */
3843
+ FT_EXPORT( void )
3844
+ FT_Library_Version( FT_Library library,
3845
+ FT_Int *amajor,
3846
+ FT_Int *aminor,
3847
+ FT_Int *apatch );
3848
+
3849
+
3850
+ /*************************************************************************/
3851
+ /* */
3852
+ /* <Function> */
3853
+ /* FT_Face_CheckTrueTypePatents */
3854
+ /* */
3855
+ /* <Description> */
3856
+ /* Parse all bytecode instructions of a TrueType font file to check */
3857
+ /* whether any of the patented opcodes are used. This is only useful */
3858
+ /* if you want to be able to use the unpatented hinter with */
3859
+ /* fonts that do *not* use these opcodes. */
3860
+ /* */
3861
+ /* Note that this function parses *all* glyph instructions in the */
3862
+ /* font file, which may be slow. */
3863
+ /* */
3864
+ /* <Input> */
3865
+ /* face :: A face handle. */
3866
+ /* */
3867
+ /* <Return> */
3868
+ /* 1~if this is a TrueType font that uses one of the patented */
3869
+ /* opcodes, 0~otherwise. */
3870
+ /* */
3871
+ /* <Note> */
3872
+ /* Since May 2010, TrueType hinting is no longer patented. */
3873
+ /* */
3874
+ /* <Since> */
3875
+ /* 2.3.5 */
3876
+ /* */
3877
+ FT_EXPORT( FT_Bool )
3878
+ FT_Face_CheckTrueTypePatents( FT_Face face );
3879
+
3880
+
3881
+ /*************************************************************************/
3882
+ /* */
3883
+ /* <Function> */
3884
+ /* FT_Face_SetUnpatentedHinting */
3885
+ /* */
3886
+ /* <Description> */
3887
+ /* Enable or disable the unpatented hinter for a given face. */
3888
+ /* Only enable it if you have determined that the face doesn't */
3889
+ /* use any patented opcodes (see @FT_Face_CheckTrueTypePatents). */
3890
+ /* */
3891
+ /* <Input> */
3892
+ /* face :: A face handle. */
3893
+ /* */
3894
+ /* value :: New boolean setting. */
3895
+ /* */
3896
+ /* <Return> */
3897
+ /* The old setting value. This will always be false if this is not */
3898
+ /* an SFNT font, or if the unpatented hinter is not compiled in this */
3899
+ /* instance of the library. */
3900
+ /* */
3901
+ /* <Note> */
3902
+ /* Since May 2010, TrueType hinting is no longer patented. */
3903
+ /* */
3904
+ /* <Since> */
3905
+ /* 2.3.5 */
3906
+ /* */
3907
+ FT_EXPORT( FT_Bool )
3908
+ FT_Face_SetUnpatentedHinting( FT_Face face,
3909
+ FT_Bool value );
3910
+
3911
+ /* */
3912
+
3913
+
3914
+ FT_END_HEADER
3915
+
3916
+ #endif /* __FREETYPE_H__ */
3917
+
3918
+
3919
+ /* END */