@img/sharp-libvips-dev 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (656) hide show
  1. package/README.md +47 -0
  2. package/cplusplus/VConnection.cpp +151 -0
  3. package/cplusplus/VError.cpp +49 -0
  4. package/cplusplus/VImage.cpp +1548 -0
  5. package/cplusplus/VInterpolate.cpp +62 -0
  6. package/cplusplus/VRegion.cpp +27 -0
  7. package/cplusplus/index.js +1 -0
  8. package/cplusplus/vips-operators.cpp +3760 -0
  9. package/include/aom/aom.h +127 -0
  10. package/include/aom/aom_codec.h +573 -0
  11. package/include/aom/aom_decoder.h +257 -0
  12. package/include/aom/aom_encoder.h +1137 -0
  13. package/include/aom/aom_external_partition.h +452 -0
  14. package/include/aom/aom_frame_buffer.h +84 -0
  15. package/include/aom/aom_image.h +448 -0
  16. package/include/aom/aom_integer.h +68 -0
  17. package/include/aom/aomcx.h +2112 -0
  18. package/include/aom/aomdx.h +604 -0
  19. package/include/archive.h +1212 -0
  20. package/include/archive_entry.h +723 -0
  21. package/include/cairo/cairo-deprecated.h +123 -0
  22. package/include/cairo/cairo-features.h +29 -0
  23. package/include/cairo/cairo-ft.h +118 -0
  24. package/include/cairo/cairo-gobject.h +192 -0
  25. package/include/cairo/cairo-svg.h +130 -0
  26. package/include/cairo/cairo-version.h +8 -0
  27. package/include/cairo/cairo.h +3281 -0
  28. package/include/cgif.h +80 -0
  29. package/include/expat.h +1064 -0
  30. package/include/expat_config.h +140 -0
  31. package/include/expat_external.h +165 -0
  32. package/include/ffi.h +531 -0
  33. package/include/ffitarget.h +164 -0
  34. package/include/fontconfig/fcfreetype.h +59 -0
  35. package/include/fontconfig/fcprivate.h +134 -0
  36. package/include/fontconfig/fontconfig.h +1158 -0
  37. package/include/freetype2/freetype/config/ftconfig.h +51 -0
  38. package/include/freetype2/freetype/config/ftheader.h +836 -0
  39. package/include/freetype2/freetype/config/ftmodule.h +21 -0
  40. package/include/freetype2/freetype/config/ftoption.h +1014 -0
  41. package/include/freetype2/freetype/config/ftstdlib.h +185 -0
  42. package/include/freetype2/freetype/config/integer-types.h +250 -0
  43. package/include/freetype2/freetype/config/mac-support.h +49 -0
  44. package/include/freetype2/freetype/config/public-macros.h +138 -0
  45. package/include/freetype2/freetype/freetype.h +5337 -0
  46. package/include/freetype2/freetype/ftadvanc.h +188 -0
  47. package/include/freetype2/freetype/ftbbox.h +101 -0
  48. package/include/freetype2/freetype/ftbdf.h +212 -0
  49. package/include/freetype2/freetype/ftbitmap.h +329 -0
  50. package/include/freetype2/freetype/ftbzip2.h +102 -0
  51. package/include/freetype2/freetype/ftcache.h +1087 -0
  52. package/include/freetype2/freetype/ftchapters.h +168 -0
  53. package/include/freetype2/freetype/ftcid.h +167 -0
  54. package/include/freetype2/freetype/ftcolor.h +1667 -0
  55. package/include/freetype2/freetype/ftdriver.h +1246 -0
  56. package/include/freetype2/freetype/fterrdef.h +283 -0
  57. package/include/freetype2/freetype/fterrors.h +296 -0
  58. package/include/freetype2/freetype/ftfntfmt.h +93 -0
  59. package/include/freetype2/freetype/ftgasp.h +143 -0
  60. package/include/freetype2/freetype/ftglyph.h +750 -0
  61. package/include/freetype2/freetype/ftgxval.h +354 -0
  62. package/include/freetype2/freetype/ftgzip.h +151 -0
  63. package/include/freetype2/freetype/ftimage.h +1284 -0
  64. package/include/freetype2/freetype/ftincrem.h +348 -0
  65. package/include/freetype2/freetype/ftlcdfil.h +323 -0
  66. package/include/freetype2/freetype/ftlist.h +296 -0
  67. package/include/freetype2/freetype/ftlzw.h +100 -0
  68. package/include/freetype2/freetype/ftmac.h +289 -0
  69. package/include/freetype2/freetype/ftmm.h +805 -0
  70. package/include/freetype2/freetype/ftmodapi.h +807 -0
  71. package/include/freetype2/freetype/ftmoderr.h +204 -0
  72. package/include/freetype2/freetype/ftotval.h +206 -0
  73. package/include/freetype2/freetype/ftoutln.h +588 -0
  74. package/include/freetype2/freetype/ftparams.h +218 -0
  75. package/include/freetype2/freetype/ftpfr.h +179 -0
  76. package/include/freetype2/freetype/ftrender.h +244 -0
  77. package/include/freetype2/freetype/ftsizes.h +159 -0
  78. package/include/freetype2/freetype/ftsnames.h +272 -0
  79. package/include/freetype2/freetype/ftstroke.h +773 -0
  80. package/include/freetype2/freetype/ftsynth.h +104 -0
  81. package/include/freetype2/freetype/ftsystem.h +350 -0
  82. package/include/freetype2/freetype/fttrigon.h +350 -0
  83. package/include/freetype2/freetype/fttypes.h +617 -0
  84. package/include/freetype2/freetype/ftwinfnt.h +276 -0
  85. package/include/freetype2/freetype/otsvg.h +336 -0
  86. package/include/freetype2/freetype/t1tables.h +793 -0
  87. package/include/freetype2/freetype/ttnameid.h +1235 -0
  88. package/include/freetype2/freetype/tttables.h +855 -0
  89. package/include/freetype2/freetype/tttags.h +124 -0
  90. package/include/freetype2/ft2build.h +42 -0
  91. package/include/fribidi/fribidi-arabic.h +81 -0
  92. package/include/fribidi/fribidi-begindecls.h +3 -0
  93. package/include/fribidi/fribidi-bidi-types-list.h +96 -0
  94. package/include/fribidi/fribidi-bidi-types.h +405 -0
  95. package/include/fribidi/fribidi-bidi.h +142 -0
  96. package/include/fribidi/fribidi-brackets.h +89 -0
  97. package/include/fribidi/fribidi-char-sets-list.h +54 -0
  98. package/include/fribidi/fribidi-char-sets.h +106 -0
  99. package/include/fribidi/fribidi-common.h +152 -0
  100. package/include/fribidi/fribidi-config.h +23 -0
  101. package/include/fribidi/fribidi-deprecated.h +175 -0
  102. package/include/fribidi/fribidi-enddecls.h +3 -0
  103. package/include/fribidi/fribidi-flags.h +72 -0
  104. package/include/fribidi/fribidi-joining-types-list.h +44 -0
  105. package/include/fribidi/fribidi-joining-types.h +249 -0
  106. package/include/fribidi/fribidi-joining.h +74 -0
  107. package/include/fribidi/fribidi-mirroring.h +86 -0
  108. package/include/fribidi/fribidi-shape.h +71 -0
  109. package/include/fribidi/fribidi-types.h +79 -0
  110. package/include/fribidi/fribidi-unicode-version.h +10 -0
  111. package/include/fribidi/fribidi-unicode.h +105 -0
  112. package/include/fribidi/fribidi.h +129 -0
  113. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-animation.h +221 -0
  114. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-autocleanups.h +37 -0
  115. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h +525 -0
  116. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h +40 -0
  117. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-features.h +115 -0
  118. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-io.h +481 -0
  119. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-loader.h +113 -0
  120. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-macros.h +718 -0
  121. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-marshal.h +33 -0
  122. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h +70 -0
  123. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-transform.h +168 -0
  124. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h +46 -0
  125. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixdata.h +165 -0
  126. package/include/gio-unix-2.0/gio/gdesktopappinfo.h +200 -0
  127. package/include/gio-unix-2.0/gio/gfiledescriptorbased.h +67 -0
  128. package/include/gio-unix-2.0/gio/gunixfdmessage.h +86 -0
  129. package/include/gio-unix-2.0/gio/gunixinputstream.h +85 -0
  130. package/include/gio-unix-2.0/gio/gunixmounts.h +172 -0
  131. package/include/gio-unix-2.0/gio/gunixoutputstream.h +84 -0
  132. package/include/glib-2.0/gio/gaction.h +100 -0
  133. package/include/glib-2.0/gio/gactiongroup.h +163 -0
  134. package/include/glib-2.0/gio/gactiongroupexporter.h +47 -0
  135. package/include/glib-2.0/gio/gactionmap.h +101 -0
  136. package/include/glib-2.0/gio/gappinfo.h +369 -0
  137. package/include/glib-2.0/gio/gapplication.h +257 -0
  138. package/include/glib-2.0/gio/gapplicationcommandline.h +124 -0
  139. package/include/glib-2.0/gio/gasyncinitable.h +132 -0
  140. package/include/glib-2.0/gio/gasyncresult.h +87 -0
  141. package/include/glib-2.0/gio/gbufferedinputstream.h +135 -0
  142. package/include/glib-2.0/gio/gbufferedoutputstream.h +88 -0
  143. package/include/glib-2.0/gio/gbytesicon.h +54 -0
  144. package/include/glib-2.0/gio/gcancellable.h +120 -0
  145. package/include/glib-2.0/gio/gcharsetconverter.h +65 -0
  146. package/include/glib-2.0/gio/gcontenttype.h +84 -0
  147. package/include/glib-2.0/gio/gconverter.h +98 -0
  148. package/include/glib-2.0/gio/gconverterinputstream.h +82 -0
  149. package/include/glib-2.0/gio/gconverteroutputstream.h +82 -0
  150. package/include/glib-2.0/gio/gcredentials.h +87 -0
  151. package/include/glib-2.0/gio/gdatagrambased.h +146 -0
  152. package/include/glib-2.0/gio/gdatainputstream.h +182 -0
  153. package/include/glib-2.0/gio/gdataoutputstream.h +127 -0
  154. package/include/glib-2.0/gio/gdbusactiongroup.h +56 -0
  155. package/include/glib-2.0/gio/gdbusaddress.h +67 -0
  156. package/include/glib-2.0/gio/gdbusauthobserver.h +53 -0
  157. package/include/glib-2.0/gio/gdbusconnection.h +691 -0
  158. package/include/glib-2.0/gio/gdbuserror.h +111 -0
  159. package/include/glib-2.0/gio/gdbusinterface.h +83 -0
  160. package/include/glib-2.0/gio/gdbusinterfaceskeleton.h +129 -0
  161. package/include/glib-2.0/gio/gdbusintrospection.h +327 -0
  162. package/include/glib-2.0/gio/gdbusmenumodel.h +47 -0
  163. package/include/glib-2.0/gio/gdbusmessage.h +204 -0
  164. package/include/glib-2.0/gio/gdbusmethodinvocation.h +136 -0
  165. package/include/glib-2.0/gio/gdbusnameowning.h +117 -0
  166. package/include/glib-2.0/gio/gdbusnamewatching.h +104 -0
  167. package/include/glib-2.0/gio/gdbusobject.h +80 -0
  168. package/include/glib-2.0/gio/gdbusobjectmanager.h +96 -0
  169. package/include/glib-2.0/gio/gdbusobjectmanagerclient.h +148 -0
  170. package/include/glib-2.0/gio/gdbusobjectmanagerserver.h +95 -0
  171. package/include/glib-2.0/gio/gdbusobjectproxy.h +81 -0
  172. package/include/glib-2.0/gio/gdbusobjectskeleton.h +98 -0
  173. package/include/glib-2.0/gio/gdbusproxy.h +220 -0
  174. package/include/glib-2.0/gio/gdbusserver.h +62 -0
  175. package/include/glib-2.0/gio/gdbusutils.h +65 -0
  176. package/include/glib-2.0/gio/gdebugcontroller.h +81 -0
  177. package/include/glib-2.0/gio/gdebugcontrollerdbus.h +71 -0
  178. package/include/glib-2.0/gio/gdrive.h +274 -0
  179. package/include/glib-2.0/gio/gdtlsclientconnection.h +77 -0
  180. package/include/glib-2.0/gio/gdtlsconnection.h +230 -0
  181. package/include/glib-2.0/gio/gdtlsserverconnection.h +71 -0
  182. package/include/glib-2.0/gio/gemblem.h +63 -0
  183. package/include/glib-2.0/gio/gemblemedicon.h +83 -0
  184. package/include/glib-2.0/gio/gfile.h +1359 -0
  185. package/include/glib-2.0/gio/gfileattribute.h +86 -0
  186. package/include/glib-2.0/gio/gfileenumerator.h +154 -0
  187. package/include/glib-2.0/gio/gfileicon.h +59 -0
  188. package/include/glib-2.0/gio/gfileinfo.h +1546 -0
  189. package/include/glib-2.0/gio/gfileinputstream.h +116 -0
  190. package/include/glib-2.0/gio/gfileiostream.h +123 -0
  191. package/include/glib-2.0/gio/gfilemonitor.h +100 -0
  192. package/include/glib-2.0/gio/gfilenamecompleter.h +81 -0
  193. package/include/glib-2.0/gio/gfileoutputstream.h +124 -0
  194. package/include/glib-2.0/gio/gfilterinputstream.h +80 -0
  195. package/include/glib-2.0/gio/gfilteroutputstream.h +80 -0
  196. package/include/glib-2.0/gio/gicon.h +133 -0
  197. package/include/glib-2.0/gio/ginetaddress.h +125 -0
  198. package/include/glib-2.0/gio/ginetaddressmask.h +86 -0
  199. package/include/glib-2.0/gio/ginetsocketaddress.h +80 -0
  200. package/include/glib-2.0/gio/ginitable.h +107 -0
  201. package/include/glib-2.0/gio/ginputstream.h +218 -0
  202. package/include/glib-2.0/gio/gio-autocleanups.h +155 -0
  203. package/include/glib-2.0/gio/gio-visibility.h +952 -0
  204. package/include/glib-2.0/gio/gio.h +186 -0
  205. package/include/glib-2.0/gio/gioenums.h +2149 -0
  206. package/include/glib-2.0/gio/gioenumtypes.h +207 -0
  207. package/include/glib-2.0/gio/gioerror.h +58 -0
  208. package/include/glib-2.0/gio/giomodule.h +199 -0
  209. package/include/glib-2.0/gio/gioscheduler.h +56 -0
  210. package/include/glib-2.0/gio/giostream.h +137 -0
  211. package/include/glib-2.0/gio/giotypes.h +660 -0
  212. package/include/glib-2.0/gio/glistmodel.h +74 -0
  213. package/include/glib-2.0/gio/gliststore.h +97 -0
  214. package/include/glib-2.0/gio/gloadableicon.h +101 -0
  215. package/include/glib-2.0/gio/gmemoryinputstream.h +92 -0
  216. package/include/glib-2.0/gio/gmemorymonitor.h +64 -0
  217. package/include/glib-2.0/gio/gmemoryoutputstream.h +109 -0
  218. package/include/glib-2.0/gio/gmenu.h +184 -0
  219. package/include/glib-2.0/gio/gmenuexporter.h +55 -0
  220. package/include/glib-2.0/gio/gmenumodel.h +307 -0
  221. package/include/glib-2.0/gio/gmount.h +278 -0
  222. package/include/glib-2.0/gio/gmountoperation.h +179 -0
  223. package/include/glib-2.0/gio/gnativesocketaddress.h +67 -0
  224. package/include/glib-2.0/gio/gnativevolumemonitor.h +63 -0
  225. package/include/glib-2.0/gio/gnetworkaddress.h +82 -0
  226. package/include/glib-2.0/gio/gnetworking.h +81 -0
  227. package/include/glib-2.0/gio/gnetworkmonitor.h +101 -0
  228. package/include/glib-2.0/gio/gnetworkservice.h +77 -0
  229. package/include/glib-2.0/gio/gnotification.h +103 -0
  230. package/include/glib-2.0/gio/goutputstream.h +334 -0
  231. package/include/glib-2.0/gio/gpermission.h +129 -0
  232. package/include/glib-2.0/gio/gpollableinputstream.h +106 -0
  233. package/include/glib-2.0/gio/gpollableoutputstream.h +127 -0
  234. package/include/glib-2.0/gio/gpollableutils.h +66 -0
  235. package/include/glib-2.0/gio/gpowerprofilemonitor.h +65 -0
  236. package/include/glib-2.0/gio/gpropertyaction.h +49 -0
  237. package/include/glib-2.0/gio/gproxy.h +130 -0
  238. package/include/glib-2.0/gio/gproxyaddress.h +88 -0
  239. package/include/glib-2.0/gio/gproxyaddressenumerator.h +83 -0
  240. package/include/glib-2.0/gio/gproxyresolver.h +97 -0
  241. package/include/glib-2.0/gio/gremoteactiongroup.h +77 -0
  242. package/include/glib-2.0/gio/gresolver.h +299 -0
  243. package/include/glib-2.0/gio/gresource.h +132 -0
  244. package/include/glib-2.0/gio/gseekable.h +105 -0
  245. package/include/glib-2.0/gio/gsettings.h +347 -0
  246. package/include/glib-2.0/gio/gsettingsbackend.h +176 -0
  247. package/include/glib-2.0/gio/gsettingsschema.h +115 -0
  248. package/include/glib-2.0/gio/gsimpleaction.h +65 -0
  249. package/include/glib-2.0/gio/gsimpleactiongroup.h +99 -0
  250. package/include/glib-2.0/gio/gsimpleasyncresult.h +164 -0
  251. package/include/glib-2.0/gio/gsimpleiostream.h +47 -0
  252. package/include/glib-2.0/gio/gsimplepermission.h +47 -0
  253. package/include/glib-2.0/gio/gsimpleproxyresolver.h +91 -0
  254. package/include/glib-2.0/gio/gsocket.h +330 -0
  255. package/include/glib-2.0/gio/gsocketaddress.h +84 -0
  256. package/include/glib-2.0/gio/gsocketaddressenumerator.h +103 -0
  257. package/include/glib-2.0/gio/gsocketclient.h +199 -0
  258. package/include/glib-2.0/gio/gsocketconnectable.h +83 -0
  259. package/include/glib-2.0/gio/gsocketconnection.h +117 -0
  260. package/include/glib-2.0/gio/gsocketcontrolmessage.h +113 -0
  261. package/include/glib-2.0/gio/gsocketlistener.h +157 -0
  262. package/include/glib-2.0/gio/gsocketservice.h +95 -0
  263. package/include/glib-2.0/gio/gsrvtarget.h +60 -0
  264. package/include/glib-2.0/gio/gsubprocess.h +169 -0
  265. package/include/glib-2.0/gio/gsubprocesslauncher.h +121 -0
  266. package/include/glib-2.0/gio/gtask.h +207 -0
  267. package/include/glib-2.0/gio/gtcpconnection.h +71 -0
  268. package/include/glib-2.0/gio/gtcpwrapperconnection.h +71 -0
  269. package/include/glib-2.0/gio/gtestdbus.h +74 -0
  270. package/include/glib-2.0/gio/gthemedicon.h +70 -0
  271. package/include/glib-2.0/gio/gthreadedsocketservice.h +83 -0
  272. package/include/glib-2.0/gio/gtlsbackend.h +115 -0
  273. package/include/glib-2.0/gio/gtlscertificate.h +125 -0
  274. package/include/glib-2.0/gio/gtlsclientconnection.h +88 -0
  275. package/include/glib-2.0/gio/gtlsconnection.h +214 -0
  276. package/include/glib-2.0/gio/gtlsdatabase.h +249 -0
  277. package/include/glib-2.0/gio/gtlsfiledatabase.h +60 -0
  278. package/include/glib-2.0/gio/gtlsinteraction.h +150 -0
  279. package/include/glib-2.0/gio/gtlspassword.h +121 -0
  280. package/include/glib-2.0/gio/gtlsserverconnection.h +71 -0
  281. package/include/glib-2.0/gio/gunixconnection.h +102 -0
  282. package/include/glib-2.0/gio/gunixcredentialsmessage.h +89 -0
  283. package/include/glib-2.0/gio/gunixfdlist.h +97 -0
  284. package/include/glib-2.0/gio/gunixsocketaddress.h +83 -0
  285. package/include/glib-2.0/gio/gvfs.h +170 -0
  286. package/include/glib-2.0/gio/gvolume.h +255 -0
  287. package/include/glib-2.0/gio/gvolumemonitor.h +156 -0
  288. package/include/glib-2.0/gio/gzlibcompressor.h +64 -0
  289. package/include/glib-2.0/gio/gzlibdecompressor.h +60 -0
  290. package/include/glib-2.0/glib/deprecated/gallocator.h +88 -0
  291. package/include/glib-2.0/glib/deprecated/gcache.h +77 -0
  292. package/include/glib-2.0/glib/deprecated/gcompletion.h +85 -0
  293. package/include/glib-2.0/glib/deprecated/gmain.h +137 -0
  294. package/include/glib-2.0/glib/deprecated/grel.h +107 -0
  295. package/include/glib-2.0/glib/deprecated/gthread.h +295 -0
  296. package/include/glib-2.0/glib/galloca.h +147 -0
  297. package/include/glib-2.0/glib/garray.h +323 -0
  298. package/include/glib-2.0/glib/gasyncqueue.h +126 -0
  299. package/include/glib-2.0/glib/gatomic.h +587 -0
  300. package/include/glib-2.0/glib/gbacktrace.h +74 -0
  301. package/include/glib-2.0/glib/gbase64.h +63 -0
  302. package/include/glib-2.0/glib/gbitlock.h +78 -0
  303. package/include/glib-2.0/glib/gbookmarkfile.h +300 -0
  304. package/include/glib-2.0/glib/gbytes.h +99 -0
  305. package/include/glib-2.0/glib/gcharset.h +49 -0
  306. package/include/glib-2.0/glib/gchecksum.h +106 -0
  307. package/include/glib-2.0/glib/gconvert.h +179 -0
  308. package/include/glib-2.0/glib/gdataset.h +156 -0
  309. package/include/glib-2.0/glib/gdate.h +309 -0
  310. package/include/glib-2.0/glib/gdatetime.h +275 -0
  311. package/include/glib-2.0/glib/gdir.h +54 -0
  312. package/include/glib-2.0/glib/genviron.h +65 -0
  313. package/include/glib-2.0/glib/gerror.h +263 -0
  314. package/include/glib-2.0/glib/gfileutils.h +223 -0
  315. package/include/glib-2.0/glib/ggettext.h +65 -0
  316. package/include/glib-2.0/glib/ghash.h +206 -0
  317. package/include/glib-2.0/glib/ghmac.h +85 -0
  318. package/include/glib-2.0/glib/ghook.h +204 -0
  319. package/include/glib-2.0/glib/ghostutils.h +45 -0
  320. package/include/glib-2.0/glib/gi18n-lib.h +38 -0
  321. package/include/glib-2.0/glib/gi18n.h +34 -0
  322. package/include/glib-2.0/glib/giochannel.h +407 -0
  323. package/include/glib-2.0/glib/gkeyfile.h +332 -0
  324. package/include/glib-2.0/glib/glib-autocleanups.h +105 -0
  325. package/include/glib-2.0/glib/glib-typeof.h +47 -0
  326. package/include/glib-2.0/glib/glib-visibility.h +952 -0
  327. package/include/glib-2.0/glib/glist.h +179 -0
  328. package/include/glib-2.0/glib/gmacros.h +1425 -0
  329. package/include/glib-2.0/glib/gmain.h +862 -0
  330. package/include/glib-2.0/glib/gmappedfile.h +60 -0
  331. package/include/glib-2.0/glib/gmarkup.h +265 -0
  332. package/include/glib-2.0/glib/gmem.h +425 -0
  333. package/include/glib-2.0/glib/gmessages.h +690 -0
  334. package/include/glib-2.0/glib/gnode.h +309 -0
  335. package/include/glib-2.0/glib/goption.h +409 -0
  336. package/include/glib-2.0/glib/gpathbuf.h +90 -0
  337. package/include/glib-2.0/glib/gpattern.h +65 -0
  338. package/include/glib-2.0/glib/gpoll.h +122 -0
  339. package/include/glib-2.0/glib/gprimes.h +52 -0
  340. package/include/glib-2.0/glib/gprintf.h +59 -0
  341. package/include/glib-2.0/glib/gqsort.h +47 -0
  342. package/include/glib-2.0/glib/gquark.h +70 -0
  343. package/include/glib-2.0/glib/gqueue.h +205 -0
  344. package/include/glib-2.0/glib/grand.h +101 -0
  345. package/include/glib-2.0/glib/grcbox.h +91 -0
  346. package/include/glib-2.0/glib/grefcount.h +179 -0
  347. package/include/glib-2.0/glib/grefstring.h +59 -0
  348. package/include/glib-2.0/glib/gscanner.h +301 -0
  349. package/include/glib-2.0/glib/gsequence.h +175 -0
  350. package/include/glib-2.0/glib/gshell.h +59 -0
  351. package/include/glib-2.0/glib/gslice.h +117 -0
  352. package/include/glib-2.0/glib/gslist.h +166 -0
  353. package/include/glib-2.0/glib/gspawn.h +323 -0
  354. package/include/glib-2.0/glib/gstdio.h +231 -0
  355. package/include/glib-2.0/glib/gstrfuncs.h +504 -0
  356. package/include/glib-2.0/glib/gstring.h +296 -0
  357. package/include/glib-2.0/glib/gstringchunk.h +59 -0
  358. package/include/glib-2.0/glib/gstrvbuilder.h +69 -0
  359. package/include/glib-2.0/glib/gtestutils.h +763 -0
  360. package/include/glib-2.0/glib/gthread.h +603 -0
  361. package/include/glib-2.0/glib/gthreadpool.h +105 -0
  362. package/include/glib-2.0/glib/gtimer.h +80 -0
  363. package/include/glib-2.0/glib/gtimezone.h +98 -0
  364. package/include/glib-2.0/glib/gtrashstack.h +60 -0
  365. package/include/glib-2.0/glib/gtree.h +181 -0
  366. package/include/glib-2.0/glib/gtypes.h +591 -0
  367. package/include/glib-2.0/glib/gunicode.h +974 -0
  368. package/include/glib-2.0/glib/guri.h +420 -0
  369. package/include/glib-2.0/glib/gutils.h +479 -0
  370. package/include/glib-2.0/glib/guuid.h +42 -0
  371. package/include/glib-2.0/glib/gvariant.h +541 -0
  372. package/include/glib-2.0/glib/gvarianttype.h +384 -0
  373. package/include/glib-2.0/glib/gversion.h +57 -0
  374. package/include/glib-2.0/glib/gversionmacros.h +490 -0
  375. package/include/glib-2.0/glib/gwin32.h +142 -0
  376. package/include/glib-2.0/glib-object.h +46 -0
  377. package/include/glib-2.0/glib-unix.h +125 -0
  378. package/include/glib-2.0/glib.h +121 -0
  379. package/include/glib-2.0/gmodule/gmodule-visibility.h +952 -0
  380. package/include/glib-2.0/gmodule.h +147 -0
  381. package/include/glib-2.0/gobject/gbinding.h +156 -0
  382. package/include/glib-2.0/gobject/gbindinggroup.h +85 -0
  383. package/include/glib-2.0/gobject/gboxed.h +124 -0
  384. package/include/glib-2.0/gobject/gclosure.h +323 -0
  385. package/include/glib-2.0/gobject/genums.h +381 -0
  386. package/include/glib-2.0/gobject/glib-enumtypes.h +25 -0
  387. package/include/glib-2.0/gobject/glib-types.h +400 -0
  388. package/include/glib-2.0/gobject/gmarshal.h +434 -0
  389. package/include/glib-2.0/gobject/gobject-autocleanups.h +33 -0
  390. package/include/glib-2.0/gobject/gobject-visibility.h +952 -0
  391. package/include/glib-2.0/gobject/gobject.h +953 -0
  392. package/include/glib-2.0/gobject/gobjectnotifyqueue.c +199 -0
  393. package/include/glib-2.0/gobject/gparam.h +476 -0
  394. package/include/glib-2.0/gobject/gparamspecs.h +1151 -0
  395. package/include/glib-2.0/gobject/gsignal.h +647 -0
  396. package/include/glib-2.0/gobject/gsignalgroup.h +98 -0
  397. package/include/glib-2.0/gobject/gsourceclosure.h +40 -0
  398. package/include/glib-2.0/gobject/gtype.h +2703 -0
  399. package/include/glib-2.0/gobject/gtypemodule.h +302 -0
  400. package/include/glib-2.0/gobject/gtypeplugin.h +136 -0
  401. package/include/glib-2.0/gobject/gvalue.h +212 -0
  402. package/include/glib-2.0/gobject/gvaluearray.h +106 -0
  403. package/include/glib-2.0/gobject/gvaluecollector.h +290 -0
  404. package/include/glib-2.0/gobject/gvaluetypes.h +318 -0
  405. package/include/harfbuzz/hb-aat-layout.h +795 -0
  406. package/include/harfbuzz/hb-aat.h +38 -0
  407. package/include/harfbuzz/hb-blob.h +160 -0
  408. package/include/harfbuzz/hb-buffer.h +799 -0
  409. package/include/harfbuzz/hb-common.h +938 -0
  410. package/include/harfbuzz/hb-cplusplus.hh +223 -0
  411. package/include/harfbuzz/hb-deprecated.h +309 -0
  412. package/include/harfbuzz/hb-draw.h +340 -0
  413. package/include/harfbuzz/hb-face.h +187 -0
  414. package/include/harfbuzz/hb-features.h +119 -0
  415. package/include/harfbuzz/hb-font.h +1153 -0
  416. package/include/harfbuzz/hb-ft.h +145 -0
  417. package/include/harfbuzz/hb-glib.h +56 -0
  418. package/include/harfbuzz/hb-map.h +143 -0
  419. package/include/harfbuzz/hb-ot-color.h +155 -0
  420. package/include/harfbuzz/hb-ot-deprecated.h +147 -0
  421. package/include/harfbuzz/hb-ot-font.h +45 -0
  422. package/include/harfbuzz/hb-ot-layout.h +549 -0
  423. package/include/harfbuzz/hb-ot-math.h +333 -0
  424. package/include/harfbuzz/hb-ot-meta.h +72 -0
  425. package/include/harfbuzz/hb-ot-metrics.h +129 -0
  426. package/include/harfbuzz/hb-ot-name.h +164 -0
  427. package/include/harfbuzz/hb-ot-shape.h +53 -0
  428. package/include/harfbuzz/hb-ot-var.h +191 -0
  429. package/include/harfbuzz/hb-ot.h +49 -0
  430. package/include/harfbuzz/hb-paint.h +1029 -0
  431. package/include/harfbuzz/hb-set.h +203 -0
  432. package/include/harfbuzz/hb-shape-plan.h +122 -0
  433. package/include/harfbuzz/hb-shape.h +74 -0
  434. package/include/harfbuzz/hb-style.h +81 -0
  435. package/include/harfbuzz/hb-subset-repacker.h +81 -0
  436. package/include/harfbuzz/hb-subset.h +241 -0
  437. package/include/harfbuzz/hb-unicode.h +643 -0
  438. package/include/harfbuzz/hb-version.h +95 -0
  439. package/include/harfbuzz/hb.h +51 -0
  440. package/include/index.js +1 -0
  441. package/include/jconfig.h +37 -0
  442. package/include/jerror.h +335 -0
  443. package/include/jmorecfg.h +382 -0
  444. package/include/jpeglib.h +1210 -0
  445. package/include/lcms2.h +1958 -0
  446. package/include/lcms2_plugin.h +700 -0
  447. package/include/libexif/_stdint.h +2 -0
  448. package/include/libexif/exif-byte-order.h +48 -0
  449. package/include/libexif/exif-content.h +181 -0
  450. package/include/libexif/exif-data-type.h +46 -0
  451. package/include/libexif/exif-data.h +267 -0
  452. package/include/libexif/exif-entry.h +186 -0
  453. package/include/libexif/exif-format.h +65 -0
  454. package/include/libexif/exif-ifd.h +51 -0
  455. package/include/libexif/exif-loader.h +128 -0
  456. package/include/libexif/exif-log.h +116 -0
  457. package/include/libexif/exif-mem.h +91 -0
  458. package/include/libexif/exif-mnote-data.h +122 -0
  459. package/include/libexif/exif-tag.h +307 -0
  460. package/include/libexif/exif-utils.h +194 -0
  461. package/include/libheif/heif.h +2092 -0
  462. package/include/libheif/heif_cxx.h +1359 -0
  463. package/include/libheif/heif_plugin.h +306 -0
  464. package/include/libheif/heif_version.h +38 -0
  465. package/include/libimagequant.h +111 -0
  466. package/include/libpng16/png.h +3247 -0
  467. package/include/libpng16/pngconf.h +623 -0
  468. package/include/libpng16/pnglibconf.h +219 -0
  469. package/include/librsvg-2.0/librsvg/rsvg-cairo.h +395 -0
  470. package/include/librsvg-2.0/librsvg/rsvg-features.h +184 -0
  471. package/include/librsvg-2.0/librsvg/rsvg-version.h +13 -0
  472. package/include/librsvg-2.0/librsvg/rsvg.h +1456 -0
  473. package/include/libxml2/libxml/HTMLparser.h +320 -0
  474. package/include/libxml2/libxml/HTMLtree.h +147 -0
  475. package/include/libxml2/libxml/SAX.h +204 -0
  476. package/include/libxml2/libxml/SAX2.h +173 -0
  477. package/include/libxml2/libxml/c14n.h +128 -0
  478. package/include/libxml2/libxml/catalog.h +182 -0
  479. package/include/libxml2/libxml/chvalid.h +230 -0
  480. package/include/libxml2/libxml/debugXML.h +217 -0
  481. package/include/libxml2/libxml/dict.h +81 -0
  482. package/include/libxml2/libxml/encoding.h +233 -0
  483. package/include/libxml2/libxml/entities.h +151 -0
  484. package/include/libxml2/libxml/globals.h +529 -0
  485. package/include/libxml2/libxml/hash.h +236 -0
  486. package/include/libxml2/libxml/list.h +137 -0
  487. package/include/libxml2/libxml/nanoftp.h +186 -0
  488. package/include/libxml2/libxml/nanohttp.h +81 -0
  489. package/include/libxml2/libxml/parser.h +1265 -0
  490. package/include/libxml2/libxml/parserInternals.h +662 -0
  491. package/include/libxml2/libxml/pattern.h +100 -0
  492. package/include/libxml2/libxml/relaxng.h +218 -0
  493. package/include/libxml2/libxml/schemasInternals.h +958 -0
  494. package/include/libxml2/libxml/schematron.h +142 -0
  495. package/include/libxml2/libxml/threads.h +94 -0
  496. package/include/libxml2/libxml/tree.h +1314 -0
  497. package/include/libxml2/libxml/uri.h +94 -0
  498. package/include/libxml2/libxml/valid.h +448 -0
  499. package/include/libxml2/libxml/xinclude.h +129 -0
  500. package/include/libxml2/libxml/xlink.h +189 -0
  501. package/include/libxml2/libxml/xmlIO.h +369 -0
  502. package/include/libxml2/libxml/xmlautomata.h +146 -0
  503. package/include/libxml2/libxml/xmlerror.h +919 -0
  504. package/include/libxml2/libxml/xmlexports.h +50 -0
  505. package/include/libxml2/libxml/xmlmemory.h +228 -0
  506. package/include/libxml2/libxml/xmlmodule.h +57 -0
  507. package/include/libxml2/libxml/xmlreader.h +428 -0
  508. package/include/libxml2/libxml/xmlregexp.h +222 -0
  509. package/include/libxml2/libxml/xmlsave.h +88 -0
  510. package/include/libxml2/libxml/xmlschemas.h +246 -0
  511. package/include/libxml2/libxml/xmlschemastypes.h +152 -0
  512. package/include/libxml2/libxml/xmlstring.h +140 -0
  513. package/include/libxml2/libxml/xmlunicode.h +202 -0
  514. package/include/libxml2/libxml/xmlversion.h +526 -0
  515. package/include/libxml2/libxml/xmlwriter.h +488 -0
  516. package/include/libxml2/libxml/xpath.h +575 -0
  517. package/include/libxml2/libxml/xpathInternals.h +632 -0
  518. package/include/libxml2/libxml/xpointer.h +137 -0
  519. package/include/orc-0.4/orc/orc-stdint.h +1 -0
  520. package/include/orc-0.4/orc/orc.h +16 -0
  521. package/include/orc-0.4/orc/orcarm.h +879 -0
  522. package/include/orc-0.4/orc/orcbytecode.h +35 -0
  523. package/include/orc-0.4/orc/orcbytecodes.h +255 -0
  524. package/include/orc-0.4/orc/orccode.h +53 -0
  525. package/include/orc-0.4/orc/orccompiler.h +176 -0
  526. package/include/orc-0.4/orc/orcconstant.h +39 -0
  527. package/include/orc-0.4/orc/orccpu.h +21 -0
  528. package/include/orc-0.4/orc/orccpuinsn.h +40 -0
  529. package/include/orc-0.4/orc/orcdebug.h +158 -0
  530. package/include/orc-0.4/orc/orcemulateopcodes.h +203 -0
  531. package/include/orc-0.4/orc/orcexecutor.h +135 -0
  532. package/include/orc-0.4/orc/orcfunctions.h +93 -0
  533. package/include/orc-0.4/orc/orcinstruction.h +39 -0
  534. package/include/orc-0.4/orc/orcinternal.h +46 -0
  535. package/include/orc-0.4/orc/orclimits.h +94 -0
  536. package/include/orc-0.4/orc/orcmips.h +229 -0
  537. package/include/orc-0.4/orc/orcmmx.h +79 -0
  538. package/include/orc-0.4/orc/orcneon.h +43 -0
  539. package/include/orc-0.4/orc/orconce.h +166 -0
  540. package/include/orc-0.4/orc/orcopcode.h +63 -0
  541. package/include/orc-0.4/orc/orcparse.h +27 -0
  542. package/include/orc-0.4/orc/orcpowerpc.h +209 -0
  543. package/include/orc-0.4/orc/orcprogram.h +192 -0
  544. package/include/orc-0.4/orc/orcrule.h +52 -0
  545. package/include/orc-0.4/orc/orcsse.h +55 -0
  546. package/include/orc-0.4/orc/orctarget.h +115 -0
  547. package/include/orc-0.4/orc/orcutils.h +238 -0
  548. package/include/orc-0.4/orc/orcvariable.h +81 -0
  549. package/include/orc-0.4/orc/orcx86.h +199 -0
  550. package/include/orc-0.4/orc/orcx86insn.h +672 -0
  551. package/include/pango-1.0/pango/pango-attributes.h +748 -0
  552. package/include/pango-1.0/pango/pango-bidi-type.h +117 -0
  553. package/include/pango-1.0/pango/pango-break.h +144 -0
  554. package/include/pango-1.0/pango/pango-color.h +75 -0
  555. package/include/pango-1.0/pango/pango-context.h +116 -0
  556. package/include/pango-1.0/pango/pango-coverage.h +108 -0
  557. package/include/pango-1.0/pango/pango-direction.h +72 -0
  558. package/include/pango-1.0/pango/pango-engine.h +457 -0
  559. package/include/pango-1.0/pango/pango-enum-types.h +120 -0
  560. package/include/pango-1.0/pango/pango-features.h +10 -0
  561. package/include/pango-1.0/pango/pango-font.h +699 -0
  562. package/include/pango-1.0/pango/pango-fontmap.h +132 -0
  563. package/include/pango-1.0/pango/pango-fontset-simple.h +64 -0
  564. package/include/pango-1.0/pango/pango-fontset.h +134 -0
  565. package/include/pango-1.0/pango/pango-glyph-item.h +175 -0
  566. package/include/pango-1.0/pango/pango-glyph.h +270 -0
  567. package/include/pango-1.0/pango/pango-gravity.h +137 -0
  568. package/include/pango-1.0/pango/pango-item.h +165 -0
  569. package/include/pango-1.0/pango/pango-language.h +70 -0
  570. package/include/pango-1.0/pango/pango-layout.h +554 -0
  571. package/include/pango-1.0/pango/pango-markup.h +52 -0
  572. package/include/pango-1.0/pango/pango-matrix.h +130 -0
  573. package/include/pango-1.0/pango/pango-modules.h +84 -0
  574. package/include/pango-1.0/pango/pango-ot.h +427 -0
  575. package/include/pango-1.0/pango/pango-renderer.h +290 -0
  576. package/include/pango-1.0/pango/pango-script.h +335 -0
  577. package/include/pango-1.0/pango/pango-tabs.h +117 -0
  578. package/include/pango-1.0/pango/pango-types.h +244 -0
  579. package/include/pango-1.0/pango/pango-utils.h +187 -0
  580. package/include/pango-1.0/pango/pango-version-macros.h +756 -0
  581. package/include/pango-1.0/pango/pango.h +54 -0
  582. package/include/pango-1.0/pango/pangocairo.h +220 -0
  583. package/include/pango-1.0/pango/pangofc-decoder.h +122 -0
  584. package/include/pango-1.0/pango/pangofc-font.h +120 -0
  585. package/include/pango-1.0/pango/pangofc-fontmap.h +244 -0
  586. package/include/pango-1.0/pango/pangoft2.h +158 -0
  587. package/include/pixman-1/pixman-version.h +54 -0
  588. package/include/pixman-1/pixman.h +1419 -0
  589. package/include/png.h +3247 -0
  590. package/include/pngconf.h +623 -0
  591. package/include/pnglibconf.h +219 -0
  592. package/include/spng.h +537 -0
  593. package/include/tiff.h +899 -0
  594. package/include/tiffconf.h +145 -0
  595. package/include/tiffio.h +653 -0
  596. package/include/tiffvers.h +36 -0
  597. package/include/vips/VConnection8.h +150 -0
  598. package/include/vips/VError8.h +76 -0
  599. package/include/vips/VImage8.h +6065 -0
  600. package/include/vips/VInterpolate8.h +77 -0
  601. package/include/vips/VRegion8.h +155 -0
  602. package/include/vips/arithmetic.h +571 -0
  603. package/include/vips/basic.h +113 -0
  604. package/include/vips/buf.h +118 -0
  605. package/include/vips/colour.h +306 -0
  606. package/include/vips/connection.h +570 -0
  607. package/include/vips/conversion.h +357 -0
  608. package/include/vips/convolution.h +95 -0
  609. package/include/vips/create.h +161 -0
  610. package/include/vips/dbuf.h +103 -0
  611. package/include/vips/debug.h +74 -0
  612. package/include/vips/draw.h +113 -0
  613. package/include/vips/enumtypes.h +181 -0
  614. package/include/vips/error.h +142 -0
  615. package/include/vips/foreign.h +993 -0
  616. package/include/vips/format.h +135 -0
  617. package/include/vips/freqfilt.h +64 -0
  618. package/include/vips/gate.h +82 -0
  619. package/include/vips/generate.h +92 -0
  620. package/include/vips/header.h +312 -0
  621. package/include/vips/histogram.h +85 -0
  622. package/include/vips/image.h +605 -0
  623. package/include/vips/interpolate.h +141 -0
  624. package/include/vips/memory.h +96 -0
  625. package/include/vips/morphology.h +73 -0
  626. package/include/vips/mosaicing.h +80 -0
  627. package/include/vips/object.h +706 -0
  628. package/include/vips/operation.h +182 -0
  629. package/include/vips/private.h +227 -0
  630. package/include/vips/rect.h +80 -0
  631. package/include/vips/region.h +238 -0
  632. package/include/vips/resample.h +123 -0
  633. package/include/vips/sbuf.h +144 -0
  634. package/include/vips/semaphore.h +77 -0
  635. package/include/vips/thread.h +72 -0
  636. package/include/vips/threadpool.h +160 -0
  637. package/include/vips/transform.h +89 -0
  638. package/include/vips/type.h +305 -0
  639. package/include/vips/util.h +406 -0
  640. package/include/vips/vector.h +183 -0
  641. package/include/vips/version.h +26 -0
  642. package/include/vips/vips.h +194 -0
  643. package/include/vips/vips8 +60 -0
  644. package/include/webp/decode.h +504 -0
  645. package/include/webp/demux.h +363 -0
  646. package/include/webp/encode.h +552 -0
  647. package/include/webp/mux.h +530 -0
  648. package/include/webp/mux_types.h +98 -0
  649. package/include/webp/sharpyuv/sharpyuv.h +103 -0
  650. package/include/webp/sharpyuv/sharpyuv_csp.h +60 -0
  651. package/include/webp/types.h +72 -0
  652. package/include/zconf.h +203 -0
  653. package/include/zlib.h +1855 -0
  654. package/include/zlib_name_mangling.h +8 -0
  655. package/package.json +30 -0
  656. package/versions.json +31 -0
