@hxa-rn/react-native-gcanvas 6.0.24-beta.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 (1280) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/LICENSE +21 -0
  3. package/README.md +207 -0
  4. package/harmony/gcanvas/LICENSE +21 -0
  5. package/harmony/gcanvas/NOTICE +33 -0
  6. package/harmony/gcanvas/OAT.xml +38 -0
  7. package/harmony/gcanvas/build-profile.json5 +16 -0
  8. package/harmony/gcanvas/consumer-rules.txt +0 -0
  9. package/harmony/gcanvas/hvigorfile.ts +2 -0
  10. package/harmony/gcanvas/index.ets +1 -0
  11. package/harmony/gcanvas/oh-package.json5 +14 -0
  12. package/harmony/gcanvas/src/main/cpp/CMakeLists.txt +126 -0
  13. package/harmony/gcanvas/src/main/cpp/GCanvasEngine.cpp +665 -0
  14. package/harmony/gcanvas/src/main/cpp/GCanvasEngine.h +123 -0
  15. package/harmony/gcanvas/src/main/cpp/GCanvasNapi.cpp +485 -0
  16. package/harmony/gcanvas/src/main/cpp/GCanvasXComponent.cpp +166 -0
  17. package/harmony/gcanvas/src/main/cpp/GcanvasPackage.h +24 -0
  18. package/harmony/gcanvas/src/main/cpp/core/CMakeLists.txt +221 -0
  19. package/harmony/gcanvas/src/main/cpp/core/README.md +1 -0
  20. package/harmony/gcanvas/src/main/cpp/core/harmony/3d/gmanager.cpp +69 -0
  21. package/harmony/gcanvas/src/main/cpp/core/harmony/3d/gmanager.h +34 -0
  22. package/harmony/gcanvas/src/main/cpp/core/harmony/3d/jsc/weexjsc.h +14 -0
  23. package/harmony/gcanvas/src/main/cpp/core/harmony/3d/util/auto_ptr.h +110 -0
  24. package/harmony/gcanvas/src/main/cpp/core/harmony/3d/util/i_delete.h +23 -0
  25. package/harmony/gcanvas/src/main/cpp/core/harmony/3d/util/ref_count.h +34 -0
  26. package/harmony/gcanvas/src/main/cpp/core/harmony/3d/view/GcanvasWeexOhos.cpp +28 -0
  27. package/harmony/gcanvas/src/main/cpp/core/harmony/3d/view/GcanvasWeexOhos.h +27 -0
  28. package/harmony/gcanvas/src/main/cpp/core/harmony/3d/view/grenderer.cpp +677 -0
  29. package/harmony/gcanvas/src/main/cpp/core/harmony/3d/view/grenderer.h +127 -0
  30. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/LICENSE.TXT +46 -0
  31. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/README +107 -0
  32. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/config/ftconfig.h +51 -0
  33. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/config/ftheader.h +836 -0
  34. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/config/ftmodule.h +33 -0
  35. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/config/ftoption.h +1030 -0
  36. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/config/ftstdlib.h +185 -0
  37. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/config/integer-types.h +250 -0
  38. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/config/mac-support.h +49 -0
  39. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/config/public-macros.h +138 -0
  40. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/freetype.h +5289 -0
  41. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftadvanc.h +188 -0
  42. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftbbox.h +101 -0
  43. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftbdf.h +212 -0
  44. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftbitmap.h +329 -0
  45. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftbzip2.h +102 -0
  46. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftcache.h +1087 -0
  47. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftchapters.h +168 -0
  48. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftcid.h +167 -0
  49. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftcolor.h +1667 -0
  50. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftdriver.h +1320 -0
  51. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/fterrdef.h +283 -0
  52. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/fterrors.h +296 -0
  53. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftfntfmt.h +93 -0
  54. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftgasp.h +143 -0
  55. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftglyph.h +750 -0
  56. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftgxval.h +354 -0
  57. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftgzip.h +151 -0
  58. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftimage.h +1289 -0
  59. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftincrem.h +348 -0
  60. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftlcdfil.h +323 -0
  61. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftlist.h +296 -0
  62. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftlogging.h +184 -0
  63. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftlzw.h +100 -0
  64. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftmac.h +289 -0
  65. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftmm.h +834 -0
  66. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftmodapi.h +807 -0
  67. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftmoderr.h +204 -0
  68. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftotval.h +206 -0
  69. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftoutln.h +588 -0
  70. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftparams.h +218 -0
  71. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftpfr.h +179 -0
  72. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftrender.h +244 -0
  73. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftsizes.h +159 -0
  74. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftsnames.h +272 -0
  75. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftstroke.h +773 -0
  76. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftsynth.h +104 -0
  77. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftsystem.h +350 -0
  78. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/fttrigon.h +350 -0
  79. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/fttypes.h +617 -0
  80. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ftwinfnt.h +276 -0
  81. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/autohint.h +234 -0
  82. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/cffotypes.h +107 -0
  83. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/cfftypes.h +416 -0
  84. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/compiler-macros.h +343 -0
  85. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/ftcalc.h +584 -0
  86. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/ftdebug.h +442 -0
  87. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/ftdrv.h +289 -0
  88. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/ftgloadr.h +147 -0
  89. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/fthash.h +135 -0
  90. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/ftmemory.h +401 -0
  91. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/ftmmtypes.h +91 -0
  92. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/ftobjs.h +1232 -0
  93. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/ftpsprop.h +47 -0
  94. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/ftrfork.h +245 -0
  95. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/ftserv.h +495 -0
  96. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/ftstream.h +570 -0
  97. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/fttrace.h +173 -0
  98. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/ftvalid.h +160 -0
  99. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/psaux.h +1447 -0
  100. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/pshints.h +699 -0
  101. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svbdf.h +66 -0
  102. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svcfftl.h +90 -0
  103. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svcid.h +69 -0
  104. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svfntfmt.h +55 -0
  105. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svgldict.h +72 -0
  106. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svgxval.h +72 -0
  107. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svkern.h +51 -0
  108. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svmetric.h +131 -0
  109. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svmm.h +214 -0
  110. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svotval.h +55 -0
  111. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svpfr.h +65 -0
  112. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svpostnm.h +65 -0
  113. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svprop.h +66 -0
  114. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svpscmap.h +145 -0
  115. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svpsinfo.h +86 -0
  116. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svsfnt.h +88 -0
  117. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svttcmap.h +90 -0
  118. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svtteng.h +53 -0
  119. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svttglyf.h +56 -0
  120. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/services/svwinfnt.h +50 -0
  121. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/sfnt.h +1099 -0
  122. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/svginterface.h +46 -0
  123. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/t1types.h +307 -0
  124. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/tttypes.h +1747 -0
  125. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/internal/wofftypes.h +312 -0
  126. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/otsvg.h +336 -0
  127. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/t1tables.h +735 -0
  128. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/ttnameid.h +1235 -0
  129. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/tttables.h +856 -0
  130. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/freetype/tttags.h +124 -0
  131. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/include/ft2build.h +42 -0
  132. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afblue.c +779 -0
  133. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afblue.cin +39 -0
  134. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afblue.dat +1121 -0
  135. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afblue.h +429 -0
  136. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afblue.hin +146 -0
  137. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afcjk.c +2383 -0
  138. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afcjk.h +141 -0
  139. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afcover.h +105 -0
  140. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afdummy.c +77 -0
  141. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afdummy.h +40 -0
  142. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/aferrors.h +42 -0
  143. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afglobal.c +513 -0
  144. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afglobal.h +173 -0
  145. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afhints.c +1796 -0
  146. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afhints.h +467 -0
  147. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afindic.c +157 -0
  148. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afindic.h +41 -0
  149. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/aflatin.c +3643 -0
  150. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/aflatin.h +194 -0
  151. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afloader.c +706 -0
  152. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afloader.h +91 -0
  153. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afmodule.c +527 -0
  154. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afmodule.h +55 -0
  155. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afranges.c +1072 -0
  156. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afranges.h +47 -0
  157. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afscript.h +408 -0
  158. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afshaper.c +690 -0
  159. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afshaper.h +71 -0
  160. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afstyles.h +487 -0
  161. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/aftypes.h +511 -0
  162. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afws-decl.h +33 -0
  163. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/afws-iter.h +31 -0
  164. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/autofit.c +35 -0
  165. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/ft-hb.c +115 -0
  166. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/ft-hb.h +48 -0
  167. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/module.mk +23 -0
  168. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/autofit/rules.mk +88 -0
  169. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftadvanc.c +174 -0
  170. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftbase.c +41 -0
  171. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftbase.h +82 -0
  172. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftbbox.c +542 -0
  173. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftbdf.c +90 -0
  174. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftbitmap.c +1144 -0
  175. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftcalc.c +1126 -0
  176. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftcid.c +117 -0
  177. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftcolor.c +156 -0
  178. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftdbgmem.c +971 -0
  179. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftdebug.c +644 -0
  180. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/fterrors.c +45 -0
  181. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftfntfmt.c +54 -0
  182. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftfstype.c +61 -0
  183. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftgasp.c +60 -0
  184. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftgloadr.c +383 -0
  185. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftglyph.c +911 -0
  186. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftgxval.c +141 -0
  187. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/fthash.c +338 -0
  188. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftinit.c +263 -0
  189. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftlcdfil.c +437 -0
  190. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftmac.c +1099 -0
  191. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftmm.c +704 -0
  192. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftobjs.c +5917 -0
  193. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftotval.c +90 -0
  194. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftoutln.c +1120 -0
  195. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftpatent.c +50 -0
  196. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftpfr.c +152 -0
  197. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftpsprop.c +284 -0
  198. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftrfork.c +934 -0
  199. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftsnames.c +185 -0
  200. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftstream.c +872 -0
  201. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftstroke.c +2403 -0
  202. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftsynth.c +180 -0
  203. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftsystem.c +338 -0
  204. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/fttrigon.c +517 -0
  205. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/fttype1.c +126 -0
  206. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftutil.c +442 -0
  207. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftver.rc +61 -0
  208. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/ftwinfnt.c +52 -0
  209. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/md5.c +291 -0
  210. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/md5.h +45 -0
  211. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/base/rules.mk +108 -0
  212. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/bdf/README +152 -0
  213. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/bdf/bdf.c +34 -0
  214. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/bdf/bdf.h +253 -0
  215. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/bdf/bdfdrivr.c +1013 -0
  216. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/bdf/bdfdrivr.h +72 -0
  217. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/bdf/bdferror.h +45 -0
  218. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/bdf/bdflib.c +2378 -0
  219. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/bdf/module.mk +34 -0
  220. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/bdf/rules.mk +84 -0
  221. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/bzip2/ftbzip2.c +535 -0
  222. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/bzip2/rules.mk +64 -0
  223. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cache/ftcache.c +31 -0
  224. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cache/ftcbasic.c +598 -0
  225. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cache/ftccache.c +584 -0
  226. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cache/ftccache.h +359 -0
  227. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cache/ftccback.h +85 -0
  228. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cache/ftccmap.c +323 -0
  229. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cache/ftcerror.h +42 -0
  230. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cache/ftcglyph.c +204 -0
  231. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cache/ftcglyph.h +314 -0
  232. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cache/ftcimage.c +158 -0
  233. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cache/ftcimage.h +106 -0
  234. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cache/ftcmanag.c +677 -0
  235. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cache/ftcmanag.h +175 -0
  236. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cache/ftcmru.c +341 -0
  237. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cache/ftcmru.h +242 -0
  238. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cache/ftcsbits.c +413 -0
  239. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cache/ftcsbits.h +91 -0
  240. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cache/rules.mk +85 -0
  241. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cff/cff.c +28 -0
  242. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cff/cffcmap.c +230 -0
  243. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cff/cffcmap.h +67 -0
  244. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cff/cffdrivr.c +1263 -0
  245. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cff/cffdrivr.h +35 -0
  246. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cff/cfferrs.h +42 -0
  247. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cff/cffgload.c +762 -0
  248. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cff/cffgload.h +62 -0
  249. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cff/cffload.c +2570 -0
  250. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cff/cffload.h +124 -0
  251. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cff/cffobjs.c +1175 -0
  252. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cff/cffobjs.h +84 -0
  253. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cff/cffparse.c +1550 -0
  254. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cff/cffparse.h +144 -0
  255. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cff/cfftoken.h +150 -0
  256. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cff/module.mk +23 -0
  257. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cff/rules.mk +75 -0
  258. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cid/ciderrs.h +41 -0
  259. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cid/cidgload.c +618 -0
  260. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cid/cidgload.h +58 -0
  261. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cid/cidload.c +937 -0
  262. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cid/cidload.h +52 -0
  263. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cid/cidobjs.c +543 -0
  264. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cid/cidobjs.h +154 -0
  265. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cid/cidparse.c +311 -0
  266. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cid/cidparse.h +130 -0
  267. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cid/cidriver.c +274 -0
  268. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cid/cidriver.h +36 -0
  269. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cid/cidtoken.h +115 -0
  270. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cid/module.mk +23 -0
  271. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cid/rules.mk +73 -0
  272. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/cid/type1cid.c +28 -0
  273. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/dlg/dlgwrap.c +32 -0
  274. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/dlg/rules.mk +70 -0
  275. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/README +532 -0
  276. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvalid.c +46 -0
  277. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvalid.h +107 -0
  278. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvbsln.c +334 -0
  279. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvcommn.c +1747 -0
  280. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvcommn.h +581 -0
  281. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxverror.h +51 -0
  282. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvfeat.c +339 -0
  283. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvfeat.h +173 -0
  284. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvfgen.c +484 -0
  285. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvjust.c +721 -0
  286. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvkern.c +920 -0
  287. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvlcar.c +224 -0
  288. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvmod.c +288 -0
  289. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvmod.h +46 -0
  290. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvmort.c +301 -0
  291. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvmort.h +99 -0
  292. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvmort0.c +152 -0
  293. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvmort1.c +260 -0
  294. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvmort2.c +312 -0
  295. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvmort4.c +126 -0
  296. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvmort5.c +234 -0
  297. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvmorx.c +199 -0
  298. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvmorx.h +73 -0
  299. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvmorx0.c +112 -0
  300. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvmorx1.c +278 -0
  301. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvmorx2.c +331 -0
  302. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvmorx4.c +56 -0
  303. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvmorx5.c +226 -0
  304. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvopbd.c +218 -0
  305. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvprop.c +330 -0
  306. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/gxvtrak.c +288 -0
  307. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/module.mk +23 -0
  308. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gxvalid/rules.mk +98 -0
  309. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/README.freetype +22 -0
  310. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/adler32.c +168 -0
  311. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/crc32.c +1061 -0
  312. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/crc32.h +9446 -0
  313. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/ftgzip.c +805 -0
  314. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/ftzconf.h +551 -0
  315. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/gzguts.h +218 -0
  316. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/inffast.c +320 -0
  317. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/inffast.h +11 -0
  318. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/inffixed.h +94 -0
  319. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/inflate.c +1534 -0
  320. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/inflate.h +131 -0
  321. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/inftrees.c +299 -0
  322. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/inftrees.h +67 -0
  323. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/patches/freetype-zlib.diff +451 -0
  324. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/rules.mk +81 -0
  325. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/zlib.h +1972 -0
  326. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/zutil.c +305 -0
  327. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/gzip/zutil.h +281 -0
  328. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/lzw/ftlzw.c +415 -0
  329. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/lzw/ftzopen.c +429 -0
  330. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/lzw/ftzopen.h +174 -0
  331. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/lzw/rules.mk +72 -0
  332. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/otvalid/module.mk +23 -0
  333. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/otvalid/otvalid.c +31 -0
  334. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/otvalid/otvalid.h +77 -0
  335. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/otvalid/otvbase.c +345 -0
  336. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/otvalid/otvcommn.c +1099 -0
  337. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/otvalid/otvcommn.h +468 -0
  338. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/otvalid/otverror.h +42 -0
  339. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/otvalid/otvgdef.c +303 -0
  340. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/otvalid/otvgpos.c +1051 -0
  341. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/otvalid/otvgpos.h +36 -0
  342. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/otvalid/otvgsub.c +627 -0
  343. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/otvalid/otvjstf.c +259 -0
  344. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/otvalid/otvmath.c +453 -0
  345. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/otvalid/otvmod.c +281 -0
  346. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/otvalid/otvmod.h +38 -0
  347. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/otvalid/rules.mk +81 -0
  348. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pcf/README +96 -0
  349. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pcf/module.mk +34 -0
  350. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pcf/pcf.c +35 -0
  351. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pcf/pcf.h +251 -0
  352. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pcf/pcfdrivr.c +836 -0
  353. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pcf/pcfdrivr.h +44 -0
  354. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pcf/pcferror.h +41 -0
  355. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pcf/pcfread.c +1731 -0
  356. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pcf/pcfread.h +44 -0
  357. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pcf/pcfutil.c +119 -0
  358. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pcf/pcfutil.h +55 -0
  359. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pcf/rules.mk +82 -0
  360. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pfr/module.mk +23 -0
  361. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pfr/pfr.c +29 -0
  362. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pfr/pfrcmap.c +188 -0
  363. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pfr/pfrcmap.h +45 -0
  364. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pfr/pfrdrivr.c +212 -0
  365. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pfr/pfrdrivr.h +36 -0
  366. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pfr/pfrerror.h +41 -0
  367. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pfr/pfrgload.c +849 -0
  368. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pfr/pfrgload.h +49 -0
  369. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pfr/pfrload.c +1062 -0
  370. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pfr/pfrload.h +123 -0
  371. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pfr/pfrobjs.c +603 -0
  372. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pfr/pfrobjs.h +96 -0
  373. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pfr/pfrsbit.c +813 -0
  374. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pfr/pfrsbit.h +37 -0
  375. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pfr/pfrtypes.h +331 -0
  376. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pfr/rules.mk +76 -0
  377. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/afmparse.c +1094 -0
  378. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/afmparse.h +88 -0
  379. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/cffdecode.c +2411 -0
  380. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/cffdecode.h +63 -0
  381. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/module.mk +23 -0
  382. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psarrst.c +240 -0
  383. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psarrst.h +99 -0
  384. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psaux.c +40 -0
  385. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psauxerr.h +42 -0
  386. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psauxmod.c +190 -0
  387. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psauxmod.h +60 -0
  388. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psblues.c +571 -0
  389. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psblues.h +185 -0
  390. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psconv.c +610 -0
  391. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psconv.h +70 -0
  392. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/pserror.c +52 -0
  393. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/pserror.h +120 -0
  394. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psfixed.h +94 -0
  395. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psfont.c +566 -0
  396. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psfont.h +134 -0
  397. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psft.c +895 -0
  398. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psft.h +167 -0
  399. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psglue.h +144 -0
  400. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/pshints.c +1952 -0
  401. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/pshints.h +288 -0
  402. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psintrp.c +3050 -0
  403. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psintrp.h +83 -0
  404. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psobjs.c +2560 -0
  405. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psobjs.h +312 -0
  406. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psread.c +112 -0
  407. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psread.h +68 -0
  408. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psstack.c +329 -0
  409. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/psstack.h +122 -0
  410. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/pstypes.h +77 -0
  411. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/rules.mk +89 -0
  412. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/t1cmap.c +393 -0
  413. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/t1cmap.h +104 -0
  414. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/t1decode.c +2159 -0
  415. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psaux/t1decode.h +73 -0
  416. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pshinter/module.mk +23 -0
  417. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pshinter/pshalgo.c +2191 -0
  418. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pshinter/pshalgo.h +233 -0
  419. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pshinter/pshglob.c +795 -0
  420. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pshinter/pshglob.h +196 -0
  421. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pshinter/pshinter.c +27 -0
  422. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pshinter/pshmod.c +125 -0
  423. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pshinter/pshmod.h +38 -0
  424. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pshinter/pshnterr.h +41 -0
  425. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pshinter/pshrec.c +1224 -0
  426. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pshinter/pshrec.h +171 -0
  427. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/pshinter/rules.mk +75 -0
  428. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psnames/module.mk +23 -0
  429. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psnames/psmodule.c +621 -0
  430. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psnames/psmodule.h +37 -0
  431. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psnames/psnamerr.h +42 -0
  432. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psnames/psnames.c +24 -0
  433. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psnames/pstables.h +4238 -0
  434. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/psnames/rules.mk +73 -0
  435. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/raster/ftmisc.h +118 -0
  436. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/raster/ftraster.c +2738 -0
  437. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/raster/ftraster.h +47 -0
  438. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/raster/ftrend1.c +209 -0
  439. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/raster/ftrend1.h +37 -0
  440. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/raster/module.mk +23 -0
  441. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/raster/raster.c +25 -0
  442. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/raster/rasterrs.h +42 -0
  443. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/raster/rules.mk +72 -0
  444. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sdf/ftbsdf.c +1350 -0
  445. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sdf/ftsdf.c +3932 -0
  446. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sdf/ftsdf.h +97 -0
  447. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sdf/ftsdfcommon.c +104 -0
  448. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sdf/ftsdfcommon.h +140 -0
  449. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sdf/ftsdferrs.h +37 -0
  450. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sdf/ftsdfrend.c +603 -0
  451. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sdf/ftsdfrend.h +118 -0
  452. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sdf/module.mk +29 -0
  453. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sdf/rules.mk +78 -0
  454. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sdf/sdf.c +29 -0
  455. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/module.mk +23 -0
  456. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/pngshim.c +474 -0
  457. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/pngshim.h +50 -0
  458. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/rules.mk +87 -0
  459. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/sfdriver.c +1384 -0
  460. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/sfdriver.h +35 -0
  461. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/sferrors.h +41 -0
  462. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/sfnt.c +41 -0
  463. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/sfobjs.c +1552 -0
  464. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/sfobjs.h +58 -0
  465. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/sfwoff.c +426 -0
  466. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/sfwoff.h +43 -0
  467. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/sfwoff2.c +2380 -0
  468. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/sfwoff2.h +78 -0
  469. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttbdf.c +257 -0
  470. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttbdf.h +49 -0
  471. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttcmap.c +3902 -0
  472. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttcmap.h +126 -0
  473. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttcmapc.h +56 -0
  474. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttcolr.c +1923 -0
  475. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttcolr.h +83 -0
  476. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttcpal.c +310 -0
  477. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttcpal.h +48 -0
  478. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttgpos.c +598 -0
  479. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttgpos.h +53 -0
  480. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttkern.c +317 -0
  481. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttkern.h +51 -0
  482. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttload.c +1496 -0
  483. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttload.h +111 -0
  484. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttmtx.c +338 -0
  485. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttmtx.h +54 -0
  486. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttpost.c +484 -0
  487. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttpost.h +46 -0
  488. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttsbit.c +1685 -0
  489. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttsbit.h +62 -0
  490. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttsvg.c +413 -0
  491. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/ttsvg.h +43 -0
  492. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/woff2tags.c +119 -0
  493. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/sfnt/woff2tags.h +41 -0
  494. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/smooth/ftgrays.c +2149 -0
  495. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/smooth/ftgrays.h +57 -0
  496. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/smooth/ftsmerrs.h +42 -0
  497. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/smooth/ftsmooth.c +605 -0
  498. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/smooth/ftsmooth.h +37 -0
  499. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/smooth/module.mk +23 -0
  500. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/smooth/rules.mk +73 -0
  501. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/smooth/smooth.c +25 -0
  502. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/svg/ftsvg.c +355 -0
  503. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/svg/ftsvg.h +35 -0
  504. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/svg/module.mk +23 -0
  505. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/svg/rules.mk +70 -0
  506. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/svg/svg.c +24 -0
  507. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/svg/svgtypes.h +42 -0
  508. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/tools/afblue.pl +551 -0
  509. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/tools/apinames.c +556 -0
  510. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/tools/chktrcmp.py +119 -0
  511. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/tools/cordic.py +32 -0
  512. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/tools/ftrandom/Makefile +45 -0
  513. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/tools/ftrandom/README +69 -0
  514. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/tools/ftrandom/ftrandom.c +720 -0
  515. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/tools/glnames.py +5533 -0
  516. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/tools/make_distribution_archives.py +208 -0
  517. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/tools/no-copyright +66 -0
  518. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/tools/test_afm.c +156 -0
  519. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/tools/test_bbox.c +187 -0
  520. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/tools/test_trig.c +257 -0
  521. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/tools/update-copyright +14 -0
  522. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/tools/update-copyright-year +157 -0
  523. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/tools/vms_shorten_symbol.c +250 -0
  524. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/truetype/module.mk +23 -0
  525. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/truetype/rules.mk +75 -0
  526. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/truetype/truetype.c +29 -0
  527. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/truetype/ttdriver.c +704 -0
  528. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/truetype/ttdriver.h +35 -0
  529. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/truetype/tterrors.h +42 -0
  530. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/truetype/ttgload.c +2740 -0
  531. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/truetype/ttgload.h +61 -0
  532. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/truetype/ttgxvar.c +4594 -0
  533. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/truetype/ttgxvar.h +453 -0
  534. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/truetype/ttinterp.c +7751 -0
  535. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/truetype/ttinterp.h +465 -0
  536. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/truetype/ttobjs.c +1543 -0
  537. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/truetype/ttobjs.h +426 -0
  538. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/truetype/ttpload.c +665 -0
  539. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/truetype/ttpload.h +74 -0
  540. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type1/module.mk +23 -0
  541. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type1/rules.mk +76 -0
  542. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type1/t1afm.c +413 -0
  543. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type1/t1afm.h +53 -0
  544. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type1/t1driver.c +807 -0
  545. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type1/t1driver.h +35 -0
  546. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type1/t1errors.h +41 -0
  547. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type1/t1gload.c +606 -0
  548. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type1/t1gload.h +52 -0
  549. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type1/t1load.c +2755 -0
  550. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type1/t1load.h +126 -0
  551. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type1/t1objs.c +655 -0
  552. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type1/t1objs.h +160 -0
  553. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type1/t1parse.c +487 -0
  554. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type1/t1parse.h +137 -0
  555. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type1/t1tokens.h +143 -0
  556. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type1/type1.c +29 -0
  557. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type42/module.mk +23 -0
  558. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type42/rules.mk +73 -0
  559. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type42/t42drivr.c +248 -0
  560. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type42/t42drivr.h +36 -0
  561. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type42/t42error.h +41 -0
  562. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type42/t42objs.c +698 -0
  563. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type42/t42objs.h +123 -0
  564. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type42/t42parse.c +1351 -0
  565. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type42/t42parse.h +91 -0
  566. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type42/t42types.h +56 -0
  567. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/type42/type42.c +26 -0
  568. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/winfonts/fnterrs.h +42 -0
  569. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/winfonts/module.mk +23 -0
  570. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/winfonts/rules.mk +68 -0
  571. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/winfonts/winfnt.c +1219 -0
  572. package/harmony/gcanvas/src/main/cpp/core/harmony/freetype/src/winfonts/winfnt.h +164 -0
  573. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/.appveyor.yml +69 -0
  574. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/.travis.yml +41 -0
  575. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/ANNOUNCE +55 -0
  576. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/AUTHORS +46 -0
  577. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/CHANGES +6111 -0
  578. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/CMakeLists.txt +1042 -0
  579. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/INSTALL +465 -0
  580. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/LICENSE +134 -0
  581. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/Makefile.am +392 -0
  582. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/Makefile.in +2420 -0
  583. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/README +183 -0
  584. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/TODO +23 -0
  585. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/TRADEMARK +8 -0
  586. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/aclocal.m4 +1196 -0
  587. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/arm/arm_init.c +136 -0
  588. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/arm/filter_neon.S +253 -0
  589. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/arm/filter_neon_intrinsics.c +402 -0
  590. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/arm/palette_neon_intrinsics.c +149 -0
  591. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/autogen.sh +225 -0
  592. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/ci/ci_autotools.sh +95 -0
  593. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/ci/ci_cmake.sh +127 -0
  594. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/ci/ci_legacy.sh +116 -0
  595. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/compile +348 -0
  596. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/config.guess +1476 -0
  597. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/config.h.in +126 -0
  598. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/config.sub +1801 -0
  599. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/configure +16116 -0
  600. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/configure.ac +532 -0
  601. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/README.txt +5 -0
  602. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/arm-neon/README +83 -0
  603. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/arm-neon/android-ndk.c +39 -0
  604. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/arm-neon/linux-auxv.c +120 -0
  605. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/arm-neon/linux.c +161 -0
  606. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/conftest/README +49 -0
  607. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/conftest/pngcp.dfa +57 -0
  608. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/conftest/read.dfa +58 -0
  609. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/conftest/s_read.dfa +35 -0
  610. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/conftest/s_write.dfa +33 -0
  611. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/conftest/simple.dfa +36 -0
  612. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/conftest/write.dfa +45 -0
  613. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/examples/README.txt +24 -0
  614. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/examples/iccfrompng.c +185 -0
  615. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/examples/pngpixel.c +371 -0
  616. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/examples/pngtopng.c +98 -0
  617. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/examples/simpleover.c +648 -0
  618. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/COPYING +340 -0
  619. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/LICENSE +50 -0
  620. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/Makefile.mingw32 +131 -0
  621. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/Makefile.sgi +105 -0
  622. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/Makefile.unx +134 -0
  623. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/Makefile.w32 +114 -0
  624. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/README +186 -0
  625. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/makevms.com +132 -0
  626. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/readpng.c +323 -0
  627. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/readpng.h +88 -0
  628. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/readpng2.c +521 -0
  629. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/readpng2.h +116 -0
  630. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/readppm.c +188 -0
  631. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/rpng-win.c +735 -0
  632. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/rpng-x.c +911 -0
  633. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/rpng2-win.c +1261 -0
  634. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/rpng2-x.c +2143 -0
  635. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/toucan.png +0 -0
  636. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/wpng.c +865 -0
  637. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/writepng.c +401 -0
  638. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/gregbook/writepng.h +133 -0
  639. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/libtests/fakepng.c +65 -0
  640. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/libtests/gentests.sh +100 -0
  641. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/libtests/makepng.c +1948 -0
  642. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/libtests/pngimage.c +1722 -0
  643. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/libtests/pngstest-errors.h +165 -0
  644. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/libtests/pngstest.c +3832 -0
  645. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/libtests/pngunknown.c +1305 -0
  646. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/libtests/pngvalid.c +12279 -0
  647. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/libtests/readpng.c +114 -0
  648. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/libtests/tarith.c +1011 -0
  649. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/libtests/timepng.c +607 -0
  650. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/mips-msa/README +83 -0
  651. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/mips-msa/linux.c +67 -0
  652. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/oss-fuzz/Dockerfile +25 -0
  653. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/oss-fuzz/README.txt +37 -0
  654. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/oss-fuzz/build.sh +51 -0
  655. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/oss-fuzz/libpng_read_fuzzer.cc +209 -0
  656. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/oss-fuzz/libpng_read_fuzzer.options +2 -0
  657. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/oss-fuzz/png.dict +39 -0
  658. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminim/README +5 -0
  659. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminim/decoder/README +10 -0
  660. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminim/decoder/pngusr.dfa +40 -0
  661. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminim/decoder/pngusr.h +23 -0
  662. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminim/encoder/README +10 -0
  663. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminim/encoder/pngusr.dfa +39 -0
  664. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminim/encoder/pngusr.h +23 -0
  665. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminim/preader/README +15 -0
  666. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminim/preader/pngusr.dfa +40 -0
  667. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminim/preader/pngusr.h +23 -0
  668. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminus/CHANGES.txt +13 -0
  669. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminus/CMakeLists.txt +34 -0
  670. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminus/LICENSE.txt +22 -0
  671. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminus/README.txt +120 -0
  672. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminus/makevms.com +92 -0
  673. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminus/png2pnm.bat +41 -0
  674. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminus/png2pnm.c +427 -0
  675. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminus/png2pnm.sh +42 -0
  676. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminus/pngminus.bat +4 -0
  677. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminus/pngminus.sh +5 -0
  678. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminus/pnm2png.bat +41 -0
  679. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminus/pnm2png.c +620 -0
  680. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngminus/pnm2png.sh +42 -0
  681. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/README +107 -0
  682. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/bad_interlace_conversions.txt +9 -0
  683. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/basn0g01.png +0 -0
  684. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/basn0g02.png +0 -0
  685. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/basn0g04.png +0 -0
  686. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/basn0g08.png +0 -0
  687. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/basn0g16.png +0 -0
  688. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/basn2c08.png +0 -0
  689. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/basn2c16.png +0 -0
  690. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/basn3p01.png +0 -0
  691. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/basn3p02.png +0 -0
  692. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/basn3p04.png +0 -0
  693. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/basn3p08.png +0 -0
  694. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/basn4a08.png +0 -0
  695. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/basn4a16.png +0 -0
  696. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/basn6a08.png +0 -0
  697. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/basn6a16.png +0 -0
  698. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ftbbn0g01.png +0 -0
  699. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ftbbn0g02.png +0 -0
  700. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ftbbn0g04.png +0 -0
  701. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ftbbn2c16.png +0 -0
  702. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ftbbn3p08.png +0 -0
  703. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ftbgn2c16.png +0 -0
  704. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ftbgn3p08.png +0 -0
  705. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ftbrn2c08.png +0 -0
  706. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ftbwn0g16.png +0 -0
  707. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ftbwn3p08.png +0 -0
  708. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ftbyn3p08.png +0 -0
  709. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ftp0n0g08.png +0 -0
  710. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ftp0n2c08.png +0 -0
  711. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ftp0n3p08.png +0 -0
  712. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ftp1n3p08.png +0 -0
  713. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ibasn0g08.png +0 -0
  714. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ibasn0g16.png +0 -0
  715. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ibasn2c08.png +0 -0
  716. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ibasn2c16.png +0 -0
  717. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ibasn3p08.png +0 -0
  718. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ibasn4a08.png +0 -0
  719. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ibasn4a16.png +0 -0
  720. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ibasn6a08.png +0 -0
  721. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/ibasn6a16.png +0 -0
  722. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/iftbbn2c16.png +0 -0
  723. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/iftbbn3p08.png +0 -0
  724. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/iftbgn2c16.png +0 -0
  725. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/iftbgn3p08.png +0 -0
  726. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/iftbrn2c08.png +0 -0
  727. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/iftbwn0g16.png +0 -0
  728. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/iftbwn3p08.png +0 -0
  729. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/iftbyn3p08.png +0 -0
  730. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/iftp0n0g08.png +0 -0
  731. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/iftp0n2c08.png +0 -0
  732. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/iftp0n3p08.png +0 -0
  733. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/iftp1n3p08.png +0 -0
  734. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/interlaced/README +2 -0
  735. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/interlaced/ibasn0g01.png +0 -0
  736. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/interlaced/ibasn0g02.png +0 -0
  737. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/interlaced/ibasn0g04.png +0 -0
  738. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/interlaced/ibasn3p01.png +0 -0
  739. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/interlaced/ibasn3p02.png +0 -0
  740. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/interlaced/ibasn3p04.png +0 -0
  741. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/interlaced/iftbbn0g01.png +0 -0
  742. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/interlaced/iftbbn0g02.png +0 -0
  743. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/pngsuite/interlaced/iftbbn0g04.png +0 -0
  744. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/powerpc-vsx/README +81 -0
  745. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/powerpc-vsx/linux.c +57 -0
  746. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/powerpc-vsx/linux_aux.c +34 -0
  747. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/bad_iCCP.png +0 -0
  748. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/badadler.png +0 -0
  749. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/badcrc.png +0 -0
  750. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/empty_ancillary_chunks.png +0 -0
  751. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_IDAT.png +0 -0
  752. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_bKGD_chunk.png +0 -0
  753. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_cHRM_chunk.png +0 -0
  754. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_eXIf_chunk.png +0 -0
  755. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_gAMA_chunk.png +0 -0
  756. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_hIST_chunk.png +0 -0
  757. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_iCCP_chunk.png +0 -0
  758. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_iTXt_chunk.png +0 -0
  759. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_juNK_unsafe_to_copy.png +0 -0
  760. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_juNk_safe_to_copy.png +0 -0
  761. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_pCAL_chunk.png +0 -0
  762. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_pHYs_chunk.png +0 -0
  763. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_sCAL_chunk.png +0 -0
  764. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_sPLT_chunk.png +0 -0
  765. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_sRGB_chunk.png +0 -0
  766. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_sTER_chunk.png +0 -0
  767. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_tEXt_chunk.png +0 -0
  768. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_tIME_chunk.png +0 -0
  769. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/crashers/huge_zTXt_chunk.png +0 -0
  770. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-1-1.8-tRNS.png +0 -0
  771. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-1-1.8.png +0 -0
  772. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-1-linear-tRNS.png +0 -0
  773. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-1-linear.png +0 -0
  774. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-1-sRGB-tRNS.png +0 -0
  775. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-1-sRGB.png +0 -0
  776. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-1-tRNS.png +0 -0
  777. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-1.png +0 -0
  778. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-16-1.8-tRNS.png +0 -0
  779. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-16-1.8.png +0 -0
  780. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-16-linear-tRNS.png +0 -0
  781. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-16-linear.png +0 -0
  782. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-16-sRGB-tRNS.png +0 -0
  783. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-16-sRGB.png +0 -0
  784. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-16-tRNS.png +0 -0
  785. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-16.png +0 -0
  786. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-2-1.8-tRNS.png +0 -0
  787. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-2-1.8.png +0 -0
  788. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-2-linear-tRNS.png +0 -0
  789. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-2-linear.png +0 -0
  790. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-2-sRGB-tRNS.png +0 -0
  791. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-2-sRGB.png +0 -0
  792. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-2-tRNS.png +0 -0
  793. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-2.png +0 -0
  794. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-4-1.8-tRNS.png +0 -0
  795. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-4-1.8.png +0 -0
  796. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-4-linear-tRNS.png +0 -0
  797. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-4-linear.png +0 -0
  798. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-4-sRGB-tRNS.png +0 -0
  799. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-4-sRGB.png +0 -0
  800. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-4-tRNS.png +0 -0
  801. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-4.png +0 -0
  802. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-8-1.8-tRNS.png +0 -0
  803. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-8-1.8.png +0 -0
  804. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-8-linear-tRNS.png +0 -0
  805. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-8-linear.png +0 -0
  806. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-8-sRGB-tRNS.png +0 -0
  807. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-8-sRGB.png +0 -0
  808. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-8-tRNS.png +0 -0
  809. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-8.png +0 -0
  810. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-alpha-16-1.8.png +0 -0
  811. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-alpha-16-linear.png +0 -0
  812. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-alpha-16-sRGB.png +0 -0
  813. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-alpha-16.png +0 -0
  814. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-alpha-8-1.8.png +0 -0
  815. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-alpha-8-linear.png +0 -0
  816. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-alpha-8-sRGB.png +0 -0
  817. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/gray-alpha-8.png +0 -0
  818. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/makepngs.sh +94 -0
  819. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-1-1.8-tRNS.png +0 -0
  820. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-1-1.8.png +0 -0
  821. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-1-linear-tRNS.png +0 -0
  822. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-1-linear.png +0 -0
  823. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-1-sRGB-tRNS.png +0 -0
  824. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-1-sRGB.png +0 -0
  825. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-1-tRNS.png +0 -0
  826. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-1.png +0 -0
  827. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-2-1.8-tRNS.png +0 -0
  828. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-2-1.8.png +0 -0
  829. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-2-linear-tRNS.png +0 -0
  830. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-2-linear.png +0 -0
  831. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-2-sRGB-tRNS.png +0 -0
  832. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-2-sRGB.png +0 -0
  833. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-2-tRNS.png +0 -0
  834. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-2.png +0 -0
  835. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-4-1.8-tRNS.png +0 -0
  836. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-4-1.8.png +0 -0
  837. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-4-linear-tRNS.png +0 -0
  838. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-4-linear.png +0 -0
  839. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-4-sRGB-tRNS.png +0 -0
  840. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-4-sRGB.png +0 -0
  841. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-4-tRNS.png +0 -0
  842. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-4.png +0 -0
  843. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-8-1.8-tRNS.png +0 -0
  844. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-8-1.8.png +0 -0
  845. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-8-linear-tRNS.png +0 -0
  846. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-8-linear.png +0 -0
  847. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-8-sRGB-tRNS.png +0 -0
  848. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-8-sRGB.png +0 -0
  849. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-8-tRNS.png +0 -0
  850. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/palette-8.png +0 -0
  851. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-16-1.8-tRNS.png +0 -0
  852. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-16-1.8.png +0 -0
  853. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-16-linear-tRNS.png +0 -0
  854. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-16-linear.png +0 -0
  855. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-16-sRGB-tRNS.png +0 -0
  856. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-16-sRGB.png +0 -0
  857. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-16-tRNS.png +0 -0
  858. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-16.png +0 -0
  859. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-8-1.8-tRNS.png +0 -0
  860. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-8-1.8.png +0 -0
  861. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-8-linear-tRNS.png +0 -0
  862. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-8-linear.png +0 -0
  863. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-8-sRGB-tRNS.png +0 -0
  864. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-8-sRGB.png +0 -0
  865. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-8-tRNS.png +0 -0
  866. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-8.png +0 -0
  867. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-alpha-16-1.8.png +0 -0
  868. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-alpha-16-linear.png +0 -0
  869. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-alpha-16-sRGB.png +0 -0
  870. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-alpha-16.png +0 -0
  871. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-alpha-8-1.8.png +0 -0
  872. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-alpha-8-linear.png +0 -0
  873. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-alpha-8-sRGB.png +0 -0
  874. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/testpngs/rgb-alpha-8.png +0 -0
  875. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/tools/README.txt +27 -0
  876. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/tools/checksum-icc.c +102 -0
  877. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/tools/chkfmt +144 -0
  878. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/tools/cvtcolor.c +188 -0
  879. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/tools/genpng.c +881 -0
  880. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/tools/intgamma.sh +110 -0
  881. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/tools/makesRGB.c +430 -0
  882. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/tools/png-fix-itxt.c +164 -0
  883. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/tools/pngcp.c +2453 -0
  884. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/tools/pngfix.c +4049 -0
  885. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/tools/reindent +25 -0
  886. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/tools/sRGB.h +48 -0
  887. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/visupng/PngFile.c +454 -0
  888. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/visupng/PngFile.h +30 -0
  889. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/visupng/README.txt +61 -0
  890. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/visupng/VisualPng.c +978 -0
  891. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/visupng/VisualPng.dsp +147 -0
  892. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/visupng/VisualPng.dsw +29 -0
  893. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/visupng/VisualPng.ico +0 -0
  894. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/visupng/VisualPng.png +0 -0
  895. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/visupng/VisualPng.rc +152 -0
  896. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/visupng/cexcept.h +248 -0
  897. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/contrib/visupng/resource.h +23 -0
  898. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/depcomp +791 -0
  899. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/example.c +1041 -0
  900. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/install-sh +518 -0
  901. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/intel/filter_sse2_intrinsics.c +391 -0
  902. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/intel/intel_init.c +52 -0
  903. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/libpng-config.in +127 -0
  904. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/libpng-manual.txt +5409 -0
  905. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/libpng.3 +6052 -0
  906. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/libpng.pc.in +12 -0
  907. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/libpngpf.3 +24 -0
  908. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/ltmain.sh +11147 -0
  909. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/mips/filter_msa_intrinsics.c +808 -0
  910. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/mips/mips_init.c +130 -0
  911. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/missing +215 -0
  912. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/png.5 +84 -0
  913. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/png.c +4607 -0
  914. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/png.h +3247 -0
  915. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngbar.jpg +0 -0
  916. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngbar.png +0 -0
  917. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngconf.h +623 -0
  918. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngdebug.h +153 -0
  919. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngerror.c +963 -0
  920. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngget.c +1249 -0
  921. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pnginfo.h +267 -0
  922. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pnglibconf.h +219 -0
  923. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngmem.c +284 -0
  924. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngnow.png +0 -0
  925. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngpread.c +1096 -0
  926. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngpriv.h +2152 -0
  927. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngread.c +4225 -0
  928. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngrio.c +120 -0
  929. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngrtran.c +5044 -0
  930. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngrutil.c +4678 -0
  931. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngset.c +1802 -0
  932. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngstruct.h +489 -0
  933. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngtest.c +2158 -0
  934. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngtest.png +0 -0
  935. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngtrans.c +864 -0
  936. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngusr.dfa +14 -0
  937. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngwio.c +168 -0
  938. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngwrite.c +2390 -0
  939. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngwtran.c +575 -0
  940. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/pngwutil.c +2781 -0
  941. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/powerpc/filter_vsx_intrinsics.c +768 -0
  942. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/powerpc/powerpc_init.c +126 -0
  943. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/owatcom/libpng.tgt +383 -0
  944. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/owatcom/libpng.wpj +112 -0
  945. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/owatcom/pngconfig.mak +160 -0
  946. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/owatcom/pngstest.tgt +219 -0
  947. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/owatcom/pngtest.tgt +179 -0
  948. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/owatcom/pngvalid.tgt +210 -0
  949. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/visualc71/PRJ0041.mak +21 -0
  950. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/visualc71/README.txt +58 -0
  951. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/visualc71/README_zlib.txt +44 -0
  952. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/visualc71/libpng.sln +60 -0
  953. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/visualc71/libpng.vcproj +419 -0
  954. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/visualc71/pngtest.vcproj +267 -0
  955. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/visualc71/zlib.vcproj +391 -0
  956. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/vstudio/README.txt +87 -0
  957. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/vstudio/libpng/libpng.vcxproj +234 -0
  958. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/vstudio/pnglibconf/pnglibconf.vcxproj +61 -0
  959. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/vstudio/vstudio.sln +109 -0
  960. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/vstudio/zlib/zlib.vcxproj +175 -0
  961. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/projects/vstudio/zlib.props +57 -0
  962. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/README.txt +83 -0
  963. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/SCOPTIONS.ppc +7 -0
  964. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/checksym.awk +173 -0
  965. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/descrip.mms +47 -0
  966. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/dfn.awk +203 -0
  967. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/genchk.cmake.in +37 -0
  968. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/genout.cmake.in +105 -0
  969. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/gensrc.cmake.in +138 -0
  970. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/intprefix.c +22 -0
  971. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/libpng-config-body.in +96 -0
  972. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/libpng-config-head.in +24 -0
  973. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/libpng.pc.in +10 -0
  974. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/libtool.m4 +8369 -0
  975. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/ltoptions.m4 +437 -0
  976. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/ltsugar.m4 +124 -0
  977. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/ltversion.m4 +23 -0
  978. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/lt~obsolete.m4 +99 -0
  979. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/macro.lst +3 -0
  980. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.32sunu +241 -0
  981. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.64sunu +241 -0
  982. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.acorn +57 -0
  983. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.aix +116 -0
  984. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.amiga +58 -0
  985. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.atari +71 -0
  986. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.bc32 +158 -0
  987. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.beos +222 -0
  988. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.cegcc +116 -0
  989. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.clang +87 -0
  990. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.darwin +222 -0
  991. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.dec +210 -0
  992. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.dj2 +72 -0
  993. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.freebsd +66 -0
  994. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.gcc +87 -0
  995. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.hp64 +228 -0
  996. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.hpgcc +225 -0
  997. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.hpux +226 -0
  998. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.ibmc +90 -0
  999. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.intel +118 -0
  1000. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.linux +240 -0
  1001. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.linux-opt +258 -0
  1002. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.mips +100 -0
  1003. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.msys +199 -0
  1004. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.netbsd +55 -0
  1005. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.openbsd +86 -0
  1006. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.sco +223 -0
  1007. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.sggcc +233 -0
  1008. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.sgi +234 -0
  1009. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.so9 +244 -0
  1010. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.solaris +240 -0
  1011. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.std +133 -0
  1012. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.sunos +112 -0
  1013. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makefile.vcwin32 +112 -0
  1014. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/makevms.com +142 -0
  1015. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/options.awk +898 -0
  1016. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/pnglibconf.dfa +920 -0
  1017. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/pnglibconf.h.prebuilt +219 -0
  1018. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/pnglibconf.mak +55 -0
  1019. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/pngwin.rc +112 -0
  1020. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/prefix.c +24 -0
  1021. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/smakefile.ppc +34 -0
  1022. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/sym.c +15 -0
  1023. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/symbols.c +58 -0
  1024. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/symbols.def +255 -0
  1025. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/test.cmake.in +31 -0
  1026. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/scripts/vers.c +19 -0
  1027. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/test-driver +148 -0
  1028. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngimage-full +2 -0
  1029. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngimage-quick +2 -0
  1030. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngstest-1.8 +2 -0
  1031. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngstest-1.8-alpha +2 -0
  1032. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngstest-linear +2 -0
  1033. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngstest-linear-alpha +2 -0
  1034. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngstest-none +2 -0
  1035. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngstest-none-alpha +2 -0
  1036. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngstest-sRGB +2 -0
  1037. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngstest-sRGB-alpha +2 -0
  1038. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngtest-all +16 -0
  1039. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngunknown-IDAT +2 -0
  1040. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngunknown-discard +2 -0
  1041. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngunknown-if-safe +2 -0
  1042. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngunknown-sAPI +2 -0
  1043. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngunknown-sTER +2 -0
  1044. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngunknown-save +2 -0
  1045. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngunknown-vpAg +2 -0
  1046. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngvalid-gamma-16-to-8 +2 -0
  1047. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngvalid-gamma-alpha-mode +2 -0
  1048. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngvalid-gamma-background +2 -0
  1049. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngvalid-gamma-expand16-alpha-mode +2 -0
  1050. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngvalid-gamma-expand16-background +2 -0
  1051. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngvalid-gamma-expand16-transform +2 -0
  1052. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngvalid-gamma-sbit +2 -0
  1053. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngvalid-gamma-threshold +2 -0
  1054. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngvalid-gamma-transform +2 -0
  1055. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngvalid-progressive-interlace-standard +2 -0
  1056. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngvalid-progressive-size +2 -0
  1057. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngvalid-progressive-standard +2 -0
  1058. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngvalid-standard +2 -0
  1059. package/harmony/gcanvas/src/main/cpp/core/harmony/libpng/tests/pngvalid-transform +2 -0
  1060. package/harmony/gcanvas/src/main/cpp/core/harmony/manager/GCanvasManagerOhos.cpp +50 -0
  1061. package/harmony/gcanvas/src/main/cpp/core/harmony/memory/AutoPtr.h +99 -0
  1062. package/harmony/gcanvas/src/main/cpp/core/harmony/memory/IDelete.h +25 -0
  1063. package/harmony/gcanvas/src/main/cpp/core/harmony/memory/RefCount.h +55 -0
  1064. package/harmony/gcanvas/src/main/cpp/core/harmony/png/IPngCoder.h +38 -0
  1065. package/harmony/gcanvas/src/main/cpp/core/harmony/png/LodePngCoder.cpp +101 -0
  1066. package/harmony/gcanvas/src/main/cpp/core/harmony/png/LodePngCoder.h +40 -0
  1067. package/harmony/gcanvas/src/main/cpp/core/harmony/png/PngLoader.cpp +114 -0
  1068. package/harmony/gcanvas/src/main/cpp/core/harmony/png/PngLoader.h +53 -0
  1069. package/harmony/gcanvas/src/main/cpp/core/harmony/png/thirdparty/lodepng.c +6292 -0
  1070. package/harmony/gcanvas/src/main/cpp/core/harmony/png/thirdparty/lodepng.h +1890 -0
  1071. package/harmony/gcanvas/src/main/cpp/core/src/GCanvas.cpp +89 -0
  1072. package/harmony/gcanvas/src/main/cpp/core/src/GCanvas.hpp +45 -0
  1073. package/harmony/gcanvas/src/main/cpp/core/src/GCanvasManager.cpp +158 -0
  1074. package/harmony/gcanvas/src/main/cpp/core/src/GCanvasManager.h +56 -0
  1075. package/harmony/gcanvas/src/main/cpp/core/src/GCanvasWeex.cpp +1925 -0
  1076. package/harmony/gcanvas/src/main/cpp/core/src/GCanvasWeex.hpp +335 -0
  1077. package/harmony/gcanvas/src/main/cpp/core/src/RNCGCanvasBridge.h +225 -0
  1078. package/harmony/gcanvas/src/main/cpp/core/src/export.h +29 -0
  1079. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GCanvas2dContext.cpp +2366 -0
  1080. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GCanvas2dContext.h +449 -0
  1081. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GCanvasState.cpp +189 -0
  1082. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GCanvasState.h +83 -0
  1083. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GContext2dType.h +68 -0
  1084. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GConvert.cpp +476 -0
  1085. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GConvert.h +25 -0
  1086. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GFillStyle.h +191 -0
  1087. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GFontManager.h +110 -0
  1088. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GFontStyle.cpp +149 -0
  1089. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GFontStyle.h +94 -0
  1090. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GFrameBufferObject.cpp +226 -0
  1091. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GFrameBufferObject.h +116 -0
  1092. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GGL.h +45 -0
  1093. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GGlyphCache.cpp +106 -0
  1094. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GGlyphCache.h +159 -0
  1095. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GPath.cpp +1213 -0
  1096. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GPath.h +115 -0
  1097. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GPoint.h +117 -0
  1098. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GShader.cpp +346 -0
  1099. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GShader.h +360 -0
  1100. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GShaderManager.cpp +140 -0
  1101. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GShaderManager.h +38 -0
  1102. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GStrSeparator.cpp +84 -0
  1103. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GStrSeparator.h +31 -0
  1104. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GTextDefine.h +34 -0
  1105. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GTexture.cpp +327 -0
  1106. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GTexture.h +133 -0
  1107. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GTransform.h +163 -0
  1108. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GTreemap.cpp +61 -0
  1109. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GTreemap.h +88 -0
  1110. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GWebglContext.cpp +3259 -0
  1111. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/GWebglContext.h +13 -0
  1112. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/shaders/default.glsl +39 -0
  1113. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/shaders/grad.glsl +101 -0
  1114. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/shaders/pattern.glsl +45 -0
  1115. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/shaders/radiation.glsl +110 -0
  1116. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/shaders/shadow.glsl +39 -0
  1117. package/harmony/gcanvas/src/main/cpp/core/src/gcanvas/shaders/texture.glsl +34 -0
  1118. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GCanvas2DContextAndroid.cpp +386 -0
  1119. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GCanvas2DContextAndroid.h +113 -0
  1120. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GCanvas2DContextImpl.cpp +67 -0
  1121. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GCanvasAndroid.cpp +41 -0
  1122. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GCanvasAndroid.h +36 -0
  1123. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GFont.cpp +806 -0
  1124. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GFont.h +164 -0
  1125. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GFontCache.cpp +467 -0
  1126. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GFontCache.h +93 -0
  1127. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GFontFamily.cpp +187 -0
  1128. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GFontFamily.h +68 -0
  1129. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GFontManager.cpp +205 -0
  1130. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GFontManagerAndroid.cpp +328 -0
  1131. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GFontManagerAndroid.h +63 -0
  1132. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GFontManagerImpl.cpp +22 -0
  1133. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GFrameBufferObjectImpl.cpp +180 -0
  1134. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GPreCompiledShaders.cpp +175 -0
  1135. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GPreCompiledShaders.h +75 -0
  1136. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GSystemFontInformation.cpp +231 -0
  1137. package/harmony/gcanvas/src/main/cpp/core/src/platform/Android/GSystemFontInformation.h +69 -0
  1138. package/harmony/gcanvas/src/main/cpp/core/src/platform/Linux/FontTool.hpp +892 -0
  1139. package/harmony/gcanvas/src/main/cpp/core/src/platform/Linux/GFont.cpp +742 -0
  1140. package/harmony/gcanvas/src/main/cpp/core/src/platform/Linux/GFontCache.cpp +296 -0
  1141. package/harmony/gcanvas/src/main/cpp/core/src/platform/Linux/GFontFamily.cpp +162 -0
  1142. package/harmony/gcanvas/src/main/cpp/core/src/platform/Linux/GFontManager.cpp +230 -0
  1143. package/harmony/gcanvas/src/main/cpp/core/src/platform/Linux/GSystemFontInformation.cpp +232 -0
  1144. package/harmony/gcanvas/src/main/cpp/core/src/platform/Linux/PortableMap.hpp +621 -0
  1145. package/harmony/gcanvas/src/main/cpp/core/src/platform/Linux/argh.h +434 -0
  1146. package/harmony/gcanvas/src/main/cpp/core/src/platform/Linux/fonttool.cpp +109 -0
  1147. package/harmony/gcanvas/src/main/cpp/core/src/platform/Linux/utils.hpp +229 -0
  1148. package/harmony/gcanvas/src/main/cpp/core/src/platform/iOS/GCVFont.h +126 -0
  1149. package/harmony/gcanvas/src/main/cpp/core/src/platform/iOS/GCVFont.mm +573 -0
  1150. package/harmony/gcanvas/src/main/cpp/core/src/platform/iOS/GFontManager.mm +185 -0
  1151. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GCanvas2DContextHarmony.cpp +391 -0
  1152. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GCanvas2DContextHarmony.h +114 -0
  1153. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GCanvas2DContextOHOS.cpp +49 -0
  1154. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GCanvasHarmony.cpp +42 -0
  1155. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GCanvasHarmony.h +37 -0
  1156. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GFont.cpp +806 -0
  1157. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GFont.h +164 -0
  1158. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GFontCache.cpp +466 -0
  1159. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GFontCache.h +94 -0
  1160. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GFontFamily.cpp +188 -0
  1161. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GFontFamily.h +69 -0
  1162. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GFontManagerHarmony.cpp +329 -0
  1163. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GFontManagerHarmony.h +64 -0
  1164. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GFontManagerImpl.cpp +23 -0
  1165. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GFrameBufferObjectImpl.cpp +221 -0
  1166. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GPreCompiledShaders.cpp +176 -0
  1167. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GPreCompiledShaders.h +76 -0
  1168. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GSystemFontInformation.cpp +232 -0
  1169. package/harmony/gcanvas/src/main/cpp/core/src/platform/ohos/GSystemFontInformation.h +70 -0
  1170. package/harmony/gcanvas/src/main/cpp/core/src/support/CharacterSet.cpp +126 -0
  1171. package/harmony/gcanvas/src/main/cpp/core/src/support/CharacterSet.h +30 -0
  1172. package/harmony/gcanvas/src/main/cpp/core/src/support/ConcurrenceQueue.h +128 -0
  1173. package/harmony/gcanvas/src/main/cpp/core/src/support/DynArray.h +157 -0
  1174. package/harmony/gcanvas/src/main/cpp/core/src/support/Encode.cpp +116 -0
  1175. package/harmony/gcanvas/src/main/cpp/core/src/support/Encode.h +20 -0
  1176. package/harmony/gcanvas/src/main/cpp/core/src/support/FileUtils.cpp +153 -0
  1177. package/harmony/gcanvas/src/main/cpp/core/src/support/FileUtils.h +56 -0
  1178. package/harmony/gcanvas/src/main/cpp/core/src/support/GLUtil.cpp +174 -0
  1179. package/harmony/gcanvas/src/main/cpp/core/src/support/GLUtil.h +25 -0
  1180. package/harmony/gcanvas/src/main/cpp/core/src/support/Lesser.h +27 -0
  1181. package/harmony/gcanvas/src/main/cpp/core/src/support/Log.cpp +158 -0
  1182. package/harmony/gcanvas/src/main/cpp/core/src/support/Log.h +100 -0
  1183. package/harmony/gcanvas/src/main/cpp/core/src/support/Util.cpp +118 -0
  1184. package/harmony/gcanvas/src/main/cpp/core/src/support/Util.h +38 -0
  1185. package/harmony/gcanvas/src/main/cpp/core/src/support/Value.cpp +180 -0
  1186. package/harmony/gcanvas/src/main/cpp/core/src/support/Value.h +76 -0
  1187. package/harmony/gcanvas/src/main/cpp/generated/RNOH/generated/BaseGcanvasPackage.h +79 -0
  1188. package/harmony/gcanvas/src/main/cpp/generated/RNOH/generated/components/GCanvasViewJSIBinder.h +37 -0
  1189. package/harmony/gcanvas/src/main/cpp/generated/RNOH/generated/turbo_modules/GCanvasModule.cpp +35 -0
  1190. package/harmony/gcanvas/src/main/cpp/generated/RNOH/generated/turbo_modules/GCanvasModule.h +16 -0
  1191. package/harmony/gcanvas/src/main/cpp/generated/react/renderer/components/gcanvas/ComponentDescriptors.h +24 -0
  1192. package/harmony/gcanvas/src/main/cpp/generated/react/renderer/components/gcanvas/EventEmitters.cpp +33 -0
  1193. package/harmony/gcanvas/src/main/cpp/generated/react/renderer/components/gcanvas/EventEmitters.h +31 -0
  1194. package/harmony/gcanvas/src/main/cpp/generated/react/renderer/components/gcanvas/Props.cpp +28 -0
  1195. package/harmony/gcanvas/src/main/cpp/generated/react/renderer/components/gcanvas/Props.h +30 -0
  1196. package/harmony/gcanvas/src/main/cpp/generated/react/renderer/components/gcanvas/ShadowNodes.cpp +17 -0
  1197. package/harmony/gcanvas/src/main/cpp/generated/react/renderer/components/gcanvas/ShadowNodes.h +32 -0
  1198. package/harmony/gcanvas/src/main/cpp/generated/react/renderer/components/gcanvas/States.cpp +16 -0
  1199. package/harmony/gcanvas/src/main/cpp/generated/react/renderer/components/gcanvas/States.h +29 -0
  1200. package/harmony/gcanvas/src/main/ets/GCanvasModuleTurboModule.ts +448 -0
  1201. package/harmony/gcanvas/src/main/ets/GCanvasNativeEngine.ts +206 -0
  1202. package/harmony/gcanvas/src/main/ets/GcanvasTurboModulesFactory.ets +42 -0
  1203. package/harmony/gcanvas/src/main/ets/components/GCanvasView.ets +109 -0
  1204. package/harmony/gcanvas/src/main/ets/generated/components/GCanvasView.ts +126 -0
  1205. package/harmony/gcanvas/src/main/ets/generated/components/ts.ts +5 -0
  1206. package/harmony/gcanvas/src/main/ets/generated/index.ets +5 -0
  1207. package/harmony/gcanvas/src/main/ets/generated/ts.ts +6 -0
  1208. package/harmony/gcanvas/src/main/ets/generated/turboModules/GCanvasModule.ts +52 -0
  1209. package/harmony/gcanvas/src/main/ets/generated/turboModules/ts.ts +5 -0
  1210. package/harmony/gcanvas/src/main/module.json5 +21 -0
  1211. package/harmony/gcanvas/src/main/resources/base/element/string.json +12 -0
  1212. package/harmony/gcanvas/src/main/resources/en_US/element/string.json +8 -0
  1213. package/harmony/gcanvas/src/main/resources/zh_CN/element/string.json +12 -0
  1214. package/harmony/gcanvas.har +0 -0
  1215. package/package.json +69 -0
  1216. package/packages/gcanvas/.babelrc +5 -0
  1217. package/packages/gcanvas/.eslintrc.js +133 -0
  1218. package/packages/gcanvas/package.json +19 -0
  1219. package/packages/gcanvas/rollup.config.js +14 -0
  1220. package/packages/gcanvas/src/bridge/react-native.js +286 -0
  1221. package/packages/gcanvas/src/bridge/weex.js +210 -0
  1222. package/packages/gcanvas/src/context/2d/FillStyleLinearGradient.js +17 -0
  1223. package/packages/gcanvas/src/context/2d/FillStylePattern.js +8 -0
  1224. package/packages/gcanvas/src/context/2d/FillStyleRadialGradient.js +17 -0
  1225. package/packages/gcanvas/src/context/2d/OffScreenRenderingContext.js +49 -0
  1226. package/packages/gcanvas/src/context/2d/RenderingContext.js +787 -0
  1227. package/packages/gcanvas/src/context/webgl/ActiveInfo.js +11 -0
  1228. package/packages/gcanvas/src/context/webgl/Buffer.js +21 -0
  1229. package/packages/gcanvas/src/context/webgl/Framebuffer.js +21 -0
  1230. package/packages/gcanvas/src/context/webgl/GLenum.js +300 -0
  1231. package/packages/gcanvas/src/context/webgl/GLmethod.js +142 -0
  1232. package/packages/gcanvas/src/context/webgl/GLtype.js +22 -0
  1233. package/packages/gcanvas/src/context/webgl/Program.js +21 -0
  1234. package/packages/gcanvas/src/context/webgl/Renderbuffer.js +21 -0
  1235. package/packages/gcanvas/src/context/webgl/RenderingContext.js +1479 -0
  1236. package/packages/gcanvas/src/context/webgl/Shader.js +22 -0
  1237. package/packages/gcanvas/src/context/webgl/ShaderPrecisionFormat.js +11 -0
  1238. package/packages/gcanvas/src/context/webgl/Texture.js +22 -0
  1239. package/packages/gcanvas/src/context/webgl/UniformLocation.js +22 -0
  1240. package/packages/gcanvas/src/context/webgl/classUtils.js +3 -0
  1241. package/packages/gcanvas/src/env/canvas.js +210 -0
  1242. package/packages/gcanvas/src/env/image.js +76 -0
  1243. package/packages/gcanvas/src/env/off-screen-canvas.js +74 -0
  1244. package/packages/gcanvas/src/index.js +65 -0
  1245. package/src/components/CanvasView.js +20 -0
  1246. package/src/components/GCanvasComponent.js +408 -0
  1247. package/src/index.js +69 -0
  1248. package/src/packages/gcanvas/.babelrc +5 -0
  1249. package/src/packages/gcanvas/.eslintrc.js +133 -0
  1250. package/src/packages/gcanvas/package.json +19 -0
  1251. package/src/packages/gcanvas/rollup.config.js +14 -0
  1252. package/src/packages/gcanvas/src/bridge/react-native.js +288 -0
  1253. package/src/packages/gcanvas/src/bridge/weex.js +210 -0
  1254. package/src/packages/gcanvas/src/context/2d/FillStyleLinearGradient.js +17 -0
  1255. package/src/packages/gcanvas/src/context/2d/FillStylePattern.js +8 -0
  1256. package/src/packages/gcanvas/src/context/2d/FillStyleRadialGradient.js +17 -0
  1257. package/src/packages/gcanvas/src/context/2d/OffScreenRenderingContext.js +49 -0
  1258. package/src/packages/gcanvas/src/context/2d/RenderingContext.js +801 -0
  1259. package/src/packages/gcanvas/src/context/webgl/ActiveInfo.js +11 -0
  1260. package/src/packages/gcanvas/src/context/webgl/Buffer.js +21 -0
  1261. package/src/packages/gcanvas/src/context/webgl/Framebuffer.js +21 -0
  1262. package/src/packages/gcanvas/src/context/webgl/GLenum.js +300 -0
  1263. package/src/packages/gcanvas/src/context/webgl/GLmethod.js +142 -0
  1264. package/src/packages/gcanvas/src/context/webgl/GLtype.js +22 -0
  1265. package/src/packages/gcanvas/src/context/webgl/Program.js +21 -0
  1266. package/src/packages/gcanvas/src/context/webgl/Renderbuffer.js +21 -0
  1267. package/src/packages/gcanvas/src/context/webgl/RenderingContext.js +1479 -0
  1268. package/src/packages/gcanvas/src/context/webgl/Shader.js +22 -0
  1269. package/src/packages/gcanvas/src/context/webgl/ShaderPrecisionFormat.js +11 -0
  1270. package/src/packages/gcanvas/src/context/webgl/Texture.js +22 -0
  1271. package/src/packages/gcanvas/src/context/webgl/UniformLocation.js +22 -0
  1272. package/src/packages/gcanvas/src/context/webgl/classUtils.js +3 -0
  1273. package/src/packages/gcanvas/src/env/canvas.js +210 -0
  1274. package/src/packages/gcanvas/src/env/image.js +76 -0
  1275. package/src/packages/gcanvas/src/env/off-screen-canvas.js +74 -0
  1276. package/src/packages/gcanvas/src/index.js +65 -0
  1277. package/src/specs/v1/.gitkeep +1 -0
  1278. package/src/specs/v1/GCanvasViewNativeComponent.ts +47 -0
  1279. package/src/specs/v1/NativeGCanvasModule.ts +140 -0
  1280. package/src/specs/v2/.gitkeep +1 -0
