@nativescript/canvas 2.0.0-alpha.1 → 2.0.0-alpha.3

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 (370) hide show
  1. package/Canvas/index.android.js +3 -3
  2. package/Canvas/index.android.js.map +1 -1
  3. package/Canvas/index.ios.d.ts +3 -2
  4. package/Canvas/index.ios.js +74 -52
  5. package/Canvas/index.ios.js.map +1 -1
  6. package/Canvas2D/CanvasGradient/index.d.ts +9 -2
  7. package/Canvas2D/CanvasGradient/index.js +23 -2
  8. package/Canvas2D/CanvasGradient/index.js.map +1 -1
  9. package/Canvas2D/CanvasPattern/index.d.ts +9 -2
  10. package/Canvas2D/CanvasPattern/index.js +20 -2
  11. package/Canvas2D/CanvasPattern/index.js.map +1 -1
  12. package/Canvas2D/CanvasRenderingContext2D/index.d.ts +120 -132
  13. package/Canvas2D/CanvasRenderingContext2D/{index.android.js → index.js} +125 -133
  14. package/Canvas2D/CanvasRenderingContext2D/index.js.map +1 -0
  15. package/Canvas2D/DOMMatrix/index.d.ts +74 -2
  16. package/Canvas2D/DOMMatrix/index.js +180 -2
  17. package/Canvas2D/DOMMatrix/index.js.map +1 -1
  18. package/Canvas2D/ImageData/index.d.ts +15 -2
  19. package/Canvas2D/ImageData/index.js +66 -2
  20. package/Canvas2D/ImageData/index.js.map +1 -1
  21. package/Canvas2D/Path2D/index.d.ts +21 -2
  22. package/Canvas2D/Path2D/index.js +87 -2
  23. package/Canvas2D/Path2D/index.js.map +1 -1
  24. package/Canvas2D/TextMetrics/index.d.ts +17 -2
  25. package/Canvas2D/TextMetrics/index.js +44 -2
  26. package/Canvas2D/TextMetrics/index.js.map +1 -1
  27. package/Dom/Dom.d.ts +10 -0
  28. package/Dom/Dom.js +36 -0
  29. package/Dom/Dom.js.map +1 -0
  30. package/Dom/Fill.d.ts +4 -0
  31. package/Dom/Fill.js +8 -0
  32. package/Dom/Fill.js.map +1 -0
  33. package/Dom/Group.d.ts +21 -0
  34. package/Dom/Group.js +179 -0
  35. package/Dom/Group.js.map +1 -0
  36. package/Dom/Image.d.ts +12 -0
  37. package/Dom/Image.js +33 -0
  38. package/Dom/Image.js.map +1 -0
  39. package/Dom/Paint.d.ts +15 -0
  40. package/Dom/Paint.js +58 -0
  41. package/Dom/Paint.js.map +1 -0
  42. package/Dom/Shadow.d.ts +10 -0
  43. package/Dom/Shadow.js +26 -0
  44. package/Dom/Shadow.js.map +1 -0
  45. package/Dom/Text.d.ts +9 -0
  46. package/Dom/Text.js +50 -0
  47. package/Dom/Text.js.map +1 -0
  48. package/Dom/index.d.ts +8 -0
  49. package/Dom/index.js +9 -0
  50. package/Dom/index.js.map +1 -0
  51. package/Dom/shapes/Circle.d.ts +21 -0
  52. package/Dom/shapes/Circle.js +99 -0
  53. package/Dom/shapes/Circle.js.map +1 -0
  54. package/Dom/shapes/Line.d.ts +9 -0
  55. package/Dom/shapes/Line.js +37 -0
  56. package/Dom/shapes/Line.js.map +1 -0
  57. package/Dom/shapes/Path.d.ts +8 -0
  58. package/Dom/shapes/Path.js +31 -0
  59. package/Dom/shapes/Path.js.map +1 -0
  60. package/Dom/shapes/Points.d.ts +15 -0
  61. package/Dom/shapes/Points.js +21 -0
  62. package/Dom/shapes/Points.js.map +1 -0
  63. package/Dom/shapes/Rect.d.ts +15 -0
  64. package/Dom/shapes/Rect.js +63 -0
  65. package/Dom/shapes/Rect.js.map +1 -0
  66. package/Dom/shapes/RoundedRect.d.ts +12 -0
  67. package/Dom/shapes/RoundedRect.js +96 -0
  68. package/Dom/shapes/RoundedRect.js.map +1 -0
  69. package/Dom/shapes/index.d.ts +6 -0
  70. package/Dom/shapes/index.js +7 -0
  71. package/Dom/shapes/index.js.map +1 -0
  72. package/ImageAsset/index.d.ts +28 -2
  73. package/ImageAsset/index.js +158 -2
  74. package/ImageAsset/index.js.map +1 -1
  75. package/ImageBitmap/{index.android.d.ts → index.d.ts} +3 -2
  76. package/ImageBitmap/{index.android.js → index.js} +7 -4
  77. package/ImageBitmap/index.js.map +1 -0
  78. package/TextDecoder/index.d.ts +9 -2
  79. package/TextDecoder/index.js +53 -2
  80. package/TextDecoder/index.js.map +1 -1
  81. package/TextEncoder/index.d.ts +9 -2
  82. package/TextEncoder/index.js +51 -2
  83. package/TextEncoder/index.js.map +1 -1
  84. package/WebGL/WebGLExtensions/index.d.ts +159 -242
  85. package/WebGL/WebGLExtensions/{index.android.js → index.js} +1 -1
  86. package/WebGL/WebGLExtensions/index.js.map +1 -0
  87. package/WebGL/WebGLRenderingContext/index.d.ts +153 -293
  88. package/WebGL/WebGLRenderingContext/{index.android.js → index.js} +25 -8
  89. package/WebGL/WebGLRenderingContext/index.js.map +1 -0
  90. package/WebGL2/WebGL2RenderingContext/common.d.ts +1 -0
  91. package/WebGL2/WebGL2RenderingContext/common.js +3 -0
  92. package/WebGL2/WebGL2RenderingContext/common.js.map +1 -1
  93. package/WebGL2/WebGL2RenderingContext/index.d.ts +101 -455
  94. package/WebGL2/WebGL2RenderingContext/{index.android.js → index.js} +16 -6
  95. package/WebGL2/WebGL2RenderingContext/index.js.map +1 -0
  96. package/helpers.js +3 -0
  97. package/helpers.js.map +1 -1
  98. package/package.json +1 -1
  99. package/platforms/android/canvas-release.aar +0 -0
  100. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative +0 -0
  101. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/CanvasNative-Swift.h +93 -1718
  102. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/CanvasNative.h +1 -3
  103. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_native.h +92 -0
  104. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Info.plist +0 -0
  105. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  106. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json +4435 -0
  107. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.private.swiftinterface +136 -0
  108. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  109. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftinterface +75 -3203
  110. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/module.modulemap +2 -2
  111. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/{TNSCanvas.nib → NSCCanvas.nib} +0 -0
  112. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  113. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative +0 -0
  114. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/CanvasNative-Swift.h +176 -3436
  115. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/CanvasNative.h +1 -3
  116. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_native.h +92 -0
  117. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Info.plist +0 -0
  118. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  119. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  120. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json +4435 -0
  121. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +136 -0
  122. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  123. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftinterface +75 -3203
  124. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json +4435 -0
  125. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +136 -0
  126. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  127. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +75 -3203
  128. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/module.modulemap +2 -2
  129. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/{TNSCanvas.nib → NSCCanvas.nib} +0 -0
  130. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +49 -93
  131. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  132. package/platforms/ios/Podfile +2 -1
  133. package/platforms/ios/build.xcconfig +5 -0
  134. package/platforms/ios/src/CanvasModule.h +10 -0
  135. package/platforms/ios/src/CanvasModule.mm +14 -0
  136. package/platforms/ios/src/cpp/CanvasJSIModule.h +60 -0
  137. package/platforms/ios/src/cpp/CanvasJSIModule.mm +1105 -0
  138. package/platforms/ios/src/cpp/Helpers.h +61 -0
  139. package/platforms/ios/src/cpp/ImageAssetImpl.h +30 -0
  140. package/platforms/ios/src/cpp/ImageAssetImpl.mm +417 -0
  141. package/platforms/ios/src/cpp/ImageBitmapImpl.h +41 -0
  142. package/platforms/ios/src/cpp/ImageBitmapImpl.mm +126 -0
  143. package/platforms/ios/src/cpp/JSICallback.h +15 -0
  144. package/platforms/ios/src/cpp/JSIReadFileCallback.h +16 -0
  145. package/platforms/ios/src/cpp/OnRafCallback.h +24 -0
  146. package/platforms/ios/src/cpp/OnRafCallback.mm +25 -0
  147. package/platforms/ios/src/cpp/RafImpl.h +27 -0
  148. package/platforms/ios/src/cpp/RafImpl.mm +10 -0
  149. package/platforms/ios/src/cpp/TextDecoderImpl.h +28 -0
  150. package/platforms/ios/src/cpp/TextDecoderImpl.mm +97 -0
  151. package/platforms/ios/src/cpp/TextEncoderImpl.h +28 -0
  152. package/platforms/ios/src/cpp/TextEncoderImpl.mm +60 -0
  153. package/platforms/ios/src/cpp/VecMutableBuffer.h +51 -0
  154. package/platforms/ios/src/cpp/canvas-cxx/src/lib.rs.cc +6119 -0
  155. package/platforms/ios/src/cpp/canvas-cxx/src/lib.rs.h +2854 -0
  156. package/platforms/ios/src/cpp/canvas2d/CanvasGradient.h +28 -0
  157. package/platforms/ios/src/cpp/canvas2d/CanvasGradient.mm +42 -0
  158. package/platforms/ios/src/cpp/canvas2d/CanvasPattern.h +29 -0
  159. package/platforms/ios/src/cpp/canvas2d/CanvasPattern.mm +49 -0
  160. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.h +70 -0
  161. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.mm +1954 -0
  162. package/platforms/ios/src/cpp/canvas2d/ImageDataImpl.h +29 -0
  163. package/platforms/ios/src/cpp/canvas2d/ImageDataImpl.mm +68 -0
  164. package/platforms/ios/src/cpp/canvas2d/MatrixImpl.h +29 -0
  165. package/platforms/ios/src/cpp/canvas2d/MatrixImpl.mm +149 -0
  166. package/platforms/ios/src/cpp/canvas2d/Path2D.h +27 -0
  167. package/platforms/ios/src/cpp/canvas2d/Path2D.mm +335 -0
  168. package/platforms/ios/src/cpp/canvas2d/TextMetricsImpl.h +29 -0
  169. package/platforms/ios/src/cpp/canvas2d/TextMetricsImpl.mm +68 -0
  170. package/platforms/ios/src/cpp/gl.h +29 -0
  171. package/platforms/ios/src/cpp/rust/cxx.cc +793 -0
  172. package/platforms/ios/src/cpp/rust/cxx.h +1111 -0
  173. package/platforms/ios/src/cpp/webgl/WebGLActiveInfoImpl.h +28 -0
  174. package/platforms/ios/src/cpp/webgl/WebGLActiveInfoImpl.mm +39 -0
  175. package/platforms/ios/src/cpp/webgl/WebGLBuffer.h +24 -0
  176. package/platforms/ios/src/cpp/webgl/WebGLFramebuffer.h +24 -0
  177. package/platforms/ios/src/cpp/webgl/WebGLProgram.h +24 -0
  178. package/platforms/ios/src/cpp/webgl/WebGLRenderbuffer.h +24 -0
  179. package/platforms/ios/src/cpp/webgl/WebGLRenderingContext.h +516 -0
  180. package/platforms/ios/src/cpp/webgl/WebGLRenderingContext.mm +5879 -0
  181. package/platforms/ios/src/cpp/webgl/WebGLRenderingContextBase.h +63 -0
  182. package/platforms/ios/src/cpp/webgl/WebGLRenderingContextBase.mm +97 -0
  183. package/platforms/ios/src/cpp/webgl/WebGLShader.h +24 -0
  184. package/platforms/ios/src/cpp/webgl/WebGLShaderPrecisionFormatImpl.h +28 -0
  185. package/platforms/ios/src/cpp/webgl/WebGLShaderPrecisionFormatImpl.mm +40 -0
  186. package/platforms/ios/src/cpp/webgl/WebGLTexture.h +23 -0
  187. package/platforms/ios/src/cpp/webgl/WebGLUniformLocation.h +28 -0
  188. package/platforms/ios/src/cpp/webgl/extensions/ANGLE_instanced_arraysImpl.h +28 -0
  189. package/platforms/ios/src/cpp/webgl/extensions/ANGLE_instanced_arraysImpl.mm +108 -0
  190. package/platforms/ios/src/cpp/webgl/extensions/EXT_blend_minmaxImpl.h +16 -0
  191. package/platforms/ios/src/cpp/webgl/extensions/EXT_blend_minmaxImpl.mm +28 -0
  192. package/platforms/ios/src/cpp/webgl/extensions/EXT_color_buffer_half_floatImpl.h +17 -0
  193. package/platforms/ios/src/cpp/webgl/extensions/EXT_color_buffer_half_floatImpl.mm +42 -0
  194. package/platforms/ios/src/cpp/webgl/extensions/EXT_disjoint_timer_queryImpl.h +28 -0
  195. package/platforms/ios/src/cpp/webgl/extensions/EXT_disjoint_timer_queryImpl.mm +295 -0
  196. package/platforms/ios/src/cpp/webgl/extensions/EXT_sRGBImpl.h +18 -0
  197. package/platforms/ios/src/cpp/webgl/extensions/EXT_sRGBImpl.mm +40 -0
  198. package/platforms/ios/src/cpp/webgl/extensions/EXT_shader_texture_lodImpl.h +29 -0
  199. package/platforms/ios/src/cpp/webgl/extensions/EXT_texture_filter_anisotropicImpl.h +18 -0
  200. package/platforms/ios/src/cpp/webgl/extensions/EXT_texture_filter_anisotropicImpl.mm +37 -0
  201. package/platforms/ios/src/cpp/webgl/extensions/OES_element_index_uintImpl.h +18 -0
  202. package/platforms/ios/src/cpp/webgl/extensions/OES_element_index_uintImpl.mm +28 -0
  203. package/platforms/ios/src/cpp/webgl/extensions/OES_standard_derivativesImpl.h +18 -0
  204. package/platforms/ios/src/cpp/webgl/extensions/OES_standard_derivativesImpl.mm +31 -0
  205. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_floatImpl.h +30 -0
  206. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_float_linearImpl.h +31 -0
  207. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_half_floatImpl.h +18 -0
  208. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_half_floatImpl.mm +28 -0
  209. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_half_float_linearImpl.h +30 -0
  210. package/platforms/ios/src/cpp/webgl/extensions/OES_vertex_array_objectImpl.h +32 -0
  211. package/platforms/ios/src/cpp/webgl/extensions/OES_vertex_array_objectImpl.mm +127 -0
  212. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_color_buffer_floatImpl.h +20 -0
  213. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_color_buffer_floatImpl.mm +45 -0
  214. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_atcImpl.h +18 -0
  215. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_atcImpl.mm +45 -0
  216. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_etc1Impl.h +18 -0
  217. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_etc1Impl.mm +31 -0
  218. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_etcImpl.h +18 -0
  219. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_etcImpl.mm +70 -0
  220. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_pvrtcImpl.h +18 -0
  221. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_pvrtcImpl.mm +47 -0
  222. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_s3tcImpl.h +18 -0
  223. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_s3tcImpl.mm +46 -0
  224. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_s3tc_srgbImpl.h +19 -0
  225. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_s3tc_srgbImpl.mm +49 -0
  226. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_depth_textureImpl.h +19 -0
  227. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_depth_textureImpl.mm +30 -0
  228. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_draw_buffersImpl.h +31 -0
  229. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_draw_buffersImpl.mm +177 -0
  230. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_lose_contextImpl.h +31 -0
  231. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_lose_contextImpl.mm +64 -0
  232. package/platforms/ios/src/cpp/webgl2/WebGL2RenderingContext.h +431 -0
  233. package/platforms/ios/src/cpp/webgl2/WebGL2RenderingContext.mm +4554 -0
  234. package/platforms/ios/src/cpp/webgl2/WebGLQuery.h +21 -0
  235. package/platforms/ios/src/cpp/webgl2/WebGLSampler.h +21 -0
  236. package/platforms/ios/src/cpp/webgl2/WebGLSyncImpl.h +24 -0
  237. package/platforms/ios/src/cpp/webgl2/WebGLTransformFeedback.h +21 -0
  238. package/platforms/ios/src/cpp/webgl2/WebGLVertexArrayObject.h +21 -0
  239. package/platforms/ios/src/module.modulemap +4 -0
  240. package/Canvas2D/CanvasGradient/CanvasGradient.android.d.ts +0 -10
  241. package/Canvas2D/CanvasGradient/CanvasGradient.android.js +0 -26
  242. package/Canvas2D/CanvasGradient/CanvasGradient.android.js.map +0 -1
  243. package/Canvas2D/CanvasGradient/CanvasGradient.d.ts +0 -12
  244. package/Canvas2D/CanvasGradient/CanvasGradient.ios.d.ts +0 -8
  245. package/Canvas2D/CanvasGradient/CanvasGradient.ios.js +0 -19
  246. package/Canvas2D/CanvasGradient/CanvasGradient.ios.js.map +0 -1
  247. package/Canvas2D/CanvasGradient/common.d.ts +0 -3
  248. package/Canvas2D/CanvasGradient/common.js +0 -3
  249. package/Canvas2D/CanvasGradient/common.js.map +0 -1
  250. package/Canvas2D/CanvasPattern/CanvasPattern.android.d.ts +0 -8
  251. package/Canvas2D/CanvasPattern/CanvasPattern.android.js +0 -20
  252. package/Canvas2D/CanvasPattern/CanvasPattern.android.js.map +0 -1
  253. package/Canvas2D/CanvasPattern/CanvasPattern.d.ts +0 -8
  254. package/Canvas2D/CanvasPattern/CanvasPattern.ios.d.ts +0 -6
  255. package/Canvas2D/CanvasPattern/CanvasPattern.ios.js +0 -10
  256. package/Canvas2D/CanvasPattern/CanvasPattern.ios.js.map +0 -1
  257. package/Canvas2D/CanvasPattern/common.d.ts +0 -7
  258. package/Canvas2D/CanvasPattern/common.js +0 -9
  259. package/Canvas2D/CanvasPattern/common.js.map +0 -1
  260. package/Canvas2D/CanvasRenderingContext2D/common.d.ts +0 -87
  261. package/Canvas2D/CanvasRenderingContext2D/common.js +0 -12
  262. package/Canvas2D/CanvasRenderingContext2D/common.js.map +0 -1
  263. package/Canvas2D/CanvasRenderingContext2D/index.android.d.ts +0 -112
  264. package/Canvas2D/CanvasRenderingContext2D/index.android.js.map +0 -1
  265. package/Canvas2D/CanvasRenderingContext2D/index.ios.d.ts +0 -110
  266. package/Canvas2D/CanvasRenderingContext2D/index.ios.js +0 -897
  267. package/Canvas2D/CanvasRenderingContext2D/index.ios.js.map +0 -1
  268. package/Canvas2D/DOMMatrix/DOMMatrix.android.d.ts +0 -72
  269. package/Canvas2D/DOMMatrix/DOMMatrix.android.js +0 -177
  270. package/Canvas2D/DOMMatrix/DOMMatrix.android.js.map +0 -1
  271. package/Canvas2D/DOMMatrix/DOMMatrix.d.ts +0 -30
  272. package/Canvas2D/DOMMatrix/DOMMatrix.ios.d.ts +0 -48
  273. package/Canvas2D/DOMMatrix/DOMMatrix.ios.js +0 -142
  274. package/Canvas2D/DOMMatrix/DOMMatrix.ios.js.map +0 -1
  275. package/Canvas2D/DOMMatrix/common.d.ts +0 -27
  276. package/Canvas2D/DOMMatrix/common.js +0 -9
  277. package/Canvas2D/DOMMatrix/common.js.map +0 -1
  278. package/Canvas2D/ImageData/ImageData.android.d.ts +0 -9
  279. package/Canvas2D/ImageData/ImageData.android.js +0 -65
  280. package/Canvas2D/ImageData/ImageData.android.js.map +0 -1
  281. package/Canvas2D/ImageData/ImageData.d.ts +0 -11
  282. package/Canvas2D/ImageData/ImageData.ios.d.ts +0 -10
  283. package/Canvas2D/ImageData/ImageData.ios.js +0 -45
  284. package/Canvas2D/ImageData/ImageData.ios.js.map +0 -1
  285. package/Canvas2D/ImageData/common.d.ts +0 -9
  286. package/Canvas2D/ImageData/common.js +0 -13
  287. package/Canvas2D/ImageData/common.js.map +0 -1
  288. package/Canvas2D/Path2D/Path2D.android.d.ts +0 -18
  289. package/Canvas2D/Path2D/Path2D.android.js +0 -83
  290. package/Canvas2D/Path2D/Path2D.android.js.map +0 -1
  291. package/Canvas2D/Path2D/Path2D.d.ts +0 -26
  292. package/Canvas2D/Path2D/Path2D.ios.d.ts +0 -15
  293. package/Canvas2D/Path2D/Path2D.ios.js +0 -55
  294. package/Canvas2D/Path2D/Path2D.ios.js.map +0 -1
  295. package/Canvas2D/Path2D/common.d.ts +0 -17
  296. package/Canvas2D/Path2D/common.js +0 -12
  297. package/Canvas2D/Path2D/common.js.map +0 -1
  298. package/Canvas2D/TextMetrics/TextMetrics.android.d.ts +0 -16
  299. package/Canvas2D/TextMetrics/TextMetrics.android.js +0 -43
  300. package/Canvas2D/TextMetrics/TextMetrics.android.js.map +0 -1
  301. package/Canvas2D/TextMetrics/TextMetrics.d.ts +0 -7
  302. package/Canvas2D/TextMetrics/TextMetrics.ios.d.ts +0 -16
  303. package/Canvas2D/TextMetrics/TextMetrics.ios.js +0 -43
  304. package/Canvas2D/TextMetrics/TextMetrics.ios.js.map +0 -1
  305. package/Canvas2D/TextMetrics/common.d.ts +0 -18
  306. package/Canvas2D/TextMetrics/common.js +0 -13
  307. package/Canvas2D/TextMetrics/common.js.map +0 -1
  308. package/ImageAsset/ImageAsset.android.d.ts +0 -20
  309. package/ImageAsset/ImageAsset.android.js +0 -149
  310. package/ImageAsset/ImageAsset.android.js.map +0 -1
  311. package/ImageAsset/ImageAsset.d.ts +0 -31
  312. package/ImageAsset/ImageAsset.ios.d.ts +0 -22
  313. package/ImageAsset/ImageAsset.ios.js +0 -114
  314. package/ImageAsset/ImageAsset.ios.js.map +0 -1
  315. package/ImageAsset/common.d.ts +0 -13
  316. package/ImageAsset/common.js +0 -21
  317. package/ImageAsset/common.js.map +0 -1
  318. package/ImageBitmap/common.d.ts +0 -8
  319. package/ImageBitmap/common.js +0 -9
  320. package/ImageBitmap/common.js.map +0 -1
  321. package/ImageBitmap/index.android.js.map +0 -1
  322. package/ImageBitmap/index.ios.d.ts +0 -12
  323. package/ImageBitmap/index.ios.js +0 -283
  324. package/ImageBitmap/index.ios.js.map +0 -1
  325. package/TextDecoder/TextDecoder.android.d.ts +0 -8
  326. package/TextDecoder/TextDecoder.android.js +0 -52
  327. package/TextDecoder/TextDecoder.android.js.map +0 -1
  328. package/TextDecoder/TextDecoder.d.ts +0 -10
  329. package/TextDecoder/TextDecoder.ios.d.ts +0 -6
  330. package/TextDecoder/TextDecoder.ios.js +0 -37
  331. package/TextDecoder/TextDecoder.ios.js.map +0 -1
  332. package/TextDecoder/common.d.ts +0 -8
  333. package/TextDecoder/common.js +0 -13
  334. package/TextDecoder/common.js.map +0 -1
  335. package/TextEncoder/TextEncoder.android.d.ts +0 -8
  336. package/TextEncoder/TextEncoder.android.js +0 -50
  337. package/TextEncoder/TextEncoder.android.js.map +0 -1
  338. package/TextEncoder/TextEncoder.d.ts +0 -10
  339. package/TextEncoder/TextEncoder.ios.d.ts +0 -6
  340. package/TextEncoder/TextEncoder.ios.js +0 -14
  341. package/TextEncoder/TextEncoder.ios.js.map +0 -1
  342. package/TextEncoder/common.d.ts +0 -7
  343. package/TextEncoder/common.js +0 -9
  344. package/TextEncoder/common.js.map +0 -1
  345. package/WebGL/WebGLExtensions/index.android.d.ts +0 -209
  346. package/WebGL/WebGLExtensions/index.android.js.map +0 -1
  347. package/WebGL/WebGLExtensions/index.ios.d.ts +0 -192
  348. package/WebGL/WebGLExtensions/index.ios.js +0 -250
  349. package/WebGL/WebGLExtensions/index.ios.js.map +0 -1
  350. package/WebGL/WebGLRenderingContext/index.android.d.ts +0 -165
  351. package/WebGL/WebGLRenderingContext/index.android.js.map +0 -1
  352. package/WebGL/WebGLRenderingContext/index.ios.d.ts +0 -163
  353. package/WebGL/WebGLRenderingContext/index.ios.js +0 -1168
  354. package/WebGL/WebGLRenderingContext/index.ios.js.map +0 -1
  355. package/WebGL2/WebGL2RenderingContext/index.android.d.ts +0 -103
  356. package/WebGL2/WebGL2RenderingContext/index.android.js.map +0 -1
  357. package/WebGL2/WebGL2RenderingContext/index.ios.d.ts +0 -102
  358. package/WebGL2/WebGL2RenderingContext/index.ios.js +0 -618
  359. package/WebGL2/WebGL2RenderingContext/index.ios.js.map +0 -1
  360. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/Utils.h +0 -26
  361. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64.swiftsourceinfo +0 -0
  362. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64.swiftdoc +0 -0
  363. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64.swiftinterface +0 -3264
  364. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/Utils.h +0 -26
  365. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64.swiftsourceinfo +0 -0
  366. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64.swiftsourceinfo +0 -0
  367. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64.swiftdoc +0 -0
  368. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64.swiftinterface +0 -3264
  369. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64.swiftdoc +0 -0
  370. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64.swiftinterface +0 -3264