@@ -0,0 +1,1246 @@
1
+ /****************************************************************************
2
+ *
3
+ * ftdriver.h
4
+ *
5
+ * FreeType API for controlling driver modules (specification only).
6
+ *
7
+ * Copyright (C) 2017-2023 by
8
+ * David Turner, Robert Wilhelm, and Werner Lemberg.
9
+ *
10
+ * This file is part of the FreeType project, and may only be used,
11
+ * modified, and distributed under the terms of the FreeType project
12
+ * license, LICENSE.TXT. By continuing to use, modify, or distribute
13
+ * this file you indicate that you have read the license and
14
+ * understand and accept it fully.
15
+ *
16
+ */
17
+
18
+
19
+ #ifndef FTDRIVER_H_
20
+ #define FTDRIVER_H_
21
+
22
+ #include <freetype/freetype.h>
23
+ #include <freetype/ftparams.h>
24
+
25
+ #ifdef FREETYPE_H
26
+ #error "freetype.h of FreeType 1 has been loaded!"
27
+ #error "Please fix the directory search order for header files"
28
+ #error "so that freetype.h of FreeType 2 is found first."
29
+ #endif
30
+
31
+
32
+ FT_BEGIN_HEADER
33
+
34
+
35
+ /**************************************************************************
36
+ *
37
+ * @section:
38
+ * auto_hinter
39
+ *
40
+ * @title:
41
+ * The auto-hinter
42
+ *
43
+ * @abstract:
44
+ * Controlling the auto-hinting module.
45
+ *
46
+ * @description:
47
+ * While FreeType's auto-hinter doesn't expose API functions by itself,
48
+ * it is possible to control its behaviour with @FT_Property_Set and
49
+ * @FT_Property_Get. The following lists the available properties
50
+ * together with the necessary macros and structures.
51
+ *
52
+ * Note that the auto-hinter's module name is 'autofitter' for historical
53
+ * reasons.
54
+ *
55
+ * Available properties are @increase-x-height, @no-stem-darkening
56
+ * (experimental), @darkening-parameters (experimental),
57
+ * @glyph-to-script-map (experimental), @fallback-script (experimental),
58
+ * and @default-script (experimental), as documented in the @properties
59
+ * section.
60
+ *
61
+ */
62
+
63
+
64
+ /**************************************************************************
65
+ *
66
+ * @section:
67
+ * cff_driver
68
+ *
69
+ * @title:
70
+ * The CFF driver
71
+ *
72
+ * @abstract:
73
+ * Controlling the CFF driver module.
74
+ *
75
+ * @description:
76
+ * While FreeType's CFF driver doesn't expose API functions by itself, it
77
+ * is possible to control its behaviour with @FT_Property_Set and
78
+ * @FT_Property_Get.
79
+ *
80
+ * The CFF driver's module name is 'cff'.
81
+ *
82
+ * Available properties are @hinting-engine, @no-stem-darkening,
83
+ * @darkening-parameters, and @random-seed, as documented in the
84
+ * @properties section.
85
+ *
86
+ *
87
+ * **Hinting and anti-aliasing principles of the new engine**
88
+ *
89
+ * The rasterizer is positioning horizontal features (e.g., ascender
90
+ * height & x-height, or crossbars) on the pixel grid and minimizing the
91
+ * amount of anti-aliasing applied to them, while placing vertical
92
+ * features (vertical stems) on the pixel grid without hinting, thus
93
+ * representing the stem position and weight accurately. Sometimes the
94
+ * vertical stems may be only partially black. In this context,
95
+ * 'anti-aliasing' means that stems are not positioned exactly on pixel
96
+ * borders, causing a fuzzy appearance.
97
+ *
98
+ * There are two principles behind this approach.
99
+ *
100
+ * 1) No hinting in the horizontal direction: Unlike 'superhinted'
101
+ * TrueType, which changes glyph widths to accommodate regular
102
+ * inter-glyph spacing, Adobe's approach is 'faithful to the design' in
103
+ * representing both the glyph width and the inter-glyph spacing designed
104
+ * for the font. This makes the screen display as close as it can be to
105
+ * the result one would get with infinite resolution, while preserving
106
+ * what is considered the key characteristics of each glyph. Note that
107
+ * the distances between unhinted and grid-fitted positions at small
108
+ * sizes are comparable to kerning values and thus would be noticeable
109
+ * (and distracting) while reading if hinting were applied.
110
+ *
111
+ * One of the reasons to not hint horizontally is anti-aliasing for LCD
112
+ * screens: The pixel geometry of modern displays supplies three vertical
113
+ * subpixels as the eye moves horizontally across each visible pixel. On
114
+ * devices where we can be certain this characteristic is present a
115
+ * rasterizer can take advantage of the subpixels to add increments of
116
+ * weight. In Western writing systems this turns out to be the more
117
+ * critical direction anyway; the weights and spacing of vertical stems
118
+ * (see above) are central to Armenian, Cyrillic, Greek, and Latin type
119
+ * designs. Even when the rasterizer uses greyscale anti-aliasing instead
120
+ * of color (a necessary compromise when one doesn't know the screen
121
+ * characteristics), the unhinted vertical features preserve the design's
122
+ * weight and spacing much better than aliased type would.
123
+ *
124
+ * 2) Alignment in the vertical direction: Weights and spacing along the
125
+ * y~axis are less critical; what is much more important is the visual
126
+ * alignment of related features (like cap-height and x-height). The
127
+ * sense of alignment for these is enhanced by the sharpness of grid-fit
128
+ * edges, while the cruder vertical resolution (full pixels instead of
129
+ * 1/3 pixels) is less of a problem.
130
+ *
131
+ * On the technical side, horizontal alignment zones for ascender,
132
+ * x-height, and other important height values (traditionally called
133
+ * 'blue zones') as defined in the font are positioned independently,
134
+ * each being rounded to the nearest pixel edge, taking care of overshoot
135
+ * suppression at small sizes, stem darkening, and scaling.
136
+ *
137
+ * Hstems (that is, hint values defined in the font to help align
138
+ * horizontal features) that fall within a blue zone are said to be
139
+ * 'captured' and are aligned to that zone. Uncaptured stems are moved
140
+ * in one of four ways, top edge up or down, bottom edge up or down.
141
+ * Unless there are conflicting hstems, the smallest movement is taken to
142
+ * minimize distortion.
143
+ *
144
+ */
145
+
146
+
147
+ /**************************************************************************
148
+ *
149
+ * @section:
150
+ * pcf_driver
151
+ *
152
+ * @title:
153
+ * The PCF driver
154
+ *
155
+ * @abstract:
156
+ * Controlling the PCF driver module.
157
+ *
158
+ * @description:
159
+ * While FreeType's PCF driver doesn't expose API functions by itself, it
160
+ * is possible to control its behaviour with @FT_Property_Set and
161
+ * @FT_Property_Get. Right now, there is a single property
162
+ * @no-long-family-names available if FreeType is compiled with
163
+ * PCF_CONFIG_OPTION_LONG_FAMILY_NAMES.
164
+ *
165
+ * The PCF driver's module name is 'pcf'.
166
+ *
167
+ */
168
+
169
+
170
+ /**************************************************************************
171
+ *
172
+ * @section:
173
+ * t1_cid_driver
174
+ *
175
+ * @title:
176
+ * The Type 1 and CID drivers
177
+ *
178
+ * @abstract:
179
+ * Controlling the Type~1 and CID driver modules.
180
+ *
181
+ * @description:
182
+ * It is possible to control the behaviour of FreeType's Type~1 and
183
+ * Type~1 CID drivers with @FT_Property_Set and @FT_Property_Get.
184
+ *
185
+ * Behind the scenes, both drivers use the Adobe CFF engine for hinting;
186
+ * however, the used properties must be specified separately.
187
+ *
188
+ * The Type~1 driver's module name is 'type1'; the CID driver's module
189
+ * name is 't1cid'.
190
+ *
191
+ * Available properties are @hinting-engine, @no-stem-darkening,
192
+ * @darkening-parameters, and @random-seed, as documented in the
193
+ * @properties section.
194
+ *
195
+ * Please see the @cff_driver section for more details on the new hinting
196
+ * engine.
197
+ *
198
+ */
199
+
200
+
201
+ /**************************************************************************
202
+ *
203
+ * @section:
204
+ * tt_driver
205
+ *
206
+ * @title:
207
+ * The TrueType driver
208
+ *
209
+ * @abstract:
210
+ * Controlling the TrueType driver module.
211
+ *
212
+ * @description:
213
+ * While FreeType's TrueType driver doesn't expose API functions by
214
+ * itself, it is possible to control its behaviour with @FT_Property_Set
215
+ * and @FT_Property_Get.
216
+ *
217
+ * The TrueType driver's module name is 'truetype'; a single property
218
+ * @interpreter-version is available, as documented in the @properties
219
+ * section.
220
+ *
221
+ * To help understand the differences between interpreter versions, we
222
+ * introduce a list of definitions, kindly provided by Greg Hitchcock.
223
+ *
224
+ * _Bi-Level Rendering_
225
+ *
226
+ * Monochromatic rendering, exclusively used in the early days of
227
+ * TrueType by both Apple and Microsoft. Microsoft's GDI interface
228
+ * supported hinting of the right-side bearing point, such that the
229
+ * advance width could be non-linear. Most often this was done to
230
+ * achieve some level of glyph symmetry. To enable reasonable
231
+ * performance (e.g., not having to run hinting on all glyphs just to get
232
+ * the widths) there was a bit in the head table indicating if the side
233
+ * bearing was hinted, and additional tables, 'hdmx' and 'LTSH', to cache
234
+ * hinting widths across multiple sizes and device aspect ratios.
235
+ *
236
+ * _Font Smoothing_
237
+ *
238
+ * Microsoft's GDI implementation of anti-aliasing. Not traditional
239
+ * anti-aliasing as the outlines were hinted before the sampling. The
240
+ * widths matched the bi-level rendering.
241
+ *
242
+ * _ClearType Rendering_
243
+ *
244
+ * Technique that uses physical subpixels to improve rendering on LCD
245
+ * (and other) displays. Because of the higher resolution, many methods
246
+ * of improving symmetry in glyphs through hinting the right-side bearing
247
+ * were no longer necessary. This lead to what GDI calls 'natural
248
+ * widths' ClearType, see
249
+ * http://rastertragedy.com/RTRCh4.htm#Sec21. Since hinting
250
+ * has extra resolution, most non-linearity went away, but it is still
251
+ * possible for hints to change the advance widths in this mode.
252
+ *
253
+ * _ClearType Compatible Widths_
254
+ *
255
+ * One of the earliest challenges with ClearType was allowing the
256
+ * implementation in GDI to be selected without requiring all UI and
257
+ * documents to reflow. To address this, a compatible method of
258
+ * rendering ClearType was added where the font hints are executed once
259
+ * to determine the width in bi-level rendering, and then re-run in
260
+ * ClearType, with the difference in widths being absorbed in the font
261
+ * hints for ClearType (mostly in the white space of hints); see
262
+ * http://rastertragedy.com/RTRCh4.htm#Sec20. Somewhat by
263
+ * definition, compatible width ClearType allows for non-linear widths,
264
+ * but only when the bi-level version has non-linear widths.
265
+ *
266
+ * _ClearType Subpixel Positioning_
267
+ *
268
+ * One of the nice benefits of ClearType is the ability to more crisply
269
+ * display fractional widths; unfortunately, the GDI model of integer
270
+ * bitmaps did not support this. However, the WPF and Direct Write
271
+ * frameworks do support fractional widths. DWrite calls this 'natural
272
+ * mode', not to be confused with GDI's 'natural widths'. Subpixel
273
+ * positioning, in the current implementation of Direct Write,
274
+ * unfortunately does not support hinted advance widths, see
275
+ * http://rastertragedy.com/RTRCh4.htm#Sec22. Note that the
276
+ * TrueType interpreter fully allows the advance width to be adjusted in
277
+ * this mode, just the DWrite client will ignore those changes.
278
+ *
279
+ * _ClearType Backward Compatibility_
280
+ *
281
+ * This is a set of exceptions made in the TrueType interpreter to
282
+ * minimize hinting techniques that were problematic with the extra
283
+ * resolution of ClearType; see
284
+ * http://rastertragedy.com/RTRCh4.htm#Sec1 and
285
+ * https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx.
286
+ * This technique is not to be confused with ClearType compatible widths.
287
+ * ClearType backward compatibility has no direct impact on changing
288
+ * advance widths, but there might be an indirect impact on disabling
289
+ * some deltas. This could be worked around in backward compatibility
290
+ * mode.
291
+ *
292
+ * _Native ClearType Mode_
293
+ *
294
+ * (Not to be confused with 'natural widths'.) This mode removes all the
295
+ * exceptions in the TrueType interpreter when running with ClearType.
296
+ * Any issues on widths would still apply, though.
297
+ *
298
+ */
299
+
300
+
301
+ /**************************************************************************
302
+ *
303
+ * @section:
304
+ * ot_svg_driver
305
+ *
306
+ * @title:
307
+ * The SVG driver
308
+ *
309
+ * @abstract:
310
+ * Controlling the external rendering of OT-SVG glyphs.
311
+ *
312
+ * @description:
313
+ * By default, FreeType can only load the 'SVG~' table of OpenType fonts
314
+ * if configuration macro `FT_CONFIG_OPTION_SVG` is defined. To make it
315
+ * render SVG glyphs, an external SVG rendering library is needed. All
316
+ * details on the interface between FreeType and the external library
317
+ * via function hooks can be found in section @svg_fonts.
318
+ *
319
+ * The OT-SVG driver's module name is 'ot-svg'; it supports a single
320
+ * property called @svg-hooks, documented below in the @properties
321
+ * section.
322
+ *
323
+ */
324
+
325
+
326
+ /**************************************************************************
327
+ *
328
+ * @section:
329
+ * properties
330
+ *
331
+ * @title:
332
+ * Driver properties
333
+ *
334
+ * @abstract:
335
+ * Controlling driver modules.
336
+ *
337
+ * @description:
338
+ * Driver modules can be controlled by setting and unsetting properties,
339
+ * using the functions @FT_Property_Set and @FT_Property_Get. This
340
+ * section documents the available properties, together with auxiliary
341
+ * macros and structures.
342
+ *
343
+ */
344
+
345
+
346
+ /**************************************************************************
347
+ *
348
+ * @enum:
349
+ * FT_HINTING_XXX
350
+ *
351
+ * @description:
352
+ * A list of constants used for the @hinting-engine property to select
353
+ * the hinting engine for CFF, Type~1, and CID fonts.
354
+ *
355
+ * @values:
356
+ * FT_HINTING_FREETYPE ::
357
+ * Use the old FreeType hinting engine.
358
+ *
359
+ * FT_HINTING_ADOBE ::
360
+ * Use the hinting engine contributed by Adobe.
361
+ *
362
+ * @since:
363
+ * 2.9
364
+ *
365
+ */
366
+ #define FT_HINTING_FREETYPE 0
367
+ #define FT_HINTING_ADOBE 1
368
+
369
+ /* these constants (introduced in 2.4.12) are deprecated */
370
+ #define FT_CFF_HINTING_FREETYPE FT_HINTING_FREETYPE
371
+ #define FT_CFF_HINTING_ADOBE FT_HINTING_ADOBE
372
+
373
+
374
+ /**************************************************************************
375
+ *
376
+ * @property:
377
+ * hinting-engine
378
+ *
379
+ * @description:
380
+ * Thanks to Adobe, which contributed a new hinting (and parsing) engine,
381
+ * an application can select between 'freetype' and 'adobe' if compiled
382
+ * with `CFF_CONFIG_OPTION_OLD_ENGINE`. If this configuration macro
383
+ * isn't defined, 'hinting-engine' does nothing.
384
+ *
385
+ * The same holds for the Type~1 and CID modules if compiled with
386
+ * `T1_CONFIG_OPTION_OLD_ENGINE`.
387
+ *
388
+ * For the 'cff' module, the default engine is 'adobe'. For both the
389
+ * 'type1' and 't1cid' modules, the default engine is 'adobe', too.
390
+ *
391
+ * @note:
392
+ * This property can be used with @FT_Property_Get also.
393
+ *
394
+ * This property can be set via the `FREETYPE_PROPERTIES` environment
395
+ * variable (using values 'adobe' or 'freetype').
396
+ *
397
+ * @example:
398
+ * The following example code demonstrates how to select Adobe's hinting
399
+ * engine for the 'cff' module (omitting the error handling).
400
+ *
401
+ * ```
402
+ * FT_Library library;
403
+ * FT_UInt hinting_engine = FT_HINTING_ADOBE;
404
+ *
405
+ *
406
+ * FT_Init_FreeType( &library );
407
+ *
408
+ * FT_Property_Set( library, "cff",
409
+ * "hinting-engine", &hinting_engine );
410
+ * ```
411
+ *
412
+ * @since:
413
+ * 2.4.12 (for 'cff' module)
414
+ *
415
+ * 2.9 (for 'type1' and 't1cid' modules)
416
+ *
417
+ */
418
+
419
+
420
+ /**************************************************************************
421
+ *
422
+ * @property:
423
+ * no-stem-darkening
424
+ *
425
+ * @description:
426
+ * All glyphs that pass through the auto-hinter will be emboldened unless
427
+ * this property is set to TRUE. The same is true for the CFF, Type~1,
428
+ * and CID font modules if the 'Adobe' engine is selected (which is the
429
+ * default).
430
+ *
431
+ * Stem darkening emboldens glyphs at smaller sizes to make them more
432
+ * readable on common low-DPI screens when using linear alpha blending
433
+ * and gamma correction, see @FT_Render_Glyph. When not using linear
434
+ * alpha blending and gamma correction, glyphs will appear heavy and
435
+ * fuzzy!
436
+ *
437
+ * Gamma correction essentially lightens fonts since shades of grey are
438
+ * shifted to higher pixel values (=~higher brightness) to match the
439
+ * original intention to the reality of our screens. The side-effect is
440
+ * that glyphs 'thin out'. Mac OS~X and Adobe's proprietary font
441
+ * rendering library implement a counter-measure: stem darkening at
442
+ * smaller sizes where shades of gray dominate. By emboldening a glyph
443
+ * slightly in relation to its pixel size, individual pixels get higher
444
+ * coverage of filled-in outlines and are therefore 'blacker'. This
445
+ * counteracts the 'thinning out' of glyphs, making text remain readable
446
+ * at smaller sizes.
447
+ *
448
+ * For the auto-hinter, stem-darkening is experimental currently and thus
449
+ * switched off by default (that is, `no-stem-darkening` is set to TRUE
450
+ * by default). Total consistency with the CFF driver is not achieved
451
+ * right now because the emboldening method differs and glyphs must be
452
+ * scaled down on the Y-axis to keep outline points inside their
453
+ * precomputed blue zones. The smaller the size (especially 9ppem and
454
+ * down), the higher the loss of emboldening versus the CFF driver.
455
+ *
456
+ * Note that stem darkening is never applied if @FT_LOAD_NO_SCALE is set.
457
+ *
458
+ * @note:
459
+ * This property can be used with @FT_Property_Get also.
460
+ *
461
+ * This property can be set via the `FREETYPE_PROPERTIES` environment
462
+ * variable (using values 1 and 0 for 'on' and 'off', respectively). It
463
+ * can also be set per face using @FT_Face_Properties with
464
+ * @FT_PARAM_TAG_STEM_DARKENING.
465
+ *
466
+ * @example:
467
+ * ```
468
+ * FT_Library library;
469
+ * FT_Bool no_stem_darkening = TRUE;
470
+ *
471
+ *
472
+ * FT_Init_FreeType( &library );
473
+ *
474
+ * FT_Property_Set( library, "cff",
475
+ * "no-stem-darkening", &no_stem_darkening );
476
+ * ```
477
+ *
478
+ * @since:
479
+ * 2.4.12 (for 'cff' module)
480
+ *
481
+ * 2.6.2 (for 'autofitter' module)
482
+ *
483
+ * 2.9 (for 'type1' and 't1cid' modules)
484
+ *
485
+ */
486
+
487
+
488
+ /**************************************************************************
489
+ *
490
+ * @property:
491
+ * darkening-parameters
492
+ *
493
+ * @description:
494
+ * By default, the Adobe hinting engine, as used by the CFF, Type~1, and
495
+ * CID font drivers, darkens stems as follows (if the `no-stem-darkening`
496
+ * property isn't set):
497
+ *
498
+ * ```
499
+ * stem width <= 0.5px: darkening amount = 0.4px
500
+ * stem width = 1px: darkening amount = 0.275px
501
+ * stem width = 1.667px: darkening amount = 0.275px
502
+ * stem width >= 2.333px: darkening amount = 0px
503
+ * ```
504
+ *
505
+ * and piecewise linear in-between. At configuration time, these four
506
+ * control points can be set with the macro
507
+ * `CFF_CONFIG_OPTION_DARKENING_PARAMETERS`; the CFF, Type~1, and CID
508
+ * drivers share these values. At runtime, the control points can be
509
+ * changed using the `darkening-parameters` property (see the example
510
+ * below that demonstrates this for the Type~1 driver).
511
+ *
512
+ * The x~values give the stem width, and the y~values the darkening
513
+ * amount. The unit is 1000th of pixels. All coordinate values must be
514
+ * positive; the x~values must be monotonically increasing; the y~values
515
+ * must be monotonically decreasing and smaller than or equal to 500
516
+ * (corresponding to half a pixel); the slope of each linear piece must
517
+ * be shallower than -1 (e.g., -.4).
518
+ *
519
+ * The auto-hinter provides this property, too, as an experimental
520
+ * feature. See @no-stem-darkening for more.
521
+ *
522
+ * @note:
523
+ * This property can be used with @FT_Property_Get also.
524
+ *
525
+ * This property can be set via the `FREETYPE_PROPERTIES` environment
526
+ * variable, using eight comma-separated integers without spaces. Here
527
+ * the above example, using `\` to break the line for readability.
528
+ *
529
+ * ```
530
+ * FREETYPE_PROPERTIES=\
531
+ * type1:darkening-parameters=500,300,1000,200,1500,100,2000,0
532
+ * ```
533
+ *
534
+ * @example:
535
+ * ```
536
+ * FT_Library library;
537
+ * FT_Int darken_params[8] = { 500, 300, // x1, y1
538
+ * 1000, 200, // x2, y2
539
+ * 1500, 100, // x3, y3
540
+ * 2000, 0 }; // x4, y4
541
+ *
542
+ *
543
+ * FT_Init_FreeType( &library );
544
+ *
545
+ * FT_Property_Set( library, "type1",
546
+ * "darkening-parameters", darken_params );
547
+ * ```
548
+ *
549
+ * @since:
550
+ * 2.5.1 (for 'cff' module)
551
+ *
552
+ * 2.6.2 (for 'autofitter' module)
553
+ *
554
+ * 2.9 (for 'type1' and 't1cid' modules)
555
+ *
556
+ */
557
+
558
+
559
+ /**************************************************************************
560
+ *
561
+ * @property:
562
+ * random-seed
563
+ *
564
+ * @description:
565
+ * By default, the seed value for the CFF 'random' operator and the
566
+ * similar '0 28 callothersubr pop' command for the Type~1 and CID
567
+ * drivers is set to a random value. However, mainly for debugging
568
+ * purposes, it is often necessary to use a known value as a seed so that
569
+ * the pseudo-random number sequences generated by 'random' are
570
+ * repeatable.
571
+ *
572
+ * The `random-seed` property does that. Its argument is a signed 32bit
573
+ * integer; if the value is zero or negative, the seed given by the
574
+ * `intitialRandomSeed` private DICT operator in a CFF file gets used (or
575
+ * a default value if there is no such operator). If the value is
576
+ * positive, use it instead of `initialRandomSeed`, which is consequently
577
+ * ignored.
578
+ *
579
+ * @note:
580
+ * This property can be set via the `FREETYPE_PROPERTIES` environment
581
+ * variable. It can also be set per face using @FT_Face_Properties with
582
+ * @FT_PARAM_TAG_RANDOM_SEED.
583
+ *
584
+ * @since:
585
+ * 2.8 (for 'cff' module)
586
+ *
587
+ * 2.9 (for 'type1' and 't1cid' modules)
588
+ *
589
+ */
590
+
591
+
592
+ /**************************************************************************
593
+ *
594
+ * @property:
595
+ * no-long-family-names
596
+ *
597
+ * @description:
598
+ * If `PCF_CONFIG_OPTION_LONG_FAMILY_NAMES` is active while compiling
599
+ * FreeType, the PCF driver constructs long family names.
600
+ *
601
+ * There are many PCF fonts just called 'Fixed' which look completely
602
+ * different, and which have nothing to do with each other. When
603
+ * selecting 'Fixed' in KDE or Gnome one gets results that appear rather
604
+ * random, the style changes often if one changes the size and one cannot
605
+ * select some fonts at all. The improve this situation, the PCF module
606
+ * prepends the foundry name (plus a space) to the family name. It also
607
+ * checks whether there are 'wide' characters; all put together, family
608
+ * names like 'Sony Fixed' or 'Misc Fixed Wide' are constructed.
609
+ *
610
+ * If `no-long-family-names` is set, this feature gets switched off.
611
+ *
612
+ * @note:
613
+ * This property can be used with @FT_Property_Get also.
614
+ *
615
+ * This property can be set via the `FREETYPE_PROPERTIES` environment
616
+ * variable (using values 1 and 0 for 'on' and 'off', respectively).
617
+ *
618
+ * @example:
619
+ * ```
620
+ * FT_Library library;
621
+ * FT_Bool no_long_family_names = TRUE;
622
+ *
623
+ *
624
+ * FT_Init_FreeType( &library );
625
+ *
626
+ * FT_Property_Set( library, "pcf",
627
+ * "no-long-family-names",
628
+ * &no_long_family_names );
629
+ * ```
630
+ *
631
+ * @since:
632
+ * 2.8
633
+ */
634
+
635
+
636
+ /**************************************************************************
637
+ *
638
+ * @enum:
639
+ * TT_INTERPRETER_VERSION_XXX
640
+ *
641
+ * @description:
642
+ * A list of constants used for the @interpreter-version property to
643
+ * select the hinting engine for Truetype fonts.
644
+ *
645
+ * The numeric value in the constant names represents the version number
646
+ * as returned by the 'GETINFO' bytecode instruction.
647
+ *
648
+ * @values:
649
+ * TT_INTERPRETER_VERSION_35 ::
650
+ * Version~35 corresponds to MS rasterizer v.1.7 as used e.g. in
651
+ * Windows~98; only grayscale and B/W rasterizing is supported.
652
+ *
653
+ * TT_INTERPRETER_VERSION_38 ::
654
+ * Version~38 is the same Version~40. The original 'Infinality' code is
655
+ * no longer available.
656
+ *
657
+ * TT_INTERPRETER_VERSION_40 ::
658
+ * Version~40 corresponds to MS rasterizer v.2.1; it is roughly
659
+ * equivalent to the hinting provided by DirectWrite ClearType (as can
660
+ * be found, for example, in Microsoft's Edge Browser on Windows~10).
661
+ * It is used in FreeType to select the 'minimal' subpixel hinting
662
+ * code, a stripped-down and higher performance version of the
663
+ * 'Infinality' code.
664
+ *
665
+ * @note:
666
+ * This property controls the behaviour of the bytecode interpreter and
667
+ * thus how outlines get hinted. It does **not** control how glyph get
668
+ * rasterized! In particular, it does not control subpixel color
669
+ * filtering.
670
+ *
671
+ * If FreeType has not been compiled with the configuration option
672
+ * `TT_CONFIG_OPTION_SUBPIXEL_HINTING`, selecting version~38 or~40 causes
673
+ * an `FT_Err_Unimplemented_Feature` error.
674
+ *
675
+ * Depending on the graphics framework, Microsoft uses different bytecode
676
+ * and rendering engines. As a consequence, the version numbers returned
677
+ * by a call to the 'GETINFO' bytecode instruction are more convoluted
678
+ * than desired.
679
+ *
680
+ * Here are two tables that try to shed some light on the possible values
681
+ * for the MS rasterizer engine, together with the additional features
682
+ * introduced by it.
683
+ *
684
+ * ```
685
+ * GETINFO framework version feature
686
+ * -------------------------------------------------------------------
687
+ * 3 GDI (Win 3.1), v1.0 16-bit, first version
688
+ * TrueImage
689
+ * 33 GDI (Win NT 3.1), v1.5 32-bit
690
+ * HP Laserjet
691
+ * 34 GDI (Win 95) v1.6 font smoothing,
692
+ * new SCANTYPE opcode
693
+ * 35 GDI (Win 98/2000) v1.7 (UN)SCALED_COMPONENT_OFFSET
694
+ * bits in composite glyphs
695
+ * 36 MGDI (Win CE 2) v1.6+ classic ClearType
696
+ * 37 GDI (XP and later), v1.8 ClearType
697
+ * GDI+ old (before Vista)
698
+ * 38 GDI+ old (Vista, Win 7), v1.9 subpixel ClearType,
699
+ * WPF Y-direction ClearType,
700
+ * additional error checking
701
+ * 39 DWrite (before Win 8) v2.0 subpixel ClearType flags
702
+ * in GETINFO opcode,
703
+ * bug fixes
704
+ * 40 GDI+ (after Win 7), v2.1 Y-direction ClearType flag
705
+ * DWrite (Win 8) in GETINFO opcode,
706
+ * Gray ClearType
707
+ * ```
708
+ *
709
+ * The 'version' field gives a rough orientation only, since some
710
+ * applications provided certain features much earlier (as an example,
711
+ * Microsoft Reader used subpixel and Y-direction ClearType already in
712
+ * Windows 2000). Similarly, updates to a given framework might include
713
+ * improved hinting support.
714
+ *
715
+ * ```
716
+ * version sampling rendering comment
717
+ * x y x y
718
+ * --------------------------------------------------------------
719
+ * v1.0 normal normal B/W B/W bi-level
720
+ * v1.6 high high gray gray grayscale
721
+ * v1.8 high normal color-filter B/W (GDI) ClearType
722
+ * v1.9 high high color-filter gray Color ClearType
723
+ * v2.1 high normal gray B/W Gray ClearType
724
+ * v2.1 high high gray gray Gray ClearType
725
+ * ```
726
+ *
727
+ * Color and Gray ClearType are the two available variants of
728
+ * 'Y-direction ClearType', meaning grayscale rasterization along the
729
+ * Y-direction; the name used in the TrueType specification for this
730
+ * feature is 'symmetric smoothing'. 'Classic ClearType' is the original
731
+ * algorithm used before introducing a modified version in Win~XP.
732
+ * Another name for v1.6's grayscale rendering is 'font smoothing', and
733
+ * 'Color ClearType' is sometimes also called 'DWrite ClearType'. To
734
+ * differentiate between today's Color ClearType and the earlier
735
+ * ClearType variant with B/W rendering along the vertical axis, the
736
+ * latter is sometimes called 'GDI ClearType'.
737
+ *
738
+ * 'Normal' and 'high' sampling describe the (virtual) resolution to
739
+ * access the rasterized outline after the hinting process. 'Normal'
740
+ * means 1 sample per grid line (i.e., B/W). In the current Microsoft
741
+ * implementation, 'high' means an extra virtual resolution of 16x16 (or
742
+ * 16x1) grid lines per pixel for bytecode instructions like 'MIRP'.
743
+ * After hinting, these 16 grid lines are mapped to 6x5 (or 6x1) grid
744
+ * lines for color filtering if Color ClearType is activated.
745
+ *
746
+ * Note that 'Gray ClearType' is essentially the same as v1.6's grayscale
747
+ * rendering. However, the GETINFO instruction handles it differently:
748
+ * v1.6 returns bit~12 (hinting for grayscale), while v2.1 returns
749
+ * bits~13 (hinting for ClearType), 18 (symmetrical smoothing), and~19
750
+ * (Gray ClearType). Also, this mode respects bits 2 and~3 for the
751
+ * version~1 gasp table exclusively (like Color ClearType), while v1.6
752
+ * only respects the values of version~0 (bits 0 and~1).
753
+ *
754
+ * Keep in mind that the features of the above interpreter versions might
755
+ * not map exactly to FreeType features or behavior because it is a
756
+ * fundamentally different library with different internals.
757
+ *
758
+ */
759
+ #define TT_INTERPRETER_VERSION_35 35
760
+ #define TT_INTERPRETER_VERSION_38 38
761
+ #define TT_INTERPRETER_VERSION_40 40
762
+
763
+
764
+ /**************************************************************************
765
+ *
766
+ * @property:
767
+ * interpreter-version
768
+ *
769
+ * @description:
770
+ * Currently, three versions are available, two representing the bytecode
771
+ * interpreter with subpixel hinting support (old 'Infinality' code and
772
+ * new stripped-down and higher performance 'minimal' code) and one
773
+ * without, respectively. The default is subpixel support if
774
+ * `TT_CONFIG_OPTION_SUBPIXEL_HINTING` is defined, and no subpixel
775
+ * support otherwise (since it isn't available then).
776
+ *
777
+ * If subpixel hinting is on, many TrueType bytecode instructions behave
778
+ * differently compared to B/W or grayscale rendering (except if 'native
779
+ * ClearType' is selected by the font). Microsoft's main idea is to
780
+ * render at a much increased horizontal resolution, then sampling down
781
+ * the created output to subpixel precision. However, many older fonts
782
+ * are not suited to this and must be specially taken care of by applying
783
+ * (hardcoded) tweaks in Microsoft's interpreter.
784
+ *
785
+ * Details on subpixel hinting and some of the necessary tweaks can be
786
+ * found in Greg Hitchcock's whitepaper at
787
+ * 'https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx'.
788
+ * Note that FreeType currently doesn't really 'subpixel hint' (6x1, 6x2,
789
+ * or 6x5 supersampling) like discussed in the paper. Depending on the
790
+ * chosen interpreter, it simply ignores instructions on vertical stems
791
+ * to arrive at very similar results.
792
+ *
793
+ * @note:
794
+ * This property can be used with @FT_Property_Get also.
795
+ *
796
+ * This property can be set via the `FREETYPE_PROPERTIES` environment
797
+ * variable (using values '35', '38', or '40').
798
+ *
799
+ * @example:
800
+ * The following example code demonstrates how to deactivate subpixel
801
+ * hinting (omitting the error handling).
802
+ *
803
+ * ```
804
+ * FT_Library library;
805
+ * FT_Face face;
806
+ * FT_UInt interpreter_version = TT_INTERPRETER_VERSION_35;
807
+ *
808
+ *
809
+ * FT_Init_FreeType( &library );
810
+ *
811
+ * FT_Property_Set( library, "truetype",
812
+ * "interpreter-version",
813
+ * &interpreter_version );
814
+ * ```
815
+ *
816
+ * @since:
817
+ * 2.5
818
+ */
819
+
820
+ /**************************************************************************
821
+ *
822
+ * @property:
823
+ * svg-hooks
824
+ *
825
+ * @description:
826
+ * Set up the interface between FreeType and an extern SVG rendering
827
+ * library like 'librsvg'. All details on the function hooks can be
828
+ * found in section @svg_fonts.
829
+ *
830
+ * @example:
831
+ * The following example code expects that the four hook functions
832
+ * `svg_*` are defined elsewhere. Error handling is omitted, too.
833
+ *
834
+ * ```
835
+ * FT_Library library;
836
+ * SVG_RendererHooks hooks = {
837
+ * (SVG_Lib_Init_Func)svg_init,
838
+ * (SVG_Lib_Free_Func)svg_free,
839
+ * (SVG_Lib_Render_Func)svg_render,
840
+ * (SVG_Lib_Preset_Slot_Func)svg_preset_slot };
841
+ *
842
+ *
843
+ * FT_Init_FreeType( &library );
844
+ *
845
+ * FT_Property_Set( library, "ot-svg",
846
+ * "svg-hooks", &hooks );
847
+ * ```
848
+ *
849
+ * @since:
850
+ * 2.12
851
+ */
852
+
853
+
854
+ /**************************************************************************
855
+ *
856
+ * @property:
857
+ * glyph-to-script-map
858
+ *
859
+ * @description:
860
+ * **Experimental only**
861
+ *
862
+ * The auto-hinter provides various script modules to hint glyphs.
863
+ * Examples of supported scripts are Latin or CJK. Before a glyph is
864
+ * auto-hinted, the Unicode character map of the font gets examined, and
865
+ * the script is then determined based on Unicode character ranges, see
866
+ * below.
867
+ *
868
+ * OpenType fonts, however, often provide much more glyphs than character
869
+ * codes (small caps, superscripts, ligatures, swashes, etc.), to be
870
+ * controlled by so-called 'features'. Handling OpenType features can be
871
+ * quite complicated and thus needs a separate library on top of
872
+ * FreeType.
873
+ *
874
+ * The mapping between glyph indices and scripts (in the auto-hinter
875
+ * sense, see the @FT_AUTOHINTER_SCRIPT_XXX values) is stored as an array
876
+ * with `num_glyphs` elements, as found in the font's @FT_Face structure.
877
+ * The `glyph-to-script-map` property returns a pointer to this array,
878
+ * which can be modified as needed. Note that the modification should
879
+ * happen before the first glyph gets processed by the auto-hinter so
880
+ * that the global analysis of the font shapes actually uses the modified
881
+ * mapping.
882
+ *
883
+ * @example:
884
+ * The following example code demonstrates how to access it (omitting the
885
+ * error handling).
886
+ *
887
+ * ```
888
+ * FT_Library library;
889
+ * FT_Face face;
890
+ * FT_Prop_GlyphToScriptMap prop;
891
+ *
892
+ *
893
+ * FT_Init_FreeType( &library );
894
+ * FT_New_Face( library, "foo.ttf", 0, &face );
895
+ *
896
+ * prop.face = face;
897
+ *
898
+ * FT_Property_Get( library, "autofitter",
899
+ * "glyph-to-script-map", &prop );
900
+ *
901
+ * // adjust `prop.map' as needed right here
902
+ *
903
+ * FT_Load_Glyph( face, ..., FT_LOAD_FORCE_AUTOHINT );
904
+ * ```
905
+ *
906
+ * @since:
907
+ * 2.4.11
908
+ *
909
+ */
910
+
911
+
912
+ /**************************************************************************
913
+ *
914
+ * @enum:
915
+ * FT_AUTOHINTER_SCRIPT_XXX
916
+ *
917
+ * @description:
918
+ * **Experimental only**
919
+ *
920
+ * A list of constants used for the @glyph-to-script-map property to
921
+ * specify the script submodule the auto-hinter should use for hinting a
922
+ * particular glyph.
923
+ *
924
+ * @values:
925
+ * FT_AUTOHINTER_SCRIPT_NONE ::
926
+ * Don't auto-hint this glyph.
927
+ *
928
+ * FT_AUTOHINTER_SCRIPT_LATIN ::
929
+ * Apply the latin auto-hinter. For the auto-hinter, 'latin' is a very
930
+ * broad term, including Cyrillic and Greek also since characters from
931
+ * those scripts share the same design constraints.
932
+ *
933
+ * By default, characters from the following Unicode ranges are
934
+ * assigned to this submodule.
935
+ *
936
+ * ```
937
+ * U+0020 - U+007F // Basic Latin (no control characters)
938
+ * U+00A0 - U+00FF // Latin-1 Supplement (no control characters)
939
+ * U+0100 - U+017F // Latin Extended-A
940
+ * U+0180 - U+024F // Latin Extended-B
941
+ * U+0250 - U+02AF // IPA Extensions
942
+ * U+02B0 - U+02FF // Spacing Modifier Letters
943
+ * U+0300 - U+036F // Combining Diacritical Marks
944
+ * U+0370 - U+03FF // Greek and Coptic
945
+ * U+0400 - U+04FF // Cyrillic
946
+ * U+0500 - U+052F // Cyrillic Supplement
947
+ * U+1D00 - U+1D7F // Phonetic Extensions
948
+ * U+1D80 - U+1DBF // Phonetic Extensions Supplement
949
+ * U+1DC0 - U+1DFF // Combining Diacritical Marks Supplement
950
+ * U+1E00 - U+1EFF // Latin Extended Additional
951
+ * U+1F00 - U+1FFF // Greek Extended
952
+ * U+2000 - U+206F // General Punctuation
953
+ * U+2070 - U+209F // Superscripts and Subscripts
954
+ * U+20A0 - U+20CF // Currency Symbols
955
+ * U+2150 - U+218F // Number Forms
956
+ * U+2460 - U+24FF // Enclosed Alphanumerics
957
+ * U+2C60 - U+2C7F // Latin Extended-C
958
+ * U+2DE0 - U+2DFF // Cyrillic Extended-A
959
+ * U+2E00 - U+2E7F // Supplemental Punctuation
960
+ * U+A640 - U+A69F // Cyrillic Extended-B
961
+ * U+A720 - U+A7FF // Latin Extended-D
962
+ * U+FB00 - U+FB06 // Alphab. Present. Forms (Latin Ligatures)
963
+ * U+1D400 - U+1D7FF // Mathematical Alphanumeric Symbols
964
+ * U+1F100 - U+1F1FF // Enclosed Alphanumeric Supplement
965
+ * ```
966
+ *
967
+ * FT_AUTOHINTER_SCRIPT_CJK ::
968
+ * Apply the CJK auto-hinter, covering Chinese, Japanese, Korean, old
969
+ * Vietnamese, and some other scripts.
970
+ *
971
+ * By default, characters from the following Unicode ranges are
972
+ * assigned to this submodule.
973
+ *
974
+ * ```
975
+ * U+1100 - U+11FF // Hangul Jamo
976
+ * U+2E80 - U+2EFF // CJK Radicals Supplement
977
+ * U+2F00 - U+2FDF // Kangxi Radicals
978
+ * U+2FF0 - U+2FFF // Ideographic Description Characters
979
+ * U+3000 - U+303F // CJK Symbols and Punctuation
980
+ * U+3040 - U+309F // Hiragana
981
+ * U+30A0 - U+30FF // Katakana
982
+ * U+3100 - U+312F // Bopomofo
983
+ * U+3130 - U+318F // Hangul Compatibility Jamo
984
+ * U+3190 - U+319F // Kanbun
985
+ * U+31A0 - U+31BF // Bopomofo Extended
986
+ * U+31C0 - U+31EF // CJK Strokes
987
+ * U+31F0 - U+31FF // Katakana Phonetic Extensions
988
+ * U+3200 - U+32FF // Enclosed CJK Letters and Months
989
+ * U+3300 - U+33FF // CJK Compatibility
990
+ * U+3400 - U+4DBF // CJK Unified Ideographs Extension A
991
+ * U+4DC0 - U+4DFF // Yijing Hexagram Symbols
992
+ * U+4E00 - U+9FFF // CJK Unified Ideographs
993
+ * U+A960 - U+A97F // Hangul Jamo Extended-A
994
+ * U+AC00 - U+D7AF // Hangul Syllables
995
+ * U+D7B0 - U+D7FF // Hangul Jamo Extended-B
996
+ * U+F900 - U+FAFF // CJK Compatibility Ideographs
997
+ * U+FE10 - U+FE1F // Vertical forms
998
+ * U+FE30 - U+FE4F // CJK Compatibility Forms
999
+ * U+FF00 - U+FFEF // Halfwidth and Fullwidth Forms
1000
+ * U+1B000 - U+1B0FF // Kana Supplement
1001
+ * U+1D300 - U+1D35F // Tai Xuan Hing Symbols
1002
+ * U+1F200 - U+1F2FF // Enclosed Ideographic Supplement
1003
+ * U+20000 - U+2A6DF // CJK Unified Ideographs Extension B
1004
+ * U+2A700 - U+2B73F // CJK Unified Ideographs Extension C
1005
+ * U+2B740 - U+2B81F // CJK Unified Ideographs Extension D
1006
+ * U+2F800 - U+2FA1F // CJK Compatibility Ideographs Supplement
1007
+ * ```
1008
+ *
1009
+ * FT_AUTOHINTER_SCRIPT_INDIC ::
1010
+ * Apply the indic auto-hinter, covering all major scripts from the
1011
+ * Indian sub-continent and some other related scripts like Thai, Lao,
1012
+ * or Tibetan.
1013
+ *
1014
+ * By default, characters from the following Unicode ranges are
1015
+ * assigned to this submodule.
1016
+ *
1017
+ * ```
1018
+ * U+0900 - U+0DFF // Indic Range
1019
+ * U+0F00 - U+0FFF // Tibetan
1020
+ * U+1900 - U+194F // Limbu
1021
+ * U+1B80 - U+1BBF // Sundanese
1022
+ * U+A800 - U+A82F // Syloti Nagri
1023
+ * U+ABC0 - U+ABFF // Meetei Mayek
1024
+ * U+11800 - U+118DF // Sharada
1025
+ * ```
1026
+ *
1027
+ * Note that currently Indic support is rudimentary only, missing blue
1028
+ * zone support.
1029
+ *
1030
+ * @since:
1031
+ * 2.4.11
1032
+ *
1033
+ */
1034
+ #define FT_AUTOHINTER_SCRIPT_NONE 0
1035
+ #define FT_AUTOHINTER_SCRIPT_LATIN 1
1036
+ #define FT_AUTOHINTER_SCRIPT_CJK 2
1037
+ #define FT_AUTOHINTER_SCRIPT_INDIC 3
1038
+
1039
+
1040
+ /**************************************************************************
1041
+ *
1042
+ * @struct:
1043
+ * FT_Prop_GlyphToScriptMap
1044
+ *
1045
+ * @description:
1046
+ * **Experimental only**
1047
+ *
1048
+ * The data exchange structure for the @glyph-to-script-map property.
1049
+ *
1050
+ * @since:
1051
+ * 2.4.11
1052
+ *
1053
+ */
1054
+ typedef struct FT_Prop_GlyphToScriptMap_
1055
+ {
1056
+ FT_Face face;
1057
+ FT_UShort* map;
1058
+
1059
+ } FT_Prop_GlyphToScriptMap;
1060
+
1061
+
1062
+ /**************************************************************************
1063
+ *
1064
+ * @property:
1065
+ * fallback-script
1066
+ *
1067
+ * @description:
1068
+ * **Experimental only**
1069
+ *
1070
+ * If no auto-hinter script module can be assigned to a glyph, a fallback
1071
+ * script gets assigned to it (see also the @glyph-to-script-map
1072
+ * property). By default, this is @FT_AUTOHINTER_SCRIPT_CJK. Using the
1073
+ * `fallback-script` property, this fallback value can be changed.
1074
+ *
1075
+ * @note:
1076
+ * This property can be used with @FT_Property_Get also.
1077
+ *
1078
+ * It's important to use the right timing for changing this value: The
1079
+ * creation of the glyph-to-script map that eventually uses the fallback
1080
+ * script value gets triggered either by setting or reading a
1081
+ * face-specific property like @glyph-to-script-map, or by auto-hinting
1082
+ * any glyph from that face. In particular, if you have already created
1083
+ * an @FT_Face structure but not loaded any glyph (using the
1084
+ * auto-hinter), a change of the fallback script will affect this face.
1085
+ *
1086
+ * @example:
1087
+ * ```
1088
+ * FT_Library library;
1089
+ * FT_UInt fallback_script = FT_AUTOHINTER_SCRIPT_NONE;
1090
+ *
1091
+ *
1092
+ * FT_Init_FreeType( &library );
1093
+ *
1094
+ * FT_Property_Set( library, "autofitter",
1095
+ * "fallback-script", &fallback_script );
1096
+ * ```
1097
+ *
1098
+ * @since:
1099
+ * 2.4.11
1100
+ *
1101
+ */
1102
+
1103
+
1104
+ /**************************************************************************
1105
+ *
1106
+ * @property:
1107
+ * default-script
1108
+ *
1109
+ * @description:
1110
+ * **Experimental only**
1111
+ *
1112
+ * If FreeType gets compiled with `FT_CONFIG_OPTION_USE_HARFBUZZ` to make
1113
+ * the HarfBuzz library access OpenType features for getting better glyph
1114
+ * coverages, this property sets the (auto-fitter) script to be used for
1115
+ * the default (OpenType) script data of a font's GSUB table. Features
1116
+ * for the default script are intended for all scripts not explicitly
1117
+ * handled in GSUB; an example is a 'dlig' feature, containing the
1118
+ * combination of the characters 'T', 'E', and 'L' to form a 'TEL'
1119
+ * ligature.
1120
+ *
1121
+ * By default, this is @FT_AUTOHINTER_SCRIPT_LATIN. Using the
1122
+ * `default-script` property, this default value can be changed.
1123
+ *
1124
+ * @note:
1125
+ * This property can be used with @FT_Property_Get also.
1126
+ *
1127
+ * It's important to use the right timing for changing this value: The
1128
+ * creation of the glyph-to-script map that eventually uses the default
1129
+ * script value gets triggered either by setting or reading a
1130
+ * face-specific property like @glyph-to-script-map, or by auto-hinting
1131
+ * any glyph from that face. In particular, if you have already created
1132
+ * an @FT_Face structure but not loaded any glyph (using the
1133
+ * auto-hinter), a change of the default script will affect this face.
1134
+ *
1135
+ * @example:
1136
+ * ```
1137
+ * FT_Library library;
1138
+ * FT_UInt default_script = FT_AUTOHINTER_SCRIPT_NONE;
1139
+ *
1140
+ *
1141
+ * FT_Init_FreeType( &library );
1142
+ *
1143
+ * FT_Property_Set( library, "autofitter",
1144
+ * "default-script", &default_script );
1145
+ * ```
1146
+ *
1147
+ * @since:
1148
+ * 2.5.3
1149
+ *
1150
+ */
1151
+
1152
+
1153
+ /**************************************************************************
1154
+ *
1155
+ * @property:
1156
+ * increase-x-height
1157
+ *
1158
+ * @description:
1159
+ * For ppem values in the range 6~<= ppem <= `increase-x-height`, round
1160
+ * up the font's x~height much more often than normally. If the value is
1161
+ * set to~0, which is the default, this feature is switched off. Use
1162
+ * this property to improve the legibility of small font sizes if
1163
+ * necessary.
1164
+ *
1165
+ * @note:
1166
+ * This property can be used with @FT_Property_Get also.
1167
+ *
1168
+ * Set this value right after calling @FT_Set_Char_Size, but before
1169
+ * loading any glyph (using the auto-hinter).
1170
+ *
1171
+ * @example:
1172
+ * ```
1173
+ * FT_Library library;
1174
+ * FT_Face face;
1175
+ * FT_Prop_IncreaseXHeight prop;
1176
+ *
1177
+ *
1178
+ * FT_Init_FreeType( &library );
1179
+ * FT_New_Face( library, "foo.ttf", 0, &face );
1180
+ * FT_Set_Char_Size( face, 10 * 64, 0, 72, 0 );
1181
+ *
1182
+ * prop.face = face;
1183
+ * prop.limit = 14;
1184
+ *
1185
+ * FT_Property_Set( library, "autofitter",
1186
+ * "increase-x-height", &prop );
1187
+ * ```
1188
+ *
1189
+ * @since:
1190
+ * 2.4.11
1191
+ *
1192
+ */
1193
+
1194
+
1195
+ /**************************************************************************
1196
+ *
1197
+ * @struct:
1198
+ * FT_Prop_IncreaseXHeight
1199
+ *
1200
+ * @description:
1201
+ * The data exchange structure for the @increase-x-height property.
1202
+ *
1203
+ */
1204
+ typedef struct FT_Prop_IncreaseXHeight_
1205
+ {
1206
+ FT_Face face;
1207
+ FT_UInt limit;
1208
+
1209
+ } FT_Prop_IncreaseXHeight;
1210
+
1211
+
1212
+ /**************************************************************************
1213
+ *
1214
+ * @property:
1215
+ * warping
1216
+ *
1217
+ * @description:
1218
+ * **Obsolete**
1219
+ *
1220
+ * This property was always experimental and probably never worked
1221
+ * correctly. It was entirely removed from the FreeType~2 sources. This
1222
+ * entry is only here for historical reference.
1223
+ *
1224
+ * Warping only worked in 'normal' auto-hinting mode replacing it. The
1225
+ * idea of the code was to slightly scale and shift a glyph along the
1226
+ * non-hinted dimension (which is usually the horizontal axis) so that as
1227
+ * much of its segments were aligned (more or less) to the grid. To find
1228
+ * out a glyph's optimal scaling and shifting value, various parameter
1229
+ * combinations were tried and scored.
1230
+ *
1231
+ * @since:
1232
+ * 2.6
1233
+ *
1234
+ */
1235
+
1236
+
1237
+ /* */
1238
+
1239
+
1240
+ FT_END_HEADER
1241
+
1242
+
1243
+ #endif /* FTDRIVER_H_ */
1244
+
1245
+
1246
+ /* END */