@@ -0,0 +1,1952 @@
1
+ /****************************************************************************
2
+ *
3
+ * pshints.c
4
+ *
5
+ * Adobe's code for handling CFF hints (body).
6
+ *
7
+ * Copyright 2007-2014 Adobe Systems Incorporated.
8
+ *
9
+ * This software, and all works of authorship, whether in source or
10
+ * object code form as indicated by the copyright notice(s) included
11
+ * herein (collectively, the "Work") is made available, and may only be
12
+ * used, modified, and distributed under the FreeType Project License,
13
+ * LICENSE.TXT. Additionally, subject to the terms and conditions of the
14
+ * FreeType Project License, each contributor to the Work hereby grants
15
+ * to any individual or legal entity exercising permissions granted by
16
+ * the FreeType Project License and this section (hereafter, "You" or
17
+ * "Your") a perpetual, worldwide, non-exclusive, no-charge,
18
+ * royalty-free, irrevocable (except as stated in this section) patent
19
+ * license to make, have made, use, offer to sell, sell, import, and
20
+ * otherwise transfer the Work, where such license applies only to those
21
+ * patent claims licensable by such contributor that are necessarily
22
+ * infringed by their contribution(s) alone or by combination of their
23
+ * contribution(s) with the Work to which such contribution(s) was
24
+ * submitted. If You institute patent litigation against any entity
25
+ * (including a cross-claim or counterclaim in a lawsuit) alleging that
26
+ * the Work or a contribution incorporated within the Work constitutes
27
+ * direct or contributory patent infringement, then any patent licenses
28
+ * granted to You under this License for that Work shall terminate as of
29
+ * the date such litigation is filed.
30
+ *
31
+ * By using, modifying, or distributing the Work you indicate that you
32
+ * have read and understood the terms and conditions of the
33
+ * FreeType Project License as well as those provided in this section,
34
+ * and you accept them fully.
35
+ *
36
+ */
37
+
38
+
39
+ #include "psft.h"
40
+ #include <freetype/internal/ftdebug.h>
41
+
42
+ #include "psglue.h"
43
+ #include "psfont.h"
44
+ #include "pshints.h"
45
+ #include "psintrp.h"
46
+
47
+
48
+ /**************************************************************************
49
+ *
50
+ * The macro FT_COMPONENT is used in trace mode. It is an implicit
51
+ * parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log
52
+ * messages during execution.
53
+ */
54
+ #undef FT_COMPONENT
55
+ #define FT_COMPONENT cf2hints
56
+
57
+
58
+ typedef struct CF2_HintMoveRec_
59
+ {
60
+ size_t j; /* index of upper hint map edge */
61
+ CF2_Fixed moveUp; /* adjustment to optimum position */
62
+
63
+ } CF2_HintMoveRec, *CF2_HintMove;
64
+
65
+
66
+ /* Compute angular momentum for winding order detection. It is called */
67
+ /* for all lines and curves, but not necessarily in element order. */
68
+ static CF2_Int
69
+ cf2_getWindingMomentum( CF2_Fixed x1,
70
+ CF2_Fixed y1,
71
+ CF2_Fixed x2,
72
+ CF2_Fixed y2 )
73
+ {
74
+ /* cross product of pt1 position from origin with pt2 position from */
75
+ /* pt1; we reduce the precision so that the result fits into 32 bits */
76
+
77
+ return ( x1 >> 16 ) * ( SUB_INT32( y2, y1 ) >> 16 ) -
78
+ ( y1 >> 16 ) * ( SUB_INT32( x2, x1 ) >> 16 );
79
+ }
80
+
81
+
82
+ /*
83
+ * Construct from a StemHint; this is used as a parameter to
84
+ * `cf2_blues_capture'.
85
+ * `hintOrigin' is the character space displacement of a seac accent.
86
+ * Adjust stem hint for darkening here.
87
+ *
88
+ */
89
+ static void
90
+ cf2_hint_init( CF2_Hint hint,
91
+ const CF2_ArrStack stemHintArray,
92
+ size_t indexStemHint,
93
+ const CF2_Font font,
94
+ CF2_Fixed hintOrigin,
95
+ CF2_Fixed scale,
96
+ FT_Bool bottom )
97
+ {
98
+ CF2_Fixed width;
99
+ const CF2_StemHintRec* stemHint;
100
+
101
+
102
+ FT_ZERO( hint );
103
+
104
+ stemHint = (const CF2_StemHintRec*)cf2_arrstack_getPointer(
105
+ stemHintArray,
106
+ indexStemHint );
107
+
108
+ width = SUB_INT32( stemHint->max, stemHint->min );
109
+
110
+ if ( width == cf2_intToFixed( -21 ) )
111
+ {
112
+ /* ghost bottom */
113
+
114
+ if ( bottom )
115
+ {
116
+ hint->csCoord = stemHint->max;
117
+ hint->flags = CF2_GhostBottom;
118
+ }
119
+ else
120
+ hint->flags = 0;
121
+ }
122
+
123
+ else if ( width == cf2_intToFixed( -20 ) )
124
+ {
125
+ /* ghost top */
126
+
127
+ if ( bottom )
128
+ hint->flags = 0;
129
+ else
130
+ {
131
+ hint->csCoord = stemHint->min;
132
+ hint->flags = CF2_GhostTop;
133
+ }
134
+ }
135
+
136
+ else if ( width < 0 )
137
+ {
138
+ /* inverted pair */
139
+
140
+ /*
141
+ * Hints with negative widths were produced by an early version of a
142
+ * non-Adobe font tool. The Type 2 spec allows edge (ghost) hints
143
+ * with negative widths, but says
144
+ *
145
+ * All other negative widths have undefined meaning.
146
+ *
147
+ * CoolType has a silent workaround that negates the hint width; for
148
+ * permissive mode, we do the same here.
149
+ *
150
+ * Note: Such fonts cannot use ghost hints, but should otherwise work.
151
+ * Note: Some poor hints in our faux fonts can produce negative
152
+ * widths at some blends. For example, see a light weight of
153
+ * `u' in ASerifMM.
154
+ *
155
+ */
156
+ if ( bottom )
157
+ {
158
+ hint->csCoord = stemHint->max;
159
+ hint->flags = CF2_PairBottom;
160
+ }
161
+ else
162
+ {
163
+ hint->csCoord = stemHint->min;
164
+ hint->flags = CF2_PairTop;
165
+ }
166
+ }
167
+
168
+ else
169
+ {
170
+ /* normal pair */
171
+
172
+ if ( bottom )
173
+ {
174
+ hint->csCoord = stemHint->min;
175
+ hint->flags = CF2_PairBottom;
176
+ }
177
+ else
178
+ {
179
+ hint->csCoord = stemHint->max;
180
+ hint->flags = CF2_PairTop;
181
+ }
182
+ }
183
+
184
+ /* Now that ghost hints have been detected, adjust this edge for */
185
+ /* darkening. Bottoms are not changed; tops are incremented by twice */
186
+ /* `darkenY'. */
187
+ if ( cf2_hint_isTop( hint ) )
188
+ hint->csCoord = ADD_INT32( hint->csCoord, 2 * font->darkenY );
189
+
190
+ hint->csCoord = ADD_INT32( hint->csCoord, hintOrigin );
191
+ hint->scale = scale;
192
+ hint->index = indexStemHint; /* index in original stem hint array */
193
+
194
+ /* if original stem hint has been used, use the same position */
195
+ if ( hint->flags != 0 && stemHint->used )
196
+ {
197
+ if ( cf2_hint_isTop( hint ) )
198
+ hint->dsCoord = stemHint->maxDS;
199
+ else
200
+ hint->dsCoord = stemHint->minDS;
201
+
202
+ cf2_hint_lock( hint );
203
+ }
204
+ else
205
+ hint->dsCoord = FT_MulFix( hint->csCoord, scale );
206
+ }
207
+
208
+
209
+ /* initialize an invalid hint map element */
210
+ static void
211
+ cf2_hint_initZero( CF2_Hint hint )
212
+ {
213
+ FT_ZERO( hint );
214
+ }
215
+
216
+
217
+ FT_LOCAL_DEF( FT_Bool )
218
+ cf2_hint_isValid( const CF2_Hint hint )
219
+ {
220
+ return FT_BOOL( hint->flags );
221
+ }
222
+
223
+
224
+ static FT_Bool
225
+ cf2_hint_isPair( const CF2_Hint hint )
226
+ {
227
+ return FT_BOOL( hint->flags & ( CF2_PairBottom | CF2_PairTop ) );
228
+ }
229
+
230
+
231
+ static FT_Bool
232
+ cf2_hint_isPairTop( const CF2_Hint hint )
233
+ {
234
+ return FT_BOOL( hint->flags & CF2_PairTop );
235
+ }
236
+
237
+
238
+ FT_LOCAL_DEF( FT_Bool )
239
+ cf2_hint_isTop( const CF2_Hint hint )
240
+ {
241
+ return FT_BOOL( hint->flags & ( CF2_PairTop | CF2_GhostTop ) );
242
+ }
243
+
244
+
245
+ FT_LOCAL_DEF( FT_Bool )
246
+ cf2_hint_isBottom( const CF2_Hint hint )
247
+ {
248
+ return FT_BOOL( hint->flags & ( CF2_PairBottom | CF2_GhostBottom ) );
249
+ }
250
+
251
+
252
+ static FT_Bool
253
+ cf2_hint_isLocked( const CF2_Hint hint )
254
+ {
255
+ return FT_BOOL( hint->flags & CF2_Locked );
256
+ }
257
+
258
+
259
+ static FT_Bool
260
+ cf2_hint_isSynthetic( const CF2_Hint hint )
261
+ {
262
+ return FT_BOOL( hint->flags & CF2_Synthetic );
263
+ }
264
+
265
+
266
+ FT_LOCAL_DEF( void )
267
+ cf2_hint_lock( CF2_Hint hint )
268
+ {
269
+ hint->flags |= CF2_Locked;
270
+ }
271
+
272
+
273
+ FT_LOCAL_DEF( void )
274
+ cf2_hintmap_init( CF2_HintMap hintmap,
275
+ CF2_Font font,
276
+ CF2_HintMap initialMap,
277
+ CF2_ArrStack hintMoves,
278
+ CF2_Fixed scale )
279
+ {
280
+ FT_ZERO( hintmap );
281
+
282
+ /* copy parameters from font instance */
283
+ hintmap->hinted = font->hinted;
284
+ hintmap->scale = scale;
285
+ hintmap->font = font;
286
+ hintmap->initialHintMap = initialMap;
287
+ /* will clear in `cf2_hintmap_adjustHints' */
288
+ hintmap->hintMoves = hintMoves;
289
+ }
290
+
291
+
292
+ static FT_Bool
293
+ cf2_hintmap_isValid( const CF2_HintMap hintmap )
294
+ {
295
+ return hintmap->isValid;
296
+ }
297
+
298
+
299
+ static void
300
+ cf2_hintmap_dump( CF2_HintMap hintmap )
301
+ {
302
+ #ifdef FT_DEBUG_LEVEL_TRACE
303
+ CF2_UInt i;
304
+
305
+
306
+ FT_TRACE6(( " index csCoord dsCoord scale flags\n" ));
307
+
308
+ for ( i = 0; i < hintmap->count; i++ )
309
+ {
310
+ CF2_Hint hint = &hintmap->edge[i];
311
+
312
+
313
+ FT_TRACE6(( " %3zu %7.2f %7.2f %5d %s%s%s%s\n",
314
+ hint->index,
315
+ hint->csCoord / 65536.0,
316
+ hint->dsCoord / ( hint->scale * 1.0 ),
317
+ hint->scale,
318
+ ( cf2_hint_isPair( hint ) ? "p" : "g" ),
319
+ ( cf2_hint_isTop( hint ) ? "t" : "b" ),
320
+ ( cf2_hint_isLocked( hint ) ? "L" : ""),
321
+ ( cf2_hint_isSynthetic( hint ) ? "S" : "" ) ));
322
+ }
323
+ #else
324
+ FT_UNUSED( hintmap );
325
+ #endif
326
+ }
327
+
328
+
329
+ /* transform character space coordinate to device space using hint map */
330
+ static CF2_Fixed
331
+ cf2_hintmap_map( CF2_HintMap hintmap,
332
+ CF2_Fixed csCoord )
333
+ {
334
+ if ( hintmap->count == 0 || !hintmap->hinted )
335
+ {
336
+ /* there are no hints; use uniform scale and zero offset */
337
+ return FT_MulFix( csCoord, hintmap->scale );
338
+ }
339
+ else
340
+ {
341
+ /* start linear search from last hit */
342
+ CF2_UInt i = hintmap->lastIndex;
343
+
344
+
345
+ FT_ASSERT( hintmap->lastIndex < CF2_MAX_HINT_EDGES );
346
+
347
+ /* search up */
348
+ while ( i < hintmap->count - 1 &&
349
+ csCoord >= hintmap->edge[i + 1].csCoord )
350
+ i += 1;
351
+
352
+ /* search down */
353
+ while ( i > 0 && csCoord < hintmap->edge[i].csCoord )
354
+ i -= 1;
355
+
356
+ hintmap->lastIndex = i;
357
+
358
+ if ( i == 0 && csCoord < hintmap->edge[0].csCoord )
359
+ {
360
+ /* special case for points below first edge: use uniform scale */
361
+ return ADD_INT32( FT_MulFix( SUB_INT32( csCoord,
362
+ hintmap->edge[0].csCoord ),
363
+ hintmap->scale ),
364
+ hintmap->edge[0].dsCoord );
365
+ }
366
+ else
367
+ {
368
+ /*
369
+ * Note: entries with duplicate csCoord are allowed.
370
+ * Use edge[i], the highest entry where csCoord >= entry[i].csCoord
371
+ */
372
+ return ADD_INT32( FT_MulFix( SUB_INT32( csCoord,
373
+ hintmap->edge[i].csCoord ),
374
+ hintmap->edge[i].scale ),
375
+ hintmap->edge[i].dsCoord );
376
+ }
377
+ }
378
+ }
379
+
380
+
381
+ /*
382
+ * This hinting policy moves a hint pair in device space so that one of
383
+ * its two edges is on a device pixel boundary (its fractional part is
384
+ * zero). `cf2_hintmap_insertHint' guarantees no overlap in CS
385
+ * space. Ensure here that there is no overlap in DS.
386
+ *
387
+ * In the first pass, edges are adjusted relative to adjacent hints.
388
+ * Those that are below have already been adjusted. Those that are
389
+ * above have not yet been adjusted. If a hint above blocks an
390
+ * adjustment to an optimal position, we will try again in a second
391
+ * pass. The second pass is top-down.
392
+ *
393
+ */
394
+
395
+ static void
396
+ cf2_hintmap_adjustHints( CF2_HintMap hintmap )
397
+ {
398
+ size_t i, j;
399
+
400
+
401
+ cf2_arrstack_clear( hintmap->hintMoves ); /* working storage */
402
+
403
+ /*
404
+ * First pass is bottom-up (font hint order) without look-ahead.
405
+ * Locked edges are already adjusted.
406
+ * Unlocked edges begin with dsCoord from `initialHintMap'.
407
+ * Save edges that are not optimally adjusted in `hintMoves' array,
408
+ * and process them in second pass.
409
+ */
410
+
411
+ for ( i = 0; i < hintmap->count; i++ )
412
+ {
413
+ FT_Bool isPair = cf2_hint_isPair( &hintmap->edge[i] );
414
+
415
+ /* final amount to move edge or edge pair */
416
+ CF2_Fixed move = 0;
417
+
418
+ CF2_Fixed dsCoord_i;
419
+ CF2_Fixed dsCoord_j;
420
+
421
+
422
+ /* index of upper edge (same value for ghost hint) */
423
+ j = isPair ? i + 1 : i;
424
+
425
+ FT_ASSERT( j < hintmap->count );
426
+ FT_ASSERT( cf2_hint_isValid( &hintmap->edge[i] ) );
427
+ FT_ASSERT( cf2_hint_isValid( &hintmap->edge[j] ) );
428
+ FT_ASSERT( cf2_hint_isLocked( &hintmap->edge[i] ) ==
429
+ cf2_hint_isLocked( &hintmap->edge[j] ) );
430
+
431
+ dsCoord_i = hintmap->edge[i].dsCoord;
432
+ dsCoord_j = hintmap->edge[j].dsCoord;
433
+
434
+ if ( !cf2_hint_isLocked( &hintmap->edge[i] ) )
435
+ {
436
+ /* hint edge is not locked, we can adjust it */
437
+ CF2_Fixed fracDown = cf2_fixedFraction( dsCoord_i );
438
+ CF2_Fixed fracUp = cf2_fixedFraction( dsCoord_j );
439
+
440
+ /* calculate all four possibilities; moves down are negative */
441
+ CF2_Fixed downMoveDown = 0 - fracDown;
442
+ CF2_Fixed upMoveDown = 0 - fracUp;
443
+ CF2_Fixed downMoveUp = ( fracDown == 0 )
444
+ ? 0
445
+ : cf2_intToFixed( 1 ) - fracDown;
446
+ CF2_Fixed upMoveUp = ( fracUp == 0 )
447
+ ? 0
448
+ : cf2_intToFixed( 1 ) - fracUp;
449
+
450
+ /* smallest move up */
451
+ CF2_Fixed moveUp = FT_MIN( downMoveUp, upMoveUp );
452
+ /* smallest move down */
453
+ CF2_Fixed moveDown = FT_MAX( downMoveDown, upMoveDown );
454
+
455
+ CF2_Fixed downMinCounter = CF2_MIN_COUNTER;
456
+ CF2_Fixed upMinCounter = CF2_MIN_COUNTER;
457
+ FT_Bool saveEdge = FALSE;
458
+
459
+
460
+ /* minimum counter constraint doesn't apply when adjacent edges */
461
+ /* are synthetic */
462
+ /* TODO: doesn't seem a big effect; for now, reduce the code */
463
+ #if 0
464
+ if ( i == 0 ||
465
+ cf2_hint_isSynthetic( &hintmap->edge[i - 1] ) )
466
+ downMinCounter = 0;
467
+
468
+ if ( j >= hintmap->count - 1 ||
469
+ cf2_hint_isSynthetic( &hintmap->edge[j + 1] ) )
470
+ upMinCounter = 0;
471
+ #endif
472
+
473
+ /* is there room to move up? */
474
+ /* there is if we are at top of array or the next edge is at or */
475
+ /* beyond proposed move up? */
476
+ if ( j >= hintmap->count - 1 ||
477
+ hintmap->edge[j + 1].dsCoord >=
478
+ ADD_INT32( dsCoord_j, moveUp + upMinCounter ) )
479
+ {
480
+ /* there is room to move up; is there also room to move down? */
481
+ if ( i == 0 ||
482
+ hintmap->edge[i - 1].dsCoord <=
483
+ ADD_INT32( dsCoord_i, moveDown - downMinCounter ) )
484
+ {
485
+ /* move smaller absolute amount */
486
+ move = ( -moveDown < moveUp ) ? moveDown : moveUp; /* optimum */
487
+ }
488
+ else
489
+ move = moveUp;
490
+ }
491
+ else
492
+ {
493
+ /* is there room to move down? */
494
+ if ( i == 0 ||
495
+ hintmap->edge[i - 1].dsCoord <=
496
+ ADD_INT32( dsCoord_i, moveDown - downMinCounter ) )
497
+ {
498
+ move = moveDown;
499
+ /* true if non-optimum move */
500
+ saveEdge = FT_BOOL( moveUp < -moveDown );
501
+ }
502
+ else
503
+ {
504
+ /* no room to move either way without overlapping or reducing */
505
+ /* the counter too much */
506
+ move = 0;
507
+ saveEdge = TRUE;
508
+ }
509
+ }
510
+
511
+ /* Identify non-moves and moves down that aren't optimal, and save */
512
+ /* them for second pass. */
513
+ /* Do this only if there is an unlocked edge above (which could */
514
+ /* possibly move). */
515
+ if ( saveEdge &&
516
+ j < hintmap->count - 1 &&
517
+ !cf2_hint_isLocked( &hintmap->edge[j + 1] ) )
518
+ {
519
+ CF2_HintMoveRec savedMove;
520
+
521
+
522
+ savedMove.j = j;
523
+ /* desired adjustment in second pass */
524
+ savedMove.moveUp = moveUp - move;
525
+
526
+ cf2_arrstack_push( hintmap->hintMoves, &savedMove );
527
+ }
528
+
529
+ /* move the edge(s) */
530
+ hintmap->edge[i].dsCoord = ADD_INT32( dsCoord_i, move );
531
+ if ( isPair )
532
+ hintmap->edge[j].dsCoord = ADD_INT32( dsCoord_j, move );
533
+ }
534
+
535
+ /* assert there are no overlaps in device space; */
536
+ /* ignore tests if there was overflow (that is, if */
537
+ /* operands have the same sign but the sum does not) */
538
+ FT_ASSERT( i == 0 ||
539
+ ( ( dsCoord_i ^ move ) >= 0 &&
540
+ ( dsCoord_i ^ hintmap->edge[i].dsCoord ) < 0 ) ||
541
+ hintmap->edge[i - 1].dsCoord <= hintmap->edge[i].dsCoord );
542
+ FT_ASSERT( i < j ||
543
+ ( ( dsCoord_j ^ move ) >= 0 &&
544
+ ( dsCoord_j ^ hintmap->edge[j].dsCoord ) < 0 ) ||
545
+ hintmap->edge[i].dsCoord <= hintmap->edge[j].dsCoord );
546
+
547
+ /* adjust the scales, avoiding divide by zero */
548
+ if ( i > 0 )
549
+ {
550
+ if ( hintmap->edge[i].csCoord != hintmap->edge[i - 1].csCoord )
551
+ hintmap->edge[i - 1].scale =
552
+ FT_DivFix( SUB_INT32( hintmap->edge[i].dsCoord,
553
+ hintmap->edge[i - 1].dsCoord ),
554
+ SUB_INT32( hintmap->edge[i].csCoord,
555
+ hintmap->edge[i - 1].csCoord ) );
556
+ }
557
+
558
+ if ( isPair )
559
+ {
560
+ if ( hintmap->edge[j].csCoord != hintmap->edge[j - 1].csCoord )
561
+ hintmap->edge[j - 1].scale =
562
+ FT_DivFix( SUB_INT32( hintmap->edge[j].dsCoord,
563
+ hintmap->edge[j - 1].dsCoord ),
564
+ SUB_INT32( hintmap->edge[j].csCoord,
565
+ hintmap->edge[j - 1].csCoord ) );
566
+
567
+ i += 1; /* skip upper edge on next loop */
568
+ }
569
+ }
570
+
571
+ /* second pass tries to move non-optimal hints up, in case there is */
572
+ /* room now */
573
+ for ( i = cf2_arrstack_size( hintmap->hintMoves ); i > 0; i-- )
574
+ {
575
+ CF2_HintMove hintMove = (CF2_HintMove)
576
+ cf2_arrstack_getPointer( hintmap->hintMoves, i - 1 );
577
+
578
+
579
+ j = hintMove->j;
580
+
581
+ /* this was tested before the push, above */
582
+ FT_ASSERT( j < hintmap->count - 1 );
583
+
584
+ /* is there room to move up? */
585
+ if ( hintmap->edge[j + 1].dsCoord >=
586
+ ADD_INT32( hintmap->edge[j].dsCoord,
587
+ hintMove->moveUp + CF2_MIN_COUNTER ) )
588
+ {
589
+ /* there is more room now, move edge up */
590
+ hintmap->edge[j].dsCoord = ADD_INT32( hintmap->edge[j].dsCoord,
591
+ hintMove->moveUp );
592
+
593
+ if ( cf2_hint_isPair( &hintmap->edge[j] ) )
594
+ {
595
+ FT_ASSERT( j > 0 );
596
+ hintmap->edge[j - 1].dsCoord =
597
+ ADD_INT32( hintmap->edge[j - 1].dsCoord, hintMove->moveUp );
598
+ }
599
+ }
600
+ }
601
+ }
602
+
603
+
604
+ /* insert hint edges into map, sorted by csCoord */
605
+ static void
606
+ cf2_hintmap_insertHint( CF2_HintMap hintmap,
607
+ CF2_Hint bottomHintEdge,
608
+ CF2_Hint topHintEdge )
609
+ {
610
+ CF2_UInt indexInsert;
611
+
612
+ /* set default values, then check for edge hints */
613
+ FT_Bool isPair = TRUE;
614
+ CF2_Hint firstHintEdge = bottomHintEdge;
615
+ CF2_Hint secondHintEdge = topHintEdge;
616
+
617
+
618
+ /* one or none of the input params may be invalid when dealing with */
619
+ /* edge hints; at least one edge must be valid */
620
+ FT_ASSERT( cf2_hint_isValid( bottomHintEdge ) ||
621
+ cf2_hint_isValid( topHintEdge ) );
622
+
623
+ /* determine how many and which edges to insert */
624
+ if ( !cf2_hint_isValid( bottomHintEdge ) )
625
+ {
626
+ /* insert only the top edge */
627
+ firstHintEdge = topHintEdge;
628
+ isPair = FALSE;
629
+ }
630
+ else if ( !cf2_hint_isValid( topHintEdge ) )
631
+ {
632
+ /* insert only the bottom edge */
633
+ isPair = FALSE;
634
+ }
635
+
636
+ /* paired edges must be in proper order */
637
+ if ( isPair &&
638
+ topHintEdge->csCoord < bottomHintEdge->csCoord )
639
+ return;
640
+
641
+ /* linear search to find index value of insertion point */
642
+ indexInsert = 0;
643
+ for ( ; indexInsert < hintmap->count; indexInsert++ )
644
+ {
645
+ if ( hintmap->edge[indexInsert].csCoord >= firstHintEdge->csCoord )
646
+ break;
647
+ }
648
+
649
+ FT_TRACE7(( " Got hint at %.2f (%.2f)\n",
650
+ firstHintEdge->csCoord / 65536.0,
651
+ firstHintEdge->dsCoord / 65536.0 ));
652
+ if ( isPair )
653
+ FT_TRACE7(( " Got hint at %.2f (%.2f)\n",
654
+ secondHintEdge->csCoord / 65536.0,
655
+ secondHintEdge->dsCoord / 65536.0 ));
656
+
657
+ /*
658
+ * Discard any hints that overlap in character space. Most often, this
659
+ * is while building the initial map, where captured hints from all
660
+ * zones are combined. Define overlap to include hints that `touch'
661
+ * (overlap zero). Hiragino Sans/Gothic fonts have numerous hints that
662
+ * touch. Some fonts have non-ideographic glyphs that overlap our
663
+ * synthetic hints.
664
+ *
665
+ * Overlap also occurs when darkening stem hints that are close.
666
+ *
667
+ */
668
+ if ( indexInsert < hintmap->count )
669
+ {
670
+ /* we are inserting before an existing edge: */
671
+ /* verify that an existing edge is not the same */
672
+ if ( hintmap->edge[indexInsert].csCoord == firstHintEdge->csCoord )
673
+ return; /* ignore overlapping stem hint */
674
+
675
+ /* verify that a new pair does not straddle the next edge */
676
+ if ( isPair &&
677
+ hintmap->edge[indexInsert].csCoord <= secondHintEdge->csCoord )
678
+ return; /* ignore overlapping stem hint */
679
+
680
+ /* verify that we are not inserting between paired edges */
681
+ if ( cf2_hint_isPairTop( &hintmap->edge[indexInsert] ) )
682
+ return; /* ignore overlapping stem hint */
683
+ }
684
+
685
+ /* recompute device space locations using initial hint map */
686
+ if ( cf2_hintmap_isValid( hintmap->initialHintMap ) &&
687
+ !cf2_hint_isLocked( firstHintEdge ) )
688
+ {
689
+ if ( isPair )
690
+ {
691
+ /* Use hint map to position the center of stem, and nominal scale */
692
+ /* to position the two edges. This preserves the stem width. */
693
+ CF2_Fixed midpoint =
694
+ cf2_hintmap_map(
695
+ hintmap->initialHintMap,
696
+ ADD_INT32(
697
+ firstHintEdge->csCoord,
698
+ SUB_INT32 ( secondHintEdge->csCoord,
699
+ firstHintEdge->csCoord ) / 2 ) );
700
+ CF2_Fixed halfWidth =
701
+ FT_MulFix( SUB_INT32( secondHintEdge->csCoord,
702
+ firstHintEdge->csCoord ) / 2,
703
+ hintmap->scale );
704
+
705
+
706
+ firstHintEdge->dsCoord = SUB_INT32( midpoint, halfWidth );
707
+ secondHintEdge->dsCoord = ADD_INT32( midpoint, halfWidth );
708
+ }
709
+ else
710
+ firstHintEdge->dsCoord = cf2_hintmap_map( hintmap->initialHintMap,
711
+ firstHintEdge->csCoord );
712
+ }
713
+
714
+ /*
715
+ * Discard any hints that overlap in device space; this can occur
716
+ * because locked hints have been moved to align with blue zones.
717
+ *
718
+ * TODO: Although we might correct this later during adjustment, we
719
+ * don't currently have a way to delete a conflicting hint once it has
720
+ * been inserted. See v2.030 MinionPro-Regular, 12 ppem darkened,
721
+ * initial hint map for second path, glyph 945 (the perispomeni (tilde)
722
+ * in U+1F6E, Greek omega with psili and perispomeni). Darkening is
723
+ * 25. Pair 667,747 initially conflicts in design space with top edge
724
+ * 660. This is because 667 maps to 7.87, and the top edge was
725
+ * captured by a zone at 8.0. The pair is later successfully inserted
726
+ * in a zone without the top edge. In this zone it is adjusted to 8.0,
727
+ * and no longer conflicts with the top edge in design space. This
728
+ * means it can be included in yet a later zone which does have the top
729
+ * edge hint. This produces a small mismatch between the first and
730
+ * last points of this path, even though the hint masks are the same.
731
+ * The density map difference is tiny (1/256).
732
+ *
733
+ */
734
+
735
+ if ( indexInsert > 0 )
736
+ {
737
+ /* we are inserting after an existing edge */
738
+ if ( firstHintEdge->dsCoord < hintmap->edge[indexInsert - 1].dsCoord )
739
+ return;
740
+ }
741
+
742
+ if ( indexInsert < hintmap->count )
743
+ {
744
+ /* we are inserting before an existing edge */
745
+ if ( isPair )
746
+ {
747
+ if ( secondHintEdge->dsCoord > hintmap->edge[indexInsert].dsCoord )
748
+ return;
749
+ }
750
+ else
751
+ {
752
+ if ( firstHintEdge->dsCoord > hintmap->edge[indexInsert].dsCoord )
753
+ return;
754
+ }
755
+ }
756
+
757
+ /* make room to insert */
758
+ {
759
+ CF2_UInt iSrc = hintmap->count - 1;
760
+ CF2_UInt iDst = isPair ? hintmap->count + 1 : hintmap->count;
761
+
762
+ CF2_UInt count = hintmap->count - indexInsert;
763
+
764
+
765
+ if ( iDst >= CF2_MAX_HINT_EDGES )
766
+ {
767
+ FT_TRACE4(( "cf2_hintmap_insertHint: too many hintmaps\n" ));
768
+ return;
769
+ }
770
+
771
+ while ( count-- )
772
+ hintmap->edge[iDst--] = hintmap->edge[iSrc--];
773
+
774
+ /* insert first edge */
775
+ hintmap->edge[indexInsert] = *firstHintEdge; /* copy struct */
776
+ hintmap->count += 1;
777
+
778
+ FT_TRACE7(( " Inserting hint %.2f (%.2f)\n",
779
+ firstHintEdge->csCoord / 65536.0,
780
+ firstHintEdge->dsCoord / 65536.0 ));
781
+
782
+ if ( isPair )
783
+ {
784
+ /* insert second edge */
785
+ hintmap->edge[indexInsert + 1] = *secondHintEdge; /* copy struct */
786
+ hintmap->count += 1;
787
+
788
+ FT_TRACE7(( " Inserting hint %.2f (%.2f)\n",
789
+ secondHintEdge->csCoord / 65536.0,
790
+ secondHintEdge->dsCoord / 65536.0 ));
791
+
792
+ }
793
+ }
794
+
795
+ return;
796
+ }
797
+
798
+
799
+ /*
800
+ * Build a map from hints and mask.
801
+ *
802
+ * This function may recur one level if `hintmap->initialHintMap' is not yet
803
+ * valid.
804
+ * If `initialMap' is true, simply build initial map.
805
+ *
806
+ * Synthetic hints are used in two ways. A hint at zero is inserted, if
807
+ * needed, in the initial hint map, to prevent translations from
808
+ * propagating across the origin. If synthetic em box hints are enabled
809
+ * for ideographic dictionaries, then they are inserted in all hint
810
+ * maps, including the initial one.
811
+ *
812
+ */
813
+ FT_LOCAL_DEF( void )
814
+ cf2_hintmap_build( CF2_HintMap hintmap,
815
+ CF2_ArrStack hStemHintArray,
816
+ CF2_ArrStack vStemHintArray,
817
+ CF2_HintMask hintMask,
818
+ CF2_Fixed hintOrigin,
819
+ FT_Bool initialMap )
820
+ {
821
+ FT_Byte* maskPtr;
822
+
823
+ CF2_Font font = hintmap->font;
824
+ CF2_HintMaskRec tempHintMask;
825
+
826
+ size_t bitCount, i;
827
+ FT_Byte maskByte;
828
+
829
+
830
+ /* check whether initial map is constructed */
831
+ if ( !initialMap && !cf2_hintmap_isValid( hintmap->initialHintMap ) )
832
+ {
833
+ /* make recursive call with initialHintMap and temporary mask; */
834
+ /* temporary mask will get all bits set, below */
835
+ cf2_hintmask_init( &tempHintMask, hintMask->error );
836
+ cf2_hintmap_build( hintmap->initialHintMap,
837
+ hStemHintArray,
838
+ vStemHintArray,
839
+ &tempHintMask,
840
+ hintOrigin,
841
+ TRUE );
842
+ }
843
+
844
+ if ( !cf2_hintmask_isValid( hintMask ) )
845
+ {
846
+ /* without a hint mask, assume all hints are active */
847
+ cf2_hintmask_setAll( hintMask,
848
+ cf2_arrstack_size( hStemHintArray ) +
849
+ cf2_arrstack_size( vStemHintArray ) );
850
+ if ( !cf2_hintmask_isValid( hintMask ) )
851
+ {
852
+ if ( font->isT1 )
853
+ {
854
+ /* no error, just continue unhinted */
855
+ *hintMask->error = FT_Err_Ok;
856
+ hintmap->hinted = FALSE;
857
+ }
858
+ return; /* too many stem hints */
859
+ }
860
+ }
861
+
862
+ /* begin by clearing the map */
863
+ hintmap->count = 0;
864
+ hintmap->lastIndex = 0;
865
+
866
+ /* make a copy of the hint mask so we can modify it */
867
+ tempHintMask = *hintMask;
868
+ maskPtr = cf2_hintmask_getMaskPtr( &tempHintMask );
869
+
870
+ /* use the hStem hints only, which are first in the mask */
871
+ bitCount = cf2_arrstack_size( hStemHintArray );
872
+
873
+ /* Defense-in-depth. Should never return here. */
874
+ if ( bitCount > hintMask->bitCount )
875
+ return;
876
+
877
+ /* synthetic embox hints get highest priority */
878
+ if ( font->blues.doEmBoxHints )
879
+ {
880
+ CF2_HintRec dummy;
881
+
882
+
883
+ cf2_hint_initZero( &dummy ); /* invalid hint map element */
884
+
885
+ /* ghost bottom */
886
+ cf2_hintmap_insertHint( hintmap,
887
+ &font->blues.emBoxBottomEdge,
888
+ &dummy );
889
+ /* ghost top */
890
+ cf2_hintmap_insertHint( hintmap,
891
+ &dummy,
892
+ &font->blues.emBoxTopEdge );
893
+ }
894
+
895
+ /* insert hints captured by a blue zone or already locked (higher */
896
+ /* priority) */
897
+ for ( i = 0, maskByte = 0x80; i < bitCount; i++ )
898
+ {
899
+ if ( maskByte & *maskPtr )
900
+ {
901
+ /* expand StemHint into two `CF2_Hint' elements */
902
+ CF2_HintRec bottomHintEdge, topHintEdge;
903
+
904
+
905
+ cf2_hint_init( &bottomHintEdge,
906
+ hStemHintArray,
907
+ i,
908
+ font,
909
+ hintOrigin,
910
+ hintmap->scale,
911
+ TRUE /* bottom */ );
912
+ cf2_hint_init( &topHintEdge,
913
+ hStemHintArray,
914
+ i,
915
+ font,
916
+ hintOrigin,
917
+ hintmap->scale,
918
+ FALSE /* top */ );
919
+
920
+ if ( cf2_hint_isLocked( &bottomHintEdge ) ||
921
+ cf2_hint_isLocked( &topHintEdge ) ||
922
+ cf2_blues_capture( &font->blues,
923
+ &bottomHintEdge,
924
+ &topHintEdge ) )
925
+ {
926
+ /* insert captured hint into map */
927
+ cf2_hintmap_insertHint( hintmap, &bottomHintEdge, &topHintEdge );
928
+
929
+ *maskPtr &= ~maskByte; /* turn off the bit for this hint */
930
+ }
931
+ }
932
+
933
+ if ( ( i & 7 ) == 7 )
934
+ {
935
+ /* move to next mask byte */
936
+ maskPtr++;
937
+ maskByte = 0x80;
938
+ }
939
+ else
940
+ maskByte >>= 1;
941
+ }
942
+
943
+ /* initial hint map includes only captured hints plus maybe one at 0 */
944
+
945
+ /*
946
+ * TODO: There is a problem here because we are trying to build a
947
+ * single hint map containing all captured hints. It is
948
+ * possible for there to be conflicts between captured hints,
949
+ * either because of darkening or because the hints are in
950
+ * separate hint zones (we are ignoring hint zones for the
951
+ * initial map). An example of the latter is MinionPro-Regular
952
+ * v2.030 glyph 883 (Greek Capital Alpha with Psili) at 15ppem.
953
+ * A stem hint for the psili conflicts with the top edge hint
954
+ * for the base character. The stem hint gets priority because
955
+ * of its sort order. In glyph 884 (Greek Capital Alpha with
956
+ * Psili and Oxia), the top of the base character gets a stem
957
+ * hint, and the psili does not. This creates different initial
958
+ * maps for the two glyphs resulting in different renderings of
959
+ * the base character. Will probably defer this either as not
960
+ * worth the cost or as a font bug. I don't think there is any
961
+ * good reason for an accent to be captured by an alignment
962
+ * zone. -darnold 2/12/10
963
+ */
964
+
965
+ if ( initialMap )
966
+ {
967
+ /* Apply a heuristic that inserts a point for (0,0), unless it's */
968
+ /* already covered by a mapping. This locks the baseline for glyphs */
969
+ /* that have no baseline hints. */
970
+
971
+ if ( hintmap->count == 0 ||
972
+ hintmap->edge[0].csCoord > 0 ||
973
+ hintmap->edge[hintmap->count - 1].csCoord < 0 )
974
+ {
975
+ /* all edges are above 0 or all edges are below 0; */
976
+ /* construct a locked edge hint at 0 */
977
+
978
+ CF2_HintRec edge, invalid;
979
+
980
+
981
+ cf2_hint_initZero( &edge );
982
+
983
+ edge.flags = CF2_GhostBottom |
984
+ CF2_Locked |
985
+ CF2_Synthetic;
986
+ edge.scale = hintmap->scale;
987
+
988
+ cf2_hint_initZero( &invalid );
989
+ cf2_hintmap_insertHint( hintmap, &edge, &invalid );
990
+ }
991
+ }
992
+ else
993
+ {
994
+ /* insert remaining hints */
995
+
996
+ maskPtr = cf2_hintmask_getMaskPtr( &tempHintMask );
997
+
998
+ for ( i = 0, maskByte = 0x80; i < bitCount; i++ )
999
+ {
1000
+ if ( maskByte & *maskPtr )
1001
+ {
1002
+ CF2_HintRec bottomHintEdge, topHintEdge;
1003
+
1004
+
1005
+ cf2_hint_init( &bottomHintEdge,
1006
+ hStemHintArray,
1007
+ i,
1008
+ font,
1009
+ hintOrigin,
1010
+ hintmap->scale,
1011
+ TRUE /* bottom */ );
1012
+ cf2_hint_init( &topHintEdge,
1013
+ hStemHintArray,
1014
+ i,
1015
+ font,
1016
+ hintOrigin,
1017
+ hintmap->scale,
1018
+ FALSE /* top */ );
1019
+
1020
+ cf2_hintmap_insertHint( hintmap, &bottomHintEdge, &topHintEdge );
1021
+ }
1022
+
1023
+ if ( ( i & 7 ) == 7 )
1024
+ {
1025
+ /* move to next mask byte */
1026
+ maskPtr++;
1027
+ maskByte = 0x80;
1028
+ }
1029
+ else
1030
+ maskByte >>= 1;
1031
+ }
1032
+ }
1033
+
1034
+ #ifdef FT_DEBUG_LEVEL_TRACE
1035
+ if ( initialMap )
1036
+ {
1037
+ FT_TRACE6(( "flags: [p]air [g]host [t]op"
1038
+ " [b]ottom [L]ocked [S]ynthetic\n" ));
1039
+ FT_TRACE6(( "Initial hintmap:\n" ));
1040
+ }
1041
+ else
1042
+ FT_TRACE6(( "Hints:\n" ));
1043
+ #endif
1044
+
1045
+ cf2_hintmap_dump( hintmap );
1046
+
1047
+ /*
1048
+ * Note: The following line is a convenient place to break when
1049
+ * debugging hinting. Examine `hintmap->edge' for the list of
1050
+ * enabled hints, then step over the call to see the effect of
1051
+ * adjustment. We stop here first on the recursive call that
1052
+ * creates the initial map, and then on each counter group and
1053
+ * hint zone.
1054
+ */
1055
+
1056
+ /* adjust positions of hint edges that are not locked to blue zones */
1057
+ cf2_hintmap_adjustHints( hintmap );
1058
+
1059
+ FT_TRACE6(( "Hints adjusted:\n" ));
1060
+ cf2_hintmap_dump( hintmap );
1061
+
1062
+ /* save the position of all hints that were used in this hint map; */
1063
+ /* if we use them again, we'll locate them in the same position */
1064
+ if ( !initialMap )
1065
+ {
1066
+ for ( i = 0; i < hintmap->count; i++ )
1067
+ {
1068
+ if ( !cf2_hint_isSynthetic( &hintmap->edge[i] ) )
1069
+ {
1070
+ /* Note: include both valid and invalid edges */
1071
+ /* Note: top and bottom edges are copied back separately */
1072
+ CF2_StemHint stemhint = (CF2_StemHint)
1073
+ cf2_arrstack_getPointer( hStemHintArray,
1074
+ hintmap->edge[i].index );
1075
+
1076
+
1077
+ if ( cf2_hint_isTop( &hintmap->edge[i] ) )
1078
+ stemhint->maxDS = hintmap->edge[i].dsCoord;
1079
+ else
1080
+ stemhint->minDS = hintmap->edge[i].dsCoord;
1081
+
1082
+ stemhint->used = TRUE;
1083
+ }
1084
+ }
1085
+ }
1086
+
1087
+ /* hint map is ready to use */
1088
+ hintmap->isValid = TRUE;
1089
+
1090
+ /* remember this mask has been used */
1091
+ cf2_hintmask_setNew( hintMask, FALSE );
1092
+ }
1093
+
1094
+
1095
+ FT_LOCAL_DEF( void )
1096
+ cf2_glyphpath_init( CF2_GlyphPath glyphpath,
1097
+ CF2_Font font,
1098
+ CF2_OutlineCallbacks callbacks,
1099
+ CF2_Fixed scaleY,
1100
+ /* CF2_Fixed hShift, */
1101
+ CF2_ArrStack hStemHintArray,
1102
+ CF2_ArrStack vStemHintArray,
1103
+ CF2_HintMask hintMask,
1104
+ CF2_Fixed hintOriginY,
1105
+ const CF2_Blues blues,
1106
+ const FT_Vector* fractionalTranslation )
1107
+ {
1108
+ FT_ZERO( glyphpath );
1109
+
1110
+ glyphpath->font = font;
1111
+ glyphpath->callbacks = callbacks;
1112
+
1113
+ cf2_arrstack_init( &glyphpath->hintMoves,
1114
+ font->memory,
1115
+ &font->error,
1116
+ sizeof ( CF2_HintMoveRec ) );
1117
+
1118
+ cf2_hintmap_init( &glyphpath->initialHintMap,
1119
+ font,
1120
+ &glyphpath->initialHintMap,
1121
+ &glyphpath->hintMoves,
1122
+ scaleY );
1123
+ cf2_hintmap_init( &glyphpath->firstHintMap,
1124
+ font,
1125
+ &glyphpath->initialHintMap,
1126
+ &glyphpath->hintMoves,
1127
+ scaleY );
1128
+ cf2_hintmap_init( &glyphpath->hintMap,
1129
+ font,
1130
+ &glyphpath->initialHintMap,
1131
+ &glyphpath->hintMoves,
1132
+ scaleY );
1133
+
1134
+ glyphpath->scaleX = font->innerTransform.a;
1135
+ glyphpath->scaleC = font->innerTransform.c;
1136
+ glyphpath->scaleY = font->innerTransform.d;
1137
+
1138
+ glyphpath->fractionalTranslation = *fractionalTranslation;
1139
+
1140
+ #if 0
1141
+ glyphpath->hShift = hShift; /* for fauxing */
1142
+ #endif
1143
+
1144
+ glyphpath->hStemHintArray = hStemHintArray;
1145
+ glyphpath->vStemHintArray = vStemHintArray;
1146
+ glyphpath->hintMask = hintMask; /* ptr to current mask */
1147
+ glyphpath->hintOriginY = hintOriginY;
1148
+ glyphpath->blues = blues;
1149
+ glyphpath->darken = font->darkened; /* TODO: should we make copies? */
1150
+ glyphpath->xOffset = font->darkenX;
1151
+ glyphpath->yOffset = font->darkenY;
1152
+ glyphpath->miterLimit = 2 * FT_MAX(
1153
+ cf2_fixedAbs( glyphpath->xOffset ),
1154
+ cf2_fixedAbs( glyphpath->yOffset ) );
1155
+
1156
+ /* .1 character space unit */
1157
+ glyphpath->snapThreshold = cf2_doubleToFixed( 0.1 );
1158
+
1159
+ glyphpath->moveIsPending = TRUE;
1160
+ glyphpath->pathIsOpen = FALSE;
1161
+ glyphpath->pathIsClosing = FALSE;
1162
+ glyphpath->elemIsQueued = FALSE;
1163
+ }
1164
+
1165
+
1166
+ FT_LOCAL_DEF( void )
1167
+ cf2_glyphpath_finalize( CF2_GlyphPath glyphpath )
1168
+ {
1169
+ cf2_arrstack_finalize( &glyphpath->hintMoves );
1170
+ }
1171
+
1172
+
1173
+ /*
1174
+ * Hint point in y-direction and apply outerTransform.
1175
+ * Input `current' hint map (which is actually delayed by one element).
1176
+ * Input x,y point in Character Space.
1177
+ * Output x,y point in Device Space, including translation.
1178
+ */
1179
+ static void
1180
+ cf2_glyphpath_hintPoint( CF2_GlyphPath glyphpath,
1181
+ CF2_HintMap hintmap,
1182
+ FT_Vector* ppt,
1183
+ CF2_Fixed x,
1184
+ CF2_Fixed y )
1185
+ {
1186
+ FT_Vector pt; /* hinted point in upright DS */
1187
+
1188
+
1189
+ pt.x = ADD_INT32( FT_MulFix( glyphpath->scaleX, x ),
1190
+ FT_MulFix( glyphpath->scaleC, y ) );
1191
+ pt.y = cf2_hintmap_map( hintmap, y );
1192
+
1193
+ ppt->x = ADD_INT32(
1194
+ FT_MulFix( glyphpath->font->outerTransform.a, pt.x ),
1195
+ ADD_INT32(
1196
+ FT_MulFix( glyphpath->font->outerTransform.c, pt.y ),
1197
+ glyphpath->fractionalTranslation.x ) );
1198
+ ppt->y = ADD_INT32(
1199
+ FT_MulFix( glyphpath->font->outerTransform.b, pt.x ),
1200
+ ADD_INT32(
1201
+ FT_MulFix( glyphpath->font->outerTransform.d, pt.y ),
1202
+ glyphpath->fractionalTranslation.y ) );
1203
+ }
1204
+
1205
+
1206
+ /*
1207
+ * From two line segments, (u1,u2) and (v1,v2), compute a point of
1208
+ * intersection on the corresponding lines.
1209
+ * Return false if no intersection is found, or if the intersection is
1210
+ * too far away from the ends of the line segments, u2 and v1.
1211
+ *
1212
+ */
1213
+ static FT_Bool
1214
+ cf2_glyphpath_computeIntersection( CF2_GlyphPath glyphpath,
1215
+ const FT_Vector* u1,
1216
+ const FT_Vector* u2,
1217
+ const FT_Vector* v1,
1218
+ const FT_Vector* v2,
1219
+ FT_Vector* intersection )
1220
+ {
1221
+ /*
1222
+ * Let `u' be a zero-based vector from the first segment, `v' from the
1223
+ * second segment.
1224
+ * Let `w 'be the zero-based vector from `u1' to `v1'.
1225
+ * `perp' is the `perpendicular dot product'; see
1226
+ * https://mathworld.wolfram.com/PerpDotProduct.html.
1227
+ * `s' is the parameter for the parametric line for the first segment
1228
+ * (`u').
1229
+ *
1230
+ * See notation in
1231
+ * http://geomalgorithms.com/a05-_intersect-1.html.
1232
+ * Calculations are done in 16.16, but must handle the squaring of
1233
+ * line lengths in character space. We scale all vectors by 1/32 to
1234
+ * avoid overflow. This allows values up to 4095 to be squared. The
1235
+ * scale factor cancels in the divide.
1236
+ *
1237
+ * TODO: the scale factor could be computed from UnitsPerEm.
1238
+ *
1239
+ */
1240
+
1241
+ #define cf2_perp( a, b ) \
1242
+ ( FT_MulFix( a.x, b.y ) - FT_MulFix( a.y, b.x ) )
1243
+
1244
+ /* round and divide by 32 */
1245
+ #define CF2_CS_SCALE( x ) \
1246
+ ( ( (x) + 0x10 ) >> 5 )
1247
+
1248
+ FT_Vector u, v, w; /* scaled vectors */
1249
+ CF2_Fixed denominator, s;
1250
+
1251
+
1252
+ u.x = CF2_CS_SCALE( SUB_INT32( u2->x, u1->x ) );
1253
+ u.y = CF2_CS_SCALE( SUB_INT32( u2->y, u1->y ) );
1254
+ v.x = CF2_CS_SCALE( SUB_INT32( v2->x, v1->x ) );
1255
+ v.y = CF2_CS_SCALE( SUB_INT32( v2->y, v1->y ) );
1256
+ w.x = CF2_CS_SCALE( SUB_INT32( v1->x, u1->x ) );
1257
+ w.y = CF2_CS_SCALE( SUB_INT32( v1->y, u1->y ) );
1258
+
1259
+ denominator = cf2_perp( u, v );
1260
+
1261
+ if ( denominator == 0 )
1262
+ return FALSE; /* parallel or coincident lines */
1263
+
1264
+ s = FT_DivFix( cf2_perp( w, v ), denominator );
1265
+
1266
+ intersection->x = ADD_INT32( u1->x,
1267
+ FT_MulFix( s, SUB_INT32( u2->x, u1->x ) ) );
1268
+ intersection->y = ADD_INT32( u1->y,
1269
+ FT_MulFix( s, SUB_INT32( u2->y, u1->y ) ) );
1270
+
1271
+
1272
+ /*
1273
+ * Special case snapping for horizontal and vertical lines.
1274
+ * This cleans up intersections and reduces problems with winding
1275
+ * order detection.
1276
+ * Sample case is sbc cd KozGoPr6N-Medium.otf 20 16685.
1277
+ * Note: these calculations are in character space.
1278
+ *
1279
+ */
1280
+
1281
+ if ( u1->x == u2->x &&
1282
+ cf2_fixedAbs( SUB_INT32( intersection->x,
1283
+ u1->x ) ) < glyphpath->snapThreshold )
1284
+ intersection->x = u1->x;
1285
+ if ( u1->y == u2->y &&
1286
+ cf2_fixedAbs( SUB_INT32( intersection->y,
1287
+ u1->y ) ) < glyphpath->snapThreshold )
1288
+ intersection->y = u1->y;
1289
+
1290
+ if ( v1->x == v2->x &&
1291
+ cf2_fixedAbs( SUB_INT32( intersection->x,
1292
+ v1->x ) ) < glyphpath->snapThreshold )
1293
+ intersection->x = v1->x;
1294
+ if ( v1->y == v2->y &&
1295
+ cf2_fixedAbs( SUB_INT32( intersection->y,
1296
+ v1->y ) ) < glyphpath->snapThreshold )
1297
+ intersection->y = v1->y;
1298
+
1299
+ /* limit the intersection distance from midpoint of u2 and v1 */
1300
+ if ( cf2_fixedAbs( intersection->x - ADD_INT32( u2->x, v1->x ) / 2 ) >
1301
+ glyphpath->miterLimit ||
1302
+ cf2_fixedAbs( intersection->y - ADD_INT32( u2->y, v1->y ) / 2 ) >
1303
+ glyphpath->miterLimit )
1304
+ return FALSE;
1305
+
1306
+ return TRUE;
1307
+ }
1308
+
1309
+
1310
+ /*
1311
+ * Push the cached element (glyphpath->prevElem*) to the outline
1312
+ * consumer. When a darkening offset is used, the end point of the
1313
+ * cached element may be adjusted to an intersection point or we may
1314
+ * synthesize a connecting line to the current element. If we are
1315
+ * closing a subpath, we may also generate a connecting line to the start
1316
+ * point.
1317
+ *
1318
+ * This is where Character Space (CS) is converted to Device Space (DS)
1319
+ * using a hint map. This calculation must use a HintMap that was valid
1320
+ * at the time the element was saved. For the first point in a subpath,
1321
+ * that is a saved HintMap. For most elements, it just means the caller
1322
+ * has delayed building a HintMap from the current HintMask.
1323
+ *
1324
+ * Transform each point with outerTransform and call the outline
1325
+ * callbacks. This is a general 3x3 transform:
1326
+ *
1327
+ * x' = a*x + c*y + tx, y' = b*x + d*y + ty
1328
+ *
1329
+ * but it uses 4 elements from CF2_Font and the translation part
1330
+ * from CF2_GlyphPath.
1331
+ *
1332
+ */
1333
+ static void
1334
+ cf2_glyphpath_pushPrevElem( CF2_GlyphPath glyphpath,
1335
+ CF2_HintMap hintmap,
1336
+ FT_Vector* nextP0,
1337
+ FT_Vector nextP1,
1338
+ FT_Bool close )
1339
+ {
1340
+ CF2_CallbackParamsRec params;
1341
+
1342
+ FT_Vector* prevP0;
1343
+ FT_Vector* prevP1;
1344
+
1345
+ FT_Vector intersection = { 0, 0 };
1346
+ FT_Bool useIntersection = FALSE;
1347
+
1348
+
1349
+ FT_ASSERT( glyphpath->prevElemOp == CF2_PathOpLineTo ||
1350
+ glyphpath->prevElemOp == CF2_PathOpCubeTo );
1351
+
1352
+ if ( glyphpath->prevElemOp == CF2_PathOpLineTo )
1353
+ {
1354
+ prevP0 = &glyphpath->prevElemP0;
1355
+ prevP1 = &glyphpath->prevElemP1;
1356
+ }
1357
+ else
1358
+ {
1359
+ prevP0 = &glyphpath->prevElemP2;
1360
+ prevP1 = &glyphpath->prevElemP3;
1361
+ }
1362
+
1363
+ /* optimization: if previous and next elements are offset by the same */
1364
+ /* amount, then there will be no gap, and no need to compute an */
1365
+ /* intersection. */
1366
+ if ( prevP1->x != nextP0->x || prevP1->y != nextP0->y )
1367
+ {
1368
+ /* previous element does not join next element: */
1369
+ /* adjust end point of previous element to the intersection */
1370
+ useIntersection = cf2_glyphpath_computeIntersection( glyphpath,
1371
+ prevP0,
1372
+ prevP1,
1373
+ nextP0,
1374
+ &nextP1,
1375
+ &intersection );
1376
+ if ( useIntersection )
1377
+ {
1378
+ /* modify the last point of the cached element (either line or */
1379
+ /* curve) */
1380
+ *prevP1 = intersection;
1381
+ }
1382
+ }
1383
+
1384
+ params.pt0 = glyphpath->currentDS;
1385
+
1386
+ switch( glyphpath->prevElemOp )
1387
+ {
1388
+ case CF2_PathOpLineTo:
1389
+ params.op = CF2_PathOpLineTo;
1390
+
1391
+ /* note: pt2 and pt3 are unused */
1392
+
1393
+ if ( close )
1394
+ {
1395
+ /* use first hint map if closing */
1396
+ cf2_glyphpath_hintPoint( glyphpath,
1397
+ &glyphpath->firstHintMap,
1398
+ &params.pt1,
1399
+ glyphpath->prevElemP1.x,
1400
+ glyphpath->prevElemP1.y );
1401
+ }
1402
+ else
1403
+ {
1404
+ cf2_glyphpath_hintPoint( glyphpath,
1405
+ hintmap,
1406
+ &params.pt1,
1407
+ glyphpath->prevElemP1.x,
1408
+ glyphpath->prevElemP1.y );
1409
+ }
1410
+
1411
+ /* output only non-zero length lines */
1412
+ if ( params.pt0.x != params.pt1.x || params.pt0.y != params.pt1.y )
1413
+ {
1414
+ glyphpath->callbacks->lineTo( glyphpath->callbacks, &params );
1415
+
1416
+ glyphpath->currentDS = params.pt1;
1417
+ }
1418
+ break;
1419
+
1420
+ case CF2_PathOpCubeTo:
1421
+ params.op = CF2_PathOpCubeTo;
1422
+
1423
+ /* TODO: should we intersect the interior joins (p1-p2 and p2-p3)? */
1424
+ cf2_glyphpath_hintPoint( glyphpath,
1425
+ hintmap,
1426
+ &params.pt1,
1427
+ glyphpath->prevElemP1.x,
1428
+ glyphpath->prevElemP1.y );
1429
+ cf2_glyphpath_hintPoint( glyphpath,
1430
+ hintmap,
1431
+ &params.pt2,
1432
+ glyphpath->prevElemP2.x,
1433
+ glyphpath->prevElemP2.y );
1434
+ cf2_glyphpath_hintPoint( glyphpath,
1435
+ hintmap,
1436
+ &params.pt3,
1437
+ glyphpath->prevElemP3.x,
1438
+ glyphpath->prevElemP3.y );
1439
+
1440
+ glyphpath->callbacks->cubeTo( glyphpath->callbacks, &params );
1441
+
1442
+ glyphpath->currentDS = params.pt3;
1443
+
1444
+ break;
1445
+ }
1446
+
1447
+ if ( !useIntersection || close )
1448
+ {
1449
+ /* insert connecting line between end of previous element and start */
1450
+ /* of current one */
1451
+ /* note: at the end of a subpath, we might do both, so use `nextP0' */
1452
+ /* before we change it, below */
1453
+
1454
+ if ( close )
1455
+ {
1456
+ /* if we are closing the subpath, then nextP0 is in the first */
1457
+ /* hint zone */
1458
+ cf2_glyphpath_hintPoint( glyphpath,
1459
+ &glyphpath->firstHintMap,
1460
+ &params.pt1,
1461
+ nextP0->x,
1462
+ nextP0->y );
1463
+ }
1464
+ else
1465
+ {
1466
+ cf2_glyphpath_hintPoint( glyphpath,
1467
+ hintmap,
1468
+ &params.pt1,
1469
+ nextP0->x,
1470
+ nextP0->y );
1471
+ }
1472
+
1473
+ if ( params.pt1.x != glyphpath->currentDS.x ||
1474
+ params.pt1.y != glyphpath->currentDS.y )
1475
+ {
1476
+ /* length is nonzero */
1477
+ params.op = CF2_PathOpLineTo;
1478
+ params.pt0 = glyphpath->currentDS;
1479
+
1480
+ /* note: pt2 and pt3 are unused */
1481
+ glyphpath->callbacks->lineTo( glyphpath->callbacks, &params );
1482
+
1483
+ glyphpath->currentDS = params.pt1;
1484
+ }
1485
+ }
1486
+
1487
+ if ( useIntersection )
1488
+ {
1489
+ /* return intersection point to caller */
1490
+ *nextP0 = intersection;
1491
+ }
1492
+ }
1493
+
1494
+
1495
+ /* push a MoveTo element based on current point and offset of current */
1496
+ /* element */
1497
+ static void
1498
+ cf2_glyphpath_pushMove( CF2_GlyphPath glyphpath,
1499
+ FT_Vector start )
1500
+ {
1501
+ CF2_CallbackParamsRec params;
1502
+
1503
+
1504
+ params.op = CF2_PathOpMoveTo;
1505
+ params.pt0 = glyphpath->currentDS;
1506
+
1507
+ /* Test if move has really happened yet; it would have called */
1508
+ /* `cf2_hintmap_build' to set `isValid'. */
1509
+ if ( !cf2_hintmap_isValid( &glyphpath->hintMap ) )
1510
+ {
1511
+ /* we are here iff first subpath is missing a moveto operator: */
1512
+ /* synthesize first moveTo to finish initialization of hintMap */
1513
+ cf2_glyphpath_moveTo( glyphpath,
1514
+ glyphpath->start.x,
1515
+ glyphpath->start.y );
1516
+ }
1517
+
1518
+ cf2_glyphpath_hintPoint( glyphpath,
1519
+ &glyphpath->hintMap,
1520
+ &params.pt1,
1521
+ start.x,
1522
+ start.y );
1523
+
1524
+ /* note: pt2 and pt3 are unused */
1525
+ glyphpath->callbacks->moveTo( glyphpath->callbacks, &params );
1526
+
1527
+ glyphpath->currentDS = params.pt1;
1528
+ glyphpath->offsetStart0 = start;
1529
+ }
1530
+
1531
+
1532
+ /*
1533
+ * All coordinates are in character space.
1534
+ * On input, (x1, y1) and (x2, y2) give line segment.
1535
+ * On output, (x, y) give offset vector.
1536
+ * We use a piecewise approximation to trig functions.
1537
+ *
1538
+ * TODO: Offset true perpendicular and proper length
1539
+ * supply the y-translation for hinting here, too,
1540
+ * that adds yOffset unconditionally to *y.
1541
+ */
1542
+ static void
1543
+ cf2_glyphpath_computeOffset( CF2_GlyphPath glyphpath,
1544
+ CF2_Fixed x1,
1545
+ CF2_Fixed y1,
1546
+ CF2_Fixed x2,
1547
+ CF2_Fixed y2,
1548
+ CF2_Fixed* x,
1549
+ CF2_Fixed* y )
1550
+ {
1551
+ CF2_Fixed dx = SUB_INT32( x2, x1 );
1552
+ CF2_Fixed dy = SUB_INT32( y2, y1 );
1553
+
1554
+
1555
+ /* note: negative offsets don't work here; negate deltas to change */
1556
+ /* quadrants, below */
1557
+ if ( glyphpath->font->reverseWinding )
1558
+ {
1559
+ dx = NEG_INT32( dx );
1560
+ dy = NEG_INT32( dy );
1561
+ }
1562
+
1563
+ *x = *y = 0;
1564
+
1565
+ if ( !glyphpath->darken )
1566
+ return;
1567
+
1568
+ /* add momentum for this path element */
1569
+ glyphpath->callbacks->windingMomentum =
1570
+ ADD_INT32( glyphpath->callbacks->windingMomentum,
1571
+ cf2_getWindingMomentum( x1, y1, x2, y2 ) );
1572
+
1573
+ /* note: allow mixed integer and fixed multiplication here */
1574
+ if ( dx >= 0 )
1575
+ {
1576
+ if ( dy >= 0 )
1577
+ {
1578
+ /* first quadrant, +x +y */
1579
+
1580
+ if ( dx > MUL_INT32( 2, dy ) )
1581
+ {
1582
+ /* +x */
1583
+ *x = 0;
1584
+ *y = 0;
1585
+ }
1586
+ else if ( dy > MUL_INT32( 2, dx ) )
1587
+ {
1588
+ /* +y */
1589
+ *x = glyphpath->xOffset;
1590
+ *y = glyphpath->yOffset;
1591
+ }
1592
+ else
1593
+ {
1594
+ /* +x +y */
1595
+ *x = FT_MulFix( cf2_doubleToFixed( 0.7 ),
1596
+ glyphpath->xOffset );
1597
+ *y = FT_MulFix( cf2_doubleToFixed( 1.0 - 0.7 ),
1598
+ glyphpath->yOffset );
1599
+ }
1600
+ }
1601
+ else
1602
+ {
1603
+ /* fourth quadrant, +x -y */
1604
+
1605
+ if ( dx > MUL_INT32( -2, dy ) )
1606
+ {
1607
+ /* +x */
1608
+ *x = 0;
1609
+ *y = 0;
1610
+ }
1611
+ else if ( NEG_INT32( dy ) > MUL_INT32( 2, dx ) )
1612
+ {
1613
+ /* -y */
1614
+ *x = NEG_INT32( glyphpath->xOffset );
1615
+ *y = glyphpath->yOffset;
1616
+ }
1617
+ else
1618
+ {
1619
+ /* +x -y */
1620
+ *x = FT_MulFix( cf2_doubleToFixed( -0.7 ),
1621
+ glyphpath->xOffset );
1622
+ *y = FT_MulFix( cf2_doubleToFixed( 1.0 - 0.7 ),
1623
+ glyphpath->yOffset );
1624
+ }
1625
+ }
1626
+ }
1627
+ else
1628
+ {
1629
+ if ( dy >= 0 )
1630
+ {
1631
+ /* second quadrant, -x +y */
1632
+
1633
+ if ( NEG_INT32( dx ) > MUL_INT32( 2, dy ) )
1634
+ {
1635
+ /* -x */
1636
+ *x = 0;
1637
+ *y = MUL_INT32( 2, glyphpath->yOffset );
1638
+ }
1639
+ else if ( dy > MUL_INT32( -2, dx ) )
1640
+ {
1641
+ /* +y */
1642
+ *x = glyphpath->xOffset;
1643
+ *y = glyphpath->yOffset;
1644
+ }
1645
+ else
1646
+ {
1647
+ /* -x +y */
1648
+ *x = FT_MulFix( cf2_doubleToFixed( 0.7 ),
1649
+ glyphpath->xOffset );
1650
+ *y = FT_MulFix( cf2_doubleToFixed( 1.0 + 0.7 ),
1651
+ glyphpath->yOffset );
1652
+ }
1653
+ }
1654
+ else
1655
+ {
1656
+ /* third quadrant, -x -y */
1657
+
1658
+ if ( NEG_INT32( dx ) > MUL_INT32( -2, dy ) )
1659
+ {
1660
+ /* -x */
1661
+ *x = 0;
1662
+ *y = MUL_INT32( 2, glyphpath->yOffset );
1663
+ }
1664
+ else if ( NEG_INT32( dy ) > MUL_INT32( -2, dx ) )
1665
+ {
1666
+ /* -y */
1667
+ *x = NEG_INT32( glyphpath->xOffset );
1668
+ *y = glyphpath->yOffset;
1669
+ }
1670
+ else
1671
+ {
1672
+ /* -x -y */
1673
+ *x = FT_MulFix( cf2_doubleToFixed( -0.7 ),
1674
+ glyphpath->xOffset );
1675
+ *y = FT_MulFix( cf2_doubleToFixed( 1.0 + 0.7 ),
1676
+ glyphpath->yOffset );
1677
+ }
1678
+ }
1679
+ }
1680
+ }
1681
+
1682
+
1683
+ /*
1684
+ * The functions cf2_glyphpath_{moveTo,lineTo,curveTo,closeOpenPath} are
1685
+ * called by the interpreter with Character Space (CS) coordinates. Each
1686
+ * path element is placed into a queue of length one to await the
1687
+ * calculation of the following element. At that time, the darkening
1688
+ * offset of the following element is known and joins can be computed,
1689
+ * including possible modification of this element, before mapping to
1690
+ * Device Space (DS) and passing it on to the outline consumer.
1691
+ *
1692
+ */
1693
+ FT_LOCAL_DEF( void )
1694
+ cf2_glyphpath_moveTo( CF2_GlyphPath glyphpath,
1695
+ CF2_Fixed x,
1696
+ CF2_Fixed y )
1697
+ {
1698
+ cf2_glyphpath_closeOpenPath( glyphpath );
1699
+
1700
+ /* save the parameters of the move for later, when we'll know how to */
1701
+ /* offset it; */
1702
+ /* also save last move point */
1703
+ glyphpath->currentCS.x = glyphpath->start.x = x;
1704
+ glyphpath->currentCS.y = glyphpath->start.y = y;
1705
+
1706
+ glyphpath->moveIsPending = TRUE;
1707
+
1708
+ /* ensure we have a valid map with current mask */
1709
+ if ( !cf2_hintmap_isValid( &glyphpath->hintMap ) ||
1710
+ cf2_hintmask_isNew( glyphpath->hintMask ) )
1711
+ cf2_hintmap_build( &glyphpath->hintMap,
1712
+ glyphpath->hStemHintArray,
1713
+ glyphpath->vStemHintArray,
1714
+ glyphpath->hintMask,
1715
+ glyphpath->hintOriginY,
1716
+ FALSE );
1717
+
1718
+ /* save a copy of current HintMap to use when drawing initial point */
1719
+ glyphpath->firstHintMap = glyphpath->hintMap; /* structure copy */
1720
+ }
1721
+
1722
+
1723
+ FT_LOCAL_DEF( void )
1724
+ cf2_glyphpath_lineTo( CF2_GlyphPath glyphpath,
1725
+ CF2_Fixed x,
1726
+ CF2_Fixed y )
1727
+ {
1728
+ CF2_Fixed xOffset, yOffset;
1729
+ FT_Vector P0, P1;
1730
+ FT_Bool newHintMap;
1731
+
1732
+ /*
1733
+ * New hints will be applied after cf2_glyphpath_pushPrevElem has run.
1734
+ * In case this is a synthesized closing line, any new hints should be
1735
+ * delayed until this path is closed (`cf2_hintmask_isNew' will be
1736
+ * called again before the next line or curve).
1737
+ */
1738
+
1739
+ /* true if new hint map not on close */
1740
+ newHintMap = cf2_hintmask_isNew( glyphpath->hintMask ) &&
1741
+ !glyphpath->pathIsClosing;
1742
+
1743
+ /*
1744
+ * Zero-length lines may occur in the charstring. Because we cannot
1745
+ * compute darkening offsets or intersections from zero-length lines,
1746
+ * it is best to remove them and avoid artifacts. However, zero-length
1747
+ * lines in CS at the start of a new hint map can generate non-zero
1748
+ * lines in DS due to hint substitution. We detect a change in hint
1749
+ * map here and pass those zero-length lines along.
1750
+ */
1751
+
1752
+ /*
1753
+ * Note: Find explicitly closed paths here with a conditional
1754
+ * breakpoint using
1755
+ *
1756
+ * !gp->pathIsClosing && gp->start.x == x && gp->start.y == y
1757
+ *
1758
+ */
1759
+
1760
+ if ( glyphpath->currentCS.x == x &&
1761
+ glyphpath->currentCS.y == y &&
1762
+ !newHintMap )
1763
+ /*
1764
+ * Ignore zero-length lines in CS where the hint map is the same
1765
+ * because the line in DS will also be zero length.
1766
+ *
1767
+ * Ignore zero-length lines when we synthesize a closing line because
1768
+ * the close will be handled in cf2_glyphPath_pushPrevElem.
1769
+ */
1770
+ return;
1771
+
1772
+ cf2_glyphpath_computeOffset( glyphpath,
1773
+ glyphpath->currentCS.x,
1774
+ glyphpath->currentCS.y,
1775
+ x,
1776
+ y,
1777
+ &xOffset,
1778
+ &yOffset );
1779
+
1780
+ /* construct offset points */
1781
+ P0.x = ADD_INT32( glyphpath->currentCS.x, xOffset );
1782
+ P0.y = ADD_INT32( glyphpath->currentCS.y, yOffset );
1783
+ P1.x = ADD_INT32( x, xOffset );
1784
+ P1.y = ADD_INT32( y, yOffset );
1785
+
1786
+ if ( glyphpath->moveIsPending )
1787
+ {
1788
+ /* emit offset 1st point as MoveTo */
1789
+ cf2_glyphpath_pushMove( glyphpath, P0 );
1790
+
1791
+ glyphpath->moveIsPending = FALSE; /* adjust state machine */
1792
+ glyphpath->pathIsOpen = TRUE;
1793
+
1794
+ glyphpath->offsetStart1 = P1; /* record second point */
1795
+ }
1796
+
1797
+ if ( glyphpath->elemIsQueued )
1798
+ {
1799
+ FT_ASSERT( cf2_hintmap_isValid( &glyphpath->hintMap ) ||
1800
+ glyphpath->hintMap.count == 0 );
1801
+
1802
+ cf2_glyphpath_pushPrevElem( glyphpath,
1803
+ &glyphpath->hintMap,
1804
+ &P0,
1805
+ P1,
1806
+ FALSE );
1807
+ }
1808
+
1809
+ /* queue the current element with offset points */
1810
+ glyphpath->elemIsQueued = TRUE;
1811
+ glyphpath->prevElemOp = CF2_PathOpLineTo;
1812
+ glyphpath->prevElemP0 = P0;
1813
+ glyphpath->prevElemP1 = P1;
1814
+
1815
+ /* update current map */
1816
+ if ( newHintMap )
1817
+ cf2_hintmap_build( &glyphpath->hintMap,
1818
+ glyphpath->hStemHintArray,
1819
+ glyphpath->vStemHintArray,
1820
+ glyphpath->hintMask,
1821
+ glyphpath->hintOriginY,
1822
+ FALSE );
1823
+
1824
+ glyphpath->currentCS.x = x; /* pre-offset current point */
1825
+ glyphpath->currentCS.y = y;
1826
+ }
1827
+
1828
+
1829
+ FT_LOCAL_DEF( void )
1830
+ cf2_glyphpath_curveTo( CF2_GlyphPath glyphpath,
1831
+ CF2_Fixed x1,
1832
+ CF2_Fixed y1,
1833
+ CF2_Fixed x2,
1834
+ CF2_Fixed y2,
1835
+ CF2_Fixed x3,
1836
+ CF2_Fixed y3 )
1837
+ {
1838
+ CF2_Fixed xOffset1, yOffset1, xOffset3, yOffset3;
1839
+ FT_Vector P0, P1, P2, P3;
1840
+
1841
+
1842
+ /* TODO: ignore zero length portions of curve?? */
1843
+ cf2_glyphpath_computeOffset( glyphpath,
1844
+ glyphpath->currentCS.x,
1845
+ glyphpath->currentCS.y,
1846
+ x1,
1847
+ y1,
1848
+ &xOffset1,
1849
+ &yOffset1 );
1850
+ cf2_glyphpath_computeOffset( glyphpath,
1851
+ x2,
1852
+ y2,
1853
+ x3,
1854
+ y3,
1855
+ &xOffset3,
1856
+ &yOffset3 );
1857
+
1858
+ /* add momentum from the middle segment */
1859
+ glyphpath->callbacks->windingMomentum =
1860
+ ADD_INT32( glyphpath->callbacks->windingMomentum,
1861
+ cf2_getWindingMomentum( x1, y1, x2, y2 ) );
1862
+
1863
+ /* construct offset points */
1864
+ P0.x = ADD_INT32( glyphpath->currentCS.x, xOffset1 );
1865
+ P0.y = ADD_INT32( glyphpath->currentCS.y, yOffset1 );
1866
+ P1.x = ADD_INT32( x1, xOffset1 );
1867
+ P1.y = ADD_INT32( y1, yOffset1 );
1868
+ /* note: preserve angle of final segment by using offset3 at both ends */
1869
+ P2.x = ADD_INT32( x2, xOffset3 );
1870
+ P2.y = ADD_INT32( y2, yOffset3 );
1871
+ P3.x = ADD_INT32( x3, xOffset3 );
1872
+ P3.y = ADD_INT32( y3, yOffset3 );
1873
+
1874
+ if ( glyphpath->moveIsPending )
1875
+ {
1876
+ /* emit offset 1st point as MoveTo */
1877
+ cf2_glyphpath_pushMove( glyphpath, P0 );
1878
+
1879
+ glyphpath->moveIsPending = FALSE;
1880
+ glyphpath->pathIsOpen = TRUE;
1881
+
1882
+ glyphpath->offsetStart1 = P1; /* record second point */
1883
+ }
1884
+
1885
+ if ( glyphpath->elemIsQueued )
1886
+ {
1887
+ FT_ASSERT( cf2_hintmap_isValid( &glyphpath->hintMap ) ||
1888
+ glyphpath->hintMap.count == 0 );
1889
+
1890
+ cf2_glyphpath_pushPrevElem( glyphpath,
1891
+ &glyphpath->hintMap,
1892
+ &P0,
1893
+ P1,
1894
+ FALSE );
1895
+ }
1896
+
1897
+ /* queue the current element with offset points */
1898
+ glyphpath->elemIsQueued = TRUE;
1899
+ glyphpath->prevElemOp = CF2_PathOpCubeTo;
1900
+ glyphpath->prevElemP0 = P0;
1901
+ glyphpath->prevElemP1 = P1;
1902
+ glyphpath->prevElemP2 = P2;
1903
+ glyphpath->prevElemP3 = P3;
1904
+
1905
+ /* update current map */
1906
+ if ( cf2_hintmask_isNew( glyphpath->hintMask ) )
1907
+ cf2_hintmap_build( &glyphpath->hintMap,
1908
+ glyphpath->hStemHintArray,
1909
+ glyphpath->vStemHintArray,
1910
+ glyphpath->hintMask,
1911
+ glyphpath->hintOriginY,
1912
+ FALSE );
1913
+
1914
+ glyphpath->currentCS.x = x3; /* pre-offset current point */
1915
+ glyphpath->currentCS.y = y3;
1916
+ }
1917
+
1918
+
1919
+ FT_LOCAL_DEF( void )
1920
+ cf2_glyphpath_closeOpenPath( CF2_GlyphPath glyphpath )
1921
+ {
1922
+ if ( glyphpath->pathIsOpen )
1923
+ {
1924
+ /*
1925
+ * A closing line in Character Space line is always generated below
1926
+ * with `cf2_glyphPath_lineTo'. It may be ignored later if it turns
1927
+ * out to be zero length in Device Space.
1928
+ */
1929
+ glyphpath->pathIsClosing = TRUE;
1930
+
1931
+ cf2_glyphpath_lineTo( glyphpath,
1932
+ glyphpath->start.x,
1933
+ glyphpath->start.y );
1934
+
1935
+ /* empty the final element from the queue and close the path */
1936
+ if ( glyphpath->elemIsQueued )
1937
+ cf2_glyphpath_pushPrevElem( glyphpath,
1938
+ &glyphpath->hintMap,
1939
+ &glyphpath->offsetStart0,
1940
+ glyphpath->offsetStart1,
1941
+ TRUE );
1942
+
1943
+ /* reset state machine */
1944
+ glyphpath->moveIsPending = TRUE;
1945
+ glyphpath->pathIsOpen = FALSE;
1946
+ glyphpath->pathIsClosing = FALSE;
1947
+ glyphpath->elemIsQueued = FALSE;
1948
+ }
1949
+ }
1950
+
1951
+
1952
+ /* END */