@@ -0,0 +1,29 @@
1
+ //
2
+ // Created by Osei Fortune on 27/03/2022.
3
+ //
4
+
5
+ #pragma once
6
+
7
+ #include "rust/cxx.h"
8
+ #include "canvas-cxx/src/lib.rs.h"
9
+ #import "NativeScript/JSIRuntime.h"
10
+ #include <vector>
11
+
12
+ using namespace facebook;
13
+ using namespace org::nativescript::canvas;
14
+
15
+ class JSI_EXPORT ImageDataImpl : public jsi::HostObject {
16
+ public:
17
+ ImageDataImpl(rust::Box<ImageData> imageData);
18
+
19
+ jsi::Value get(jsi::Runtime &, const jsi::PropNameID &name) override;
20
+
21
+ std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime &rt) override;
22
+
23
+ ImageData &GetImageData() {
24
+ return *this->imageData_;
25
+ }
26
+
27
+ private:
28
+ rust::Box<ImageData> imageData_;
29
+ };
@@ -0,0 +1,68 @@
1
+ //
2
+ // Created by Osei Fortune on 27/03/2022.
3
+ //
4
+
5
+ #include "ImageDataImpl.h"
6
+
7
+
8
+ struct ImageDataBuffer : jsi::MutableBuffer {
9
+ public:
10
+ explicit ImageDataBuffer(rust::Box<ImageData> imageData) : imageData_(std::move(imageData)) {
11
+ auto slice = canvas_native_image_data_get_data(*this->imageData_);
12
+ this->buf_ = slice.data();
13
+ this->size_ = slice.size();
14
+ }
15
+
16
+ size_t size() const override {
17
+ return this->size_;
18
+ }
19
+
20
+ uint8_t *data() override {
21
+ return this->buf_;
22
+ }
23
+
24
+ ~ImageDataBuffer() override {
25
+ this->buf_ = nullptr;
26
+ }
27
+
28
+ private:
29
+ uint8_t *buf_;
30
+ size_t size_;
31
+ rust::Box<ImageData> imageData_;
32
+ };
33
+
34
+ ImageDataImpl::ImageDataImpl(rust::Box<ImageData> imageData) : imageData_(std::move(imageData)) {}
35
+
36
+ std::vector<jsi::PropNameID> ImageDataImpl::getPropertyNames(jsi::Runtime &rt) {
37
+ std::vector<jsi::PropNameID> ret;
38
+ ret.reserve(3);
39
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("width")));
40
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("height")));
41
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("data")));
42
+ return ret;
43
+ }
44
+
45
+ jsi::Value ImageDataImpl::get(jsi::Runtime &runtime, const jsi::PropNameID &name) {
46
+ auto methodName = name.utf8(runtime);
47
+ if (methodName == "width") {
48
+ return {canvas_native_image_data_get_width(this->GetImageData())};
49
+ } else if (methodName == "height") {
50
+ return {canvas_native_image_data_get_height(this->GetImageData())};
51
+ } else if (methodName == "data") {
52
+ auto buf = std::make_shared<ImageDataBuffer>(
53
+ canvas_native_image_data_get_shared_instance(this->GetImageData()));
54
+
55
+ auto ab = jsi::ArrayBuffer(runtime, buf);
56
+
57
+
58
+ auto Uint8ClampedArray = runtime.global()
59
+ .getProperty(runtime,
60
+ "Uint8ClampedArray")
61
+ .asObject(runtime)
62
+ .asFunction(runtime);
63
+
64
+ return Uint8ClampedArray.callAsConstructor(
65
+ runtime, ab);
66
+ }
67
+ return jsi::Value::undefined();
68
+ }
@@ -0,0 +1,29 @@
1
+ //
2
+ // Created by Osei Fortune on 03/04/2022.
3
+ //
4
+
5
+ #pragma once
6
+
7
+ #include "rust/cxx.h"
8
+ #include "canvas-cxx/src/lib.rs.h"
9
+ #import "NativeScript/JSIRuntime.h"
10
+ #include <vector>
11
+
12
+ using namespace facebook;
13
+ using namespace org::nativescript::canvas;
14
+
15
+ class JSI_EXPORT MatrixImpl : public jsi::HostObject {
16
+ public:
17
+ MatrixImpl(rust::Box<Matrix> matrix);
18
+
19
+ jsi::Value get(jsi::Runtime &, const jsi::PropNameID &name) override;
20
+
21
+ void set(jsi::Runtime &, const jsi::PropNameID &name, const jsi::Value &value) override;
22
+
23
+ std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime &rt) override;
24
+
25
+ Matrix &GetMatrix();
26
+
27
+ private:
28
+ rust::Box<Matrix> matrix_;
29
+ };
@@ -0,0 +1,149 @@
1
+ //
2
+ // Created by Osei Fortune on 03/04/2022.
3
+ //
4
+
5
+ #include "MatrixImpl.h"
6
+
7
+
8
+ MatrixImpl::MatrixImpl(rust::Box<Matrix> matrix) : matrix_(std::move(matrix)) {}
9
+
10
+ std::vector<jsi::PropNameID> MatrixImpl::getPropertyNames(jsi::Runtime &rt) {
11
+ std::vector<jsi::PropNameID> ret;
12
+ ret.reserve(22);
13
+
14
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("a")));
15
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("b")));
16
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("c")));
17
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("d")));
18
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("e")));
19
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("f")));
20
+
21
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m11")));
22
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m12")));
23
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m13")));
24
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m14")));
25
+
26
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m21")));
27
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m22")));
28
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m23")));
29
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m24")));
30
+
31
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m31")));
32
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m32")));
33
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m33")));
34
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m34")));
35
+
36
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m41")));
37
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m42")));
38
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m43")));
39
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m44")));
40
+
41
+
42
+ return ret;
43
+ }
44
+
45
+ jsi::Value MatrixImpl::get(jsi::Runtime &runtime, const jsi::PropNameID &name) {
46
+ auto methodName = name.utf8(runtime);
47
+ if (methodName == "a") {
48
+ return {(double) canvas_native_matrix_get_a(this->GetMatrix())};
49
+ } else if (methodName == "b") {
50
+ return {(double) canvas_native_matrix_get_b(this->GetMatrix())};
51
+ } else if (methodName == "c") {
52
+ return {(double) canvas_native_matrix_get_c(this->GetMatrix())};
53
+ } else if (methodName == "d") {
54
+ return {(double) canvas_native_matrix_get_d(this->GetMatrix())};
55
+ } else if (methodName == "e") {
56
+ return {(double) canvas_native_matrix_get_e(this->GetMatrix())};
57
+ } else if (methodName == "f") {
58
+ return {(double) canvas_native_matrix_get_f(this->GetMatrix())};
59
+ } else if (methodName == "m11") {
60
+ return {(double) canvas_native_matrix_get_m11(this->GetMatrix())};
61
+ } else if (methodName == "m12") {
62
+ return {(double) canvas_native_matrix_get_m12(this->GetMatrix())};
63
+ } else if (methodName == "m13") {
64
+ return {(double) canvas_native_matrix_get_m13(this->GetMatrix())};
65
+ } else if (methodName == "m14") {
66
+ return {(double) canvas_native_matrix_get_m14(this->GetMatrix())};
67
+ } else if (methodName == "m21") {
68
+ return {(double) canvas_native_matrix_get_m21(this->GetMatrix())};
69
+ } else if (methodName == "m22") {
70
+ return {(double) canvas_native_matrix_get_m22(this->GetMatrix())};
71
+ } else if (methodName == "m23") {
72
+ return {(double) canvas_native_matrix_get_m23(this->GetMatrix())};
73
+ } else if (methodName == "m24") {
74
+ return {(double) canvas_native_matrix_get_m24(this->GetMatrix())};
75
+ } else if (methodName == "m31") {
76
+ return {(double) canvas_native_matrix_get_m31(this->GetMatrix())};
77
+ } else if (methodName == "m32") {
78
+ return {(double) canvas_native_matrix_get_m32(this->GetMatrix())};
79
+ } else if (methodName == "m33") {
80
+ return {(double) canvas_native_matrix_get_m33(this->GetMatrix())};
81
+ } else if (methodName == "m34") {
82
+ return {(double) canvas_native_matrix_get_m34(this->GetMatrix())};
83
+ } else if (methodName == "m41") {
84
+ return {(double) canvas_native_matrix_get_m41(this->GetMatrix())};
85
+ } else if (methodName == "m42") {
86
+ return {(double) canvas_native_matrix_get_m42(this->GetMatrix())};
87
+ } else if (methodName == "m43") {
88
+ return {(double) canvas_native_matrix_get_m43(this->GetMatrix())};
89
+ } else if (methodName == "m44") {
90
+ return {(double) canvas_native_matrix_get_m44(this->GetMatrix())};
91
+ }
92
+
93
+ return jsi::Value::undefined();
94
+ }
95
+
96
+ void MatrixImpl::set(jsi::Runtime &runtime, const jsi::PropNameID &name, const jsi::Value &value) {
97
+ auto methodName = name.utf8(runtime);
98
+ if (!value.isNumber()) { return; }
99
+ auto val = (float) value.asNumber();
100
+ if (methodName == "a") {
101
+ canvas_native_matrix_set_a(this->GetMatrix(), val);
102
+ } else if (methodName == "b") {
103
+ canvas_native_matrix_set_b(this->GetMatrix(), val);
104
+ } else if (methodName == "c") {
105
+ canvas_native_matrix_set_c(this->GetMatrix(), val);
106
+ } else if (methodName == "d") {
107
+ canvas_native_matrix_set_d(this->GetMatrix(), val);
108
+ } else if (methodName == "e") {
109
+ canvas_native_matrix_set_e(this->GetMatrix(), val);
110
+ } else if (methodName == "f") {
111
+ canvas_native_matrix_set_f(this->GetMatrix(), val);
112
+ } else if (methodName == "m11") {
113
+ canvas_native_matrix_set_m11(this->GetMatrix(), val);
114
+ } else if (methodName == "m12") {
115
+ canvas_native_matrix_set_m12(this->GetMatrix(), val);
116
+ } else if (methodName == "m13") {
117
+ canvas_native_matrix_set_m13(this->GetMatrix(), val);
118
+ } else if (methodName == "m14") {
119
+ canvas_native_matrix_set_m14(this->GetMatrix(), val);
120
+ } else if (methodName == "m21") {
121
+ canvas_native_matrix_set_m21(this->GetMatrix(), val);
122
+ } else if (methodName == "m22") {
123
+ canvas_native_matrix_set_m22(this->GetMatrix(), val);
124
+ } else if (methodName == "m23") {
125
+ canvas_native_matrix_set_m23(this->GetMatrix(), val);
126
+ } else if (methodName == "m24") {
127
+ canvas_native_matrix_set_m24(this->GetMatrix(), val);
128
+ } else if (methodName == "m31") {
129
+ canvas_native_matrix_set_m31(this->GetMatrix(), val);
130
+ } else if (methodName == "m32") {
131
+ canvas_native_matrix_set_m32(this->GetMatrix(), val);
132
+ } else if (methodName == "m33") {
133
+ canvas_native_matrix_set_m33(this->GetMatrix(), val);
134
+ } else if (methodName == "m34") {
135
+ canvas_native_matrix_set_m34(this->GetMatrix(), val);
136
+ } else if (methodName == "m41") {
137
+ canvas_native_matrix_set_m41(this->GetMatrix(), val);
138
+ } else if (methodName == "m42") {
139
+ canvas_native_matrix_set_m42(this->GetMatrix(), val);
140
+ } else if (methodName == "m43") {
141
+ canvas_native_matrix_set_m43(this->GetMatrix(), val);
142
+ } else if (methodName == "m44") {
143
+ canvas_native_matrix_set_m44(this->GetMatrix(), val);
144
+ }
145
+ }
146
+
147
+ Matrix &MatrixImpl::GetMatrix() {
148
+ return *this->matrix_;
149
+ }
@@ -0,0 +1,27 @@
1
+ //
2
+ // Created by Osei Fortune on 28/03/2022.
3
+ //
4
+
5
+ #pragma once
6
+ #include "rust/cxx.h"
7
+ #include "canvas-cxx/src/lib.rs.h"
8
+ #import "NativeScript/JSIRuntime.h"
9
+ #include "Helpers.h"
10
+ #include <vector>
11
+
12
+ using namespace facebook;
13
+ using namespace org::nativescript::canvas;
14
+
15
+ class JSI_EXPORT Path2D : public jsi::HostObject {
16
+ public:
17
+ Path2D(rust::Box<Path> path);
18
+
19
+ jsi::Value get(jsi::Runtime &, const jsi::PropNameID &name) override;
20
+
21
+ std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime &rt) override;
22
+
23
+ Path &GetPath();
24
+
25
+ private:
26
+ rust::Box<Path> path_;
27
+ };
@@ -0,0 +1,335 @@
1
+ //
2
+ // Created by Osei Fortune on 28/03/2022.
3
+ //
4
+
5
+ #include "Path2D.h"
6
+
7
+
8
+ Path2D::Path2D(rust::Box<Path> path)
9
+ : path_(std::move(path)) {}
10
+
11
+ std::vector<jsi::PropNameID> Path2D::getPropertyNames(jsi::Runtime &rt) {
12
+ std::vector<jsi::PropNameID> ret;
13
+ ret.reserve(11);
14
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("addPath")));
15
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("arc")));
16
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("arcTo")));
17
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("bezierCurveTo")));
18
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("closePath")));
19
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("ellipse")));
20
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("lineTo")));
21
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("moveTo")));
22
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("quadraticCurveTo")));
23
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("rect")));
24
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("roundRect")));
25
+ ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("__toSVG")));
26
+ return ret;
27
+ }
28
+
29
+ jsi::Value Path2D::get(jsi::Runtime &runtime, const jsi::PropNameID &name) {
30
+ auto methodName = name.utf8(runtime);
31
+ if (methodName == "addPath") {
32
+ return jsi::Function::createFromHostFunction(runtime,
33
+ jsi::PropNameID::forAscii(runtime, methodName),
34
+ 1,
35
+ [this](jsi::Runtime &runtime,
36
+ const jsi::Value &thisValue,
37
+ const jsi::Value *arguments,
38
+ size_t count) -> jsi::Value {
39
+ auto object = getHostObject<Path2D>(
40
+ runtime, arguments[0]);
41
+ if (object != nullptr) {
42
+ canvas_native_path_add_path(
43
+ this->GetPath(),
44
+ object->GetPath());
45
+ }
46
+ return jsi::Value::undefined();
47
+ }
48
+ );
49
+ } else if (methodName == "arc") {
50
+ return jsi::Function::createFromHostFunction(runtime,
51
+ jsi::PropNameID::forAscii(runtime, methodName),
52
+ 6,
53
+ [this](jsi::Runtime &runtime,
54
+ const jsi::Value &thisValue,
55
+ const jsi::Value *arguments,
56
+ size_t count) -> jsi::Value {
57
+
58
+
59
+ auto anti_clockwise = false;
60
+ if (count == 6) {
61
+ anti_clockwise = arguments[5].asBool();
62
+ }
63
+
64
+ canvas_native_path_arc(
65
+ this->GetPath(),
66
+ static_cast<float>(arguments[0].asNumber()),
67
+ static_cast<float>(arguments[1].asNumber()),
68
+ static_cast<float>(arguments[2].asNumber()),
69
+ static_cast<float>(arguments[3].asNumber()),
70
+ static_cast<float>(arguments[4].asNumber()),
71
+ anti_clockwise
72
+ );
73
+
74
+ return jsi::Value::undefined();
75
+ }
76
+ );
77
+
78
+ } else if (methodName == "arcTo") {
79
+ return jsi::Function::createFromHostFunction(runtime,
80
+ jsi::PropNameID::forAscii(runtime, methodName),
81
+ 5,
82
+ [this](jsi::Runtime &runtime,
83
+ const jsi::Value &thisValue,
84
+ const jsi::Value *arguments,
85
+ size_t count) -> jsi::Value {
86
+
87
+
88
+ canvas_native_path_arc_to(
89
+ this->GetPath(),
90
+ static_cast<float>(arguments[0].asNumber()),
91
+ static_cast<float>(arguments[1].asNumber()),
92
+ static_cast<float>(arguments[2].asNumber()),
93
+ static_cast<float>(arguments[3].asNumber()),
94
+ static_cast<float>(arguments[4].asNumber())
95
+ );
96
+
97
+ return jsi::Value::undefined();
98
+ }
99
+ );
100
+
101
+ } else if (methodName == "bezierCurveTo") {
102
+ return jsi::Function::createFromHostFunction(runtime,
103
+ jsi::PropNameID::forAscii(runtime, methodName),
104
+ 6,
105
+ [this](jsi::Runtime &runtime,
106
+ const jsi::Value &thisValue,
107
+ const jsi::Value *arguments,
108
+ size_t count) -> jsi::Value {
109
+
110
+
111
+ canvas_native_path_bezier_curve_to(
112
+ this->GetPath(),
113
+ static_cast<float>(arguments[0].asNumber()),
114
+ static_cast<float>(arguments[1].asNumber()),
115
+ static_cast<float>(arguments[2].asNumber()),
116
+ static_cast<float>(arguments[3].asNumber()),
117
+ static_cast<float>(arguments[4].asNumber()),
118
+ static_cast<float>(arguments[5].asNumber())
119
+ );
120
+
121
+ return jsi::Value::undefined();
122
+ }
123
+ );
124
+
125
+ } else if (methodName == "closePath") {
126
+ return jsi::Function::createFromHostFunction(runtime,
127
+ jsi::PropNameID::forAscii(runtime, methodName),
128
+ 0,
129
+ [this](jsi::Runtime &runtime,
130
+ const jsi::Value &thisValue,
131
+ const jsi::Value *arguments,
132
+ size_t count) -> jsi::Value {
133
+
134
+
135
+ canvas_native_path_close_path(
136
+ this->GetPath());
137
+
138
+ return jsi::Value::undefined();
139
+ }
140
+ );
141
+
142
+ } else if (methodName == "ellipse") {
143
+ return jsi::Function::createFromHostFunction(runtime,
144
+ jsi::PropNameID::forAscii(runtime, methodName),
145
+ 7,
146
+ [this](jsi::Runtime &runtime,
147
+ const jsi::Value &thisValue,
148
+ const jsi::Value *arguments,
149
+ size_t count) -> jsi::Value {
150
+
151
+
152
+ auto anti_clockwise = false;
153
+ if (count > 7) {
154
+ anti_clockwise = arguments[7].asBool();
155
+ }
156
+ canvas_native_path_ellipse(
157
+ this->GetPath(),
158
+ static_cast<float>(arguments[0].asNumber()),
159
+ static_cast<float>(arguments[1].asNumber()),
160
+ static_cast<float>(arguments[2].asNumber()),
161
+ static_cast<float>(arguments[3].asNumber()),
162
+ static_cast<float>(arguments[4].asNumber()),
163
+ static_cast<float>(arguments[5].asNumber()),
164
+ static_cast<float>(arguments[6].asNumber()),
165
+ anti_clockwise
166
+ );
167
+
168
+ return jsi::Value::undefined();
169
+ }
170
+ );
171
+
172
+ } else if (methodName == "lineTo") {
173
+ return jsi::Function::createFromHostFunction(runtime,
174
+ jsi::PropNameID::forAscii(runtime, methodName),
175
+ 2,
176
+ [this](jsi::Runtime &runtime,
177
+ const jsi::Value &thisValue,
178
+ const jsi::Value *arguments,
179
+ size_t count) -> jsi::Value {
180
+
181
+
182
+ canvas_native_path_line_to(this->GetPath(),
183
+ static_cast<float>(arguments[0].asNumber()),
184
+ static_cast<float>(arguments[1].asNumber()));
185
+
186
+ return jsi::Value::undefined();
187
+ }
188
+ );
189
+
190
+ } else if (methodName == "moveTo") {
191
+ return jsi::Function::createFromHostFunction(runtime,
192
+ jsi::PropNameID::forAscii(runtime, methodName),
193
+ 2,
194
+ [this](jsi::Runtime &runtime,
195
+ const jsi::Value &thisValue,
196
+ const jsi::Value *arguments,
197
+ size_t count) -> jsi::Value {
198
+
199
+
200
+ canvas_native_path_move_to(this->GetPath(),
201
+ static_cast<float>(arguments[0].asNumber()),
202
+ static_cast<float>(arguments[1].asNumber()));
203
+
204
+ return jsi::Value::undefined();
205
+ }
206
+ );
207
+
208
+ } else if (methodName == "quadraticCurveTo") {
209
+ return jsi::Function::createFromHostFunction(runtime,
210
+ jsi::PropNameID::forAscii(runtime, methodName),
211
+ 4,
212
+ [this](jsi::Runtime &runtime,
213
+ const jsi::Value &thisValue,
214
+ const jsi::Value *arguments,
215
+ size_t count) -> jsi::Value {
216
+
217
+
218
+ canvas_native_path_quadratic_curve_to(
219
+ this->GetPath(),
220
+ static_cast<float>(arguments[0].asNumber()),
221
+ static_cast<float>(arguments[1].asNumber()),
222
+ static_cast<float>(arguments[2].asNumber()),
223
+ static_cast<float>(arguments[3].asNumber())
224
+ );
225
+
226
+ return jsi::Value::undefined();
227
+ }
228
+ );
229
+
230
+ } else if (methodName == "rect") {
231
+ return jsi::Function::createFromHostFunction(runtime,
232
+ jsi::PropNameID::forAscii(runtime, methodName),
233
+ 4,
234
+ [this](jsi::Runtime &runtime,
235
+ const jsi::Value &thisValue,
236
+ const jsi::Value *arguments,
237
+ size_t count) -> jsi::Value {
238
+
239
+
240
+ canvas_native_path_rect(
241
+ this->GetPath(),
242
+ static_cast<float>(arguments[0].asNumber()),
243
+ static_cast<float>(arguments[1].asNumber()),
244
+ static_cast<float>(arguments[2].asNumber()),
245
+ static_cast<float>(arguments[3].asNumber())
246
+ );
247
+
248
+ return jsi::Value::undefined();
249
+ }
250
+ );
251
+
252
+ } else if (methodName == "roundRect") {
253
+ return jsi::Function::createFromHostFunction(runtime,
254
+ jsi::PropNameID::forAscii(runtime, methodName),
255
+ 4,
256
+ [this](jsi::Runtime &runtime,
257
+ const jsi::Value &thisValue,
258
+ const jsi::Value *arguments,
259
+ size_t count) -> jsi::Value {
260
+
261
+ if (count == 5) {
262
+ auto x = static_cast<float>(arguments[0].asNumber());
263
+ auto y = static_cast<float>(arguments[1].asNumber());
264
+ auto width = static_cast<float>(arguments[2].asNumber());
265
+ auto height = static_cast<float>(arguments[3].asNumber());
266
+ if (arguments[4].isObject()) {
267
+ auto radii = arguments[4].asObject(
268
+ runtime);
269
+ if (radii.isArray(runtime)) {
270
+ auto array = radii.getArray(
271
+ runtime);
272
+ auto size = array.size(
273
+ runtime);
274
+ if (size > 1) {
275
+ rust::Vec<float> store;
276
+ store.reserve(size);
277
+ for (int i = 0;
278
+ i < size; i++) {
279
+ store[i] = (float) array.getValueAtIndex(
280
+ runtime,
281
+ i).asNumber();
282
+ }
283
+
284
+ rust::Slice<const float> buf(
285
+ store.data(),
286
+ store.size());
287
+ canvas_native_path_round_rect(
288
+ this->GetPath(),
289
+ x, y,
290
+ width,
291
+ height, buf);
292
+
293
+ }
294
+ }
295
+ } else {
296
+ auto radii = (float) arguments[4].asNumber();
297
+ canvas_native_path_round_rect_tl_tr_br_bl(
298
+ this->GetPath(), x, y,
299
+ width,
300
+ height, radii, radii,
301
+ radii, radii);
302
+
303
+ }
304
+ }
305
+
306
+ return jsi::Value::undefined();
307
+
308
+ }
309
+ );
310
+ } else if (methodName == "__toSVG") {
311
+ return jsi::Function::createFromHostFunction(runtime,
312
+ jsi::PropNameID::forAscii(runtime, methodName),
313
+ 0,
314
+ [this](jsi::Runtime &runtime,
315
+ const jsi::Value &thisValue,
316
+ const jsi::Value *arguments,
317
+ size_t count) -> jsi::Value {
318
+
319
+
320
+ auto d = canvas_native_path_to_string(
321
+ this->GetPath());
322
+ return jsi::String::createFromAscii(
323
+ runtime, d.data(), d.size());
324
+ }
325
+ );
326
+
327
+ }
328
+
329
+ return jsi::Value::undefined();
330
+ }
331
+
332
+ Path &Path2D::GetPath() {
333
+ return *this->path_;
334
+ }
335
+
@@ -0,0 +1,29 @@
1
+ //
2
+ // Created by Osei Fortune on 18/04/2022.
3
+ //
4
+
5
+ #pragma once
6
+
7
+ #include "rust/cxx.h"
8
+ #include "canvas-cxx/src/lib.rs.h"
9
+ #import "NativeScript/JSIRuntime.h"
10
+ #include <vector>
11
+
12
+ using namespace facebook;
13
+ using namespace org::nativescript::canvas;
14
+
15
+ class JSI_EXPORT TextMetricsImpl : public jsi::HostObject {
16
+ public:
17
+ TextMetricsImpl(rust::Box<TextMetrics> metrics);
18
+
19
+ jsi::Value get(jsi::Runtime &, const jsi::PropNameID &name) override;
20
+
21
+ std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime &rt) override;
22
+
23
+ TextMetrics &GetTextMetrics();
24
+
25
+
26
+ private:
27
+ rust::Box<TextMetrics> metrics_;
28
+ };
29
+