@simonklee/opentui-tex-native-source 0.2.0

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 (529) hide show
  1. package/LICENSE +674 -0
  2. package/LICENSE-PROJECT +21 -0
  3. package/README.md +7 -0
  4. package/build.zig +112 -0
  5. package/build.zig.zon +12 -0
  6. package/native/lib.zig +280 -0
  7. package/native/nanosvg.c +4 -0
  8. package/native/vendor/.bootstrap-v5 +1 -0
  9. package/native/vendor/LICENSE-NANOSVG +18 -0
  10. package/native/vendor/microtex/.clang-format +26 -0
  11. package/native/vendor/microtex/.github/workflows/ubuntu.yml +92 -0
  12. package/native/vendor/microtex/.github/workflows/windows-gdi.yml +34 -0
  13. package/native/vendor/microtex/.github/workflows/windows-qt.yml +52 -0
  14. package/native/vendor/microtex/CMakeLists.txt +110 -0
  15. package/native/vendor/microtex/LICENSE +21 -0
  16. package/native/vendor/microtex/MicroTeXInstall.cmake +42 -0
  17. package/native/vendor/microtex/README.md +600 -0
  18. package/native/vendor/microtex/build.zig +209 -0
  19. package/native/vendor/microtex/clatexmath.wrap +6 -0
  20. package/native/vendor/microtex/doc/meson.build +38 -0
  21. package/native/vendor/microtex/doc/microtex-doc.toml.in +47 -0
  22. package/native/vendor/microtex/doc/microtex.svg +39 -0
  23. package/native/vendor/microtex/doc/urlmap.js +6 -0
  24. package/native/vendor/microtex/example/gtk/CMakeLists.txt +68 -0
  25. package/native/vendor/microtex/example/gtk/gtk_main.c +170 -0
  26. package/native/vendor/microtex/example/gtk/isamples.cpp +21 -0
  27. package/native/vendor/microtex/example/gtk/isamples.h +15 -0
  28. package/native/vendor/microtex/example/gtk/meson.build +27 -0
  29. package/native/vendor/microtex/example/gtk/microtex-gtk.gresource.xml +6 -0
  30. package/native/vendor/microtex/example/gtk/microtex-gtk.ui +117 -0
  31. package/native/vendor/microtex/example/gtkmm/CMakeLists.txt +19 -0
  32. package/native/vendor/microtex/example/gtkmm/gtkmm_main.cpp +531 -0
  33. package/native/vendor/microtex/example/gtkmm/meson.build +19 -0
  34. package/native/vendor/microtex/example/memcheck/CMakeLists.txt +12 -0
  35. package/native/vendor/microtex/example/memcheck/mem_check_main.cpp +154 -0
  36. package/native/vendor/microtex/example/qt/CMakeLists.txt +37 -0
  37. package/native/vendor/microtex/example/qt/meson.build +25 -0
  38. package/native/vendor/microtex/example/qt/qt_main.cpp +70 -0
  39. package/native/vendor/microtex/example/qt/qt_mainwindow.cpp +107 -0
  40. package/native/vendor/microtex/example/qt/qt_mainwindow.h +40 -0
  41. package/native/vendor/microtex/example/qt/qt_skiatexwidget.cpp +149 -0
  42. package/native/vendor/microtex/example/qt/qt_skiatexwidget.h +48 -0
  43. package/native/vendor/microtex/example/qt/qt_tex_render.h +15 -0
  44. package/native/vendor/microtex/example/qt/qt_texqmlitem.cpp +56 -0
  45. package/native/vendor/microtex/example/qt/qt_texqmlitem.h +31 -0
  46. package/native/vendor/microtex/example/qt/qt_texwidget.cpp +62 -0
  47. package/native/vendor/microtex/example/qt/qt_texwidget.h +31 -0
  48. package/native/vendor/microtex/example/qtpng/CMakeLists.txt +11 -0
  49. package/native/vendor/microtex/example/qtpng/latex2png.cpp +115 -0
  50. package/native/vendor/microtex/example/samples/samples.cpp +52 -0
  51. package/native/vendor/microtex/example/samples/samples.h +32 -0
  52. package/native/vendor/microtex/example/win32/CMakeLists.txt +15 -0
  53. package/native/vendor/microtex/example/win32/meson.build +18 -0
  54. package/native/vendor/microtex/example/win32/win32_main.cpp +375 -0
  55. package/native/vendor/microtex/githooks/pre-commit +19 -0
  56. package/native/vendor/microtex/githooks/pre-push +103 -0
  57. package/native/vendor/microtex/lib/CMakeLists.txt +234 -0
  58. package/native/vendor/microtex/lib/atom/atom.cpp +14 -0
  59. package/native/vendor/microtex/lib/atom/atom.h +96 -0
  60. package/native/vendor/microtex/lib/atom/atom_accent.cpp +115 -0
  61. package/native/vendor/microtex/lib/atom/atom_accent.h +53 -0
  62. package/native/vendor/microtex/lib/atom/atom_basic.cpp +146 -0
  63. package/native/vendor/microtex/lib/atom/atom_basic.h +273 -0
  64. package/native/vendor/microtex/lib/atom/atom_box.cpp +41 -0
  65. package/native/vendor/microtex/lib/atom/atom_box.h +70 -0
  66. package/native/vendor/microtex/lib/atom/atom_char.cpp +99 -0
  67. package/native/vendor/microtex/lib/atom/atom_char.h +147 -0
  68. package/native/vendor/microtex/lib/atom/atom_delim.cpp +65 -0
  69. package/native/vendor/microtex/lib/atom/atom_delim.h +58 -0
  70. package/native/vendor/microtex/lib/atom/atom_fence.cpp +65 -0
  71. package/native/vendor/microtex/lib/atom/atom_fence.h +56 -0
  72. package/native/vendor/microtex/lib/atom/atom_font.cpp +20 -0
  73. package/native/vendor/microtex/lib/atom/atom_font.h +49 -0
  74. package/native/vendor/microtex/lib/atom/atom_frac.cpp +101 -0
  75. package/native/vendor/microtex/lib/atom/atom_frac.h +42 -0
  76. package/native/vendor/microtex/lib/atom/atom_matrix.cpp +756 -0
  77. package/native/vendor/microtex/lib/atom/atom_matrix.h +268 -0
  78. package/native/vendor/microtex/lib/atom/atom_misc.cpp +230 -0
  79. package/native/vendor/microtex/lib/atom/atom_misc.h +200 -0
  80. package/native/vendor/microtex/lib/atom/atom_operator.cpp +51 -0
  81. package/native/vendor/microtex/lib/atom/atom_operator.h +41 -0
  82. package/native/vendor/microtex/lib/atom/atom_root.cpp +61 -0
  83. package/native/vendor/microtex/lib/atom/atom_root.h +27 -0
  84. package/native/vendor/microtex/lib/atom/atom_row.cpp +334 -0
  85. package/native/vendor/microtex/lib/atom/atom_row.h +176 -0
  86. package/native/vendor/microtex/lib/atom/atom_scripts.cpp +182 -0
  87. package/native/vendor/microtex/lib/atom/atom_scripts.h +52 -0
  88. package/native/vendor/microtex/lib/atom/atom_sideset.cpp +92 -0
  89. package/native/vendor/microtex/lib/atom/atom_sideset.h +24 -0
  90. package/native/vendor/microtex/lib/atom/atom_space.cpp +22 -0
  91. package/native/vendor/microtex/lib/atom/atom_space.h +38 -0
  92. package/native/vendor/microtex/lib/atom/atom_stack.cpp +117 -0
  93. package/native/vendor/microtex/lib/atom/atom_stack.h +103 -0
  94. package/native/vendor/microtex/lib/atom/atom_text.cpp +17 -0
  95. package/native/vendor/microtex/lib/atom/atom_text.h +33 -0
  96. package/native/vendor/microtex/lib/atom/atom_vrow.cpp +96 -0
  97. package/native/vendor/microtex/lib/atom/atom_vrow.h +47 -0
  98. package/native/vendor/microtex/lib/atom/atom_zstack.cpp +66 -0
  99. package/native/vendor/microtex/lib/atom/atom_zstack.h +37 -0
  100. package/native/vendor/microtex/lib/atom/colors_def.cpp +157 -0
  101. package/native/vendor/microtex/lib/atom/meson.build +50 -0
  102. package/native/vendor/microtex/lib/box/box.cpp +49 -0
  103. package/native/vendor/microtex/lib/box/box.h +184 -0
  104. package/native/vendor/microtex/lib/box/box_factory.cpp +162 -0
  105. package/native/vendor/microtex/lib/box/box_factory.h +24 -0
  106. package/native/vendor/microtex/lib/box/box_group.cpp +503 -0
  107. package/native/vendor/microtex/lib/box/box_group.h +285 -0
  108. package/native/vendor/microtex/lib/box/box_single.cpp +179 -0
  109. package/native/vendor/microtex/lib/box/box_single.h +157 -0
  110. package/native/vendor/microtex/lib/box/meson.build +15 -0
  111. package/native/vendor/microtex/lib/core/debug_config.cpp +3 -0
  112. package/native/vendor/microtex/lib/core/debug_config.h +24 -0
  113. package/native/vendor/microtex/lib/core/formula.cpp +180 -0
  114. package/native/vendor/microtex/lib/core/formula.h +137 -0
  115. package/native/vendor/microtex/lib/core/formula_def.cpp +167 -0
  116. package/native/vendor/microtex/lib/core/glue.cpp +108 -0
  117. package/native/vendor/microtex/lib/core/glue.h +55 -0
  118. package/native/vendor/microtex/lib/core/localized_num.cpp +51 -0
  119. package/native/vendor/microtex/lib/core/meson.build +19 -0
  120. package/native/vendor/microtex/lib/core/parser.cpp +874 -0
  121. package/native/vendor/microtex/lib/core/parser.h +306 -0
  122. package/native/vendor/microtex/lib/core/split.cpp +185 -0
  123. package/native/vendor/microtex/lib/core/split.h +40 -0
  124. package/native/vendor/microtex/lib/env/env.cpp +141 -0
  125. package/native/vendor/microtex/lib/env/env.h +221 -0
  126. package/native/vendor/microtex/lib/env/meson.build +11 -0
  127. package/native/vendor/microtex/lib/env/units.cpp +109 -0
  128. package/native/vendor/microtex/lib/env/units.h +61 -0
  129. package/native/vendor/microtex/lib/graphic/font_style.cpp +63 -0
  130. package/native/vendor/microtex/lib/graphic/font_style.h +61 -0
  131. package/native/vendor/microtex/lib/graphic/graphic.cpp +38 -0
  132. package/native/vendor/microtex/lib/graphic/graphic.h +314 -0
  133. package/native/vendor/microtex/lib/graphic/graphic_basic.cpp +44 -0
  134. package/native/vendor/microtex/lib/graphic/graphic_basic.h +131 -0
  135. package/native/vendor/microtex/lib/graphic/meson.build +13 -0
  136. package/native/vendor/microtex/lib/macro/macro.cpp +143 -0
  137. package/native/vendor/microtex/lib/macro/macro.h +155 -0
  138. package/native/vendor/microtex/lib/macro/macro_accent.cpp +50 -0
  139. package/native/vendor/microtex/lib/macro/macro_accent.h +61 -0
  140. package/native/vendor/microtex/lib/macro/macro_boxes.h +68 -0
  141. package/native/vendor/microtex/lib/macro/macro_colors.cpp +42 -0
  142. package/native/vendor/microtex/lib/macro/macro_colors.h +42 -0
  143. package/native/vendor/microtex/lib/macro/macro_decl.h +16 -0
  144. package/native/vendor/microtex/lib/macro/macro_def.cpp +418 -0
  145. package/native/vendor/microtex/lib/macro/macro_delims.cpp +56 -0
  146. package/native/vendor/microtex/lib/macro/macro_delims.h +73 -0
  147. package/native/vendor/microtex/lib/macro/macro_env.h +212 -0
  148. package/native/vendor/microtex/lib/macro/macro_fonts.cpp +53 -0
  149. package/native/vendor/microtex/lib/macro/macro_fonts.h +78 -0
  150. package/native/vendor/microtex/lib/macro/macro_frac.cpp +138 -0
  151. package/native/vendor/microtex/lib/macro/macro_frac.h +50 -0
  152. package/native/vendor/microtex/lib/macro/macro_misc.cpp +211 -0
  153. package/native/vendor/microtex/lib/macro/macro_misc.h +217 -0
  154. package/native/vendor/microtex/lib/macro/macro_scripts.cpp +32 -0
  155. package/native/vendor/microtex/lib/macro/macro_scripts.h +17 -0
  156. package/native/vendor/microtex/lib/macro/macro_sizes.h +110 -0
  157. package/native/vendor/microtex/lib/macro/macro_space.cpp +31 -0
  158. package/native/vendor/microtex/lib/macro/macro_space.h +17 -0
  159. package/native/vendor/microtex/lib/macro/macro_styles.cpp +45 -0
  160. package/native/vendor/microtex/lib/macro/macro_styles.h +22 -0
  161. package/native/vendor/microtex/lib/macro/macro_types.h +48 -0
  162. package/native/vendor/microtex/lib/macro/meson.build +33 -0
  163. package/native/vendor/microtex/lib/meson.build +102 -0
  164. package/native/vendor/microtex/lib/microtex.cpp +208 -0
  165. package/native/vendor/microtex/lib/microtex.h +225 -0
  166. package/native/vendor/microtex/lib/microtexConfig.cmake.in +2 -0
  167. package/native/vendor/microtex/lib/microtexapi.h +22 -0
  168. package/native/vendor/microtex/lib/microtexconfig.h.in +7 -0
  169. package/native/vendor/microtex/lib/microtexexport.h +31 -0
  170. package/native/vendor/microtex/lib/otf/clm.cpp +405 -0
  171. package/native/vendor/microtex/lib/otf/clm.h +61 -0
  172. package/native/vendor/microtex/lib/otf/fontsense.cpp +191 -0
  173. package/native/vendor/microtex/lib/otf/fontsense.h +20 -0
  174. package/native/vendor/microtex/lib/otf/glyph.cpp +53 -0
  175. package/native/vendor/microtex/lib/otf/glyph.h +384 -0
  176. package/native/vendor/microtex/lib/otf/math_consts.h +154 -0
  177. package/native/vendor/microtex/lib/otf/meson.build +18 -0
  178. package/native/vendor/microtex/lib/otf/otf.cpp +84 -0
  179. package/native/vendor/microtex/lib/otf/otf.h +177 -0
  180. package/native/vendor/microtex/lib/otf/otfconfig.h +32 -0
  181. package/native/vendor/microtex/lib/otf/path.cpp +187 -0
  182. package/native/vendor/microtex/lib/otf/path.h +120 -0
  183. package/native/vendor/microtex/lib/render/builder.cpp +68 -0
  184. package/native/vendor/microtex/lib/render/builder.h +73 -0
  185. package/native/vendor/microtex/lib/render/meson.build +11 -0
  186. package/native/vendor/microtex/lib/render/render.cpp +136 -0
  187. package/native/vendor/microtex/lib/render/render.h +59 -0
  188. package/native/vendor/microtex/lib/unimath/font_meta.h +22 -0
  189. package/native/vendor/microtex/lib/unimath/font_src.cpp +21 -0
  190. package/native/vendor/microtex/lib/unimath/font_src.h +61 -0
  191. package/native/vendor/microtex/lib/unimath/math_type.cpp +318 -0
  192. package/native/vendor/microtex/lib/unimath/math_type.h +105 -0
  193. package/native/vendor/microtex/lib/unimath/meson.build +18 -0
  194. package/native/vendor/microtex/lib/unimath/uni_char.cpp +121 -0
  195. package/native/vendor/microtex/lib/unimath/uni_char.h +109 -0
  196. package/native/vendor/microtex/lib/unimath/uni_font.cpp +248 -0
  197. package/native/vendor/microtex/lib/unimath/uni_font.h +139 -0
  198. package/native/vendor/microtex/lib/unimath/uni_symbol.cpp +2929 -0
  199. package/native/vendor/microtex/lib/unimath/uni_symbol.h +31 -0
  200. package/native/vendor/microtex/lib/utils/dict_tree.h +68 -0
  201. package/native/vendor/microtex/lib/utils/exceptions.h +61 -0
  202. package/native/vendor/microtex/lib/utils/log.h +34 -0
  203. package/native/vendor/microtex/lib/utils/meson.build +18 -0
  204. package/native/vendor/microtex/lib/utils/nums.h +24 -0
  205. package/native/vendor/microtex/lib/utils/string_utils.cpp +85 -0
  206. package/native/vendor/microtex/lib/utils/string_utils.h +130 -0
  207. package/native/vendor/microtex/lib/utils/types.h +152 -0
  208. package/native/vendor/microtex/lib/utils/utf.cpp +115 -0
  209. package/native/vendor/microtex/lib/utils/utf.h +58 -0
  210. package/native/vendor/microtex/lib/utils/utils.cpp +40 -0
  211. package/native/vendor/microtex/lib/utils/utils.h +88 -0
  212. package/native/vendor/microtex/lib/wrapper/byte_seq.cpp +46 -0
  213. package/native/vendor/microtex/lib/wrapper/byte_seq.h +70 -0
  214. package/native/vendor/microtex/lib/wrapper/callback.cpp +10 -0
  215. package/native/vendor/microtex/lib/wrapper/callback.h +72 -0
  216. package/native/vendor/microtex/lib/wrapper/cwrapper.cpp +206 -0
  217. package/native/vendor/microtex/lib/wrapper/cwrapper.h +305 -0
  218. package/native/vendor/microtex/lib/wrapper/graphic_wrapper.cpp +211 -0
  219. package/native/vendor/microtex/lib/wrapper/graphic_wrapper.h +159 -0
  220. package/native/vendor/microtex/lib/wrapper/meson.build +22 -0
  221. package/native/vendor/microtex/meson.build +75 -0
  222. package/native/vendor/microtex/meson_options.txt +29 -0
  223. package/native/vendor/microtex/platform/cairo/CMakeLists.txt +36 -0
  224. package/native/vendor/microtex/platform/cairo/graphic_cairo.cpp +384 -0
  225. package/native/vendor/microtex/platform/cairo/graphic_cairo.h +119 -0
  226. package/native/vendor/microtex/platform/cairo/meson.build +47 -0
  227. package/native/vendor/microtex/platform/cairo/microtex-cairoConfig.cmake.in +11 -0
  228. package/native/vendor/microtex/platform/flutter/microtex/.metadata +10 -0
  229. package/native/vendor/microtex/platform/flutter/microtex/CHANGELOG.md +3 -0
  230. package/native/vendor/microtex/platform/flutter/microtex/LICENSE +1 -0
  231. package/native/vendor/microtex/platform/flutter/microtex/README.md +15 -0
  232. package/native/vendor/microtex/platform/flutter/microtex/analysis_options.yaml +4 -0
  233. package/native/vendor/microtex/platform/flutter/microtex/android/build.gradle +56 -0
  234. package/native/vendor/microtex/platform/flutter/microtex/android/settings.gradle +1 -0
  235. package/native/vendor/microtex/platform/flutter/microtex/android/src/main/AndroidManifest.xml +3 -0
  236. package/native/vendor/microtex/platform/flutter/microtex/android/src/main/kotlin/io/nano/microtex/microtex/MicrotexPlugin.kt +35 -0
  237. package/native/vendor/microtex/platform/flutter/microtex/example/.metadata +10 -0
  238. package/native/vendor/microtex/platform/flutter/microtex/example/README.md +16 -0
  239. package/native/vendor/microtex/platform/flutter/microtex/example/analysis_options.yaml +31 -0
  240. package/native/vendor/microtex/platform/flutter/microtex/example/android/app/build.gradle +68 -0
  241. package/native/vendor/microtex/platform/flutter/microtex/example/android/app/src/debug/AndroidManifest.xml +7 -0
  242. package/native/vendor/microtex/platform/flutter/microtex/example/android/app/src/main/AndroidManifest.xml +34 -0
  243. package/native/vendor/microtex/platform/flutter/microtex/example/android/app/src/main/kotlin/io/nano/microtex/microtex_example/MainActivity.kt +6 -0
  244. package/native/vendor/microtex/platform/flutter/microtex/example/android/app/src/main/res/drawable/launch_background.xml +12 -0
  245. package/native/vendor/microtex/platform/flutter/microtex/example/android/app/src/main/res/drawable-v21/launch_background.xml +12 -0
  246. package/native/vendor/microtex/platform/flutter/microtex/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  247. package/native/vendor/microtex/platform/flutter/microtex/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  248. package/native/vendor/microtex/platform/flutter/microtex/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  249. package/native/vendor/microtex/platform/flutter/microtex/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  250. package/native/vendor/microtex/platform/flutter/microtex/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  251. package/native/vendor/microtex/platform/flutter/microtex/example/android/app/src/main/res/values/styles.xml +18 -0
  252. package/native/vendor/microtex/platform/flutter/microtex/example/android/app/src/main/res/values-night/styles.xml +18 -0
  253. package/native/vendor/microtex/platform/flutter/microtex/example/android/app/src/profile/AndroidManifest.xml +7 -0
  254. package/native/vendor/microtex/platform/flutter/microtex/example/android/build.gradle +31 -0
  255. package/native/vendor/microtex/platform/flutter/microtex/example/android/gradle/wrapper/gradle-wrapper.properties +6 -0
  256. package/native/vendor/microtex/platform/flutter/microtex/example/android/gradle.properties +3 -0
  257. package/native/vendor/microtex/platform/flutter/microtex/example/android/settings.gradle +11 -0
  258. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Flutter/AppFrameworkInfo.plist +26 -0
  259. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Flutter/Debug.xcconfig +2 -0
  260. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Flutter/Release.xcconfig +2 -0
  261. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Podfile +41 -0
  262. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Podfile.lock +22 -0
  263. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/AppDelegate.swift +13 -0
  264. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +122 -0
  265. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png +0 -0
  266. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png +0 -0
  267. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png +0 -0
  268. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png +0 -0
  269. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png +0 -0
  270. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png +0 -0
  271. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png +0 -0
  272. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png +0 -0
  273. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png +0 -0
  274. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png +0 -0
  275. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png +0 -0
  276. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png +0 -0
  277. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png +0 -0
  278. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png +0 -0
  279. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png +0 -0
  280. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json +23 -0
  281. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png +0 -0
  282. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png +0 -0
  283. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png +0 -0
  284. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md +5 -0
  285. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Base.lproj/LaunchScreen.storyboard +37 -0
  286. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Base.lproj/Main.storyboard +26 -0
  287. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Info.plist +49 -0
  288. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner/Runner-Bridging-Header.h +1 -0
  289. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner.xcodeproj/project.pbxproj +549 -0
  290. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  291. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  292. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +8 -0
  293. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +87 -0
  294. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner.xcworkspace/contents.xcworkspacedata +10 -0
  295. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  296. package/native/vendor/microtex/platform/flutter/microtex/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +8 -0
  297. package/native/vendor/microtex/platform/flutter/microtex/example/lib/main.dart +23 -0
  298. package/native/vendor/microtex/platform/flutter/microtex/example/lib/screen/edit_in_one.dart +0 -0
  299. package/native/vendor/microtex/platform/flutter/microtex/example/lib/screen/edit_screen.dart +208 -0
  300. package/native/vendor/microtex/platform/flutter/microtex/example/lib/utils/convert_spans.dart +63 -0
  301. package/native/vendor/microtex/platform/flutter/microtex/example/lib/utils/string_ext.dart +10 -0
  302. package/native/vendor/microtex/platform/flutter/microtex/example/lib/widget/cmp.dart +118 -0
  303. package/native/vendor/microtex/platform/flutter/microtex/example/lib/widget/draggable.dart +75 -0
  304. package/native/vendor/microtex/platform/flutter/microtex/example/lib/widget/rich.dart +23 -0
  305. package/native/vendor/microtex/platform/flutter/microtex/example/lib/widget/split.dart +72 -0
  306. package/native/vendor/microtex/platform/flutter/microtex/example/lib/widget/tex_highlight_controller.dart +66 -0
  307. package/native/vendor/microtex/platform/flutter/microtex/example/lib/widget/tex_input_controller.dart +19 -0
  308. package/native/vendor/microtex/platform/flutter/microtex/example/linux/CMakeLists.txt +116 -0
  309. package/native/vendor/microtex/platform/flutter/microtex/example/linux/flutter/CMakeLists.txt +87 -0
  310. package/native/vendor/microtex/platform/flutter/microtex/example/linux/flutter/generated_plugin_registrant.cc +15 -0
  311. package/native/vendor/microtex/platform/flutter/microtex/example/linux/flutter/generated_plugin_registrant.h +15 -0
  312. package/native/vendor/microtex/platform/flutter/microtex/example/linux/flutter/generated_plugins.cmake +24 -0
  313. package/native/vendor/microtex/platform/flutter/microtex/example/linux/main.cc +6 -0
  314. package/native/vendor/microtex/platform/flutter/microtex/example/linux/my_application.cc +104 -0
  315. package/native/vendor/microtex/platform/flutter/microtex/example/linux/my_application.h +18 -0
  316. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Flutter/Flutter-Debug.xcconfig +2 -0
  317. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Flutter/Flutter-Release.xcconfig +2 -0
  318. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Flutter/GeneratedPluginRegistrant.swift +12 -0
  319. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Podfile +40 -0
  320. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Podfile.lock +22 -0
  321. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner/AppDelegate.swift +9 -0
  322. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +68 -0
  323. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png +0 -0
  324. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png +0 -0
  325. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png +0 -0
  326. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png +0 -0
  327. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png +0 -0
  328. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png +0 -0
  329. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png +0 -0
  330. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner/Base.lproj/MainMenu.xib +343 -0
  331. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner/Configs/AppInfo.xcconfig +14 -0
  332. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner/Configs/Debug.xcconfig +2 -0
  333. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner/Configs/Release.xcconfig +2 -0
  334. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner/Configs/Warnings.xcconfig +13 -0
  335. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner/DebugProfile.entitlements +12 -0
  336. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner/Info.plist +32 -0
  337. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner/MainFlutterWindow.swift +15 -0
  338. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner/Release.entitlements +8 -0
  339. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner.xcodeproj/project.pbxproj +633 -0
  340. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  341. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +87 -0
  342. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner.xcworkspace/contents.xcworkspacedata +10 -0
  343. package/native/vendor/microtex/platform/flutter/microtex/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  344. package/native/vendor/microtex/platform/flutter/microtex/example/pubspec.lock +191 -0
  345. package/native/vendor/microtex/platform/flutter/microtex/example/pubspec.yaml +56 -0
  346. package/native/vendor/microtex/platform/flutter/microtex/example/test/widget_test.dart +26 -0
  347. package/native/vendor/microtex/platform/flutter/microtex/example/windows/CMakeLists.txt +95 -0
  348. package/native/vendor/microtex/platform/flutter/microtex/example/windows/flutter/CMakeLists.txt +103 -0
  349. package/native/vendor/microtex/platform/flutter/microtex/example/windows/flutter/generated_plugin_registrant.cc +14 -0
  350. package/native/vendor/microtex/platform/flutter/microtex/example/windows/flutter/generated_plugin_registrant.h +15 -0
  351. package/native/vendor/microtex/platform/flutter/microtex/example/windows/flutter/generated_plugins.cmake +24 -0
  352. package/native/vendor/microtex/platform/flutter/microtex/example/windows/runner/CMakeLists.txt +17 -0
  353. package/native/vendor/microtex/platform/flutter/microtex/example/windows/runner/Runner.rc +121 -0
  354. package/native/vendor/microtex/platform/flutter/microtex/example/windows/runner/flutter_window.cpp +61 -0
  355. package/native/vendor/microtex/platform/flutter/microtex/example/windows/runner/flutter_window.h +33 -0
  356. package/native/vendor/microtex/platform/flutter/microtex/example/windows/runner/main.cpp +43 -0
  357. package/native/vendor/microtex/platform/flutter/microtex/example/windows/runner/resource.h +16 -0
  358. package/native/vendor/microtex/platform/flutter/microtex/example/windows/runner/resources/app_icon.ico +0 -0
  359. package/native/vendor/microtex/platform/flutter/microtex/example/windows/runner/runner.exe.manifest +20 -0
  360. package/native/vendor/microtex/platform/flutter/microtex/example/windows/runner/utils.cpp +64 -0
  361. package/native/vendor/microtex/platform/flutter/microtex/example/windows/runner/utils.h +19 -0
  362. package/native/vendor/microtex/platform/flutter/microtex/example/windows/runner/win32_window.cpp +245 -0
  363. package/native/vendor/microtex/platform/flutter/microtex/example/windows/runner/win32_window.h +98 -0
  364. package/native/vendor/microtex/platform/flutter/microtex/ios/Assets/.gitkeep +0 -0
  365. package/native/vendor/microtex/platform/flutter/microtex/ios/Classes/MicrotexPlugin.h +4 -0
  366. package/native/vendor/microtex/platform/flutter/microtex/ios/Classes/MicrotexPlugin.m +19 -0
  367. package/native/vendor/microtex/platform/flutter/microtex/ios/Classes/SwiftMicrotexPlugin.swift +14 -0
  368. package/native/vendor/microtex/platform/flutter/microtex/ios/Classes/dummy.h +4 -0
  369. package/native/vendor/microtex/platform/flutter/microtex/ios/microtex.podspec +27 -0
  370. package/native/vendor/microtex/platform/flutter/microtex/lib/microtex.dart +7 -0
  371. package/native/vendor/microtex/platform/flutter/microtex/lib/src/bindings.dart +218 -0
  372. package/native/vendor/microtex/platform/flutter/microtex/lib/src/bounds.dart +10 -0
  373. package/native/vendor/microtex/platform/flutter/microtex/lib/src/context.dart +205 -0
  374. package/native/vendor/microtex/platform/flutter/microtex/lib/src/fontdesc.dart +14 -0
  375. package/native/vendor/microtex/platform/flutter/microtex/lib/src/fontmeta.dart +14 -0
  376. package/native/vendor/microtex/platform/flutter/microtex/lib/src/pathcache.dart +17 -0
  377. package/native/vendor/microtex/platform/flutter/microtex/lib/src/render.dart +291 -0
  378. package/native/vendor/microtex/platform/flutter/microtex/lib/src/texstyle.dart +11 -0
  379. package/native/vendor/microtex/platform/flutter/microtex/lib/src/textlayout.dart +93 -0
  380. package/native/vendor/microtex/platform/flutter/microtex/lib/src/widget.dart +163 -0
  381. package/native/vendor/microtex/platform/flutter/microtex/linux/CMakeLists.txt +33 -0
  382. package/native/vendor/microtex/platform/flutter/microtex/linux/include/microtex/microtex_plugin.h +26 -0
  383. package/native/vendor/microtex/platform/flutter/microtex/linux/microtex_plugin.cc +70 -0
  384. package/native/vendor/microtex/platform/flutter/microtex/macos/Classes/MicrotexPlugin.swift +20 -0
  385. package/native/vendor/microtex/platform/flutter/microtex/macos/Classes/dummy.h +4 -0
  386. package/native/vendor/microtex/platform/flutter/microtex/macos/Classes/microtex-Bridging-Header.h +1 -0
  387. package/native/vendor/microtex/platform/flutter/microtex/macos/microtex.podspec +26 -0
  388. package/native/vendor/microtex/platform/flutter/microtex/nativelib/CMakeLists.txt +44 -0
  389. package/native/vendor/microtex/platform/flutter/microtex/nativelib/builddarwin.sh +108 -0
  390. package/native/vendor/microtex/platform/flutter/microtex/pubspec.yaml +37 -0
  391. package/native/vendor/microtex/platform/flutter/microtex/test/microtex_test.dart +23 -0
  392. package/native/vendor/microtex/platform/flutter/microtex/windows/CMakeLists.txt +32 -0
  393. package/native/vendor/microtex/platform/flutter/microtex/windows/include/microtex/microtex_plugin.h +23 -0
  394. package/native/vendor/microtex/platform/flutter/microtex/windows/microtex_plugin.cpp +82 -0
  395. package/native/vendor/microtex/platform/gdi_win/CMakeLists.txt +20 -0
  396. package/native/vendor/microtex/platform/gdi_win/graphic_win32.cpp +352 -0
  397. package/native/vendor/microtex/platform/gdi_win/graphic_win32.h +137 -0
  398. package/native/vendor/microtex/platform/gdi_win/meson.build +39 -0
  399. package/native/vendor/microtex/platform/gtk/CMakeLists.txt +36 -0
  400. package/native/vendor/microtex/platform/gtk/meson.build +65 -0
  401. package/native/vendor/microtex/platform/gtk/microtex-gtkConfig.cmake.in +11 -0
  402. package/native/vendor/microtex/platform/gtk/microtexequation.cpp +708 -0
  403. package/native/vendor/microtex/platform/gtk/microtexequation.h +72 -0
  404. package/native/vendor/microtex/platform/qt/CMakeLists.txt +37 -0
  405. package/native/vendor/microtex/platform/qt/graphic_qt.cpp +355 -0
  406. package/native/vendor/microtex/platform/qt/graphic_qt.h +116 -0
  407. package/native/vendor/microtex/platform/qt/meson.build +38 -0
  408. package/native/vendor/microtex/platform/qt/microtex-qtConfig.cmake.in +7 -0
  409. package/native/vendor/microtex/platform/skia/CMakeLists.txt +46 -0
  410. package/native/vendor/microtex/platform/skia/graphic_skia.cpp +306 -0
  411. package/native/vendor/microtex/platform/skia/graphic_skia.h +125 -0
  412. package/native/vendor/microtex/platform/skia/microtex-skiaConfig.cmake.in +6 -0
  413. package/native/vendor/microtex/platform/wasm/CMakeLists.txt +38 -0
  414. package/native/vendor/microtex/platform/wasm/emscripten.cross +31 -0
  415. package/native/vendor/microtex/platform/wasm/main.cpp +15 -0
  416. package/native/vendor/microtex/platform/wasm/meson.build +8 -0
  417. package/native/vendor/microtex/platform/wasm/prebuild-example-meson.sh +21 -0
  418. package/native/vendor/microtex/platform/wasm/prebuild-example.sh +21 -0
  419. package/native/vendor/microtex/platform/wasm/prebuild-lib-meson.sh +28 -0
  420. package/native/vendor/microtex/platform/wasm/prebuild-lib.sh +31 -0
  421. package/native/vendor/microtex/platform/wasm/web/.babelrc +10 -0
  422. package/native/vendor/microtex/platform/wasm/web/example/examples.js +43 -0
  423. package/native/vendor/microtex/platform/wasm/web/example/hello.js +31 -0
  424. package/native/vendor/microtex/platform/wasm/web/example/index.html +55 -0
  425. package/native/vendor/microtex/platform/wasm/web/example/index.js +243 -0
  426. package/native/vendor/microtex/platform/wasm/web/example/styles.css +86 -0
  427. package/native/vendor/microtex/platform/wasm/web/example/utils.js +47 -0
  428. package/native/vendor/microtex/platform/wasm/web/lib/context.js +271 -0
  429. package/native/vendor/microtex/platform/wasm/web/lib/index.js +10 -0
  430. package/native/vendor/microtex/platform/wasm/web/lib/render.js +293 -0
  431. package/native/vendor/microtex/platform/wasm/web/lib/runtime.js +14 -0
  432. package/native/vendor/microtex/platform/wasm/web/lib/svg.js +237 -0
  433. package/native/vendor/microtex/platform/wasm/web/lib/textlayout.js +88 -0
  434. package/native/vendor/microtex/platform/wasm/web/package-lock.json +5931 -0
  435. package/native/vendor/microtex/platform/wasm/web/package.json +45 -0
  436. package/native/vendor/microtex/platform/wasm/web/publish-example.sh +17 -0
  437. package/native/vendor/microtex/platform/wasm/web/rollup.config.example.js +24 -0
  438. package/native/vendor/microtex/platform/wasm/web/rollup.config.lib.js +16 -0
  439. package/native/vendor/microtex/prebuilt/otf2clm.py +807 -0
  440. package/native/vendor/microtex/prebuilt/otf2clm.sh +9 -0
  441. package/native/vendor/microtex/prebuilt/preclms.sh +17 -0
  442. package/native/vendor/microtex/readme/example_bw_false.svg +680 -0
  443. package/native/vendor/microtex/readme/example_bw_true.svg +680 -0
  444. package/native/vendor/microtex/readme/example_cjk_trying.svg +54 -0
  445. package/native/vendor/microtex/readme/example_custom_symbols.svg +92 -0
  446. package/native/vendor/microtex/readme/example_debug.svg +764 -0
  447. package/native/vendor/microtex/readme/example_emoji.svg +199 -0
  448. package/native/vendor/microtex/readme/example_have_log.svg +79 -0
  449. package/native/vendor/microtex/readme/example_keep_trying.svg +101 -0
  450. package/native/vendor/microtex/readme/example_logos.svg +50 -0
  451. package/native/vendor/microtex/readme/example_ubuntu.png +0 -0
  452. package/native/vendor/microtex/readme/example_windows.png +0 -0
  453. package/native/vendor/microtex/readme/samples/sample_0.svg +665 -0
  454. package/native/vendor/microtex/readme/samples/sample_1.svg +1259 -0
  455. package/native/vendor/microtex/readme/samples/sample_10.svg +333 -0
  456. package/native/vendor/microtex/readme/samples/sample_11.svg +306 -0
  457. package/native/vendor/microtex/readme/samples/sample_2.svg +2461 -0
  458. package/native/vendor/microtex/readme/samples/sample_3.svg +2653 -0
  459. package/native/vendor/microtex/readme/samples/sample_4.svg +554 -0
  460. package/native/vendor/microtex/readme/samples/sample_5.svg +247 -0
  461. package/native/vendor/microtex/readme/samples/sample_6.svg +1082 -0
  462. package/native/vendor/microtex/readme/samples/sample_7.svg +518 -0
  463. package/native/vendor/microtex/readme/samples/sample_8.svg +529 -0
  464. package/native/vendor/microtex/readme/samples/sample_9.svg +1702 -0
  465. package/native/vendor/microtex/readme/samples.md +301 -0
  466. package/native/vendor/microtex/readme/tex_logo.svg +19 -0
  467. package/native/vendor/microtex/res/EXAMPLE.txt +25 -0
  468. package/native/vendor/microtex/res/SAMPLES.tex +946 -0
  469. package/native/vendor/microtex/res/firamath/FiraMath-Regular.clm1 +0 -0
  470. package/native/vendor/microtex/res/firamath/FiraMath-Regular.clm2 +0 -0
  471. package/native/vendor/microtex/res/firamath/FiraMath-Regular.otf +0 -0
  472. package/native/vendor/microtex/res/firamath/README.md +42 -0
  473. package/native/vendor/microtex/res/lm-math/README +92 -0
  474. package/native/vendor/microtex/res/lm-math/latinmodern-math.clm1 +0 -0
  475. package/native/vendor/microtex/res/lm-math/latinmodern-math.clm2 +0 -0
  476. package/native/vendor/microtex/res/lm-math/latinmodern-math.otf +0 -0
  477. package/native/vendor/microtex/res/tex-gyre/README-TeX-Gyre-DejaVu-Math.txt +82 -0
  478. package/native/vendor/microtex/res/tex-gyre/texgyredejavu-math.clm1 +0 -0
  479. package/native/vendor/microtex/res/tex-gyre/texgyredejavu-math.clm2 +0 -0
  480. package/native/vendor/microtex/res/tex-gyre/texgyredejavu-math.otf +0 -0
  481. package/native/vendor/microtex/res/xits/FONTLOG.txt +246 -0
  482. package/native/vendor/microtex/res/xits/OFL.txt +98 -0
  483. package/native/vendor/microtex/res/xits/README.txt +15 -0
  484. package/native/vendor/microtex/res/xits/XITS-Bold.clm1 +0 -0
  485. package/native/vendor/microtex/res/xits/XITS-Bold.clm2 +0 -0
  486. package/native/vendor/microtex/res/xits/XITS-Bold.otf +0 -0
  487. package/native/vendor/microtex/res/xits/XITS-BoldItalic.clm1 +0 -0
  488. package/native/vendor/microtex/res/xits/XITS-BoldItalic.clm2 +0 -0
  489. package/native/vendor/microtex/res/xits/XITS-BoldItalic.otf +0 -0
  490. package/native/vendor/microtex/res/xits/XITS-Italic.clm1 +0 -0
  491. package/native/vendor/microtex/res/xits/XITS-Italic.clm2 +0 -0
  492. package/native/vendor/microtex/res/xits/XITS-Italic.otf +0 -0
  493. package/native/vendor/microtex/res/xits/XITS-Regular.clm1 +0 -0
  494. package/native/vendor/microtex/res/xits/XITS-Regular.clm2 +0 -0
  495. package/native/vendor/microtex/res/xits/XITS-Regular.otf +0 -0
  496. package/native/vendor/microtex/res/xits/XITSMath-Bold.clm1 +0 -0
  497. package/native/vendor/microtex/res/xits/XITSMath-Bold.clm2 +0 -0
  498. package/native/vendor/microtex/res/xits/XITSMath-Bold.otf +0 -0
  499. package/native/vendor/microtex/res/xits/XITSMath-Regular.clm1 +0 -0
  500. package/native/vendor/microtex/res/xits/XITSMath-Regular.clm2 +0 -0
  501. package/native/vendor/microtex/res/xits/XITSMath-Regular.otf +0 -0
  502. package/native/vendor/microtex/test/clm/meson.build +10 -0
  503. package/native/vendor/microtex/test/clm/test_clm.cpp +140 -0
  504. package/native/vendor/microtex/test/env/meson.build +10 -0
  505. package/native/vendor/microtex/test/env/test_env.cpp +100 -0
  506. package/native/vendor/microtex/test/fuzzer/afl.native +20 -0
  507. package/native/vendor/microtex/test/fuzzer/fuzz.sh +135 -0
  508. package/native/vendor/microtex/test/fuzzer/fuzzer.cpp +61 -0
  509. package/native/vendor/microtex/test/fuzzer/generateSeed.java +33 -0
  510. package/native/vendor/microtex/test/fuzzer/meson.build +9 -0
  511. package/native/vendor/microtex/test/fuzzer/microtex.dict +3708 -0
  512. package/native/vendor/microtex/test/fuzzer/platform_none.cpp +100 -0
  513. package/native/vendor/microtex/test/has_filesystem.cpp +8 -0
  514. package/native/vendor/microtex/test/meson.build +6 -0
  515. package/native/vendor/nanosvg.h +3278 -0
  516. package/native/vendor/nanosvgrast.h +1472 -0
  517. package/native/vendor/zigtex/.github/assets/example.svg +27 -0
  518. package/native/vendor/zigtex/LICENSE +674 -0
  519. package/native/vendor/zigtex/README.md +52 -0
  520. package/native/vendor/zigtex/build.zig +52 -0
  521. package/native/vendor/zigtex/build.zig.zon +16 -0
  522. package/native/vendor/zigtex/fonts/latinmodern-math.clm2 +0 -0
  523. package/native/vendor/zigtex/src/main.zig +22 -0
  524. package/native/vendor/zigtex/src/root.zig +124 -0
  525. package/native/vendor/zigtex/src/svg.zig +273 -0
  526. package/native/vendor/zigtex/src/tex.zig +383 -0
  527. package/native/zigtex-0.16.patch +35 -0
  528. package/package.json +27 -0
  529. package/scripts/bootstrap-native +89 -0
