@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,1667 @@
1
+ /****************************************************************************
2
+ *
3
+ * ftcolor.h
4
+ *
5
+ * FreeType's glyph color management (specification).
6
+ *
7
+ * Copyright (C) 2018-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 FTCOLOR_H_
20
+ #define FTCOLOR_H_
21
+
22
+ #include <freetype/freetype.h>
23
+
24
+ #ifdef FREETYPE_H
25
+ #error "freetype.h of FreeType 1 has been loaded!"
26
+ #error "Please fix the directory search order for header files"
27
+ #error "so that freetype.h of FreeType 2 is found first."
28
+ #endif
29
+
30
+
31
+ FT_BEGIN_HEADER
32
+
33
+
34
+ /**************************************************************************
35
+ *
36
+ * @section:
37
+ * color_management
38
+ *
39
+ * @title:
40
+ * Glyph Color Management
41
+ *
42
+ * @abstract:
43
+ * Retrieving and manipulating OpenType's 'CPAL' table data.
44
+ *
45
+ * @description:
46
+ * The functions described here allow access and manipulation of color
47
+ * palette entries in OpenType's 'CPAL' tables.
48
+ */
49
+
50
+
51
+ /**************************************************************************
52
+ *
53
+ * @struct:
54
+ * FT_Color
55
+ *
56
+ * @description:
57
+ * This structure models a BGRA color value of a 'CPAL' palette entry.
58
+ *
59
+ * The used color space is sRGB; the colors are not pre-multiplied, and
60
+ * alpha values must be explicitly set.
61
+ *
62
+ * @fields:
63
+ * blue ::
64
+ * Blue value.
65
+ *
66
+ * green ::
67
+ * Green value.
68
+ *
69
+ * red ::
70
+ * Red value.
71
+ *
72
+ * alpha ::
73
+ * Alpha value, giving the red, green, and blue color's opacity.
74
+ *
75
+ * @since:
76
+ * 2.10
77
+ */
78
+ typedef struct FT_Color_
79
+ {
80
+ FT_Byte blue;
81
+ FT_Byte green;
82
+ FT_Byte red;
83
+ FT_Byte alpha;
84
+
85
+ } FT_Color;
86
+
87
+
88
+ /**************************************************************************
89
+ *
90
+ * @enum:
91
+ * FT_PALETTE_XXX
92
+ *
93
+ * @description:
94
+ * A list of bit field constants used in the `palette_flags` array of the
95
+ * @FT_Palette_Data structure to indicate for which background a palette
96
+ * with a given index is usable.
97
+ *
98
+ * @values:
99
+ * FT_PALETTE_FOR_LIGHT_BACKGROUND ::
100
+ * The palette is appropriate to use when displaying the font on a
101
+ * light background such as white.
102
+ *
103
+ * FT_PALETTE_FOR_DARK_BACKGROUND ::
104
+ * The palette is appropriate to use when displaying the font on a dark
105
+ * background such as black.
106
+ *
107
+ * @since:
108
+ * 2.10
109
+ */
110
+ #define FT_PALETTE_FOR_LIGHT_BACKGROUND 0x01
111
+ #define FT_PALETTE_FOR_DARK_BACKGROUND 0x02
112
+
113
+
114
+ /**************************************************************************
115
+ *
116
+ * @struct:
117
+ * FT_Palette_Data
118
+ *
119
+ * @description:
120
+ * This structure holds the data of the 'CPAL' table.
121
+ *
122
+ * @fields:
123
+ * num_palettes ::
124
+ * The number of palettes.
125
+ *
126
+ * palette_name_ids ::
127
+ * An optional read-only array of palette name IDs with `num_palettes`
128
+ * elements, corresponding to entries like 'dark' or 'light' in the
129
+ * font's 'name' table.
130
+ *
131
+ * An empty name ID in the 'CPAL' table gets represented as value
132
+ * 0xFFFF.
133
+ *
134
+ * `NULL` if the font's 'CPAL' table doesn't contain appropriate data.
135
+ *
136
+ * palette_flags ::
137
+ * An optional read-only array of palette flags with `num_palettes`
138
+ * elements. Possible values are an ORed combination of
139
+ * @FT_PALETTE_FOR_LIGHT_BACKGROUND and
140
+ * @FT_PALETTE_FOR_DARK_BACKGROUND.
141
+ *
142
+ * `NULL` if the font's 'CPAL' table doesn't contain appropriate data.
143
+ *
144
+ * num_palette_entries ::
145
+ * The number of entries in a single palette. All palettes have the
146
+ * same size.
147
+ *
148
+ * palette_entry_name_ids ::
149
+ * An optional read-only array of palette entry name IDs with
150
+ * `num_palette_entries`. In each palette, entries with the same index
151
+ * have the same function. For example, index~0 might correspond to
152
+ * string 'outline' in the font's 'name' table to indicate that this
153
+ * palette entry is used for outlines, index~1 might correspond to
154
+ * 'fill' to indicate the filling color palette entry, etc.
155
+ *
156
+ * An empty entry name ID in the 'CPAL' table gets represented as value
157
+ * 0xFFFF.
158
+ *
159
+ * `NULL` if the font's 'CPAL' table doesn't contain appropriate data.
160
+ *
161
+ * @note:
162
+ * Use function @FT_Get_Sfnt_Name to map name IDs and entry name IDs to
163
+ * name strings.
164
+ *
165
+ * Use function @FT_Palette_Select to get the colors associated with a
166
+ * palette entry.
167
+ *
168
+ * @since:
169
+ * 2.10
170
+ */
171
+ typedef struct FT_Palette_Data_ {
172
+ FT_UShort num_palettes;
173
+ const FT_UShort* palette_name_ids;
174
+ const FT_UShort* palette_flags;
175
+
176
+ FT_UShort num_palette_entries;
177
+ const FT_UShort* palette_entry_name_ids;
178
+
179
+ } FT_Palette_Data;
180
+
181
+
182
+ /**************************************************************************
183
+ *
184
+ * @function:
185
+ * FT_Palette_Data_Get
186
+ *
187
+ * @description:
188
+ * Retrieve the face's color palette data.
189
+ *
190
+ * @input:
191
+ * face ::
192
+ * The source face handle.
193
+ *
194
+ * @output:
195
+ * apalette ::
196
+ * A pointer to an @FT_Palette_Data structure.
197
+ *
198
+ * @return:
199
+ * FreeType error code. 0~means success.
200
+ *
201
+ * @note:
202
+ * All arrays in the returned @FT_Palette_Data structure are read-only.
203
+ *
204
+ * This function always returns an error if the config macro
205
+ * `TT_CONFIG_OPTION_COLOR_LAYERS` is not defined in `ftoption.h`.
206
+ *
207
+ * @since:
208
+ * 2.10
209
+ */
210
+ FT_EXPORT( FT_Error )
211
+ FT_Palette_Data_Get( FT_Face face,
212
+ FT_Palette_Data *apalette );
213
+
214
+
215
+ /**************************************************************************
216
+ *
217
+ * @function:
218
+ * FT_Palette_Select
219
+ *
220
+ * @description:
221
+ * This function has two purposes.
222
+ *
223
+ * (1) It activates a palette for rendering color glyphs, and
224
+ *
225
+ * (2) it retrieves all (unmodified) color entries of this palette. This
226
+ * function returns a read-write array, which means that a calling
227
+ * application can modify the palette entries on demand.
228
+ *
229
+ * A corollary of (2) is that calling the function, then modifying some
230
+ * values, then calling the function again with the same arguments resets
231
+ * all color entries to the original 'CPAL' values; all user modifications
232
+ * are lost.
233
+ *
234
+ * @input:
235
+ * face ::
236
+ * The source face handle.
237
+ *
238
+ * palette_index ::
239
+ * The palette index.
240
+ *
241
+ * @output:
242
+ * apalette ::
243
+ * An array of color entries for a palette with index `palette_index`,
244
+ * having `num_palette_entries` elements (as found in the
245
+ * `FT_Palette_Data` structure). If `apalette` is set to `NULL`, no
246
+ * array gets returned (and no color entries can be modified).
247
+ *
248
+ * In case the font doesn't support color palettes, `NULL` is returned.
249
+ *
250
+ * @return:
251
+ * FreeType error code. 0~means success.
252
+ *
253
+ * @note:
254
+ * The array pointed to by `apalette_entries` is owned and managed by
255
+ * FreeType.
256
+ *
257
+ * This function always returns an error if the config macro
258
+ * `TT_CONFIG_OPTION_COLOR_LAYERS` is not defined in `ftoption.h`.
259
+ *
260
+ * @since:
261
+ * 2.10
262
+ */
263
+ FT_EXPORT( FT_Error )
264
+ FT_Palette_Select( FT_Face face,
265
+ FT_UShort palette_index,
266
+ FT_Color* *apalette );
267
+
268
+
269
+ /**************************************************************************
270
+ *
271
+ * @function:
272
+ * FT_Palette_Set_Foreground_Color
273
+ *
274
+ * @description:
275
+ * 'COLR' uses palette index 0xFFFF to indicate a 'text foreground
276
+ * color'. This function sets this value.
277
+ *
278
+ * @input:
279
+ * face ::
280
+ * The source face handle.
281
+ *
282
+ * foreground_color ::
283
+ * An `FT_Color` structure to define the text foreground color.
284
+ *
285
+ * @return:
286
+ * FreeType error code. 0~means success.
287
+ *
288
+ * @note:
289
+ * If this function isn't called, the text foreground color is set to
290
+ * white opaque (BGRA value 0xFFFFFFFF) if
291
+ * @FT_PALETTE_FOR_DARK_BACKGROUND is present for the current palette,
292
+ * and black opaque (BGRA value 0x000000FF) otherwise, including the case
293
+ * that no palette types are available in the 'CPAL' table.
294
+ *
295
+ * This function always returns an error if the config macro
296
+ * `TT_CONFIG_OPTION_COLOR_LAYERS` is not defined in `ftoption.h`.
297
+ *
298
+ * @since:
299
+ * 2.10
300
+ */
301
+ FT_EXPORT( FT_Error )
302
+ FT_Palette_Set_Foreground_Color( FT_Face face,
303
+ FT_Color foreground_color );
304
+
305
+
306
+ /**************************************************************************
307
+ *
308
+ * @section:
309
+ * layer_management
310
+ *
311
+ * @title:
312
+ * Glyph Layer Management
313
+ *
314
+ * @abstract:
315
+ * Retrieving and manipulating OpenType's 'COLR' table data.
316
+ *
317
+ * @description:
318
+ * The functions described here allow access of colored glyph layer data
319
+ * in OpenType's 'COLR' tables.
320
+ */
321
+
322
+
323
+ /**************************************************************************
324
+ *
325
+ * @struct:
326
+ * FT_LayerIterator
327
+ *
328
+ * @description:
329
+ * This iterator object is needed for @FT_Get_Color_Glyph_Layer.
330
+ *
331
+ * @fields:
332
+ * num_layers ::
333
+ * The number of glyph layers for the requested glyph index. Will be
334
+ * set by @FT_Get_Color_Glyph_Layer.
335
+ *
336
+ * layer ::
337
+ * The current layer. Will be set by @FT_Get_Color_Glyph_Layer.
338
+ *
339
+ * p ::
340
+ * An opaque pointer into 'COLR' table data. The caller must set this
341
+ * to `NULL` before the first call of @FT_Get_Color_Glyph_Layer.
342
+ */
343
+ typedef struct FT_LayerIterator_
344
+ {
345
+ FT_UInt num_layers;
346
+ FT_UInt layer;
347
+ FT_Byte* p;
348
+
349
+ } FT_LayerIterator;
350
+
351
+
352
+ /**************************************************************************
353
+ *
354
+ * @function:
355
+ * FT_Get_Color_Glyph_Layer
356
+ *
357
+ * @description:
358
+ * This is an interface to the 'COLR' table in OpenType fonts to
359
+ * iteratively retrieve the colored glyph layers associated with the
360
+ * current glyph slot.
361
+ *
362
+ * https://docs.microsoft.com/en-us/typography/opentype/spec/colr
363
+ *
364
+ * The glyph layer data for a given glyph index, if present, provides an
365
+ * alternative, multi-color glyph representation: Instead of rendering
366
+ * the outline or bitmap with the given glyph index, glyphs with the
367
+ * indices and colors returned by this function are rendered layer by
368
+ * layer.
369
+ *
370
+ * The returned elements are ordered in the z~direction from bottom to
371
+ * top; the 'n'th element should be rendered with the associated palette
372
+ * color and blended on top of the already rendered layers (elements 0,
373
+ * 1, ..., n-1).
374
+ *
375
+ * @input:
376
+ * face ::
377
+ * A handle to the parent face object.
378
+ *
379
+ * base_glyph ::
380
+ * The glyph index the colored glyph layers are associated with.
381
+ *
382
+ * @inout:
383
+ * iterator ::
384
+ * An @FT_LayerIterator object. For the first call you should set
385
+ * `iterator->p` to `NULL`. For all following calls, simply use the
386
+ * same object again.
387
+ *
388
+ * @output:
389
+ * aglyph_index ::
390
+ * The glyph index of the current layer.
391
+ *
392
+ * acolor_index ::
393
+ * The color index into the font face's color palette of the current
394
+ * layer. The value 0xFFFF is special; it doesn't reference a palette
395
+ * entry but indicates that the text foreground color should be used
396
+ * instead (to be set up by the application outside of FreeType).
397
+ *
398
+ * The color palette can be retrieved with @FT_Palette_Select.
399
+ *
400
+ * @return:
401
+ * Value~1 if everything is OK. If there are no more layers (or if there
402
+ * are no layers at all), value~0 gets returned. In case of an error,
403
+ * value~0 is returned also.
404
+ *
405
+ * @note:
406
+ * This function is necessary if you want to handle glyph layers by
407
+ * yourself. In particular, functions that operate with @FT_GlyphRec
408
+ * objects (like @FT_Get_Glyph or @FT_Glyph_To_Bitmap) don't have access
409
+ * to this information.
410
+ *
411
+ * Note that @FT_Render_Glyph is able to handle colored glyph layers
412
+ * automatically if the @FT_LOAD_COLOR flag is passed to a previous call
413
+ * to @FT_Load_Glyph. [This is an experimental feature.]
414
+ *
415
+ * @example:
416
+ * ```
417
+ * FT_Color* palette;
418
+ * FT_LayerIterator iterator;
419
+ *
420
+ * FT_Bool have_layers;
421
+ * FT_UInt layer_glyph_index;
422
+ * FT_UInt layer_color_index;
423
+ *
424
+ *
425
+ * error = FT_Palette_Select( face, palette_index, &palette );
426
+ * if ( error )
427
+ * palette = NULL;
428
+ *
429
+ * iterator.p = NULL;
430
+ * have_layers = FT_Get_Color_Glyph_Layer( face,
431
+ * glyph_index,
432
+ * &layer_glyph_index,
433
+ * &layer_color_index,
434
+ * &iterator );
435
+ *
436
+ * if ( palette && have_layers )
437
+ * {
438
+ * do
439
+ * {
440
+ * FT_Color layer_color;
441
+ *
442
+ *
443
+ * if ( layer_color_index == 0xFFFF )
444
+ * layer_color = text_foreground_color;
445
+ * else
446
+ * layer_color = palette[layer_color_index];
447
+ *
448
+ * // Load and render glyph `layer_glyph_index', then
449
+ * // blend resulting pixmap (using color `layer_color')
450
+ * // with previously created pixmaps.
451
+ *
452
+ * } while ( FT_Get_Color_Glyph_Layer( face,
453
+ * glyph_index,
454
+ * &layer_glyph_index,
455
+ * &layer_color_index,
456
+ * &iterator ) );
457
+ * }
458
+ * ```
459
+ *
460
+ * @since:
461
+ * 2.10
462
+ */
463
+ FT_EXPORT( FT_Bool )
464
+ FT_Get_Color_Glyph_Layer( FT_Face face,
465
+ FT_UInt base_glyph,
466
+ FT_UInt *aglyph_index,
467
+ FT_UInt *acolor_index,
468
+ FT_LayerIterator* iterator );
469
+
470
+
471
+ /**************************************************************************
472
+ *
473
+ * @enum:
474
+ * FT_PaintFormat
475
+ *
476
+ * @description:
477
+ * Enumeration describing the different paint format types of the v1
478
+ * extensions to the 'COLR' table, see
479
+ * 'https://github.com/googlefonts/colr-gradients-spec'.
480
+ *
481
+ * The enumeration values loosely correspond with the format numbers of
482
+ * the specification: FreeType always returns a fully specified 'Paint'
483
+ * structure for the 'Transform', 'Translate', 'Scale', 'Rotate', and
484
+ * 'Skew' table types even though the specification has different formats
485
+ * depending on whether or not a center is specified, whether the scale
486
+ * is uniform in x and y~direction or not, etc. Also, only non-variable
487
+ * format identifiers are listed in this enumeration; as soon as support
488
+ * for variable 'COLR' v1 fonts is implemented, interpolation is
489
+ * performed dependent on axis coordinates, which are configured on the
490
+ * @FT_Face through @FT_Set_Var_Design_Coordinates. This implies that
491
+ * always static, readily interpolated values are returned in the 'Paint'
492
+ * structures.
493
+ *
494
+ * @since:
495
+ * 2.13
496
+ */
497
+ typedef enum FT_PaintFormat_
498
+ {
499
+ FT_COLR_PAINTFORMAT_COLR_LAYERS = 1,
500
+ FT_COLR_PAINTFORMAT_SOLID = 2,
501
+ FT_COLR_PAINTFORMAT_LINEAR_GRADIENT = 4,
502
+ FT_COLR_PAINTFORMAT_RADIAL_GRADIENT = 6,
503
+ FT_COLR_PAINTFORMAT_SWEEP_GRADIENT = 8,
504
+ FT_COLR_PAINTFORMAT_GLYPH = 10,
505
+ FT_COLR_PAINTFORMAT_COLR_GLYPH = 11,
506
+ FT_COLR_PAINTFORMAT_TRANSFORM = 12,
507
+ FT_COLR_PAINTFORMAT_TRANSLATE = 14,
508
+ FT_COLR_PAINTFORMAT_SCALE = 16,
509
+ FT_COLR_PAINTFORMAT_ROTATE = 24,
510
+ FT_COLR_PAINTFORMAT_SKEW = 28,
511
+ FT_COLR_PAINTFORMAT_COMPOSITE = 32,
512
+ FT_COLR_PAINT_FORMAT_MAX = 33,
513
+ FT_COLR_PAINTFORMAT_UNSUPPORTED = 255
514
+
515
+ } FT_PaintFormat;
516
+
517
+
518
+ /**************************************************************************
519
+ *
520
+ * @struct:
521
+ * FT_ColorStopIterator
522
+ *
523
+ * @description:
524
+ * This iterator object is needed for @FT_Get_Colorline_Stops. It keeps
525
+ * state while iterating over the stops of an @FT_ColorLine, representing
526
+ * the `ColorLine` struct of the v1 extensions to 'COLR', see
527
+ * 'https://github.com/googlefonts/colr-gradients-spec'. Do not manually
528
+ * modify fields of this iterator.
529
+ *
530
+ * @fields:
531
+ * num_color_stops ::
532
+ * The number of color stops for the requested glyph index. Set by
533
+ * @FT_Get_Paint.
534
+ *
535
+ * current_color_stop ::
536
+ * The current color stop. Set by @FT_Get_Colorline_Stops.
537
+ *
538
+ * p ::
539
+ * An opaque pointer into 'COLR' table data. Set by @FT_Get_Paint.
540
+ * Updated by @FT_Get_Colorline_Stops.
541
+ *
542
+ * read_variable ::
543
+ * A boolean keeping track of whether variable color lines are to be
544
+ * read. Set by @FT_Get_Paint.
545
+ *
546
+ * @since:
547
+ * 2.13
548
+ */
549
+ typedef struct FT_ColorStopIterator_
550
+ {
551
+ FT_UInt num_color_stops;
552
+ FT_UInt current_color_stop;
553
+
554
+ FT_Byte* p;
555
+
556
+ FT_Bool read_variable;
557
+
558
+ } FT_ColorStopIterator;
559
+
560
+
561
+ /**************************************************************************
562
+ *
563
+ * @struct:
564
+ * FT_ColorIndex
565
+ *
566
+ * @description:
567
+ * A structure representing a `ColorIndex` value of the 'COLR' v1
568
+ * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'.
569
+ *
570
+ * @fields:
571
+ * palette_index ::
572
+ * The palette index into a 'CPAL' palette.
573
+ *
574
+ * alpha ::
575
+ * Alpha transparency value multiplied with the value from 'CPAL'.
576
+ *
577
+ * @since:
578
+ * 2.13
579
+ */
580
+ typedef struct FT_ColorIndex_
581
+ {
582
+ FT_UInt16 palette_index;
583
+ FT_F2Dot14 alpha;
584
+
585
+ } FT_ColorIndex;
586
+
587
+
588
+ /**************************************************************************
589
+ *
590
+ * @struct:
591
+ * FT_ColorStop
592
+ *
593
+ * @description:
594
+ * A structure representing a `ColorStop` value of the 'COLR' v1
595
+ * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'.
596
+ *
597
+ * @fields:
598
+ * stop_offset ::
599
+ * The stop offset along the gradient, expressed as a 16.16 fixed-point
600
+ * coordinate.
601
+ *
602
+ * color ::
603
+ * The color information for this stop, see @FT_ColorIndex.
604
+ *
605
+ * @since:
606
+ * 2.13
607
+ */
608
+ typedef struct FT_ColorStop_
609
+ {
610
+ FT_Fixed stop_offset;
611
+ FT_ColorIndex color;
612
+
613
+ } FT_ColorStop;
614
+
615
+
616
+ /**************************************************************************
617
+ *
618
+ * @enum:
619
+ * FT_PaintExtend
620
+ *
621
+ * @description:
622
+ * An enumeration representing the 'Extend' mode of the 'COLR' v1
623
+ * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'.
624
+ * It describes how the gradient fill continues at the other boundaries.
625
+ *
626
+ * @since:
627
+ * 2.13
628
+ */
629
+ typedef enum FT_PaintExtend_
630
+ {
631
+ FT_COLR_PAINT_EXTEND_PAD = 0,
632
+ FT_COLR_PAINT_EXTEND_REPEAT = 1,
633
+ FT_COLR_PAINT_EXTEND_REFLECT = 2
634
+
635
+ } FT_PaintExtend;
636
+
637
+
638
+ /**************************************************************************
639
+ *
640
+ * @struct:
641
+ * FT_ColorLine
642
+ *
643
+ * @description:
644
+ * A structure representing a `ColorLine` value of the 'COLR' v1
645
+ * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'.
646
+ * It describes a list of color stops along the defined gradient.
647
+ *
648
+ * @fields:
649
+ * extend ::
650
+ * The extend mode at the outer boundaries, see @FT_PaintExtend.
651
+ *
652
+ * color_stop_iterator ::
653
+ * The @FT_ColorStopIterator used to enumerate and retrieve the
654
+ * actual @FT_ColorStop's.
655
+ *
656
+ * @since:
657
+ * 2.13
658
+ */
659
+ typedef struct FT_ColorLine_
660
+ {
661
+ FT_PaintExtend extend;
662
+ FT_ColorStopIterator color_stop_iterator;
663
+
664
+ } FT_ColorLine;
665
+
666
+
667
+ /**************************************************************************
668
+ *
669
+ * @struct:
670
+ * FT_Affine23
671
+ *
672
+ * @description:
673
+ * A structure used to store a 2x3 matrix. Coefficients are in
674
+ * 16.16 fixed-point format. The computation performed is
675
+ *
676
+ * ```
677
+ * x' = x*xx + y*xy + dx
678
+ * y' = x*yx + y*yy + dy
679
+ * ```
680
+ *
681
+ * @fields:
682
+ * xx ::
683
+ * Matrix coefficient.
684
+ *
685
+ * xy ::
686
+ * Matrix coefficient.
687
+ *
688
+ * dx ::
689
+ * x translation.
690
+ *
691
+ * yx ::
692
+ * Matrix coefficient.
693
+ *
694
+ * yy ::
695
+ * Matrix coefficient.
696
+ *
697
+ * dy ::
698
+ * y translation.
699
+ *
700
+ * @since:
701
+ * 2.13
702
+ */
703
+ typedef struct FT_Affine_23_
704
+ {
705
+ FT_Fixed xx, xy, dx;
706
+ FT_Fixed yx, yy, dy;
707
+
708
+ } FT_Affine23;
709
+
710
+
711
+ /**************************************************************************
712
+ *
713
+ * @enum:
714
+ * FT_Composite_Mode
715
+ *
716
+ * @description:
717
+ * An enumeration listing the 'COLR' v1 composite modes used in
718
+ * @FT_PaintComposite. For more details on each paint mode, see
719
+ * 'https://www.w3.org/TR/compositing-1/#porterduffcompositingoperators'.
720
+ *
721
+ * @since:
722
+ * 2.13
723
+ */
724
+ typedef enum FT_Composite_Mode_
725
+ {
726
+ FT_COLR_COMPOSITE_CLEAR = 0,
727
+ FT_COLR_COMPOSITE_SRC = 1,
728
+ FT_COLR_COMPOSITE_DEST = 2,
729
+ FT_COLR_COMPOSITE_SRC_OVER = 3,
730
+ FT_COLR_COMPOSITE_DEST_OVER = 4,
731
+ FT_COLR_COMPOSITE_SRC_IN = 5,
732
+ FT_COLR_COMPOSITE_DEST_IN = 6,
733
+ FT_COLR_COMPOSITE_SRC_OUT = 7,
734
+ FT_COLR_COMPOSITE_DEST_OUT = 8,
735
+ FT_COLR_COMPOSITE_SRC_ATOP = 9,
736
+ FT_COLR_COMPOSITE_DEST_ATOP = 10,
737
+ FT_COLR_COMPOSITE_XOR = 11,
738
+ FT_COLR_COMPOSITE_PLUS = 12,
739
+ FT_COLR_COMPOSITE_SCREEN = 13,
740
+ FT_COLR_COMPOSITE_OVERLAY = 14,
741
+ FT_COLR_COMPOSITE_DARKEN = 15,
742
+ FT_COLR_COMPOSITE_LIGHTEN = 16,
743
+ FT_COLR_COMPOSITE_COLOR_DODGE = 17,
744
+ FT_COLR_COMPOSITE_COLOR_BURN = 18,
745
+ FT_COLR_COMPOSITE_HARD_LIGHT = 19,
746
+ FT_COLR_COMPOSITE_SOFT_LIGHT = 20,
747
+ FT_COLR_COMPOSITE_DIFFERENCE = 21,
748
+ FT_COLR_COMPOSITE_EXCLUSION = 22,
749
+ FT_COLR_COMPOSITE_MULTIPLY = 23,
750
+ FT_COLR_COMPOSITE_HSL_HUE = 24,
751
+ FT_COLR_COMPOSITE_HSL_SATURATION = 25,
752
+ FT_COLR_COMPOSITE_HSL_COLOR = 26,
753
+ FT_COLR_COMPOSITE_HSL_LUMINOSITY = 27,
754
+ FT_COLR_COMPOSITE_MAX = 28
755
+
756
+ } FT_Composite_Mode;
757
+
758
+
759
+ /**************************************************************************
760
+ *
761
+ * @struct:
762
+ * FT_OpaquePaint
763
+ *
764
+ * @description:
765
+ * A structure representing an offset to a `Paint` value stored in any
766
+ * of the paint tables of a 'COLR' v1 font. Compare Offset<24> there.
767
+ * When 'COLR' v1 paint tables represented by FreeType objects such as
768
+ * @FT_PaintColrLayers, @FT_PaintComposite, or @FT_PaintTransform
769
+ * reference downstream nested paint tables, we do not immediately
770
+ * retrieve them but encapsulate their location in this type. Use
771
+ * @FT_Get_Paint to retrieve the actual @FT_COLR_Paint object that
772
+ * describes the details of the respective paint table.
773
+ *
774
+ * @fields:
775
+ * p ::
776
+ * An internal offset to a Paint table, needs to be set to NULL before
777
+ * passing this struct as an argument to @FT_Get_Paint.
778
+ *
779
+ * insert_root_transform ::
780
+ * An internal boolean to track whether an initial root transform is
781
+ * to be provided. Do not set this value.
782
+ *
783
+ * @since:
784
+ * 2.13
785
+ */
786
+ typedef struct FT_Opaque_Paint_
787
+ {
788
+ FT_Byte* p;
789
+ FT_Bool insert_root_transform;
790
+ } FT_OpaquePaint;
791
+
792
+
793
+ /**************************************************************************
794
+ *
795
+ * @struct:
796
+ * FT_PaintColrLayers
797
+ *
798
+ * @description:
799
+ * A structure representing a `PaintColrLayers` table of a 'COLR' v1
800
+ * font. This table describes a set of layers that are to be composited
801
+ * with composite mode `FT_COLR_COMPOSITE_SRC_OVER`. The return value
802
+ * of this function is an @FT_LayerIterator initialized so that it can
803
+ * be used with @FT_Get_Paint_Layers to retrieve the @FT_OpaquePaint
804
+ * objects as references to each layer.
805
+ *
806
+ * @fields:
807
+ * layer_iterator ::
808
+ * The layer iterator that describes the layers of this paint.
809
+ *
810
+ * @since:
811
+ * 2.13
812
+ */
813
+ typedef struct FT_PaintColrLayers_
814
+ {
815
+ FT_LayerIterator layer_iterator;
816
+
817
+ } FT_PaintColrLayers;
818
+
819
+
820
+ /**************************************************************************
821
+ *
822
+ * @struct:
823
+ * FT_PaintSolid
824
+ *
825
+ * @description:
826
+ * A structure representing a `PaintSolid` value of the 'COLR' v1
827
+ * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'.
828
+ * Using a `PaintSolid` value means that the glyph layer filled with
829
+ * this paint is solid-colored and does not contain a gradient.
830
+ *
831
+ * @fields:
832
+ * color ::
833
+ * The color information for this solid paint, see @FT_ColorIndex.
834
+ *
835
+ * @since:
836
+ * 2.13
837
+ */
838
+ typedef struct FT_PaintSolid_
839
+ {
840
+ FT_ColorIndex color;
841
+
842
+ } FT_PaintSolid;
843
+
844
+
845
+ /**************************************************************************
846
+ *
847
+ * @struct:
848
+ * FT_PaintLinearGradient
849
+ *
850
+ * @description:
851
+ * A structure representing a `PaintLinearGradient` value of the 'COLR'
852
+ * v1 extensions, see
853
+ * 'https://github.com/googlefonts/colr-gradients-spec'. The glyph
854
+ * layer filled with this paint is drawn filled with a linear gradient.
855
+ *
856
+ * @fields:
857
+ * colorline ::
858
+ * The @FT_ColorLine information for this paint, i.e., the list of
859
+ * color stops along the gradient.
860
+ *
861
+ * p0 ::
862
+ * The starting point of the gradient definition in font units
863
+ * represented as a 16.16 fixed-point `FT_Vector`.
864
+ *
865
+ * p1 ::
866
+ * The end point of the gradient definition in font units
867
+ * represented as a 16.16 fixed-point `FT_Vector`.
868
+ *
869
+ * p2 ::
870
+ * Optional point~p2 to rotate the gradient in font units
871
+ * represented as a 16.16 fixed-point `FT_Vector`.
872
+ * Otherwise equal to~p0.
873
+ *
874
+ * @since:
875
+ * 2.13
876
+ */
877
+ typedef struct FT_PaintLinearGradient_
878
+ {
879
+ FT_ColorLine colorline;
880
+
881
+ /* TODO: Potentially expose those as x0, y0 etc. */
882
+ FT_Vector p0;
883
+ FT_Vector p1;
884
+ FT_Vector p2;
885
+
886
+ } FT_PaintLinearGradient;
887
+
888
+
889
+ /**************************************************************************
890
+ *
891
+ * @struct:
892
+ * FT_PaintRadialGradient
893
+ *
894
+ * @description:
895
+ * A structure representing a `PaintRadialGradient` value of the 'COLR'
896
+ * v1 extensions, see
897
+ * 'https://github.com/googlefonts/colr-gradients-spec'. The glyph
898
+ * layer filled with this paint is drawn filled with a radial gradient.
899
+ *
900
+ * @fields:
901
+ * colorline ::
902
+ * The @FT_ColorLine information for this paint, i.e., the list of
903
+ * color stops along the gradient.
904
+ *
905
+ * c0 ::
906
+ * The center of the starting point of the radial gradient in font
907
+ * units represented as a 16.16 fixed-point `FT_Vector`.
908
+ *
909
+ * r0 ::
910
+ * The radius of the starting circle of the radial gradient in font
911
+ * units represented as a 16.16 fixed-point value.
912
+ *
913
+ * c1 ::
914
+ * The center of the end point of the radial gradient in font units
915
+ * represented as a 16.16 fixed-point `FT_Vector`.
916
+ *
917
+ * r1 ::
918
+ * The radius of the end circle of the radial gradient in font
919
+ * units represented as a 16.16 fixed-point value.
920
+ *
921
+ * @since:
922
+ * 2.13
923
+ */
924
+ typedef struct FT_PaintRadialGradient_
925
+ {
926
+ FT_ColorLine colorline;
927
+
928
+ FT_Vector c0;
929
+ FT_Pos r0;
930
+ FT_Vector c1;
931
+ FT_Pos r1;
932
+
933
+ } FT_PaintRadialGradient;
934
+
935
+
936
+ /**************************************************************************
937
+ *
938
+ * @struct:
939
+ * FT_PaintSweepGradient
940
+ *
941
+ * @description:
942
+ * A structure representing a `PaintSweepGradient` value of the 'COLR'
943
+ * v1 extensions, see
944
+ * 'https://github.com/googlefonts/colr-gradients-spec'. The glyph
945
+ * layer filled with this paint is drawn filled with a sweep gradient
946
+ * from `start_angle` to `end_angle`.
947
+ *
948
+ * @fields:
949
+ * colorline ::
950
+ * The @FT_ColorLine information for this paint, i.e., the list of
951
+ * color stops along the gradient.
952
+ *
953
+ * center ::
954
+ * The center of the sweep gradient in font units represented as a
955
+ * vector of 16.16 fixed-point values.
956
+ *
957
+ * start_angle ::
958
+ * The start angle of the sweep gradient in 16.16 fixed-point
959
+ * format specifying degrees divided by 180.0 (as in the
960
+ * spec). Multiply by 180.0f to receive degrees value. Values are
961
+ * given counter-clockwise, starting from the (positive) y~axis.
962
+ *
963
+ * end_angle ::
964
+ * The end angle of the sweep gradient in 16.16 fixed-point
965
+ * format specifying degrees divided by 180.0 (as in the
966
+ * spec). Multiply by 180.0f to receive degrees value. Values are
967
+ * given counter-clockwise, starting from the (positive) y~axis.
968
+ *
969
+ * @since:
970
+ * 2.13
971
+ */
972
+ typedef struct FT_PaintSweepGradient_
973
+ {
974
+ FT_ColorLine colorline;
975
+
976
+ FT_Vector center;
977
+ FT_Fixed start_angle;
978
+ FT_Fixed end_angle;
979
+
980
+ } FT_PaintSweepGradient;
981
+
982
+
983
+ /**************************************************************************
984
+ *
985
+ * @struct:
986
+ * FT_PaintGlyph
987
+ *
988
+ * @description:
989
+ * A structure representing a 'COLR' v1 `PaintGlyph` paint table.
990
+ *
991
+ * @fields:
992
+ * paint ::
993
+ * An opaque paint object pointing to a `Paint` table that serves as
994
+ * the fill for the glyph ID.
995
+ *
996
+ * glyphID ::
997
+ * The glyph ID from the 'glyf' table, which serves as the contour
998
+ * information that is filled with paint.
999
+ *
1000
+ * @since:
1001
+ * 2.13
1002
+ */
1003
+ typedef struct FT_PaintGlyph_
1004
+ {
1005
+ FT_OpaquePaint paint;
1006
+ FT_UInt glyphID;
1007
+
1008
+ } FT_PaintGlyph;
1009
+
1010
+
1011
+ /**************************************************************************
1012
+ *
1013
+ * @struct:
1014
+ * FT_PaintColrGlyph
1015
+ *
1016
+ * @description:
1017
+ * A structure representing a 'COLR' v1 `PaintColorGlyph` paint table.
1018
+ *
1019
+ * @fields:
1020
+ * glyphID ::
1021
+ * The glyph ID from the `BaseGlyphV1List` table that is drawn for
1022
+ * this paint.
1023
+ *
1024
+ * @since:
1025
+ * 2.13
1026
+ */
1027
+ typedef struct FT_PaintColrGlyph_
1028
+ {
1029
+ FT_UInt glyphID;
1030
+
1031
+ } FT_PaintColrGlyph;
1032
+
1033
+
1034
+ /**************************************************************************
1035
+ *
1036
+ * @struct:
1037
+ * FT_PaintTransform
1038
+ *
1039
+ * @description:
1040
+ * A structure representing a 'COLR' v1 `PaintTransform` paint table.
1041
+ *
1042
+ * @fields:
1043
+ * paint ::
1044
+ * An opaque paint that is subject to being transformed.
1045
+ *
1046
+ * affine ::
1047
+ * A 2x3 transformation matrix in @FT_Affine23 format containing
1048
+ * 16.16 fixed-point values.
1049
+ *
1050
+ * @since:
1051
+ * 2.13
1052
+ */
1053
+ typedef struct FT_PaintTransform_
1054
+ {
1055
+ FT_OpaquePaint paint;
1056
+ FT_Affine23 affine;
1057
+
1058
+ } FT_PaintTransform;
1059
+
1060
+
1061
+ /**************************************************************************
1062
+ *
1063
+ * @struct:
1064
+ * FT_PaintTranslate
1065
+ *
1066
+ * @description:
1067
+ * A structure representing a 'COLR' v1 `PaintTranslate` paint table.
1068
+ * Used for translating downstream paints by a given x and y~delta.
1069
+ *
1070
+ * @fields:
1071
+ * paint ::
1072
+ * An @FT_OpaquePaint object referencing the paint that is to be
1073
+ * rotated.
1074
+ *
1075
+ * dx ::
1076
+ * Translation in x~direction in font units represented as a
1077
+ * 16.16 fixed-point value.
1078
+ *
1079
+ * dy ::
1080
+ * Translation in y~direction in font units represented as a
1081
+ * 16.16 fixed-point value.
1082
+ *
1083
+ * @since:
1084
+ * 2.13
1085
+ */
1086
+ typedef struct FT_PaintTranslate_
1087
+ {
1088
+ FT_OpaquePaint paint;
1089
+
1090
+ FT_Fixed dx;
1091
+ FT_Fixed dy;
1092
+
1093
+ } FT_PaintTranslate;
1094
+
1095
+
1096
+ /**************************************************************************
1097
+ *
1098
+ * @struct:
1099
+ * FT_PaintScale
1100
+ *
1101
+ * @description:
1102
+ * A structure representing all of the 'COLR' v1 'PaintScale*' paint
1103
+ * tables. Used for scaling downstream paints by a given x and y~scale,
1104
+ * with a given center. This structure is used for all 'PaintScale*'
1105
+ * types that are part of specification; fields of this structure are
1106
+ * filled accordingly. If there is a center, the center values are set,
1107
+ * otherwise they are set to the zero coordinate. If the source font
1108
+ * file has 'PaintScaleUniform*' set, the scale values are set
1109
+ * accordingly to the same value.
1110
+ *
1111
+ * @fields:
1112
+ * paint ::
1113
+ * An @FT_OpaquePaint object referencing the paint that is to be
1114
+ * scaled.
1115
+ *
1116
+ * scale_x ::
1117
+ * Scale factor in x~direction represented as a
1118
+ * 16.16 fixed-point value.
1119
+ *
1120
+ * scale_y ::
1121
+ * Scale factor in y~direction represented as a
1122
+ * 16.16 fixed-point value.
1123
+ *
1124
+ * center_x ::
1125
+ * x~coordinate of center point to scale from represented as a
1126
+ * 16.16 fixed-point value.
1127
+ *
1128
+ * center_y ::
1129
+ * y~coordinate of center point to scale from represented as a
1130
+ * 16.16 fixed-point value.
1131
+ *
1132
+ * @since:
1133
+ * 2.13
1134
+ */
1135
+ typedef struct FT_PaintScale_
1136
+ {
1137
+ FT_OpaquePaint paint;
1138
+
1139
+ FT_Fixed scale_x;
1140
+ FT_Fixed scale_y;
1141
+
1142
+ FT_Fixed center_x;
1143
+ FT_Fixed center_y;
1144
+
1145
+ } FT_PaintScale;
1146
+
1147
+
1148
+ /**************************************************************************
1149
+ *
1150
+ * @struct:
1151
+ * FT_PaintRotate
1152
+ *
1153
+ * @description:
1154
+ * A structure representing a 'COLR' v1 `PaintRotate` paint table. Used
1155
+ * for rotating downstream paints with a given center and angle.
1156
+ *
1157
+ * @fields:
1158
+ * paint ::
1159
+ * An @FT_OpaquePaint object referencing the paint that is to be
1160
+ * rotated.
1161
+ *
1162
+ * angle ::
1163
+ * The rotation angle that is to be applied in degrees divided by
1164
+ * 180.0 (as in the spec) represented as a 16.16 fixed-point
1165
+ * value. Multiply by 180.0f to receive degrees value.
1166
+ *
1167
+ * center_x ::
1168
+ * The x~coordinate of the pivot point of the rotation in font
1169
+ * units represented as a 16.16 fixed-point value.
1170
+ *
1171
+ * center_y ::
1172
+ * The y~coordinate of the pivot point of the rotation in font
1173
+ * units represented as a 16.16 fixed-point value.
1174
+ *
1175
+ * @since:
1176
+ * 2.13
1177
+ */
1178
+
1179
+ typedef struct FT_PaintRotate_
1180
+ {
1181
+ FT_OpaquePaint paint;
1182
+
1183
+ FT_Fixed angle;
1184
+
1185
+ FT_Fixed center_x;
1186
+ FT_Fixed center_y;
1187
+
1188
+ } FT_PaintRotate;
1189
+
1190
+
1191
+ /**************************************************************************
1192
+ *
1193
+ * @struct:
1194
+ * FT_PaintSkew
1195
+ *
1196
+ * @description:
1197
+ * A structure representing a 'COLR' v1 `PaintSkew` paint table. Used
1198
+ * for skewing or shearing downstream paints by a given center and
1199
+ * angle.
1200
+ *
1201
+ * @fields:
1202
+ * paint ::
1203
+ * An @FT_OpaquePaint object referencing the paint that is to be
1204
+ * skewed.
1205
+ *
1206
+ * x_skew_angle ::
1207
+ * The skewing angle in x~direction in degrees divided by 180.0
1208
+ * (as in the spec) represented as a 16.16 fixed-point
1209
+ * value. Multiply by 180.0f to receive degrees.
1210
+ *
1211
+ * y_skew_angle ::
1212
+ * The skewing angle in y~direction in degrees divided by 180.0
1213
+ * (as in the spec) represented as a 16.16 fixed-point
1214
+ * value. Multiply by 180.0f to receive degrees.
1215
+ *
1216
+ * center_x ::
1217
+ * The x~coordinate of the pivot point of the skew in font units
1218
+ * represented as a 16.16 fixed-point value.
1219
+ *
1220
+ * center_y ::
1221
+ * The y~coordinate of the pivot point of the skew in font units
1222
+ * represented as a 16.16 fixed-point value.
1223
+ *
1224
+ * @since:
1225
+ * 2.13
1226
+ */
1227
+ typedef struct FT_PaintSkew_
1228
+ {
1229
+ FT_OpaquePaint paint;
1230
+
1231
+ FT_Fixed x_skew_angle;
1232
+ FT_Fixed y_skew_angle;
1233
+
1234
+ FT_Fixed center_x;
1235
+ FT_Fixed center_y;
1236
+
1237
+ } FT_PaintSkew;
1238
+
1239
+
1240
+ /**************************************************************************
1241
+ *
1242
+ * @struct:
1243
+ * FT_PaintComposite
1244
+ *
1245
+ * @description:
1246
+ * A structure representing a 'COLR' v1 `PaintComposite` paint table.
1247
+ * Used for compositing two paints in a 'COLR' v1 directed acyclic graph.
1248
+ *
1249
+ * @fields:
1250
+ * source_paint ::
1251
+ * An @FT_OpaquePaint object referencing the source that is to be
1252
+ * composited.
1253
+ *
1254
+ * composite_mode ::
1255
+ * An @FT_Composite_Mode enum value determining the composition
1256
+ * operation.
1257
+ *
1258
+ * backdrop_paint ::
1259
+ * An @FT_OpaquePaint object referencing the backdrop paint that
1260
+ * `source_paint` is composited onto.
1261
+ *
1262
+ * @since:
1263
+ * 2.13
1264
+ */
1265
+ typedef struct FT_PaintComposite_
1266
+ {
1267
+ FT_OpaquePaint source_paint;
1268
+ FT_Composite_Mode composite_mode;
1269
+ FT_OpaquePaint backdrop_paint;
1270
+
1271
+ } FT_PaintComposite;
1272
+
1273
+
1274
+ /**************************************************************************
1275
+ *
1276
+ * @union:
1277
+ * FT_COLR_Paint
1278
+ *
1279
+ * @description:
1280
+ * A union object representing format and details of a paint table of a
1281
+ * 'COLR' v1 font, see
1282
+ * 'https://github.com/googlefonts/colr-gradients-spec'. Use
1283
+ * @FT_Get_Paint to retrieve a @FT_COLR_Paint for an @FT_OpaquePaint
1284
+ * object.
1285
+ *
1286
+ * @fields:
1287
+ * format ::
1288
+ * The gradient format for this Paint structure.
1289
+ *
1290
+ * u ::
1291
+ * Union of all paint table types:
1292
+ *
1293
+ * * @FT_PaintColrLayers
1294
+ * * @FT_PaintGlyph
1295
+ * * @FT_PaintSolid
1296
+ * * @FT_PaintLinearGradient
1297
+ * * @FT_PaintRadialGradient
1298
+ * * @FT_PaintSweepGradient
1299
+ * * @FT_PaintTransform
1300
+ * * @FT_PaintTranslate
1301
+ * * @FT_PaintRotate
1302
+ * * @FT_PaintSkew
1303
+ * * @FT_PaintComposite
1304
+ * * @FT_PaintColrGlyph
1305
+ *
1306
+ * @since:
1307
+ * 2.13
1308
+ */
1309
+ typedef struct FT_COLR_Paint_
1310
+ {
1311
+ FT_PaintFormat format;
1312
+
1313
+ union
1314
+ {
1315
+ FT_PaintColrLayers colr_layers;
1316
+ FT_PaintGlyph glyph;
1317
+ FT_PaintSolid solid;
1318
+ FT_PaintLinearGradient linear_gradient;
1319
+ FT_PaintRadialGradient radial_gradient;
1320
+ FT_PaintSweepGradient sweep_gradient;
1321
+ FT_PaintTransform transform;
1322
+ FT_PaintTranslate translate;
1323
+ FT_PaintScale scale;
1324
+ FT_PaintRotate rotate;
1325
+ FT_PaintSkew skew;
1326
+ FT_PaintComposite composite;
1327
+ FT_PaintColrGlyph colr_glyph;
1328
+
1329
+ } u;
1330
+
1331
+ } FT_COLR_Paint;
1332
+
1333
+
1334
+ /**************************************************************************
1335
+ *
1336
+ * @enum:
1337
+ * FT_Color_Root_Transform
1338
+ *
1339
+ * @description:
1340
+ * An enumeration to specify whether @FT_Get_Color_Glyph_Paint is to
1341
+ * return a root transform to configure the client's graphics context
1342
+ * matrix.
1343
+ *
1344
+ * @values:
1345
+ * FT_COLOR_INCLUDE_ROOT_TRANSFORM ::
1346
+ * Do include the root transform as the initial @FT_COLR_Paint object.
1347
+ *
1348
+ * FT_COLOR_NO_ROOT_TRANSFORM ::
1349
+ * Do not output an initial root transform.
1350
+ *
1351
+ * @since:
1352
+ * 2.13
1353
+ */
1354
+ typedef enum FT_Color_Root_Transform_
1355
+ {
1356
+ FT_COLOR_INCLUDE_ROOT_TRANSFORM,
1357
+ FT_COLOR_NO_ROOT_TRANSFORM,
1358
+
1359
+ FT_COLOR_ROOT_TRANSFORM_MAX
1360
+
1361
+ } FT_Color_Root_Transform;
1362
+
1363
+
1364
+ /**************************************************************************
1365
+ *
1366
+ * @struct:
1367
+ * FT_ClipBox
1368
+ *
1369
+ * @description:
1370
+ * A structure representing a 'COLR' v1 'ClipBox' table. 'COLR' v1
1371
+ * glyphs may optionally define a clip box for aiding allocation or
1372
+ * defining a maximum drawable region. Use @FT_Get_Color_Glyph_ClipBox
1373
+ * to retrieve it.
1374
+ *
1375
+ * @fields:
1376
+ * bottom_left ::
1377
+ * The bottom left corner of the clip box as an @FT_Vector with
1378
+ * fixed-point coordinates in 26.6 format.
1379
+ *
1380
+ * top_left ::
1381
+ * The top left corner of the clip box as an @FT_Vector with
1382
+ * fixed-point coordinates in 26.6 format.
1383
+ *
1384
+ * top_right ::
1385
+ * The top right corner of the clip box as an @FT_Vector with
1386
+ * fixed-point coordinates in 26.6 format.
1387
+ *
1388
+ * bottom_right ::
1389
+ * The bottom right corner of the clip box as an @FT_Vector with
1390
+ * fixed-point coordinates in 26.6 format.
1391
+ *
1392
+ * @since:
1393
+ * 2.13
1394
+ */
1395
+ typedef struct FT_ClipBox_
1396
+ {
1397
+ FT_Vector bottom_left;
1398
+ FT_Vector top_left;
1399
+ FT_Vector top_right;
1400
+ FT_Vector bottom_right;
1401
+
1402
+ } FT_ClipBox;
1403
+
1404
+
1405
+ /**************************************************************************
1406
+ *
1407
+ * @function:
1408
+ * FT_Get_Color_Glyph_Paint
1409
+ *
1410
+ * @description:
1411
+ * This is the starting point and interface to color gradient
1412
+ * information in a 'COLR' v1 table in OpenType fonts to recursively
1413
+ * retrieve the paint tables for the directed acyclic graph of a colored
1414
+ * glyph, given a glyph ID.
1415
+ *
1416
+ * https://github.com/googlefonts/colr-gradients-spec
1417
+ *
1418
+ * In a 'COLR' v1 font, each color glyph defines a directed acyclic
1419
+ * graph of nested paint tables, such as `PaintGlyph`, `PaintSolid`,
1420
+ * `PaintLinearGradient`, `PaintRadialGradient`, and so on. Using this
1421
+ * function and specifying a glyph ID, one retrieves the root paint
1422
+ * table for this glyph ID.
1423
+ *
1424
+ * This function allows control whether an initial root transform is
1425
+ * returned to configure scaling, transform, and translation correctly
1426
+ * on the client's graphics context. The initial root transform is
1427
+ * computed and returned according to the values configured for @FT_Size
1428
+ * and @FT_Set_Transform on the @FT_Face object, see below for details
1429
+ * of the `root_transform` parameter. This has implications for a
1430
+ * client 'COLR' v1 implementation: When this function returns an
1431
+ * initially computed root transform, at the time of executing the
1432
+ * @FT_PaintGlyph operation, the contours should be retrieved using
1433
+ * @FT_Load_Glyph at unscaled, untransformed size. This is because the
1434
+ * root transform applied to the graphics context will take care of
1435
+ * correct scaling.
1436
+ *
1437
+ * Alternatively, to allow hinting of contours, at the time of executing
1438
+ * @FT_Load_Glyph, the current graphics context transformation matrix
1439
+ * can be decomposed into a scaling matrix and a remainder, and
1440
+ * @FT_Load_Glyph can be used to retrieve the contours at scaled size.
1441
+ * Care must then be taken to blit or clip to the graphics context with
1442
+ * taking this remainder transformation into account.
1443
+ *
1444
+ * @input:
1445
+ * face ::
1446
+ * A handle to the parent face object.
1447
+ *
1448
+ * base_glyph ::
1449
+ * The glyph index for which to retrieve the root paint table.
1450
+ *
1451
+ * root_transform ::
1452
+ * Specifies whether an initially computed root is returned by the
1453
+ * @FT_PaintTransform operation to account for the activated size
1454
+ * (see @FT_Activate_Size) and the configured transform and translate
1455
+ * (see @FT_Set_Transform).
1456
+ *
1457
+ * This root transform is returned before nodes of the glyph graph of
1458
+ * the font are returned. Subsequent @FT_COLR_Paint structures
1459
+ * contain unscaled and untransformed values. The inserted root
1460
+ * transform enables the client application to apply an initial
1461
+ * transform to its graphics context. When executing subsequent
1462
+ * FT_COLR_Paint operations, values from @FT_COLR_Paint operations
1463
+ * will ultimately be correctly scaled because of the root transform
1464
+ * applied to the graphics context. Use
1465
+ * @FT_COLOR_INCLUDE_ROOT_TRANSFORM to include the root transform, use
1466
+ * @FT_COLOR_NO_ROOT_TRANSFORM to not include it. The latter may be
1467
+ * useful when traversing the 'COLR' v1 glyph graph and reaching a
1468
+ * @FT_PaintColrGlyph. When recursing into @FT_PaintColrGlyph and
1469
+ * painting that inline, no additional root transform is needed as it
1470
+ * has already been applied to the graphics context at the beginning
1471
+ * of drawing this glyph.
1472
+ *
1473
+ * @output:
1474
+ * paint ::
1475
+ * The @FT_OpaquePaint object that references the actual paint table.
1476
+ *
1477
+ * The respective actual @FT_COLR_Paint object is retrieved via
1478
+ * @FT_Get_Paint.
1479
+ *
1480
+ * @return:
1481
+ * Value~1 if everything is OK. If no color glyph is found, or the root
1482
+ * paint could not be retrieved, value~0 gets returned. In case of an
1483
+ * error, value~0 is returned also.
1484
+ *
1485
+ * @since:
1486
+ * 2.13
1487
+ */
1488
+ FT_EXPORT( FT_Bool )
1489
+ FT_Get_Color_Glyph_Paint( FT_Face face,
1490
+ FT_UInt base_glyph,
1491
+ FT_Color_Root_Transform root_transform,
1492
+ FT_OpaquePaint* paint );
1493
+
1494
+
1495
+ /**************************************************************************
1496
+ *
1497
+ * @function:
1498
+ * FT_Get_Color_Glyph_ClipBox
1499
+ *
1500
+ * @description:
1501
+ * Search for a 'COLR' v1 clip box for the specified `base_glyph` and
1502
+ * fill the `clip_box` parameter with the 'COLR' v1 'ClipBox' information
1503
+ * if one is found.
1504
+ *
1505
+ * @input:
1506
+ * face ::
1507
+ * A handle to the parent face object.
1508
+ *
1509
+ * base_glyph ::
1510
+ * The glyph index for which to retrieve the clip box.
1511
+ *
1512
+ * @output:
1513
+ * clip_box ::
1514
+ * The clip box for the requested `base_glyph` if one is found. The
1515
+ * clip box is computed taking scale and transformations configured on
1516
+ * the @FT_Face into account. @FT_ClipBox contains @FT_Vector values
1517
+ * in 26.6 format.
1518
+ *
1519
+ * @return:
1520
+ * Value~1 if a clip box is found. If no clip box is found or an error
1521
+ * occured, value~0 is returned.
1522
+ *
1523
+ * @note:
1524
+ * To retrieve the clip box in font units, reset scale to units-per-em
1525
+ * and remove transforms configured using @FT_Set_Transform.
1526
+ *
1527
+ * @since:
1528
+ * 2.13
1529
+ */
1530
+ FT_EXPORT( FT_Bool )
1531
+ FT_Get_Color_Glyph_ClipBox( FT_Face face,
1532
+ FT_UInt base_glyph,
1533
+ FT_ClipBox* clip_box );
1534
+
1535
+
1536
+ /**************************************************************************
1537
+ *
1538
+ * @function:
1539
+ * FT_Get_Paint_Layers
1540
+ *
1541
+ * @description:
1542
+ * Access the layers of a `PaintColrLayers` table.
1543
+ *
1544
+ * If the root paint of a color glyph, or a nested paint of a 'COLR'
1545
+ * glyph is a `PaintColrLayers` table, this function retrieves the
1546
+ * layers of the `PaintColrLayers` table.
1547
+ *
1548
+ * The @FT_PaintColrLayers object contains an @FT_LayerIterator, which
1549
+ * is used here to iterate over the layers. Each layer is returned as
1550
+ * an @FT_OpaquePaint object, which then can be used with @FT_Get_Paint
1551
+ * to retrieve the actual paint object.
1552
+ *
1553
+ * @input:
1554
+ * face ::
1555
+ * A handle to the parent face object.
1556
+ *
1557
+ * @inout:
1558
+ * iterator ::
1559
+ * The @FT_LayerIterator from an @FT_PaintColrLayers object, for which
1560
+ * the layers are to be retrieved. The internal state of the iterator
1561
+ * is incremented after one call to this function for retrieving one
1562
+ * layer.
1563
+ *
1564
+ * @output:
1565
+ * paint ::
1566
+ * The @FT_OpaquePaint object that references the actual paint table.
1567
+ * The respective actual @FT_COLR_Paint object is retrieved via
1568
+ * @FT_Get_Paint.
1569
+ *
1570
+ * @return:
1571
+ * Value~1 if everything is OK. Value~0 gets returned when the paint
1572
+ * object can not be retrieved or any other error occurs.
1573
+ *
1574
+ * @since:
1575
+ * 2.13
1576
+ */
1577
+ FT_EXPORT( FT_Bool )
1578
+ FT_Get_Paint_Layers( FT_Face face,
1579
+ FT_LayerIterator* iterator,
1580
+ FT_OpaquePaint* paint );
1581
+
1582
+
1583
+ /**************************************************************************
1584
+ *
1585
+ * @function:
1586
+ * FT_Get_Colorline_Stops
1587
+ *
1588
+ * @description:
1589
+ * This is an interface to color gradient information in a 'COLR' v1
1590
+ * table in OpenType fonts to iteratively retrieve the gradient and
1591
+ * solid fill information for colored glyph layers for a specified glyph
1592
+ * ID.
1593
+ *
1594
+ * https://github.com/googlefonts/colr-gradients-spec
1595
+ *
1596
+ * @input:
1597
+ * face ::
1598
+ * A handle to the parent face object.
1599
+ *
1600
+ * @inout:
1601
+ * iterator ::
1602
+ * The retrieved @FT_ColorStopIterator, configured on an @FT_ColorLine,
1603
+ * which in turn got retrieved via paint information in
1604
+ * @FT_PaintLinearGradient or @FT_PaintRadialGradient.
1605
+ *
1606
+ * @output:
1607
+ * color_stop ::
1608
+ * Color index and alpha value for the retrieved color stop.
1609
+ *
1610
+ * @return:
1611
+ * Value~1 if everything is OK. If there are no more color stops,
1612
+ * value~0 gets returned. In case of an error, value~0 is returned
1613
+ * also.
1614
+ *
1615
+ * @since:
1616
+ * 2.13
1617
+ */
1618
+ FT_EXPORT( FT_Bool )
1619
+ FT_Get_Colorline_Stops( FT_Face face,
1620
+ FT_ColorStop* color_stop,
1621
+ FT_ColorStopIterator* iterator );
1622
+
1623
+
1624
+ /**************************************************************************
1625
+ *
1626
+ * @function:
1627
+ * FT_Get_Paint
1628
+ *
1629
+ * @description:
1630
+ * Access the details of a paint using an @FT_OpaquePaint opaque paint
1631
+ * object, which internally stores the offset to the respective `Paint`
1632
+ * object in the 'COLR' table.
1633
+ *
1634
+ * @input:
1635
+ * face ::
1636
+ * A handle to the parent face object.
1637
+ *
1638
+ * opaque_paint ::
1639
+ * The opaque paint object for which the underlying @FT_COLR_Paint
1640
+ * data is to be retrieved.
1641
+ *
1642
+ * @output:
1643
+ * paint ::
1644
+ * The specific @FT_COLR_Paint object containing information coming
1645
+ * from one of the font's `Paint*` tables.
1646
+ *
1647
+ * @return:
1648
+ * Value~1 if everything is OK. Value~0 if no details can be found for
1649
+ * this paint or any other error occured.
1650
+ *
1651
+ * @since:
1652
+ * 2.13
1653
+ */
1654
+ FT_EXPORT( FT_Bool )
1655
+ FT_Get_Paint( FT_Face face,
1656
+ FT_OpaquePaint opaque_paint,
1657
+ FT_COLR_Paint* paint );
1658
+
1659
+ /* */
1660
+
1661
+
1662
+ FT_END_HEADER
1663
+
1664
+ #endif /* FTCOLOR_H_ */
1665
+
1666
+
1667
+ /* END */