@@ -0,0 +1,98 @@
1
+ #ifndef RUNNER_WIN32_WINDOW_H_
2
+ #define RUNNER_WIN32_WINDOW_H_
3
+
4
+ #include <windows.h>
5
+
6
+ #include <functional>
7
+ #include <memory>
8
+ #include <string>
9
+
10
+ // A class abstraction for a high DPI-aware Win32 Window. Intended to be
11
+ // inherited from by classes that wish to specialize with custom
12
+ // rendering and input handling
13
+ class Win32Window {
14
+ public:
15
+ struct Point {
16
+ unsigned int x;
17
+ unsigned int y;
18
+ Point(unsigned int x, unsigned int y) : x(x), y(y) {}
19
+ };
20
+
21
+ struct Size {
22
+ unsigned int width;
23
+ unsigned int height;
24
+ Size(unsigned int width, unsigned int height)
25
+ : width(width), height(height) {}
26
+ };
27
+
28
+ Win32Window();
29
+ virtual ~Win32Window();
30
+
31
+ // Creates and shows a win32 window with |title| and position and size using
32
+ // |origin| and |size|. New windows are created on the default monitor. Window
33
+ // sizes are specified to the OS in physical pixels, hence to ensure a
34
+ // consistent size to will treat the width height passed in to this function
35
+ // as logical pixels and scale to appropriate for the default monitor. Returns
36
+ // true if the window was created successfully.
37
+ bool CreateAndShow(const std::wstring& title,
38
+ const Point& origin,
39
+ const Size& size);
40
+
41
+ // Release OS resources associated with window.
42
+ void Destroy();
43
+
44
+ // Inserts |content| into the window tree.
45
+ void SetChildContent(HWND content);
46
+
47
+ // Returns the backing Window handle to enable clients to set icon and other
48
+ // window properties. Returns nullptr if the window has been destroyed.
49
+ HWND GetHandle();
50
+
51
+ // If true, closing this window will quit the application.
52
+ void SetQuitOnClose(bool quit_on_close);
53
+
54
+ // Return a RECT representing the bounds of the current client area.
55
+ RECT GetClientArea();
56
+
57
+ protected:
58
+ // Processes and route salient window messages for mouse handling,
59
+ // size change and DPI. Delegates handling of these to member overloads that
60
+ // inheriting classes can handle.
61
+ virtual LRESULT MessageHandler(HWND window,
62
+ UINT const message,
63
+ WPARAM const wparam,
64
+ LPARAM const lparam) noexcept;
65
+
66
+ // Called when CreateAndShow is called, allowing subclass window-related
67
+ // setup. Subclasses should return false if setup fails.
68
+ virtual bool OnCreate();
69
+
70
+ // Called when Destroy is called.
71
+ virtual void OnDestroy();
72
+
73
+ private:
74
+ friend class WindowClassRegistrar;
75
+
76
+ // OS callback called by message pump. Handles the WM_NCCREATE message which
77
+ // is passed when the non-client area is being created and enables automatic
78
+ // non-client DPI scaling so that the non-client area automatically
79
+ // responsponds to changes in DPI. All other messages are handled by
80
+ // MessageHandler.
81
+ static LRESULT CALLBACK WndProc(HWND const window,
82
+ UINT const message,
83
+ WPARAM const wparam,
84
+ LPARAM const lparam) noexcept;
85
+
86
+ // Retrieves a class instance pointer for |window|
87
+ static Win32Window* GetThisFromHandle(HWND const window) noexcept;
88
+
89
+ bool quit_on_close_ = false;
90
+
91
+ // window handle for top level window.
92
+ HWND window_handle_ = nullptr;
93
+
94
+ // window handle for hosted content.
95
+ HWND child_content_ = nullptr;
96
+ };
97
+
98
+ #endif // RUNNER_WIN32_WINDOW_H_
@@ -0,0 +1,4 @@
1
+ #import <Flutter/Flutter.h>
2
+
3
+ @interface MicrotexPlugin : NSObject<FlutterPlugin>
4
+ @end
@@ -0,0 +1,19 @@
1
+ #import "MicrotexPlugin.h"
2
+ #if __has_include(<microtex/microtex-Swift.h>)
3
+ #import <microtex/microtex-Swift.h>
4
+ #else
5
+ // Support project import fallback if the generated compatibility header
6
+ // is not copied when this plugin is created as a library.
7
+ // https://forums.swift.org/t/swift-static-libraries-dont-copy-generated-objective-c-header/19816
8
+ #import "microtex-Swift.h"
9
+ #endif
10
+
11
+ #import "dummy.h"
12
+
13
+ @implementation MicrotexPlugin
14
+ + (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar>*)registrar {
15
+ [SwiftMicrotexPlugin registerWithRegistrar:registrar];
16
+ // dummy function call to keep microtex lib
17
+ microtex_isLittleEndian();
18
+ }
19
+ @end
@@ -0,0 +1,14 @@
1
+ import Flutter
2
+ import UIKit
3
+
4
+ public class SwiftMicrotexPlugin: NSObject, FlutterPlugin {
5
+ public static func register(with registrar: FlutterPluginRegistrar) {
6
+ let channel = FlutterMethodChannel(name: "microtex", binaryMessenger: registrar.messenger())
7
+ let instance = SwiftMicrotexPlugin()
8
+ registrar.addMethodCallDelegate(instance, channel: channel)
9
+ }
10
+
11
+ public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
12
+ result("iOS " + UIDevice.current.systemVersion)
13
+ }
14
+ }
@@ -0,0 +1,4 @@
1
+ // dummy decl to keep the microtex lib
2
+ // if there is no reference to the static lib, the compiler will
3
+ // ignore it
4
+ bool microtex_isLittleEndian();
@@ -0,0 +1,27 @@
1
+ #
2
+ # To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html.
3
+ # Run `pod lib lint microtex.podspec` to validate before publishing.
4
+ #
5
+ Pod::Spec.new do |s|
6
+ s.name = 'microtex'
7
+ s.version = '0.0.1'
8
+ s.summary = 'A micro, fast, cross-platform, and embeddable LaTeX rendering library.'
9
+ s.description = <<-DESC
10
+ A micro, fast, cross-platform, and embeddable LaTeX rendering library.
11
+ DESC
12
+ s.homepage = 'http://example.com'
13
+ s.license = { :file => '../LICENSE' }
14
+ s.author = { 'Your Company' => 'email@example.com' }
15
+ s.source = { :path => '.' }
16
+ s.source_files = 'Classes/**/*'
17
+ s.dependency 'Flutter'
18
+ s.platform = :ios, '9.0'
19
+
20
+ s.libraries = 'c++'
21
+ s.vendored_libraries = 'libs/libmicrotex.a'
22
+
23
+ # Flutter.framework does not contain a i386 slice.
24
+ s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386 arm64' }
25
+ s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
26
+ s.swift_version = '5.0'
27
+ end
@@ -0,0 +1,7 @@
1
+ library microtex;
2
+
3
+ export 'src/context.dart';
4
+ export 'src/fontmeta.dart';
5
+ export 'src/render.dart';
6
+ export 'src/texstyle.dart';
7
+ export 'src/widget.dart' show LaTeX, Blur;
@@ -0,0 +1,218 @@
1
+ import 'dart:ffi';
2
+ import 'dart:io';
3
+ import 'package:ffi/ffi.dart';
4
+ import 'package:microtex/src/context.dart';
5
+ import 'package:microtex/src/fontdesc.dart';
6
+
7
+ import 'bounds.dart';
8
+
9
+ typedef NCreateTextLayout = Uint32 Function(Pointer<Utf8>, Pointer<FontDesc>);
10
+ typedef NGetTextLayoutBounds = Void Function(Uint32, Pointer<Bounds>);
11
+ typedef NReleaseTextLayout = Void Function(Uint32);
12
+ typedef NIsPathExists = Bool Function(Uint32);
13
+ typedef NRegisterCallbacks = Void Function(
14
+ Pointer<NativeFunction<NCreateTextLayout>>,
15
+ Pointer<NativeFunction<NGetTextLayoutBounds>>,
16
+ Pointer<NativeFunction<NReleaseTextLayout>>,
17
+ Pointer<NativeFunction<NIsPathExists>>,
18
+ );
19
+ typedef RegisterCallbacks = void Function(
20
+ Pointer<NativeFunction<NCreateTextLayout>>,
21
+ Pointer<NativeFunction<NGetTextLayoutBounds>>,
22
+ Pointer<NativeFunction<NReleaseTextLayout>>,
23
+ Pointer<NativeFunction<NIsPathExists>>,
24
+ );
25
+
26
+ typedef NativeParse = Pointer Function(Pointer<Utf8>, Int32, Float, Float, Uint32, Bool, Bool, Uint32);
27
+ typedef Parse = Pointer Function(Pointer<Utf8>, int, double, double, int, bool, bool, int);
28
+
29
+ class NativeBindings {
30
+ late final DynamicLibrary _nativeLib;
31
+
32
+ // context
33
+ late final RegisterCallbacks registerCallbacks;
34
+ late final Pointer Function(int, Pointer) init;
35
+ late final bool Function() isInited;
36
+ late final void Function() release;
37
+ late final bool Function() isLittleEndian;
38
+
39
+ // font operations
40
+ late final Pointer<Utf8> Function(Pointer) getFontFamily;
41
+ late final Pointer<Utf8> Function(Pointer) getFontName;
42
+ late final bool Function(Pointer) isMathFont;
43
+ late final void Function(Pointer) releaseFontMeta;
44
+ late final Pointer Function(int len, Pointer) addFont;
45
+
46
+ // setters
47
+ late final void Function(Pointer<Utf8>) setDefaultMathFont;
48
+ late final void Function(Pointer<Utf8>) setDefaultMainFont;
49
+
50
+ // parse
51
+ late final Parse parse;
52
+
53
+ // render
54
+ late final void Function(Pointer) deleteRender;
55
+ late final Pointer<Uint8> Function(Pointer, int, int) getDrawingData;
56
+ late final void Function(Pointer) deleteDrawingData;
57
+ late final int Function(Pointer) getRenderWidth;
58
+ late final int Function(Pointer) getRenderHeight;
59
+ late final int Function(Pointer) getRenderDepth;
60
+ late final bool Function(Pointer) isRenderSplit;
61
+ late final void Function(Pointer, double) setRenderTextSize;
62
+ late final void Function(Pointer, int) setRenderForground;
63
+
64
+ // glyph settings
65
+ late final bool Function() hasGlyphPathRender;
66
+ late final void Function(bool) setRenderGlyphUsePath;
67
+ late final bool Function() isRenderGlyphUsePath;
68
+
69
+ NativeBindings._() {
70
+ _init();
71
+ }
72
+
73
+ factory NativeBindings() => NativeBindings._();
74
+
75
+ void _init() {
76
+ if (Platform.isLinux || Platform.isAndroid) {
77
+ _nativeLib = DynamicLibrary.open('libmicrotex.so');
78
+ } else if (Platform.isIOS || Platform.isMacOS) {
79
+ _nativeLib = DynamicLibrary.process();
80
+ } else if (Platform.isWindows) {
81
+ _nativeLib = DynamicLibrary.open('microtex.dll');
82
+ } else {
83
+ // should never happen
84
+ }
85
+ if (debugMicroTeX) print(_nativeLib);
86
+ // context
87
+ registerCallbacks = _nativeLib
88
+ .lookup<NativeFunction<NRegisterCallbacks>>(
89
+ 'microtex_registerCallbacks',
90
+ )
91
+ .asFunction<RegisterCallbacks>();
92
+ init = _nativeLib
93
+ .lookup<NativeFunction<Pointer Function(Uint32, Pointer)>>(
94
+ "microtex_init",
95
+ )
96
+ .asFunction<Pointer Function(int, Pointer)>();
97
+ isInited = _nativeLib
98
+ .lookup<NativeFunction<Bool Function()>>(
99
+ "microtex_isInited",
100
+ )
101
+ .asFunction();
102
+ release = _nativeLib
103
+ .lookup<NativeFunction<Void Function()>>(
104
+ "microtex_release",
105
+ )
106
+ .asFunction();
107
+ isLittleEndian = _nativeLib
108
+ .lookup<NativeFunction<Bool Function()>>(
109
+ "microtex_isLittleEndian",
110
+ )
111
+ .asFunction();
112
+ // FontMeta
113
+ getFontFamily = _nativeLib
114
+ .lookup<NativeFunction<Pointer<Utf8> Function(Pointer)>>(
115
+ "microtex_getFontFamily",
116
+ )
117
+ .asFunction();
118
+ getFontName = _nativeLib
119
+ .lookup<NativeFunction<Pointer<Utf8> Function(Pointer)>>(
120
+ "microtex_getFontName",
121
+ )
122
+ .asFunction();
123
+ isMathFont = _nativeLib
124
+ .lookup<NativeFunction<Bool Function(Pointer)>>(
125
+ "microtex_isMathFont",
126
+ )
127
+ .asFunction();
128
+ releaseFontMeta = _nativeLib
129
+ .lookup<NativeFunction<Void Function(Pointer)>>(
130
+ "microtex_releaseFontMeta",
131
+ )
132
+ .asFunction();
133
+ addFont = _nativeLib
134
+ .lookup<NativeFunction<Pointer Function(Uint32, Pointer)>>(
135
+ "microtex_addFont",
136
+ )
137
+ .asFunction();
138
+ // setters
139
+ setDefaultMathFont = _nativeLib
140
+ .lookup<NativeFunction<Void Function(Pointer<Utf8>)>>(
141
+ "microtex_setDefaultMathFont",
142
+ )
143
+ .asFunction();
144
+ setDefaultMainFont = _nativeLib
145
+ .lookup<NativeFunction<Void Function(Pointer<Utf8>)>>(
146
+ "microtex_setDefaultMainFont",
147
+ )
148
+ .asFunction();
149
+ // parse
150
+ parse = _nativeLib
151
+ .lookup<NativeFunction<NativeParse>>(
152
+ "microtex_parseRender",
153
+ )
154
+ .asFunction();
155
+ // render
156
+ deleteRender = _nativeLib
157
+ .lookup<NativeFunction<Void Function(Pointer)>>(
158
+ "microtex_deleteRender",
159
+ )
160
+ .asFunction();
161
+ getDrawingData = _nativeLib
162
+ .lookup<NativeFunction<Pointer<Uint8> Function(Pointer, Int32, Int32)>>(
163
+ "microtex_getDrawingData",
164
+ )
165
+ .asFunction();
166
+ deleteDrawingData = _nativeLib
167
+ .lookup<NativeFunction<Void Function(Pointer)>>(
168
+ "microtex_freeDrawingData",
169
+ )
170
+ .asFunction();
171
+ getRenderWidth = _nativeLib
172
+ .lookup<NativeFunction<Int32 Function(Pointer)>>(
173
+ "microtex_getRenderWidth",
174
+ )
175
+ .asFunction();
176
+ getRenderHeight = _nativeLib
177
+ .lookup<NativeFunction<Int32 Function(Pointer)>>(
178
+ "microtex_getRenderHeight",
179
+ )
180
+ .asFunction();
181
+ getRenderDepth = _nativeLib
182
+ .lookup<NativeFunction<Int32 Function(Pointer)>>(
183
+ "microtex_getRenderDepth",
184
+ )
185
+ .asFunction();
186
+ isRenderSplit = _nativeLib
187
+ .lookup<NativeFunction<Bool Function(Pointer)>>(
188
+ "microtex_isRenderSplit",
189
+ )
190
+ .asFunction();
191
+ setRenderTextSize = _nativeLib
192
+ .lookup<NativeFunction<Void Function(Pointer, Float)>>(
193
+ "microtex_setRenderTextSize",
194
+ )
195
+ .asFunction();
196
+ setRenderForground = _nativeLib
197
+ .lookup<NativeFunction<Void Function(Pointer, Uint32)>>(
198
+ "microtex_setRenderForeground",
199
+ )
200
+ .asFunction();
201
+ // glyph settings
202
+ hasGlyphPathRender = _nativeLib
203
+ .lookup<NativeFunction<Bool Function()>>(
204
+ "microtex_hasGlyphPathRender",
205
+ )
206
+ .asFunction();
207
+ setRenderGlyphUsePath = _nativeLib
208
+ .lookup<NativeFunction<Void Function(Bool)>>(
209
+ "microtex_setRenderGlyphUsePath",
210
+ )
211
+ .asFunction();
212
+ isRenderGlyphUsePath = _nativeLib
213
+ .lookup<NativeFunction<Bool Function()>>(
214
+ "microtex_isRenderGlyphUsePath",
215
+ )
216
+ .asFunction();
217
+ }
218
+ }
@@ -0,0 +1,10 @@
1
+ import 'dart:ffi';
2
+
3
+ class Bounds extends Struct {
4
+ @Float()
5
+ external double width;
6
+ @Float()
7
+ external double height;
8
+ @Float()
9
+ external double ascent;
10
+ }
@@ -0,0 +1,205 @@
1
+ import 'dart:ffi';
2
+
3
+ import 'package:flutter/cupertino.dart';
4
+ import 'package:flutter/foundation.dart';
5
+ import 'package:ffi/ffi.dart';
6
+ import 'package:flutter/services.dart';
7
+ import 'package:microtex/microtex.dart';
8
+ import 'package:microtex/src/bindings.dart';
9
+ import 'package:microtex/src/bounds.dart';
10
+ import 'package:microtex/src/fontdesc.dart';
11
+ import 'package:microtex/src/pathcache.dart';
12
+ import 'package:microtex/src/textlayout.dart';
13
+
14
+ bool _debugMicroTeX = false;
15
+
16
+ set debugMicroTeX(bool value) => _debugMicroTeX = value;
17
+
18
+ bool get debugMicroTeX => _debugMicroTeX && kDebugMode;
19
+
20
+ /// The MicroTeX context wrapper for Flutter from native. You must call [initialize]
21
+ /// to initialize the context before using.
22
+ class MicroTeX {
23
+ MicroTeX._();
24
+
25
+ static final _instance = MicroTeX._();
26
+
27
+ factory MicroTeX() => _instance;
28
+
29
+ late final bool _isLittleEndian;
30
+ final _bindings = NativeBindings();
31
+ final _fonts = <FontMeta>[];
32
+
33
+ String _currentMathFontName = "";
34
+
35
+ /// The name of the math font currently in use, empty if the context was
36
+ /// not intialized.
37
+ String get currentMathFontName => _currentMathFontName;
38
+
39
+ set currentMathFontName(value) {
40
+ if (_currentMathFontName == value) return;
41
+ _currentMathFontName = value;
42
+ _setMathFont(value);
43
+ }
44
+
45
+ String _currentMainFontFamilyName = "";
46
+
47
+ /// The family name of the main font currently in use, if it is empty, that means
48
+ /// no main font was given, thus the context fallbacks to the math font.
49
+ String get currentMainFontFamilyName => _currentMainFontFamilyName;
50
+
51
+ set currentMainFontFamilyName(value) {
52
+ if (_currentMainFontFamilyName == value) return;
53
+ _currentMainFontFamilyName = value;
54
+ _setMainFont(value);
55
+ }
56
+
57
+ List<FontMeta> get mathFonts {
58
+ return _fonts.where((element) => element.isMathFont).toList();
59
+ }
60
+
61
+ List<FontMeta> get mainFonts {
62
+ return _fonts.where((element) => !element.isMathFont).toList();
63
+ }
64
+
65
+ /// Initialize the MicroTeX context.
66
+ Future<void> initialize({
67
+ required String clmAsset,
68
+ String textLayoutSerif = "",
69
+ String textLayoutSansSerif = "",
70
+ String textLayoutMonospace = "",
71
+ }) async {
72
+ TextLayout.setFontFamily(
73
+ textLayoutSerif,
74
+ textLayoutSansSerif,
75
+ textLayoutMonospace,
76
+ );
77
+ _isLittleEndian = _bindings.isLittleEndian();
78
+ _registerCallbacks();
79
+ await _initWithCLM(clmAsset);
80
+ }
81
+
82
+ void _registerCallbacks() {
83
+ final register = _bindings.registerCallbacks;
84
+ final a = Pointer.fromFunction<Uint32 Function(Pointer, Pointer)>(
85
+ _createTextLayout,
86
+ 0,
87
+ );
88
+ final b = Pointer.fromFunction<Void Function(Uint32, Pointer)>(
89
+ _getTextLayoutBounds,
90
+ );
91
+ final c = Pointer.fromFunction<Void Function(Uint32)>(
92
+ TextLayout.release,
93
+ );
94
+ final d = Pointer.fromFunction<Bool Function(Uint32)>(
95
+ _isPathExists,
96
+ false,
97
+ );
98
+ register(a, b, c, d);
99
+ if (debugMicroTeX) print(register);
100
+ }
101
+
102
+ static int _createTextLayout(Pointer<Utf8> txt, Pointer<FontDesc> font) {
103
+ return TextLayout.create(txt.toDartString(), font.ref);
104
+ }
105
+
106
+ static void _getTextLayoutBounds(int id, Pointer<Bounds> bounds) {
107
+ final b = TextLayout.getBounds(id);
108
+ bounds.ref
109
+ ..width = b[0]
110
+ ..height = b[1]
111
+ ..ascent = b[2];
112
+ }
113
+
114
+ static bool _isPathExists(int id) => PathCache()[id] != null;
115
+
116
+ Future<FontMeta> _loadCLM(
117
+ String clmAsset,
118
+ Pointer Function(int len, Pointer<Uint8> buf) f,
119
+ ) async {
120
+ final clm = await rootBundle.load(clmAsset);
121
+ final len = clm.lengthInBytes;
122
+ // copy data to C
123
+ final cbuf = calloc.allocate<Uint8>(len);
124
+ final list = cbuf.asTypedList(len);
125
+ list.setAll(0, clm.buffer.asUint8List());
126
+ // callback
127
+ final m = f(len, cbuf);
128
+ // release buffer in C
129
+ calloc.free(cbuf);
130
+ // get font meta info from C
131
+ final fontFamily = _bindings.getFontFamily(m).toDartString();
132
+ final fontName = _bindings.getFontName(m).toDartString();
133
+ final isMathFont = _bindings.isMathFont(m);
134
+ // push to font meta list
135
+ final meta = FontMeta(fontFamily, fontName, isMathFont);
136
+ if (debugMicroTeX) print(meta);
137
+ if (meta.isValid) _fonts.add(meta);
138
+ // release meta pointer in C
139
+ _bindings.releaseFontMeta(m);
140
+ return meta;
141
+ }
142
+
143
+ Future<void> _initWithCLM(String clmAsset) async {
144
+ final meta = await _loadCLM(clmAsset, (len, buf) => _bindings.init(len, buf));
145
+ currentMathFontName = meta.fontName;
146
+ }
147
+
148
+ /// Add a clm font from assets.
149
+ Future<FontMeta> addFont(String clmAsset) async {
150
+ return _loadCLM(clmAsset, (len, buf) => _bindings.addFont(len, buf));
151
+ }
152
+
153
+ void _setMathFont(String name) {
154
+ final str = name.toNativeUtf8();
155
+ _bindings.setDefaultMathFont(str);
156
+ calloc.free(str);
157
+ }
158
+
159
+ void _setMainFont(String familyName) {
160
+ final str = familyName.toNativeUtf8();
161
+ _bindings.setDefaultMainFont(str);
162
+ calloc.free(str);
163
+ }
164
+
165
+ /// Test if MicroTeX has the ability to use path to render glyphs.
166
+ bool hasGlyphPathRender() {
167
+ return _bindings.hasGlyphPathRender();
168
+ }
169
+
170
+ /// Set if use path to render glyphs, only works if [hasGlyphPathRender] returns true,
171
+ /// otherwise this function takes no effects.
172
+ void setRenderGlyphUsePath(bool use) {
173
+ _bindings.setRenderGlyphUsePath(use);
174
+ }
175
+
176
+ /// Test if currently use path to render glyphs.
177
+ bool isRenderGlyphUsePath() {
178
+ return _bindings.isRenderGlyphUsePath();
179
+ }
180
+
181
+ Render parse({
182
+ required String tex,
183
+ required int width,
184
+ required double textSize,
185
+ required double lineSpace,
186
+ required Color color,
187
+ required bool fillWidth,
188
+ required bool overrideTeXStyle,
189
+ required TeXStyle style,
190
+ }) {
191
+ final str = tex.toNativeUtf8();
192
+ final ptr = _bindings.parse(
193
+ str,
194
+ width,
195
+ textSize,
196
+ lineSpace,
197
+ color.value,
198
+ fillWidth,
199
+ overrideTeXStyle,
200
+ style.index,
201
+ );
202
+ calloc.free(str);
203
+ return Render(_bindings, ptr, _isLittleEndian);
204
+ }
205
+ }
@@ -0,0 +1,14 @@
1
+ import 'dart:ffi';
2
+
3
+ class FontDesc extends Struct {
4
+ @Bool()
5
+ external bool isBold;
6
+ @Bool()
7
+ external bool isItalic;
8
+ @Bool()
9
+ external bool isSansSerif;
10
+ @Bool()
11
+ external bool isMonospace;
12
+ @Float()
13
+ external double fontSize;
14
+ }
@@ -0,0 +1,14 @@
1
+ class FontMeta {
2
+ final String fontFamily;
3
+ final String fontName;
4
+ final bool isMathFont;
5
+
6
+ FontMeta(this.fontFamily, this.fontName, this.isMathFont);
7
+
8
+ bool get isValid => fontFamily.isNotEmpty && fontName.isNotEmpty;
9
+
10
+ @override
11
+ String toString() {
12
+ return "FontMeta{$fontFamily, $fontName, $isMathFont}";
13
+ }
14
+ }
@@ -0,0 +1,17 @@
1
+ import 'dart:ui';
2
+
3
+ class PathCache {
4
+ static final _instance = PathCache._();
5
+
6
+ PathCache._();
7
+
8
+ factory PathCache() {
9
+ return _instance;
10
+ }
11
+
12
+ final _map = <int, Path>{};
13
+
14
+ Path? operator [](int id) => _map[id];
15
+
16
+ void operator []=(int id, Path path) => _map.putIfAbsent(id, () => path);
17
+ }