@nativescript/canvas 2.0.0-alpha.9 → 2.0.0-beta.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 (542) hide show
  1. package/Canvas/common.d.ts +213 -25
  2. package/Canvas/common.js +705 -452
  3. package/Canvas/common.js.map +1 -1
  4. package/Canvas/index.android.d.ts +10 -1
  5. package/Canvas/index.android.js +155 -52
  6. package/Canvas/index.android.js.map +1 -1
  7. package/Canvas/index.d.ts +8 -0
  8. package/Canvas/index.ios.d.ts +7 -4
  9. package/Canvas/index.ios.js +159 -106
  10. package/Canvas/index.ios.js.map +1 -1
  11. package/Canvas2D/CanvasGradient/index.d.ts +1 -3
  12. package/Canvas2D/CanvasGradient/index.js +1 -10
  13. package/Canvas2D/CanvasGradient/index.js.map +1 -1
  14. package/Canvas2D/CanvasPattern/index.d.ts +1 -3
  15. package/Canvas2D/CanvasPattern/index.js +1 -10
  16. package/Canvas2D/CanvasPattern/index.js.map +1 -1
  17. package/Canvas2D/CanvasRenderingContext2D/index.d.ts +9 -5
  18. package/Canvas2D/CanvasRenderingContext2D/index.js +174 -245
  19. package/Canvas2D/CanvasRenderingContext2D/index.js.map +1 -1
  20. package/Canvas2D/DOMMatrix/index.js +3 -3
  21. package/Canvas2D/DOMMatrix/index.js.map +1 -1
  22. package/Canvas2D/ImageData/index.js +6 -6
  23. package/Canvas2D/ImageData/index.js.map +1 -1
  24. package/Canvas2D/Path2D/index.d.ts +0 -2
  25. package/Canvas2D/Path2D/index.js +32 -42
  26. package/Canvas2D/Path2D/index.js.map +1 -1
  27. package/Dom/Paint.js +2 -3
  28. package/Dom/Paint.js.map +1 -1
  29. package/Dom/shapes/Circle.js +1 -2
  30. package/Dom/shapes/Circle.js.map +1 -1
  31. package/Dom/shapes/Points.js +1 -2
  32. package/Dom/shapes/Points.js.map +1 -1
  33. package/ImageAsset/index.d.ts +2 -2
  34. package/ImageAsset/index.js +33 -37
  35. package/ImageAsset/index.js.map +1 -1
  36. package/ImageBitmap/index.d.ts +0 -2
  37. package/ImageBitmap/index.js +47 -33
  38. package/ImageBitmap/index.js.map +1 -1
  39. package/LICENSE +201 -0
  40. package/SVG/SVG.js +1 -1
  41. package/SVG/SVG.js.map +1 -1
  42. package/TextDecoder/index.d.ts +0 -2
  43. package/TextDecoder/index.js +3 -12
  44. package/TextDecoder/index.js.map +1 -1
  45. package/TextEncoder/index.d.ts +0 -2
  46. package/TextEncoder/index.js +4 -13
  47. package/TextEncoder/index.js.map +1 -1
  48. package/WebGL/WebGLExtensions/index.d.ts +4 -12
  49. package/WebGL/WebGLExtensions/index.js +27 -77
  50. package/WebGL/WebGLExtensions/index.js.map +1 -1
  51. package/WebGL/WebGLProgram.d.ts +0 -1
  52. package/WebGL/WebGLProgram.js +0 -3
  53. package/WebGL/WebGLProgram.js.map +1 -1
  54. package/WebGL/WebGLRenderingContext/common.d.ts +1 -3
  55. package/WebGL/WebGLRenderingContext/common.js +3 -13
  56. package/WebGL/WebGLRenderingContext/common.js.map +1 -1
  57. package/WebGL/WebGLRenderingContext/index.d.ts +19 -17
  58. package/WebGL/WebGLRenderingContext/index.js +354 -728
  59. package/WebGL/WebGLRenderingContext/index.js.map +1 -1
  60. package/WebGL2/WebGL2RenderingContext/common.d.ts +2 -2
  61. package/WebGL2/WebGL2RenderingContext/common.js +2 -2
  62. package/WebGL2/WebGL2RenderingContext/common.js.map +1 -1
  63. package/WebGL2/WebGL2RenderingContext/index.d.ts +1 -1
  64. package/WebGL2/WebGL2RenderingContext/index.js +116 -285
  65. package/WebGL2/WebGL2RenderingContext/index.js.map +1 -1
  66. package/angular/esm2020/index.mjs +4 -4
  67. package/angular/fesm2015/nativescript-canvas-angular.mjs +4 -4
  68. package/angular/fesm2020/nativescript-canvas-angular.mjs +4 -4
  69. package/angular/package.json +2 -2
  70. package/index.js.map +1 -1
  71. package/package.json +3 -2
  72. package/platforms/android/canvas-release.aar +0 -0
  73. package/platforms/android/include.gradle +15 -0
  74. package/platforms/ios/CanvasNative.xcframework/Info.plist +5 -5
  75. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative +0 -0
  76. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/CanvasNative-Swift.h +132 -68
  77. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/CanvasNative.h +10 -0
  78. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_ios.h +144 -0
  79. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_native.h +2808 -68
  80. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Info.plist +0 -0
  81. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  82. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json +5847 -2633
  83. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.private.swiftinterface +43 -25
  84. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  85. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftinterface +43 -25
  86. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  87. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative +0 -0
  88. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/CanvasNative-Swift.h +264 -136
  89. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/CanvasNative.h +10 -0
  90. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_ios.h +144 -0
  91. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_native.h +2808 -68
  92. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Info.plist +0 -0
  93. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  94. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  95. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json +5847 -2633
  96. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +43 -25
  97. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  98. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftinterface +43 -25
  99. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json +5847 -2633
  100. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +43 -25
  101. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  102. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +43 -25
  103. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +42 -31
  104. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  105. package/platforms/ios/Podfile +5 -2
  106. package/platforms/ios/build.xcconfig +3 -3
  107. package/platforms/ios/src/CanvasModule.h +0 -2
  108. package/platforms/ios/src/CanvasModule.mm +4 -4
  109. package/platforms/ios/src/NSOperationQueueWrapper.h +11 -0
  110. package/platforms/ios/src/NSOperationQueueWrapper.mm +74 -0
  111. package/platforms/ios/src/cpp/Caches.cpp +35 -0
  112. package/platforms/ios/src/cpp/Caches.h +190 -0
  113. package/platforms/ios/src/cpp/CanvasJSIModule.cpp +1593 -0
  114. package/platforms/ios/src/cpp/CanvasJSIModule.h +16 -34
  115. package/platforms/ios/src/cpp/Common.h +30 -0
  116. package/platforms/ios/src/cpp/ConcurrentMap.h +54 -0
  117. package/platforms/ios/src/cpp/Helpers.h +336 -38
  118. package/platforms/ios/src/cpp/ImageAssetImpl.cpp +802 -0
  119. package/platforms/ios/src/cpp/ImageAssetImpl.h +46 -12
  120. package/platforms/ios/src/cpp/ImageBitmapImpl.cpp +189 -0
  121. package/platforms/ios/src/cpp/ImageBitmapImpl.h +42 -16
  122. package/platforms/ios/src/cpp/JSICallback.h +83 -5
  123. package/platforms/ios/src/cpp/JSIReadFileCallback.h +86 -6
  124. package/platforms/ios/src/cpp/JSIRuntime.cpp +21 -0
  125. package/platforms/ios/src/cpp/JSIRuntime.h +7 -0
  126. package/platforms/ios/src/cpp/ObjectWrapperImpl.h +31 -0
  127. package/platforms/ios/src/cpp/OneByteStringResource.cpp +55 -0
  128. package/platforms/ios/src/cpp/OneByteStringResource.h +36 -0
  129. package/platforms/ios/src/cpp/PerIsolateData.cpp +49 -0
  130. package/platforms/ios/src/cpp/PerIsolateData.h +54 -0
  131. package/platforms/ios/src/cpp/RafImpl.cpp +8 -0
  132. package/platforms/ios/src/cpp/RafImpl.h +11 -8
  133. package/platforms/ios/src/cpp/TextDecoderImpl.cpp +193 -0
  134. package/platforms/ios/src/cpp/TextDecoderImpl.h +23 -13
  135. package/platforms/ios/src/cpp/TextEncoderImpl.cpp +139 -0
  136. package/platforms/ios/src/cpp/TextEncoderImpl.h +21 -12
  137. package/platforms/ios/src/cpp/URLImpl.cpp +464 -0
  138. package/platforms/ios/src/cpp/URLImpl.h +121 -0
  139. package/platforms/ios/src/cpp/canvas2d/CanvasGradient.cpp +71 -0
  140. package/platforms/ios/src/cpp/canvas2d/CanvasGradient.h +29 -13
  141. package/platforms/ios/src/cpp/canvas2d/CanvasPattern.cpp +89 -0
  142. package/platforms/ios/src/cpp/canvas2d/CanvasPattern.h +49 -12
  143. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.cpp +2809 -0
  144. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.h +1331 -21
  145. package/platforms/ios/src/cpp/canvas2d/ImageDataImpl.cpp +207 -0
  146. package/platforms/ios/src/cpp/canvas2d/ImageDataImpl.h +27 -13
  147. package/platforms/ios/src/cpp/canvas2d/MatrixImpl.cpp +807 -0
  148. package/platforms/ios/src/cpp/canvas2d/MatrixImpl.h +173 -13
  149. package/platforms/ios/src/cpp/canvas2d/Path2D.cpp +499 -0
  150. package/platforms/ios/src/cpp/canvas2d/Path2D.h +422 -12
  151. package/platforms/ios/src/cpp/canvas2d/TextMetricsImpl.cpp +253 -0
  152. package/platforms/ios/src/cpp/canvas2d/TextMetricsImpl.h +51 -12
  153. package/platforms/ios/src/cpp/gl.h +57 -7
  154. package/platforms/ios/src/cpp/gl3stub.c +425 -0
  155. package/platforms/ios/src/cpp/gl3stub.h +665 -0
  156. package/platforms/ios/src/cpp/gles3jni.h +37 -0
  157. package/platforms/ios/src/cpp/include/robin_hood.h +2544 -0
  158. package/platforms/ios/src/cpp/webgl/WebGLActiveInfoImpl.cpp +91 -0
  159. package/platforms/ios/src/cpp/webgl/WebGLActiveInfoImpl.h +33 -13
  160. package/platforms/ios/src/cpp/webgl/WebGLBuffer.h +42 -7
  161. package/platforms/ios/src/cpp/webgl/WebGLFramebuffer.h +47 -11
  162. package/platforms/ios/src/cpp/webgl/WebGLProgram.h +41 -6
  163. package/platforms/ios/src/cpp/webgl/WebGLRenderbuffer.h +41 -7
  164. package/platforms/ios/src/cpp/webgl/WebGLRenderingContext.cpp +6845 -0
  165. package/platforms/ios/src/cpp/webgl/WebGLRenderingContext.h +3217 -388
  166. package/platforms/ios/src/cpp/webgl/{WebGLRenderingContextBase.mm → WebGLRenderingContextBase.cpp} +18 -17
  167. package/platforms/ios/src/cpp/webgl/WebGLRenderingContextBase.h +16 -36
  168. package/platforms/ios/src/cpp/webgl/WebGLShader.h +41 -7
  169. package/platforms/ios/src/cpp/webgl/WebGLShaderPrecisionFormatImpl.cpp +50 -0
  170. package/platforms/ios/src/cpp/webgl/WebGLShaderPrecisionFormatImpl.h +67 -12
  171. package/platforms/ios/src/cpp/webgl/WebGLTexture.h +41 -7
  172. package/platforms/ios/src/cpp/webgl/WebGLUniformLocation.h +45 -9
  173. package/platforms/ios/src/cpp/webgl/extensions/ANGLE_instanced_arraysImpl.cpp +136 -0
  174. package/platforms/ios/src/cpp/webgl/extensions/ANGLE_instanced_arraysImpl.h +88 -12
  175. package/platforms/ios/src/cpp/webgl/extensions/EXT_blend_minmaxImpl.cpp +35 -0
  176. package/platforms/ios/src/cpp/webgl/extensions/EXT_blend_minmaxImpl.h +26 -6
  177. package/platforms/ios/src/cpp/webgl/extensions/EXT_color_buffer_half_floatImpl.cpp +41 -0
  178. package/platforms/ios/src/cpp/webgl/extensions/EXT_color_buffer_half_floatImpl.h +26 -6
  179. package/platforms/ios/src/cpp/webgl/extensions/EXT_disjoint_timer_queryImpl.cpp +306 -0
  180. package/platforms/ios/src/cpp/webgl/extensions/EXT_disjoint_timer_queryImpl.h +47 -13
  181. package/platforms/ios/src/cpp/webgl/extensions/EXT_sRGBImpl.h +49 -6
  182. package/platforms/ios/src/cpp/webgl/extensions/EXT_shader_texture_lodImpl.h +37 -15
  183. package/platforms/ios/src/cpp/webgl/extensions/EXT_texture_filter_anisotropicImpl.h +47 -6
  184. package/platforms/ios/src/cpp/webgl/extensions/OES_element_index_uintImpl.h +49 -6
  185. package/platforms/ios/src/cpp/webgl/extensions/OES_fbo_render_mipmap.h +41 -16
  186. package/platforms/ios/src/cpp/webgl/extensions/OES_standard_derivativesImpl.h +44 -6
  187. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_floatImpl.h +39 -16
  188. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_float_linearImpl.h +37 -16
  189. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_half_floatImpl.h +42 -6
  190. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_half_float_linearImpl.h +40 -16
  191. package/platforms/ios/src/cpp/webgl/extensions/OES_vertex_array_objectImpl.cpp +110 -0
  192. package/platforms/ios/src/cpp/webgl/extensions/OES_vertex_array_objectImpl.h +149 -14
  193. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_color_buffer_floatImpl.h +51 -8
  194. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_atcImpl.h +49 -6
  195. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_etc1Impl.h +49 -8
  196. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_etcImpl.h +76 -6
  197. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_pvrtcImpl.h +57 -6
  198. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_s3tcImpl.h +53 -6
  199. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_s3tc_srgbImpl.h +59 -6
  200. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_depth_textureImpl.h +46 -6
  201. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_draw_buffersImpl.cpp +38 -0
  202. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_draw_buffersImpl.h +157 -14
  203. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_lose_contextImpl.cpp +32 -0
  204. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_lose_contextImpl.h +61 -13
  205. package/platforms/ios/src/cpp/webgl2/WebGL2RenderingContext.cpp +4564 -0
  206. package/platforms/ios/src/cpp/webgl2/WebGL2RenderingContext.h +1790 -342
  207. package/platforms/ios/src/cpp/webgl2/WebGLQuery.h +41 -4
  208. package/platforms/ios/src/cpp/webgl2/WebGLSampler.h +42 -3
  209. package/platforms/ios/src/cpp/webgl2/WebGLSyncImpl.h +45 -11
  210. package/platforms/ios/src/cpp/webgl2/WebGLTransformFeedback.h +43 -4
  211. package/platforms/ios/src/cpp/webgl2/WebGLVertexArrayObject.h +44 -4
  212. package/platforms/ios/src/module.modulemap +1 -0
  213. package/{pods → src-native/ios}/NativeScript.podspec +12 -25
  214. package/typings/objc!CanvasNative.d.ts +2038 -0
  215. package/typings/objc!CanvasNative.js +1 -0
  216. package/typings/objc!CanvasNative.js.map +1 -0
  217. package/utils.d.ts +3 -1
  218. package/utils.js +7 -20
  219. package/utils.js.map +1 -1
  220. package/angular/nativescript-canvas-angular.d.ts +0 -5
  221. package/platforms/ios/src/cpp/CanvasJSIModule.mm +0 -1105
  222. package/platforms/ios/src/cpp/ImageAssetImpl.mm +0 -417
  223. package/platforms/ios/src/cpp/ImageBitmapImpl.mm +0 -126
  224. package/platforms/ios/src/cpp/RafImpl.mm +0 -10
  225. package/platforms/ios/src/cpp/TextDecoderImpl.mm +0 -97
  226. package/platforms/ios/src/cpp/TextEncoderImpl.mm +0 -60
  227. package/platforms/ios/src/cpp/VecMutableBuffer.h +0 -46
  228. package/platforms/ios/src/cpp/canvas-cxx/src/lib.rs.cc +0 -6156
  229. package/platforms/ios/src/cpp/canvas-cxx/src/lib.rs.h +0 -2867
  230. package/platforms/ios/src/cpp/canvas2d/CanvasGradient.mm +0 -42
  231. package/platforms/ios/src/cpp/canvas2d/CanvasPattern.mm +0 -49
  232. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.mm +0 -1972
  233. package/platforms/ios/src/cpp/canvas2d/ImageDataImpl.mm +0 -68
  234. package/platforms/ios/src/cpp/canvas2d/MatrixImpl.mm +0 -149
  235. package/platforms/ios/src/cpp/canvas2d/Path2D.mm +0 -335
  236. package/platforms/ios/src/cpp/canvas2d/TextMetricsImpl.mm +0 -68
  237. package/platforms/ios/src/cpp/rust/cxx.cc +0 -793
  238. package/platforms/ios/src/cpp/rust/cxx.h +0 -1111
  239. package/platforms/ios/src/cpp/webgl/WebGLActiveInfoImpl.mm +0 -39
  240. package/platforms/ios/src/cpp/webgl/WebGLRenderingContext.mm +0 -5958
  241. package/platforms/ios/src/cpp/webgl/WebGLShaderPrecisionFormatImpl.mm +0 -40
  242. package/platforms/ios/src/cpp/webgl/extensions/ANGLE_instanced_arraysImpl.mm +0 -108
  243. package/platforms/ios/src/cpp/webgl/extensions/EXT_blend_minmaxImpl.mm +0 -28
  244. package/platforms/ios/src/cpp/webgl/extensions/EXT_color_buffer_half_floatImpl.mm +0 -42
  245. package/platforms/ios/src/cpp/webgl/extensions/EXT_disjoint_timer_queryImpl.mm +0 -295
  246. package/platforms/ios/src/cpp/webgl/extensions/EXT_sRGBImpl.mm +0 -40
  247. package/platforms/ios/src/cpp/webgl/extensions/EXT_texture_filter_anisotropicImpl.mm +0 -37
  248. package/platforms/ios/src/cpp/webgl/extensions/OES_element_index_uintImpl.mm +0 -28
  249. package/platforms/ios/src/cpp/webgl/extensions/OES_standard_derivativesImpl.mm +0 -31
  250. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_half_floatImpl.mm +0 -28
  251. package/platforms/ios/src/cpp/webgl/extensions/OES_vertex_array_objectImpl.mm +0 -127
  252. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_color_buffer_floatImpl.mm +0 -45
  253. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_atcImpl.mm +0 -45
  254. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_etc1Impl.mm +0 -31
  255. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_etcImpl.mm +0 -70
  256. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_pvrtcImpl.mm +0 -47
  257. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_s3tcImpl.mm +0 -46
  258. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_s3tc_srgbImpl.mm +0 -49
  259. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_depth_textureImpl.mm +0 -30
  260. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_draw_buffersImpl.mm +0 -177
  261. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_lose_contextImpl.mm +0 -64
  262. package/platforms/ios/src/cpp/webgl2/WebGL2RenderingContext.mm +0 -4543
  263. package/pods/Headers/jsi/decorator.h +0 -770
  264. package/pods/Headers/jsi/instrumentation.h +0 -117
  265. package/pods/Headers/jsi/jsi-inl.h +0 -338
  266. package/pods/Headers/jsi/jsi.h +0 -1571
  267. package/pods/Headers/jsi/jsilib.h +0 -59
  268. package/pods/Headers/jsi/threadsafe.h +0 -79
  269. package/pods/Headers/v8runtime/HostProxy.h +0 -71
  270. package/pods/Headers/v8runtime/JSIV8ValueConverter.h +0 -74
  271. package/pods/Headers/v8runtime/V8PointerValue.h +0 -44
  272. package/pods/Headers/v8runtime/V8Runtime.h +0 -240
  273. package/pods/Headers/v8runtime/V8RuntimeConfig.h +0 -26
  274. package/pods/Headers/v8runtime/V8RuntimeFactory.h +0 -21
  275. /package/platforms/ios/src/cpp/{OnRafCallback.mm → OnRafCallback.cpp} +0 -0
  276. /package/{pods → src-native/ios}/Headers/include/APIDesign.md +0 -0
  277. /package/{pods → src-native/ios}/Headers/include/DEPS +0 -0
  278. /package/{pods → src-native/ios}/Headers/include/DIR_METADATA +0 -0
  279. /package/{pods → src-native/ios}/Headers/include/OWNERS +0 -0
  280. /package/{pods → src-native/ios}/Headers/include/cppgc/DEPS +0 -0
  281. /package/{pods → src-native/ios}/Headers/include/cppgc/OWNERS +0 -0
  282. /package/{pods → src-native/ios}/Headers/include/cppgc/README.md +0 -0
  283. /package/{pods → src-native/ios}/Headers/include/cppgc/allocation.h +0 -0
  284. /package/{pods → src-native/ios}/Headers/include/cppgc/common.h +0 -0
  285. /package/{pods → src-native/ios}/Headers/include/cppgc/cross-thread-persistent.h +0 -0
  286. /package/{pods → src-native/ios}/Headers/include/cppgc/custom-space.h +0 -0
  287. /package/{pods → src-native/ios}/Headers/include/cppgc/default-platform.h +0 -0
  288. /package/{pods → src-native/ios}/Headers/include/cppgc/ephemeron-pair.h +0 -0
  289. /package/{pods → src-native/ios}/Headers/include/cppgc/explicit-management.h +0 -0
  290. /package/{pods → src-native/ios}/Headers/include/cppgc/garbage-collected.h +0 -0
  291. /package/{pods → src-native/ios}/Headers/include/cppgc/heap-consistency.h +0 -0
  292. /package/{pods → src-native/ios}/Headers/include/cppgc/heap-state.h +0 -0
  293. /package/{pods → src-native/ios}/Headers/include/cppgc/heap-statistics.h +0 -0
  294. /package/{pods → src-native/ios}/Headers/include/cppgc/heap.h +0 -0
  295. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/api-constants.h +0 -0
  296. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/atomic-entry-flag.h +0 -0
  297. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/caged-heap-local-data.h +0 -0
  298. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/compiler-specific.h +0 -0
  299. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/finalizer-trait.h +0 -0
  300. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/gc-info.h +0 -0
  301. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/logging.h +0 -0
  302. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/name-trait.h +0 -0
  303. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/persistent-node.h +0 -0
  304. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/pointer-policies.h +0 -0
  305. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/write-barrier.h +0 -0
  306. /package/{pods → src-native/ios}/Headers/include/cppgc/liveness-broker.h +0 -0
  307. /package/{pods → src-native/ios}/Headers/include/cppgc/macros.h +0 -0
  308. /package/{pods → src-native/ios}/Headers/include/cppgc/member.h +0 -0
  309. /package/{pods → src-native/ios}/Headers/include/cppgc/name-provider.h +0 -0
  310. /package/{pods → src-native/ios}/Headers/include/cppgc/object-size-trait.h +0 -0
  311. /package/{pods → src-native/ios}/Headers/include/cppgc/persistent.h +0 -0
  312. /package/{pods → src-native/ios}/Headers/include/cppgc/platform.h +0 -0
  313. /package/{pods → src-native/ios}/Headers/include/cppgc/prefinalizer.h +0 -0
  314. /package/{pods → src-native/ios}/Headers/include/cppgc/process-heap-statistics.h +0 -0
  315. /package/{pods → src-native/ios}/Headers/include/cppgc/sentinel-pointer.h +0 -0
  316. /package/{pods → src-native/ios}/Headers/include/cppgc/source-location.h +0 -0
  317. /package/{pods → src-native/ios}/Headers/include/cppgc/testing.h +0 -0
  318. /package/{pods → src-native/ios}/Headers/include/cppgc/trace-trait.h +0 -0
  319. /package/{pods → src-native/ios}/Headers/include/cppgc/type-traits.h +0 -0
  320. /package/{pods → src-native/ios}/Headers/include/cppgc/visitor.h +0 -0
  321. /package/{pods → src-native/ios}/Headers/include/js_protocol-1.2.json +0 -0
  322. /package/{pods → src-native/ios}/Headers/include/js_protocol-1.3.json +0 -0
  323. /package/{pods → src-native/ios}/Headers/include/js_protocol.pdl +0 -0
  324. /package/{pods → src-native/ios}/Headers/include/libffi/arm64/ffi.h +0 -0
  325. /package/{pods → src-native/ios}/Headers/include/libffi/arm64/ffitarget.h +0 -0
  326. /package/{pods → src-native/ios}/Headers/include/libffi/x86_64/ffi.h +0 -0
  327. /package/{pods → src-native/ios}/Headers/include/libffi/x86_64/ffitarget.h +0 -0
  328. /package/{pods → src-native/ios}/Headers/include/libffi.h +0 -0
  329. /package/{pods → src-native/ios}/Headers/include/libplatform/DEPS +0 -0
  330. /package/{pods → src-native/ios}/Headers/include/libplatform/libplatform-export.h +0 -0
  331. /package/{pods → src-native/ios}/Headers/include/libplatform/libplatform.h +0 -0
  332. /package/{pods → src-native/ios}/Headers/include/libplatform/v8-tracing.h +0 -0
  333. /package/{pods → src-native/ios}/Headers/include/v8-array-buffer.h +0 -0
  334. /package/{pods → src-native/ios}/Headers/include/v8-callbacks.h +0 -0
  335. /package/{pods → src-native/ios}/Headers/include/v8-container.h +0 -0
  336. /package/{pods → src-native/ios}/Headers/include/v8-context.h +0 -0
  337. /package/{pods → src-native/ios}/Headers/include/v8-cppgc.h +0 -0
  338. /package/{pods → src-native/ios}/Headers/include/v8-data.h +0 -0
  339. /package/{pods → src-native/ios}/Headers/include/v8-date.h +0 -0
  340. /package/{pods → src-native/ios}/Headers/include/v8-debug.h +0 -0
  341. /package/{pods → src-native/ios}/Headers/include/v8-embedder-heap.h +0 -0
  342. /package/{pods → src-native/ios}/Headers/include/v8-embedder-state-scope.h +0 -0
  343. /package/{pods → src-native/ios}/Headers/include/v8-exception.h +0 -0
  344. /package/{pods → src-native/ios}/Headers/include/v8-extension.h +0 -0
  345. /package/{pods → src-native/ios}/Headers/include/v8-external.h +0 -0
  346. /package/{pods → src-native/ios}/Headers/include/v8-fast-api-calls.h +0 -0
  347. /package/{pods → src-native/ios}/Headers/include/v8-forward.h +0 -0
  348. /package/{pods → src-native/ios}/Headers/include/v8-function-callback.h +0 -0
  349. /package/{pods → src-native/ios}/Headers/include/v8-function.h +0 -0
  350. /package/{pods → src-native/ios}/Headers/include/v8-initialization.h +0 -0
  351. /package/{pods → src-native/ios}/Headers/include/v8-inspector-protocol.h +0 -0
  352. /package/{pods → src-native/ios}/Headers/include/v8-inspector.h +0 -0
  353. /package/{pods → src-native/ios}/Headers/include/v8-internal.h +0 -0
  354. /package/{pods → src-native/ios}/Headers/include/v8-isolate.h +0 -0
  355. /package/{pods → src-native/ios}/Headers/include/v8-json.h +0 -0
  356. /package/{pods → src-native/ios}/Headers/include/v8-local-handle.h +0 -0
  357. /package/{pods → src-native/ios}/Headers/include/v8-locker.h +0 -0
  358. /package/{pods → src-native/ios}/Headers/include/v8-maybe.h +0 -0
  359. /package/{pods → src-native/ios}/Headers/include/v8-memory-span.h +0 -0
  360. /package/{pods → src-native/ios}/Headers/include/v8-message.h +0 -0
  361. /package/{pods → src-native/ios}/Headers/include/v8-metrics.h +0 -0
  362. /package/{pods → src-native/ios}/Headers/include/v8-microtask-queue.h +0 -0
  363. /package/{pods → src-native/ios}/Headers/include/v8-microtask.h +0 -0
  364. /package/{pods → src-native/ios}/Headers/include/v8-object.h +0 -0
  365. /package/{pods → src-native/ios}/Headers/include/v8-persistent-handle.h +0 -0
  366. /package/{pods → src-native/ios}/Headers/include/v8-platform.h +0 -0
  367. /package/{pods → src-native/ios}/Headers/include/v8-primitive-object.h +0 -0
  368. /package/{pods → src-native/ios}/Headers/include/v8-primitive.h +0 -0
  369. /package/{pods → src-native/ios}/Headers/include/v8-profiler.h +0 -0
  370. /package/{pods → src-native/ios}/Headers/include/v8-promise.h +0 -0
  371. /package/{pods → src-native/ios}/Headers/include/v8-proxy.h +0 -0
  372. /package/{pods → src-native/ios}/Headers/include/v8-regexp.h +0 -0
  373. /package/{pods → src-native/ios}/Headers/include/v8-script.h +0 -0
  374. /package/{pods → src-native/ios}/Headers/include/v8-snapshot.h +0 -0
  375. /package/{pods → src-native/ios}/Headers/include/v8-statistics.h +0 -0
  376. /package/{pods → src-native/ios}/Headers/include/v8-template.h +0 -0
  377. /package/{pods → src-native/ios}/Headers/include/v8-traced-handle.h +0 -0
  378. /package/{pods → src-native/ios}/Headers/include/v8-typed-array.h +0 -0
  379. /package/{pods → src-native/ios}/Headers/include/v8-unwinder-state.h +0 -0
  380. /package/{pods → src-native/ios}/Headers/include/v8-unwinder.h +0 -0
  381. /package/{pods → src-native/ios}/Headers/include/v8-util.h +0 -0
  382. /package/{pods → src-native/ios}/Headers/include/v8-value-serializer-version.h +0 -0
  383. /package/{pods → src-native/ios}/Headers/include/v8-value-serializer.h +0 -0
  384. /package/{pods → src-native/ios}/Headers/include/v8-value.h +0 -0
  385. /package/{pods → src-native/ios}/Headers/include/v8-version-string.h +0 -0
  386. /package/{pods → src-native/ios}/Headers/include/v8-version.h +0 -0
  387. /package/{pods → src-native/ios}/Headers/include/v8-wasm-trap-handler-posix.h +0 -0
  388. /package/{pods → src-native/ios}/Headers/include/v8-wasm-trap-handler-win.h +0 -0
  389. /package/{pods → src-native/ios}/Headers/include/v8-wasm.h +0 -0
  390. /package/{pods → src-native/ios}/Headers/include/v8-weak-callback-info.h +0 -0
  391. /package/{pods → src-native/ios}/Headers/include/v8.h +0 -0
  392. /package/{pods → src-native/ios}/Headers/include/v8config.h +0 -0
  393. /package/{pods → src-native/ios}/Headers/inspector/InspectorServer.h +0 -0
  394. /package/{pods → src-native/ios}/Headers/inspector/JsV8InspectorClient.h +0 -0
  395. /package/{pods → src-native/ios}/Headers/inspector/base/trace_event/common/trace_event_common.h +0 -0
  396. /package/{pods → src-native/ios}/Headers/inspector/base64.h +0 -0
  397. /package/{pods → src-native/ios}/Headers/inspector/src/base/address-region.h +0 -0
  398. /package/{pods → src-native/ios}/Headers/inspector/src/base/atomic-utils.h +0 -0
  399. /package/{pods → src-native/ios}/Headers/inspector/src/base/atomicops.h +0 -0
  400. /package/{pods → src-native/ios}/Headers/inspector/src/base/atomicops_internals_atomicword_compat.h +0 -0
  401. /package/{pods → src-native/ios}/Headers/inspector/src/base/base-export.h +0 -0
  402. /package/{pods → src-native/ios}/Headers/inspector/src/base/bits.h +0 -0
  403. /package/{pods → src-native/ios}/Headers/inspector/src/base/build_config.h +0 -0
  404. /package/{pods → src-native/ios}/Headers/inspector/src/base/compiler-specific.h +0 -0
  405. /package/{pods → src-native/ios}/Headers/inspector/src/base/export-template.h +0 -0
  406. /package/{pods → src-native/ios}/Headers/inspector/src/base/flags.h +0 -0
  407. /package/{pods → src-native/ios}/Headers/inspector/src/base/immediate-crash.h +0 -0
  408. /package/{pods → src-native/ios}/Headers/inspector/src/base/lazy-instance.h +0 -0
  409. /package/{pods → src-native/ios}/Headers/inspector/src/base/logging.h +0 -0
  410. /package/{pods → src-native/ios}/Headers/inspector/src/base/macros.h +0 -0
  411. /package/{pods → src-native/ios}/Headers/inspector/src/base/memory.h +0 -0
  412. /package/{pods → src-native/ios}/Headers/inspector/src/base/once.h +0 -0
  413. /package/{pods → src-native/ios}/Headers/inspector/src/base/optional.h +0 -0
  414. /package/{pods → src-native/ios}/Headers/inspector/src/base/platform/mutex.h +0 -0
  415. /package/{pods → src-native/ios}/Headers/inspector/src/base/platform/platform.h +0 -0
  416. /package/{pods → src-native/ios}/Headers/inspector/src/base/platform/semaphore.h +0 -0
  417. /package/{pods → src-native/ios}/Headers/inspector/src/base/platform/v8-time.h +0 -0
  418. /package/{pods → src-native/ios}/Headers/inspector/src/base/platform/wrappers.h +0 -0
  419. /package/{pods → src-native/ios}/Headers/inspector/src/base/safe_conversions.h +0 -0
  420. /package/{pods → src-native/ios}/Headers/inspector/src/base/safe_conversions_impl.h +0 -0
  421. /package/{pods → src-native/ios}/Headers/inspector/src/base/template-utils.h +0 -0
  422. /package/{pods → src-native/ios}/Headers/inspector/src/base/v8-fallthrough.h +0 -0
  423. /package/{pods → src-native/ios}/Headers/inspector/src/common/checks.h +0 -0
  424. /package/{pods → src-native/ios}/Headers/inspector/src/common/globals.h +0 -0
  425. /package/{pods → src-native/ios}/Headers/inspector/src/debug/debug-interface.h +0 -0
  426. /package/{pods → src-native/ios}/Headers/inspector/src/debug/interface-types.h +0 -0
  427. /package/{pods → src-native/ios}/Headers/inspector/src/init/v8.h +0 -0
  428. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/custom-preview.h +0 -0
  429. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/injected-script.h +0 -0
  430. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/inspected-context.h +0 -0
  431. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/CSS.h +0 -0
  432. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Console.h +0 -0
  433. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/DOM.h +0 -0
  434. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Debugger.h +0 -0
  435. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Forward.h +0 -0
  436. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/HeapProfiler.h +0 -0
  437. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Log.h +0 -0
  438. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Network.h +0 -0
  439. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Overlay.h +0 -0
  440. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Page.h +0 -0
  441. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Profiler.h +0 -0
  442. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Protocol.h +0 -0
  443. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Runtime.h +0 -0
  444. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Schema.h +0 -0
  445. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Security.h +0 -0
  446. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/remote-object-id.h +0 -0
  447. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/search-util.h +0 -0
  448. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/string-16.h +0 -0
  449. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/string-util.h +0 -0
  450. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-console-agent-impl.h +0 -0
  451. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-console-message.h +0 -0
  452. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-console.h +0 -0
  453. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-css-agent-impl.h +0 -0
  454. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-debugger-agent-impl.h +0 -0
  455. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-debugger-id.h +0 -0
  456. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-debugger-script.h +0 -0
  457. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-debugger.h +0 -0
  458. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-dom-agent-impl.h +0 -0
  459. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-heap-profiler-agent-impl.h +0 -0
  460. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-inspector-impl.h +0 -0
  461. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-inspector-session-impl.h +0 -0
  462. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-log-agent-impl.h +0 -0
  463. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-network-agent-impl.h +0 -0
  464. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-ns-debugger-agent-impl.h +0 -0
  465. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-overlay-agent-impl.h +0 -0
  466. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-page-agent-impl.h +0 -0
  467. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-profiler-agent-impl.h +0 -0
  468. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-regex.h +0 -0
  469. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-runtime-agent-impl.h +0 -0
  470. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-schema-agent-impl.h +0 -0
  471. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-stack-trace-impl.h +0 -0
  472. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-string-conversions.h +0 -0
  473. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-value-utils.h +0 -0
  474. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/value-mirror.h +0 -0
  475. /package/{pods → src-native/ios}/Headers/inspector/src/libplatform/default-platform.h +0 -0
  476. /package/{pods → src-native/ios}/Headers/inspector/src/logging/tracing-flags.h +0 -0
  477. /package/{pods → src-native/ios}/Headers/inspector/src/numbers/conversions.h +0 -0
  478. /package/{pods → src-native/ios}/Headers/inspector/src/tracing/trace-event.h +0 -0
  479. /package/{pods → src-native/ios}/Headers/inspector/src/utils/allocation.h +0 -0
  480. /package/{pods → src-native/ios}/Headers/inspector/src/utils/vector.h +0 -0
  481. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/cbor.h +0 -0
  482. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/dispatch.h +0 -0
  483. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/error_support.h +0 -0
  484. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/export.h +0 -0
  485. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/find_by_first.h +0 -0
  486. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/frontend_channel.h +0 -0
  487. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/glue.h +0 -0
  488. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/json.h +0 -0
  489. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/json_platform.h +0 -0
  490. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/maybe.h +0 -0
  491. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/parser_handler.h +0 -0
  492. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/protocol_core.h +0 -0
  493. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/serializable.h +0 -0
  494. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/serializer_traits.h +0 -0
  495. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/span.h +0 -0
  496. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/status.h +0 -0
  497. /package/{pods → src-native/ios}/Headers/inspector/utils.h +0 -0
  498. /package/{pods → src-native/ios}/Headers/inspector/v8-inspector-platform.h +0 -0
  499. /package/{pods → src-native/ios}/Headers/runtime/ArgConverter.h +0 -0
  500. /package/{pods → src-native/ios}/Headers/runtime/ArrayAdapter.h +0 -0
  501. /package/{pods → src-native/ios}/Headers/runtime/Caches.h +0 -0
  502. /package/{pods → src-native/ios}/Headers/runtime/ClassBuilder.h +0 -0
  503. /package/{pods → src-native/ios}/Headers/runtime/Common.h +0 -0
  504. /package/{pods → src-native/ios}/Headers/runtime/ConcurrentMap.h +0 -0
  505. /package/{pods → src-native/ios}/Headers/runtime/ConcurrentQueue.h +0 -0
  506. /package/{pods → src-native/ios}/Headers/runtime/Console.h +0 -0
  507. /package/{pods → src-native/ios}/Headers/runtime/Constants.h +0 -0
  508. /package/{pods → src-native/ios}/Headers/runtime/DataWrapper.h +0 -0
  509. /package/{pods → src-native/ios}/Headers/runtime/DictionaryAdapter.h +0 -0
  510. /package/{pods → src-native/ios}/Headers/runtime/ExtVector.h +0 -0
  511. /package/{pods → src-native/ios}/Headers/runtime/FFICall.h +0 -0
  512. /package/{pods → src-native/ios}/Headers/runtime/FastEnumerationAdapter.h +0 -0
  513. /package/{pods → src-native/ios}/Headers/runtime/FunctionReference.h +0 -0
  514. /package/{pods → src-native/ios}/Headers/runtime/Helpers.h +0 -0
  515. /package/{pods → src-native/ios}/Headers/runtime/InlineFunctions.h +0 -0
  516. /package/{pods → src-native/ios}/Headers/runtime/Interop.h +0 -0
  517. /package/{pods → src-native/ios}/Headers/runtime/KnownUnknownClassPair.h +0 -0
  518. /package/{pods → src-native/ios}/Headers/runtime/Metadata.h +0 -0
  519. /package/{pods → src-native/ios}/Headers/runtime/MetadataBuilder.h +0 -0
  520. /package/{pods → src-native/ios}/Headers/runtime/MetadataInlines.h +0 -0
  521. /package/{pods → src-native/ios}/Headers/runtime/ModuleInternal.h +0 -0
  522. /package/{pods → src-native/ios}/Headers/runtime/NSDataAdapter.h +0 -0
  523. /package/{pods → src-native/ios}/Headers/runtime/NativeScriptException.h +0 -0
  524. /package/{pods → src-native/ios}/Headers/runtime/ObjectManager.h +0 -0
  525. /package/{pods → src-native/ios}/Headers/runtime/OneByteStringResource.h +0 -0
  526. /package/{pods → src-native/ios}/Headers/runtime/Pointer.h +0 -0
  527. /package/{pods → src-native/ios}/Headers/runtime/PromiseProxy.h +0 -0
  528. /package/{pods → src-native/ios}/Headers/runtime/Reference.h +0 -0
  529. /package/{pods → src-native/ios}/Headers/runtime/Runtime.h +0 -0
  530. /package/{pods → src-native/ios}/Headers/runtime/RuntimeConfig.h +0 -0
  531. /package/{pods → src-native/ios}/Headers/runtime/SetTimeout.h +0 -0
  532. /package/{pods → src-native/ios}/Headers/runtime/SimpleAllocator.h +0 -0
  533. /package/{pods → src-native/ios}/Headers/runtime/StringHasher.h +0 -0
  534. /package/{pods → src-native/ios}/Headers/runtime/SymbolIterator.h +0 -0
  535. /package/{pods → src-native/ios}/Headers/runtime/SymbolLoader.h +0 -0
  536. /package/{pods → src-native/ios}/Headers/runtime/TNSDerivedClass.h +0 -0
  537. /package/{pods → src-native/ios}/Headers/runtime/TSHelpers.h +0 -0
  538. /package/{pods → src-native/ios}/Headers/runtime/Tasks.h +0 -0
  539. /package/{pods → src-native/ios}/Headers/runtime/UnmanagedType.h +0 -0
  540. /package/{pods → src-native/ios}/Headers/runtime/WeakRef.h +0 -0
  541. /package/{pods → src-native/ios}/Headers/runtime/Worker.h +0 -0
  542. /package/{pods → src-native/ios}/Headers/runtime/robin_hood.h +0 -0
@@ -1,1972 +0,0 @@
1
- //
2
- // Created by Osei Fortune on 22/03/2022.
3
- //
4
-
5
- #include "CanvasRenderingContext2DImpl.h"
6
-
7
- CanvasRenderingContext2DImpl::CanvasRenderingContext2DImpl(
8
- rust::Box<CanvasRenderingContext2D> context) : context_(
9
- std::move(context)) {
10
-
11
- auto ctx_ptr = reinterpret_cast<intptr_t>(reinterpret_cast<intptr_t *>(this));
12
- auto raf_callback = new OnRafCallback(ctx_ptr, 0);
13
- auto raf_callback_ptr = reinterpret_cast<intptr_t>(reinterpret_cast<intptr_t *>(raf_callback));
14
- auto raf = canvas_native_raf_create(raf_callback_ptr);
15
- this->SetRaf(std::make_shared<RafImpl>(raf_callback, raf_callback_ptr, std::move(raf)));
16
-
17
- auto _raf = this->GetRaf();
18
-
19
- if (_raf != nullptr) {
20
- canvas_native_raf_start(_raf->GetRaf());
21
- }
22
-
23
- }
24
-
25
- void CanvasRenderingContext2DImpl::SetRaf(std::shared_ptr<RafImpl> raf) {
26
- this->raf_ = std::move(raf);
27
- }
28
-
29
- RafImpl *CanvasRenderingContext2DImpl::GetRaf() {
30
- return this->raf_.get();
31
- }
32
-
33
-
34
- void CanvasRenderingContext2DImpl::StartRaf() {
35
- auto raf = this->GetRaf();
36
- if (raf != nullptr) {
37
- if (!canvas_native_raf_get_started(raf->GetRaf())) {
38
- canvas_native_raf_start(raf->GetRaf());
39
- }
40
- }
41
- }
42
-
43
- void CanvasRenderingContext2DImpl::StopRaf() {
44
- auto raf = this->GetRaf();
45
- if (raf != nullptr) {
46
- if (canvas_native_raf_get_started(raf->GetRaf())) {
47
- canvas_native_raf_stop(raf->GetRaf());
48
- }
49
- }
50
- }
51
-
52
-
53
- std::vector<jsi::PropNameID> CanvasRenderingContext2DImpl::getPropertyNames(jsi::Runtime &rt) {
54
- std::vector<jsi::PropNameID> ret;
55
- ret.reserve(70);
56
-
57
- /* Non Standard 2D */
58
-
59
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("drawPoint")));
60
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("drawPoints")));
61
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("drawPaint")));
62
-
63
- /* Non Standard 2D */
64
-
65
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("__makeDirty")));
66
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("__getPointer")));
67
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("__resize")));
68
- ret.push_back(jsi::PropNameID::forUtf8(rt, "__startRaf"));
69
- ret.push_back(jsi::PropNameID::forUtf8(rt, "__stopRaf"));
70
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("filter")));
71
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("font")));
72
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("globalAlpha")));
73
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("imageSmoothingEnabled")));
74
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("imageSmoothingQuality")));
75
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("lineDashOffset")));
76
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("lineJoin")));
77
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("lineCap")));
78
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("miterLimit")));
79
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("shadowColor")));
80
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("shadowBlur")));
81
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("shadowOffsetX")));
82
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("shadowOffsetY")));
83
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("textAlign")));
84
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("globalCompositeOperation")));
85
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("fillStyle")));
86
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("strokeStyle")));
87
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("lineWidth")));
88
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("lineDash")));
89
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("addHitRegion")));
90
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("arc")));
91
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("arcTo")));
92
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("beginPath")));
93
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("bezierCurveTo")));
94
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("clearHitRegions")));
95
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("clearRect")));
96
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("clip")));
97
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("closePath")));
98
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("createImageData")));
99
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("createLinearGradient")));
100
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("createRadialGradient")));
101
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("createPattern")));
102
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("__createPatternWithNative")));
103
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("drawImage")));
104
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("ellipse")));
105
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("fill")));
106
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("fillRect")));
107
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("fillText")));
108
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getImageData")));
109
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getLineDash")));
110
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("isPointInPath")));
111
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("isPointInStroke")));
112
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("lineTo")));
113
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("measureText")));
114
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("moveTo")));
115
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("putImageData")));
116
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("quadraticCurveTo")));
117
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("rect")));
118
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("roundRect")));
119
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("removeHitRegion")));
120
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("resetTransform")));
121
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("restore")));
122
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("rotate")));
123
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("save")));
124
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("scale")));
125
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("scrollPathIntoView")));
126
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("setLineDash")));
127
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("setTransform")));
128
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("stroke")));
129
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("strokeRect")));
130
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("strokeText")));
131
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("transform")));
132
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("translate")));
133
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("__toDataURL")));
134
- return ret;
135
- }
136
-
137
-
138
- void
139
- CanvasRenderingContext2DImpl::set(jsi::Runtime &runtime, const jsi::PropNameID &name,
140
- const jsi::Value &value) {
141
- auto methodName = name.utf8(runtime);
142
-
143
- if (methodName == "filter") {
144
- auto val = value.asString(runtime).utf8(runtime);
145
- canvas_native_context_set_filter(this->GetContext(), rust::Str(val.c_str()));
146
- } else if (methodName == "font") {
147
- auto val = value.asString(runtime).utf8(runtime);
148
- canvas_native_context_set_font(this->GetContext(), rust::Str(val.c_str()));
149
- } else if (methodName == "globalAlpha") {
150
- auto alpha = (float) value.asNumber();
151
- canvas_native_context_set_global_alpha(this->GetContext(), alpha);
152
- } else if (methodName == "imageSmoothingEnabled") {
153
- auto imageSmoothingEnabled = value.asBool();
154
- canvas_native_context_set_image_smoothing_enabled(this->GetContext(),
155
- imageSmoothingEnabled);
156
- } else if (methodName == "imageSmoothingQuality") {
157
- auto imageSmoothingQuality = value.asString(runtime).utf8(runtime);
158
- canvas_native_context_set_image_smoothing_quality(this->GetContext(),
159
- rust::Str(imageSmoothingQuality));
160
- } else if (methodName == "lineDashOffset") {
161
- auto lineDashOffset = (float) value.asNumber();
162
- canvas_native_context_set_line_dash_offset(this->GetContext(), lineDashOffset);
163
- } else if (methodName == "lineJoin") {
164
- auto join = value.asString(runtime).utf8(runtime);
165
- canvas_native_context_set_line_join(this->GetContext(),
166
- rust::Str(join.c_str()));
167
- } else if (methodName == "lineCap") {
168
- auto cap = value.asString(runtime).utf8(runtime);
169
- canvas_native_context_set_line_cap(this->GetContext(),
170
- rust::Str(cap.c_str()));
171
- } else if (methodName == "miterLimit") {
172
- auto miterLimit = (float) value.asNumber();
173
- canvas_native_context_set_miter_limit(this->GetContext(), miterLimit);
174
- } else if (methodName == "shadowColor") {
175
- auto shadowColor = value.asString(runtime).utf8(runtime);
176
- canvas_native_context_set_shadow_color(this->GetContext(),
177
- rust::Str(shadowColor.c_str()));
178
- } else if (methodName == "shadowBlur") {
179
- auto shadowBlur = (float) value.asNumber();
180
- canvas_native_context_set_shadow_blur(this->GetContext(), shadowBlur);
181
- } else if (methodName == "shadowOffsetX") {
182
- auto shadowOffsetX = (float) value.asNumber();
183
- canvas_native_context_set_shadow_offset_x(this->GetContext(), shadowOffsetX);
184
- } else if (methodName == "shadowOffsetY") {
185
- auto shadowOffsetY = (float) value.asNumber();
186
- canvas_native_context_set_shadow_offset_y(this->GetContext(), shadowOffsetY);
187
- } else if (methodName == "textAlign") {
188
- auto textAlign = value.asString(runtime).utf8(runtime);
189
- canvas_native_context_set_text_align(this->GetContext(),
190
- rust::Str(textAlign.c_str()));
191
- } else if (methodName == "globalCompositeOperation") {
192
- auto globalCompositeOperation = value.asString(runtime).utf8(runtime);
193
- canvas_native_context_set_global_composition(this->GetContext(),
194
- rust::Str(globalCompositeOperation.c_str()));
195
- } else if (methodName == "fillStyle") {
196
- if (value.isString()) {
197
- auto style = value.asString(runtime).utf8(runtime);
198
- canvas_native_paint_style_set_fill_color_with_c_string(this->GetContext(), style.c_str());
199
- } else if (value.isObject()) {
200
-
201
- try {
202
- auto gradient = getHostObject<CanvasGradient>(runtime, value);
203
- if (gradient != nullptr) {
204
- canvas_native_context_set_fill_style(this->GetContext(),
205
- gradient->GetPaintStyle());
206
- return;
207
- }
208
- } catch (...) {}
209
-
210
- try {
211
- auto pattern = getHostObject<CanvasPattern>(runtime, value);
212
-
213
- if (pattern != nullptr) {
214
- canvas_native_context_set_fill_style(this->GetContext(),
215
- pattern->GetPaintStyle());
216
- return;
217
- }
218
- } catch (...) {}
219
- }
220
- } else if (methodName == "strokeStyle") {
221
- if (value.isString()) {
222
- auto style = value.asString(runtime).utf8(runtime);
223
- canvas_native_paint_style_set_stroke_color_with_c_string(this->GetContext(), style.c_str());
224
- } else if (value.isObject()) {
225
-
226
- try {
227
- auto gradient = getHostObject<CanvasGradient>(runtime, value);
228
- if (gradient != nullptr) {
229
- canvas_native_context_set_stroke_style(this->GetContext(),
230
- gradient->GetPaintStyle());
231
- return;
232
- }
233
- } catch (...) {}
234
-
235
- try {
236
- auto pattern = getHostObject<CanvasPattern>(runtime, value);
237
-
238
- if (pattern != nullptr) {
239
- canvas_native_context_set_stroke_style(this->GetContext(),
240
- pattern->GetPaintStyle());
241
- return;
242
- }
243
- } catch (...) {}
244
- }
245
- } else if (methodName == "lineWidth") {
246
- auto lineWidth = (float) value.asNumber();
247
- canvas_native_context_set_line_width(this->GetContext(), lineWidth);
248
- } else if (methodName == "lineDash") {
249
- if (!value.isNull() && !value.isUndefined() && value.isObject()) {
250
- auto lineDashObject = value.asObject(runtime);
251
- if (lineDashObject.isArray(runtime)) {
252
- auto lineDash = lineDashObject.asArray(runtime);
253
- auto size = lineDash.size(runtime);
254
- std::vector<float> dash;
255
- dash.reserve(size);
256
- for (size_t i = 0; i < size; ++i) {
257
- auto val = lineDash.getValueAtIndex(runtime, i);
258
- dash[i] = (float) value.asNumber();
259
- }
260
- canvas_native_context_set_line_dash(this->GetContext(),
261
- rust::Slice<const float>(dash.data(),
262
- dash.size()));
263
- }
264
- }
265
- }
266
-
267
-
268
- }
269
-
270
-
271
- jsi::Value CanvasRenderingContext2DImpl::get(jsi::Runtime &runtime, const jsi::PropNameID &name) {
272
- auto methodName = name.utf8(runtime);
273
-
274
-
275
- if (methodName == "drawPaint") {
276
- return jsi::Function::createFromHostFunction(runtime,
277
- jsi::PropNameID::forAscii(runtime, methodName),
278
- 2,
279
- [this](jsi::Runtime &runtime,
280
- const jsi::Value &thisValue,
281
- const jsi::Value *arguments,
282
- size_t count) -> jsi::Value {
283
- auto color = arguments[0].asString(
284
- runtime).utf8(runtime);
285
- canvas_native_context_draw_paint(
286
- this->GetContext(),
287
- rust::Str(color));
288
- this->UpdateInvalidateState();
289
- return jsi::Value::undefined();
290
- }
291
- );
292
- } else if (methodName == "drawPoint") {
293
- return jsi::Function::createFromHostFunction(runtime,
294
- jsi::PropNameID::forAscii(runtime, methodName),
295
- 2,
296
- [this](jsi::Runtime &runtime,
297
- const jsi::Value &thisValue,
298
- const jsi::Value *arguments,
299
- size_t count) -> jsi::Value {
300
- auto x = (float) arguments[0].asNumber();
301
- auto y = (float) arguments[1].asNumber();
302
- canvas_native_context_draw_point(
303
- this->GetContext(), x, y);
304
- this->UpdateInvalidateState();
305
- return jsi::Value::undefined();
306
- }
307
- );
308
- } else if (methodName == "drawPoints") {
309
- return jsi::Function::createFromHostFunction(runtime,
310
- jsi::PropNameID::forAscii(runtime, methodName),
311
- 2,
312
- [this](jsi::Runtime &runtime,
313
- const jsi::Value &thisValue,
314
- const jsi::Value *arguments,
315
- size_t count) -> jsi::Value {
316
- auto mode = arguments[0].asString(
317
- runtime).utf8(
318
- runtime);
319
- auto points = arguments[1].asObject(
320
- runtime).getArray(
321
- runtime);
322
- auto size = points.size(runtime);
323
-
324
-
325
- if ((size % 2) == 0) {
326
- int32_t pointMode = -1;
327
- if (mode == "points") {
328
- pointMode = 0;
329
- } else if (mode == "lines") {
330
- pointMode = 1;
331
- } else if (mode == "polygon") {
332
- pointMode = 2;
333
- }
334
- if (pointMode == -1) {
335
- return jsi::Value::undefined();
336
- }
337
- rust::Vec<float> store;
338
- store.reserve(size);
339
- size_t next = 0;
340
- for (size_t i = 0; i < size; i++) {
341
-
342
- auto object = points.getValueAtIndex(
343
- runtime, i).asObject(
344
- runtime);
345
-
346
- auto x = object.getProperty(
347
- runtime, "x").asNumber();
348
- auto y = object.getProperty(
349
- runtime, "y").asNumber();
350
- store[next] = (float) x;
351
- store[next + 1] = (float) y;
352
-
353
- next = i + 2;
354
- }
355
-
356
- rust::Slice<const float> buf(
357
- store.data(),
358
- store.size());
359
-
360
- canvas_native_context_draw_points(
361
- this->GetContext(), pointMode,
362
- buf);
363
- this->UpdateInvalidateState();
364
- }
365
- return jsi::Value::undefined();
366
- }
367
- );
368
- }
369
-
370
- if (methodName == "filter") {
371
- auto filter = canvas_native_context_get_filter(this->GetContext());
372
- return jsi::String::createFromAscii(runtime, filter.data(), filter.length());
373
- }
374
-
375
- if (methodName == "__makeDirty") {
376
- return jsi::Function::createFromHostFunction(runtime,
377
- jsi::PropNameID::forAscii(runtime, methodName),
378
- 0,
379
- [this](jsi::Runtime &runtime,
380
- const jsi::Value &thisValue,
381
- const jsi::Value *arguments,
382
- size_t count) -> jsi::Value {
383
- this->UpdateInvalidateState();
384
- return jsi::Value::undefined();
385
- }
386
- );
387
- }
388
-
389
- if (methodName == "__getPointer") {
390
- auto ptr = (intptr_t *) &this->GetContext();
391
- auto ret = std::to_string((intptr_t) ptr);
392
- return jsi::String::createFromAscii(runtime, ret);
393
- }
394
-
395
- if (methodName == "__resize") {
396
- return jsi::Function::createFromHostFunction(runtime,
397
- jsi::PropNameID::forAscii(runtime, methodName),
398
- 2,
399
- [this](jsi::Runtime &runtime,
400
- const jsi::Value &thisValue,
401
- const jsi::Value *arguments,
402
- size_t count) -> jsi::Value {
403
- auto width = arguments[0].asNumber();
404
- auto height = arguments[1].asNumber();
405
- canvas_native_context_resize(
406
- this->GetContext(),
407
- static_cast<float>(width),
408
- static_cast<float>(height));
409
- return jsi::Value::undefined();
410
- }
411
- );
412
- } else if (methodName == "font") {
413
- auto font = canvas_native_context_get_font(this->GetContext());
414
- return jsi::String::createFromAscii(runtime, font.data(), font.length());
415
- } else if (methodName == "globalAlpha") {
416
- return {(double) canvas_native_context_get_global_alpha(this->GetContext())};
417
- } else if (methodName == "imageSmoothingEnabled") {
418
- return {canvas_native_context_get_image_smoothing_enabled(this->GetContext())};
419
- } else if (methodName == "imageSmoothingQuality") {
420
- auto quality = canvas_native_context_get_image_smoothing_quality(this->GetContext());
421
- return jsi::String::createFromAscii(runtime, quality.data(), quality.length());
422
- } else if (methodName == "lineDashOffset") {
423
- auto lineDashOffset = canvas_native_context_get_line_dash_offset(this->GetContext());
424
- return {(double) lineDashOffset};
425
- } else if (methodName == "lineJoin") {
426
- auto join = canvas_native_context_get_line_join(this->GetContext());
427
- return jsi::String::createFromAscii(runtime, join.data(), join.size());
428
- } else if (methodName == "lineCap") {
429
- auto cap = canvas_native_context_get_line_cap(this->GetContext());
430
- return jsi::String::createFromAscii(runtime, cap.data(), cap.size());
431
- } else if (methodName == "miterLimit") {
432
- auto miterLimit = canvas_native_context_get_miter_limit(this->GetContext());
433
- return {(double) miterLimit};
434
- } else if (methodName == "shadowColor") {
435
- auto shadowColor = canvas_native_context_get_shadow_color(this->GetContext());
436
- return jsi::String::createFromAscii(runtime, shadowColor.data(), shadowColor.size());
437
- } else if (methodName == "shadowBlur") {
438
- return {(double) canvas_native_context_get_shadow_blur(this->GetContext())};
439
- } else if (methodName == "shadowOffsetX") {
440
- return {(double) canvas_native_context_get_shadow_offset_x(this->GetContext())};
441
- } else if (methodName == "shadowOffsetY") {
442
- return {(double) canvas_native_context_get_shadow_offset_y(this->GetContext())};
443
- } else if (methodName == "textAlign") {
444
- auto textAlign = canvas_native_context_get_text_align(this->GetContext());
445
- return jsi::String::createFromAscii(runtime, textAlign.data(), textAlign.size());
446
- } else if (methodName == "globalCompositeOperation") {
447
- auto globalCompositeOperation = canvas_native_context_get_global_composition(
448
- this->GetContext());
449
- return jsi::String::createFromAscii(runtime, globalCompositeOperation.data(),
450
- globalCompositeOperation.size());
451
- } else if (methodName == "fillStyle") {
452
- PaintStyleType type = canvas_native_context_get_current_fill_style_type(this->GetContext());
453
- switch (type) {
454
- case PaintStyleType::Color: {
455
- auto color = canvas_native_paint_style_get_current_fill_color_string(
456
- this->GetContext());
457
- return jsi::String::createFromAscii(runtime, color.data(), color.size());
458
- }
459
- case PaintStyleType::Gradient: {
460
- auto style = std::make_shared<CanvasGradient>(
461
- canvas_native_context_get_fill_style(this->GetContext()));
462
- return jsi::Object::createFromHostObject(runtime, style);
463
- }
464
- case PaintStyleType::Pattern: {
465
- auto style = std::make_shared<CanvasPattern>(
466
- canvas_native_context_get_fill_style(this->GetContext()));
467
- return jsi::Object::createFromHostObject(runtime, style);
468
- }
469
- case PaintStyleType::None: {
470
- return jsi::Value::undefined();
471
- }
472
- }
473
- } else if (methodName == "strokeStyle") {
474
- PaintStyleType type = canvas_native_context_get_current_stroke_style_type(
475
- this->GetContext());
476
- switch (type) {
477
- case PaintStyleType::Color: {
478
- auto color = canvas_native_paint_style_get_current_stroke_color_string(
479
- this->GetContext());
480
- return jsi::String::createFromAscii(runtime, color.data(), color.size());
481
- }
482
- case PaintStyleType::Gradient: {
483
- auto style = std::make_shared<CanvasGradient>(
484
- canvas_native_context_get_stroke_style(this->GetContext()));
485
- return jsi::Object::createFromHostObject(runtime, style);
486
- }
487
- case PaintStyleType::Pattern: {
488
- auto style = std::make_shared<CanvasPattern>(
489
- canvas_native_context_get_stroke_style(this->GetContext()));
490
- return jsi::Object::createFromHostObject(runtime, style);
491
- }
492
- case PaintStyleType::None: {
493
- return jsi::Value::undefined();
494
- }
495
- }
496
- } else if (methodName == "lineWidth") {
497
- auto lineWidth = canvas_native_context_get_line_width(this->GetContext());
498
- return {(double) lineWidth};
499
- } else if (methodName == "lineDash") {
500
- auto lineDash = canvas_native_context_get_line_dash(this->GetContext());
501
- auto size = lineDash.size();
502
- auto ret = jsi::Array(runtime, size);
503
- for (size_t i = 0; i < size; i++) {
504
- auto item = lineDash[i];
505
- ret.setValueAtIndex(runtime, i, jsi::Value((double) item));
506
- }
507
- return ret;
508
- } else if (methodName == "addHitRegion") {
509
- return jsi::Function::createFromHostFunction(runtime,
510
- jsi::PropNameID::forAscii(runtime, methodName),
511
- 0,
512
- [](jsi::Runtime &runtime,
513
- const jsi::Value &thisValue,
514
- const jsi::Value *arguments,
515
- size_t count) -> jsi::Value {
516
- return jsi::Value::undefined();
517
- }
518
- );
519
- } else if (methodName == "arc") {
520
- return jsi::Function::createFromHostFunction(runtime,
521
- jsi::PropNameID::forAscii(runtime, methodName),
522
- 6,
523
- [this](jsi::Runtime &runtime,
524
- const jsi::Value &thisValue,
525
- const jsi::Value *arguments,
526
- size_t count) -> jsi::Value {
527
-
528
-
529
- auto anti_clockwise = false;
530
- if (count == 6) {
531
- anti_clockwise = arguments[5].asBool();
532
- }
533
- canvas_native_context_arc(
534
- this->GetContext(),
535
- static_cast<float>(arguments[0].asNumber()),
536
- static_cast<float>(arguments[1].asNumber()),
537
- static_cast<float>(arguments[2].asNumber()),
538
- static_cast<float>(arguments[3].asNumber()),
539
- static_cast<float>(arguments[4].asNumber()),
540
- anti_clockwise
541
- );
542
-
543
- return jsi::Value::undefined();
544
- }
545
- );
546
- } else if (methodName == "arcTo") {
547
- return jsi::Function::createFromHostFunction(runtime,
548
- jsi::PropNameID::forAscii(runtime, methodName),
549
- 5,
550
- [this](jsi::Runtime &runtime,
551
- const jsi::Value &thisValue,
552
- const jsi::Value *arguments,
553
- size_t count) -> jsi::Value {
554
-
555
-
556
- auto x1 = static_cast<float>(arguments[0].asNumber());
557
- auto y1 = static_cast<float>(arguments[1].asNumber());
558
- auto x2 = static_cast<float>(arguments[2].asNumber());
559
- auto y2 = static_cast<float>(arguments[3].asNumber());
560
- auto radius = static_cast<float>(arguments[4].asNumber());
561
- canvas_native_context_arc_to(
562
- this->GetContext(),
563
- x1,
564
- y1,
565
- x2,
566
- y2,
567
- radius
568
- );
569
-
570
- return jsi::Value::undefined();
571
- }
572
- );
573
- } else if (methodName == "beginPath") {
574
- return jsi::Function::createFromHostFunction(runtime,
575
- jsi::PropNameID::forAscii(runtime, methodName),
576
- 0,
577
- [this](jsi::Runtime &runtime,
578
- const jsi::Value &thisValue,
579
- const jsi::Value *arguments,
580
- size_t count) -> jsi::Value {
581
- canvas_native_context_begin_path(
582
- this->GetContext());
583
- return jsi::Value::undefined();
584
- }
585
- );
586
- } else if (methodName == "bezierCurveTo") {
587
- return jsi::Function::createFromHostFunction(runtime,
588
- jsi::PropNameID::forAscii(runtime, methodName),
589
- 6,
590
- [this](jsi::Runtime &runtime,
591
- const jsi::Value &thisValue,
592
- const jsi::Value *arguments,
593
- size_t count) -> jsi::Value {
594
- canvas_native_context_bezier_curve_to(
595
- this->GetContext(),
596
- static_cast<float>(arguments[0].asNumber()),
597
- static_cast<float>(arguments[1].asNumber()),
598
- static_cast<float>(arguments[2].asNumber()),
599
- static_cast<float>(arguments[3].asNumber()),
600
- static_cast<float>(arguments[4].asNumber()),
601
- static_cast<float>(arguments[5].asNumber())
602
- );
603
- return jsi::Value::undefined();
604
- }
605
- );
606
- } else if (methodName == "clearHitRegions") {
607
- return jsi::Function::createFromHostFunction(runtime,
608
- jsi::PropNameID::forAscii(runtime, methodName),
609
- 0,
610
- [](jsi::Runtime &runtime,
611
- const jsi::Value &thisValue,
612
- const jsi::Value *arguments,
613
- size_t count) -> jsi::Value {
614
- return jsi::Value::undefined();
615
- }
616
- );
617
- } else if (methodName == "clearRect") {
618
- return jsi::Function::createFromHostFunction(runtime,
619
- jsi::PropNameID::forAscii(runtime, methodName),
620
- 4,
621
- [this](jsi::Runtime &runtime,
622
- const jsi::Value &thisValue,
623
- const jsi::Value *arguments,
624
- size_t count) -> jsi::Value {
625
-
626
- canvas_native_context_clear_rect(
627
- this->GetContext(),
628
- static_cast<float>(arguments[0].asNumber()),
629
- static_cast<float>(arguments[1].asNumber()),
630
- static_cast<float>(arguments[2].asNumber()),
631
- static_cast<float>(arguments[3].asNumber())
632
- );
633
- this->UpdateInvalidateState();
634
-
635
- return jsi::Value::undefined();
636
- }
637
- );
638
- } else if (methodName == "clip") {
639
- return jsi::Function::createFromHostFunction(runtime,
640
- jsi::PropNameID::forAscii(runtime, methodName),
641
- 1,
642
- [this](jsi::Runtime &runtime,
643
- const jsi::Value &thisValue,
644
- const jsi::Value *arguments,
645
- size_t count) -> jsi::Value {
646
-
647
- if (count == 0) {
648
- std::string rule("nonzero");
649
- canvas_native_context_clip_rule(
650
- this->GetContext(),
651
- rust::Str(rule.c_str()));
652
- } else if (arguments[0].isString()) {
653
- auto val = arguments[0].asString(
654
- runtime).utf8(runtime);
655
- canvas_native_context_clip_rule(
656
- this->GetContext(),
657
- rust::Str(val.c_str()));
658
- }
659
-
660
- return jsi::Value::undefined();
661
- }
662
- );
663
- } else if (methodName == "closePath") {
664
- return jsi::Function::createFromHostFunction(runtime,
665
- jsi::PropNameID::forAscii(runtime, methodName),
666
- 0,
667
- [this](jsi::Runtime &runtime,
668
- const jsi::Value &thisValue,
669
- const jsi::Value *arguments,
670
- size_t count) -> jsi::Value {
671
-
672
- canvas_native_context_close_path(
673
- this->GetContext());
674
- return jsi::Value::undefined();
675
- }
676
- );
677
- } else if (methodName == "createImageData") {
678
- return jsi::Function::createFromHostFunction(runtime,
679
- jsi::PropNameID::forAscii(runtime, methodName),
680
- 2,
681
- [](jsi::Runtime &runtime,
682
- const jsi::Value &thisValue,
683
- const jsi::Value *arguments,
684
- size_t count) -> jsi::Value {
685
-
686
-
687
- if (count == 1 &&
688
- arguments[0].isObject()) {
689
-
690
- auto object = getHostObject<ImageDataImpl>(
691
- runtime, arguments[0]);
692
-
693
- if (object != nullptr) {
694
- auto width = canvas_native_image_data_get_width(
695
- object->GetImageData());
696
- auto height = canvas_native_image_data_get_height(
697
- object->GetImageData());
698
- auto data = std::make_shared<ImageDataImpl>(
699
- canvas_native_image_data_create(
700
- width, height));
701
- return jsi::Object::createFromHostObject(
702
- runtime, data);
703
- }
704
-
705
- } else if (count > 1) {
706
-
707
- auto width = (int) arguments[0].asNumber();
708
- auto height = (int) arguments[1].asNumber();
709
- auto data = std::make_shared<ImageDataImpl>(
710
- canvas_native_image_data_create(
711
- width, height));
712
- return jsi::Object::createFromHostObject(
713
- runtime, data);
714
- }
715
-
716
- // todo throw ?
717
- return jsi::Value::undefined();
718
-
719
- }
720
- );
721
- } else if (methodName == "createLinearGradient") {
722
- return jsi::Function::createFromHostFunction(runtime,
723
- jsi::PropNameID::forAscii(runtime, methodName),
724
- 4,
725
- [this](jsi::Runtime &runtime,
726
- const jsi::Value &thisValue,
727
- const jsi::Value *arguments,
728
- size_t count) -> jsi::Value {
729
-
730
-
731
- if (count == 4) {
732
- auto x0 = static_cast<float>(arguments[0].asNumber());
733
- auto y0 = static_cast<float>(arguments[1].asNumber());
734
- auto x1 = static_cast<float>(arguments[2].asNumber());
735
- auto y1 = static_cast<float>(arguments[3].asNumber());
736
-
737
- auto gradient = canvas_native_context_create_linear_gradient(
738
- this->GetContext(), x0, y0, x1,
739
- y1);
740
- auto ret = std::make_shared<CanvasGradient>(
741
- std::move(gradient));
742
- return jsi::Object::createFromHostObject(
743
- runtime,
744
- ret);
745
- }
746
-
747
- return jsi::Value::undefined();
748
- }
749
- );
750
- } else if (methodName == "createPattern") {
751
- return jsi::Function::createFromHostFunction(runtime,
752
- jsi::PropNameID::forAscii(runtime, methodName),
753
- 2,
754
- [this](jsi::Runtime &runtime,
755
- const jsi::Value &thisValue,
756
- const jsi::Value *arguments,
757
- size_t count) -> jsi::Value {
758
-
759
- if (count > 1) {
760
- if (arguments[0].isNull() ||
761
- arguments[0].isUndefined()) { return jsi::Value::undefined(); }
762
-
763
- auto object = arguments[0].asObject(
764
- runtime);
765
-
766
- try {
767
- auto image_asset = getHostObject<ImageAssetImpl>(
768
- runtime, object);
769
-
770
- if (image_asset != nullptr) {
771
- auto rep = arguments[1].asString(
772
- runtime).utf8(runtime);
773
- rust::Box<PaintStyle> pattern = canvas_native_context_create_pattern_asset(
774
- this->GetContext(),
775
- image_asset->GetImageAsset(),
776
- rust::Str(
777
- rep.c_str()));
778
- auto type = canvas_native_context_get_style_type(
779
- *pattern);
780
- if (type ==
781
- PaintStyleType::None) {
782
- return jsi::Value::undefined();
783
- } else {
784
- auto ret = std::make_shared<CanvasPattern>(
785
- std::move(
786
- pattern));
787
- return jsi::Object::createFromHostObject(
788
- runtime, ret);
789
- }
790
- }
791
- } catch (...) {}
792
-
793
- try {
794
- auto canvas_2d = getHostObject<CanvasRenderingContext2DImpl>(
795
- runtime, object);
796
- if (canvas_2d != nullptr) {
797
- auto rep = arguments[1].asString(
798
- runtime).utf8(runtime);
799
- rust::Box<PaintStyle> pattern = canvas_native_context_create_pattern_canvas2d(
800
- canvas_2d->GetContext(),
801
- this->GetContext(),
802
- rust::Str(
803
- rep.c_str()));
804
- auto type = canvas_native_context_get_style_type(
805
- *pattern);
806
- if (type ==
807
- PaintStyleType::None) {
808
- return jsi::Value::undefined();
809
- } else {
810
- auto ret = std::make_shared<CanvasPattern>(
811
- std::move(
812
- pattern));
813
- return jsi::Object::createFromHostObject(
814
- runtime, ret);
815
- }
816
- }
817
- } catch (...) {}
818
-
819
- try {
820
- auto webgl = getHostObject<WebGLRenderingContextBase>(
821
- runtime, object);
822
- if (webgl != nullptr) {
823
- auto rep = arguments[1].asString(
824
- runtime).utf8(runtime);
825
- auto pattern = canvas_native_context_create_pattern_webgl(
826
- webgl->GetState(),
827
- this->GetContext(),
828
- rust::Str(
829
- rep.c_str()));
830
- auto type = canvas_native_context_get_style_type(
831
- *pattern);
832
- if (type ==
833
- PaintStyleType::None) {
834
- return jsi::Value::undefined();
835
- } else {
836
- auto ret = std::make_shared<CanvasPattern>(
837
- std::move(
838
- pattern));
839
- return jsi::Object::createFromHostObject(
840
- runtime, ret);
841
- }
842
- }
843
- } catch (...) {}
844
-
845
- }
846
-
847
-
848
- return jsi::Value::undefined();
849
- }
850
- );
851
-
852
- } else if (methodName == "__createPatternWithNative") {
853
- return jsi::Function::createFromHostFunction(runtime,
854
- jsi::PropNameID::forAscii(runtime, methodName),
855
- 1,
856
- [](jsi::Runtime &runtime,
857
- const jsi::Value &thisValue,
858
- const jsi::Value *arguments,
859
- size_t count) -> jsi::Value {
860
-
861
- auto ptr = getPointerValue(runtime,
862
- arguments[0]);
863
-
864
- auto pattern = canvas_native_pattern_from_ptr(
865
- ptr);
866
- auto type = canvas_native_context_get_style_type(
867
- *pattern);
868
- if (type == PaintStyleType::None) {
869
- return jsi::Value::undefined();
870
- } else {
871
- auto ret = std::make_shared<CanvasPattern>(
872
- std::move(pattern));
873
- return jsi::Object::createFromHostObject(
874
- runtime, ret);
875
- }
876
-
877
- }
878
- );
879
-
880
- } else if (methodName == "createRadialGradient") {
881
- return jsi::Function::createFromHostFunction(runtime,
882
- jsi::PropNameID::forAscii(runtime, methodName),
883
- 6,
884
- [this](jsi::Runtime &runtime,
885
- const jsi::Value &thisValue,
886
- const jsi::Value *arguments,
887
- size_t count) -> jsi::Value {
888
-
889
-
890
- if (count == 6) {
891
- auto x0 = static_cast<float>(arguments[0].asNumber());
892
- auto y0 = static_cast<float>(arguments[1].asNumber());
893
- auto r0 = static_cast<float>(arguments[2].asNumber());
894
- auto x1 = static_cast<float>(arguments[3].asNumber());
895
- auto y1 = static_cast<float>(arguments[4].asNumber());
896
- auto r1 = static_cast<float>(arguments[5].asNumber());
897
-
898
- auto gradient = canvas_native_context_create_radial_gradient(
899
- this->GetContext(), x0, y0, r0,
900
- x1, y1, r1);
901
- auto ret = std::make_shared<CanvasGradient>(
902
- std::move(gradient));
903
- return jsi::Object::createFromHostObject(
904
- runtime, ret);
905
- }
906
-
907
- return jsi::Value::undefined();
908
- }
909
- );
910
- } else if (methodName == "drawFocusIfNeeded") {
911
- return jsi::Function::createFromHostFunction(runtime,
912
- jsi::PropNameID::forAscii(runtime, methodName),
913
- 0,
914
- [](jsi::Runtime &runtime,
915
- const jsi::Value &thisValue,
916
- const jsi::Value *arguments,
917
- size_t count) -> jsi::Value {
918
-
919
- return jsi::Value::undefined();
920
- }
921
- );
922
- } else if (methodName == "drawImage") {
923
- return jsi::Function::createFromHostFunction(runtime,
924
- jsi::PropNameID::forAscii(runtime, methodName),
925
- 9,
926
- [this](jsi::Runtime &runtime,
927
- const jsi::Value &thisValue,
928
- const jsi::Value *arguments,
929
- size_t count) -> jsi::Value {
930
-
931
-
932
- if (count == 3) {
933
- auto image = arguments[0].asObject(
934
- runtime);
935
- auto dx = static_cast<float>(arguments[1].asNumber());
936
- auto dy = static_cast<float>(arguments[2].asNumber());
937
-
938
-
939
- try {
940
- auto image_asset = getHostObject<ImageAssetImpl>(
941
- runtime, image);
942
-
943
- if (image_asset != nullptr) {
944
- canvas_native_context_draw_image_dx_dy_asset(
945
- this->GetContext(),
946
- image_asset->GetImageAsset(),
947
- dx, dy);
948
- this->UpdateInvalidateState();
949
- return jsi::Value::undefined();
950
- }
951
- } catch (...) {}
952
-
953
-
954
- try {
955
- auto image_bitmap = getHostObject<ImageBitmapImpl>(
956
- runtime, image);
957
- if (image_bitmap != nullptr) {
958
- canvas_native_context_draw_image_dx_dy_asset(
959
- this->GetContext(),
960
- image_bitmap->GetImageAsset(),
961
- dx, dy);
962
- this->UpdateInvalidateState();
963
- }
964
- } catch (...) {}
965
-
966
-
967
- try {
968
- auto image_canvas = getHostObject<CanvasRenderingContext2DImpl>(
969
- runtime, image);
970
- if (image_canvas != nullptr) {
971
- canvas_native_context_draw_image_dx_dy_context(
972
- this->GetContext(),
973
- image_canvas->GetContext(),
974
- dx, dy);
975
- this->UpdateInvalidateState();
976
- }
977
- } catch (...) {}
978
-
979
-
980
- } else if (count == 5) {
981
- auto image = arguments[0].asObject(
982
- runtime);
983
- auto dx = (float) arguments[1].asNumber();
984
- auto dy = (float) arguments[2].asNumber();
985
- auto dWidth = (float) arguments[3].asNumber();
986
- auto dHeight = (float) arguments[4].asNumber();
987
-
988
- try {
989
- auto image_asset = getHostObject<ImageAssetImpl>(
990
- runtime, image);
991
- if (image_asset != nullptr) {
992
- canvas_native_context_draw_image_dx_dy_dw_dh_asset(
993
- this->GetContext(),
994
- image_asset->GetImageAsset(),
995
- dx, dy,
996
- dWidth,
997
- dHeight);
998
- this->UpdateInvalidateState();
999
- return jsi::Value::undefined();
1000
- }
1001
- } catch (...) {}
1002
-
1003
- try {
1004
- auto image_bitmap = getHostObject<ImageBitmapImpl>(
1005
- runtime, image);
1006
- if (image_bitmap != nullptr) {
1007
- canvas_native_context_draw_image_dx_dy_dw_dh_asset(
1008
- this->GetContext(),
1009
- image_bitmap->GetImageAsset(),
1010
- dx, dy,
1011
- dWidth,
1012
- dHeight);
1013
- this->UpdateInvalidateState();
1014
- return jsi::Value::undefined();
1015
- }
1016
- } catch (...) {}
1017
-
1018
- try {
1019
- auto image_canvas = getHostObject<CanvasRenderingContext2DImpl>(
1020
- runtime, image);
1021
- if (image_canvas != nullptr) {
1022
- canvas_native_context_draw_image_dx_dy_dw_dh_context(
1023
- this->GetContext(),
1024
- image_canvas->GetContext(),
1025
- dx, dy,
1026
- dWidth,
1027
- dHeight);
1028
- this->UpdateInvalidateState();
1029
- return jsi::Value::undefined();
1030
- }
1031
- } catch (...) {}
1032
-
1033
-
1034
- } else if (count == 9) {
1035
- auto image = arguments[0].asObject(
1036
- runtime);
1037
- auto sx = (float) arguments[1].asNumber();
1038
- auto sy = (float) arguments[2].asNumber();
1039
- auto sWidth = (float) arguments[3].asNumber();
1040
- auto sHeight = (float) arguments[4].asNumber();
1041
- auto dx = (float) arguments[5].asNumber();
1042
- auto dy = (float) arguments[6].asNumber();
1043
- auto dWidth = (float) arguments[7].asNumber();
1044
- auto dHeight = (float) arguments[8].asNumber();
1045
-
1046
- try {
1047
- auto image_asset = getHostObject<ImageAssetImpl>(
1048
- runtime, image);
1049
- if (image_asset != nullptr) {
1050
- canvas_native_context_draw_image_asset(
1051
- this->GetContext(),
1052
- image_asset->GetImageAsset(),
1053
- sx,
1054
- sy, sWidth, sHeight,
1055
- dx,
1056
- dy, dWidth, dHeight);
1057
- this->UpdateInvalidateState();
1058
- return jsi::Value::undefined();
1059
- }
1060
- } catch (...) {}
1061
-
1062
- try {
1063
- auto image_bitmap = getHostObject<ImageBitmapImpl>(
1064
- runtime, image);
1065
- if (image_bitmap != nullptr) {
1066
- canvas_native_context_draw_image_asset(
1067
- this->GetContext(),
1068
- image_bitmap->GetImageAsset(),
1069
- sx,
1070
- sy, sWidth, sHeight,
1071
- dx,
1072
- dy, dWidth, dHeight);
1073
- this->UpdateInvalidateState();
1074
- return jsi::Value::undefined();
1075
- }
1076
- } catch (...) {}
1077
-
1078
- try {
1079
- auto image_canvas = getHostObject<CanvasRenderingContext2DImpl>(
1080
- runtime, image);
1081
- if (image_canvas != nullptr) {
1082
- canvas_native_context_draw_image_context(
1083
- this->GetContext(),
1084
- image_canvas->GetContext(),
1085
- sx,
1086
- sy, sWidth, sHeight,
1087
- dx,
1088
- dy, dWidth, dHeight);
1089
- this->UpdateInvalidateState();
1090
- return jsi::Value::undefined();
1091
- }
1092
- } catch (...) {}
1093
-
1094
-
1095
- }
1096
-
1097
- return jsi::Value::undefined();
1098
- }
1099
- );
1100
- } else if (methodName == "ellipse") {
1101
- return jsi::Function::createFromHostFunction(runtime,
1102
- jsi::PropNameID::forAscii(runtime, methodName),
1103
- 8,
1104
- [this](jsi::Runtime &runtime,
1105
- const jsi::Value &thisValue,
1106
- const jsi::Value *arguments,
1107
- size_t count) -> jsi::Value {
1108
- if (count == 8) {
1109
- auto x = static_cast<float>(arguments[0].asNumber());
1110
- auto y = static_cast<float>(arguments[1].asNumber());
1111
- auto radiusX = static_cast<float>(arguments[2].asNumber());
1112
- auto radiusY = static_cast<float>(arguments[3].asNumber());
1113
- auto rotation = static_cast<float>(arguments[4].asNumber());
1114
- auto startAngle = static_cast<float>(arguments[5].asNumber());
1115
- auto endAngle = static_cast<float>(arguments[6].asNumber());
1116
- auto anticlockwise = false;
1117
- if (arguments[7].isBool()) {
1118
- anticlockwise = arguments[7].asBool();
1119
- }
1120
- canvas_native_context_ellipse(
1121
- this->GetContext(), x, y,
1122
- radiusX,
1123
- radiusY, rotation,
1124
- startAngle, endAngle,
1125
- anticlockwise);
1126
- }
1127
-
1128
- return jsi::Value::undefined();
1129
- }
1130
- );
1131
- } else if (methodName == "fill") {
1132
- return jsi::Function::createFromHostFunction(runtime,
1133
- jsi::PropNameID::forAscii(runtime, methodName),
1134
- 2,
1135
- [this](jsi::Runtime &runtime,
1136
- const jsi::Value &thisValue,
1137
- const jsi::Value *arguments,
1138
- size_t count) -> jsi::Value {
1139
- if (count == 2) {
1140
- auto object = getHostObject<Path2D>(
1141
- runtime, arguments[0]);
1142
-
1143
- if (object != nullptr) {
1144
- auto value = arguments[1].asString(
1145
- runtime).utf8(runtime);
1146
- canvas_native_context_fill_with_path(
1147
- this->GetContext(),
1148
- object->GetPath(),
1149
- rust::Str(value.c_str()));
1150
- this->UpdateInvalidateState();
1151
- }
1152
- } else if (count == 1) {
1153
- if (arguments[0].isString()) {
1154
- auto value = arguments[0].asString(
1155
- runtime).utf8(runtime);
1156
- canvas_native_context_fill(
1157
- this->GetContext(),
1158
- rust::Str(value.c_str()));
1159
- this->UpdateInvalidateState();
1160
- } else if (arguments[0].isObject()) {
1161
- auto object = getHostObject<Path2D>(
1162
- runtime, arguments[0]);
1163
- if (object != nullptr) {
1164
- std::string rule("nonzero");
1165
- canvas_native_context_fill_with_path(
1166
- this->GetContext(),
1167
- object->GetPath(),
1168
- rust::Str(
1169
- rule.c_str()));
1170
- this->UpdateInvalidateState();
1171
- }
1172
- }
1173
- } else {
1174
- std::string rule("nonzero");
1175
- canvas_native_context_fill(
1176
- this->GetContext(),
1177
- rust::Str(rule.c_str()));
1178
- this->UpdateInvalidateState();
1179
- }
1180
- return jsi::Value::undefined();
1181
- }
1182
- );
1183
- } else if (methodName == "fillRect") {
1184
- return jsi::Function::createFromHostFunction(runtime,
1185
- jsi::PropNameID::forAscii(runtime, methodName),
1186
- 4,
1187
- [this](jsi::Runtime &runtime,
1188
- const jsi::Value &thisValue,
1189
- const jsi::Value *arguments,
1190
- size_t count) -> jsi::Value {
1191
-
1192
- auto x = static_cast<float>(arguments[0].asNumber());
1193
- auto y = static_cast<float>(arguments[1].asNumber());
1194
- auto width = static_cast<float>(arguments[2].asNumber());
1195
- auto height = static_cast<float>(arguments[3].asNumber());
1196
- canvas_native_context_fill_rect(
1197
- this->GetContext(), x, y, width,
1198
- height);
1199
- this->UpdateInvalidateState();
1200
-
1201
- return jsi::Value::undefined();
1202
- }
1203
- );
1204
- } else if (methodName == "fillText") {
1205
- return jsi::Function::createFromHostFunction(runtime,
1206
- jsi::PropNameID::forAscii(runtime, methodName),
1207
- 4,
1208
- [this](jsi::Runtime &runtime,
1209
- const jsi::Value &thisValue,
1210
- const jsi::Value *arguments,
1211
- size_t count) -> jsi::Value {
1212
-
1213
- auto text = arguments[0].asString(
1214
- runtime).utf8(
1215
- runtime);
1216
- auto x = static_cast<float>(arguments[1].asNumber());
1217
- auto y = static_cast<float>(arguments[2].asNumber());
1218
- float width = -1;
1219
- if (arguments[3].isNumber()) {
1220
- width = static_cast<float>(arguments[3].asNumber());
1221
- }
1222
- canvas_native_context_fill_text(
1223
- this->GetContext(),
1224
- rust::Str(text.c_str()), x,
1225
- y, width);
1226
- this->UpdateInvalidateState();
1227
-
1228
- return jsi::Value::undefined();
1229
- }
1230
- );
1231
- } else if (methodName == "getImageData") {
1232
- return jsi::Function::createFromHostFunction(runtime,
1233
- jsi::PropNameID::forAscii(runtime, methodName),
1234
- 4,
1235
- [this](jsi::Runtime &runtime,
1236
- const jsi::Value &thisValue,
1237
- const jsi::Value *arguments,
1238
- size_t count) -> jsi::Value {
1239
-
1240
- if (count == 4) {
1241
- auto sx = static_cast<float>(arguments[0].asNumber());
1242
- auto sy = static_cast<float>(arguments[1].asNumber());
1243
- auto sw = static_cast<float>(arguments[2].asNumber());
1244
- auto sh = static_cast<float>(arguments[3].asNumber());
1245
- auto data = canvas_native_context_get_image_data(
1246
- this->GetContext(), sx, sy, sw,
1247
- sh);
1248
- auto object = std::make_shared<ImageDataImpl>(
1249
- std::move(data));
1250
- return jsi::Object::createFromHostObject(
1251
- runtime, object);
1252
- }
1253
-
1254
- return jsi::Value::undefined();
1255
- }
1256
- );
1257
- } else if (methodName == "getLineDash") {
1258
- return jsi::Function::createFromHostFunction(runtime,
1259
- jsi::PropNameID::forAscii(runtime, methodName),
1260
- 4,
1261
- [this](jsi::Runtime &runtime,
1262
- const jsi::Value &thisValue,
1263
- const jsi::Value *arguments,
1264
- size_t count) -> jsi::Value {
1265
-
1266
- auto dash = canvas_native_context_get_line_dash(
1267
- this->GetContext());
1268
- auto size = dash.size();
1269
- auto array = jsi::Array(runtime, size);
1270
- for (int i = 0; i < size; ++i) {
1271
- array.setValueAtIndex(runtime, i,
1272
- jsi::Value(
1273
- (double) dash[i]));
1274
- }
1275
- return array;
1276
- }
1277
- );
1278
- } else if (methodName == "isPointInPath") {
1279
- return jsi::Function::createFromHostFunction(runtime,
1280
- jsi::PropNameID::forAscii(runtime, methodName),
1281
- 4,
1282
- [this](jsi::Runtime &runtime,
1283
- const jsi::Value &thisValue,
1284
- const jsi::Value *arguments,
1285
- size_t count) -> jsi::Value {
1286
-
1287
- if (count == 2) {
1288
- auto x = static_cast<float>(arguments[0].asNumber());
1289
- auto y = static_cast<float>(arguments[1].asNumber());
1290
- std::string rule("nonzero");
1291
- auto ret = canvas_native_context_is_point_in_path(
1292
- this->GetContext(), x, y,
1293
- rust::Str(rule.c_str()));
1294
- return {ret};
1295
- } else if (count == 3 &&
1296
- arguments[2].isString()) {
1297
- auto x = static_cast<float>(arguments[0].asNumber());
1298
- auto y = static_cast<float>(arguments[1].asNumber());
1299
- auto rule = arguments[2].asString(
1300
- runtime).utf8(runtime);
1301
- auto ret = canvas_native_context_is_point_in_path(
1302
- this->GetContext(), x, y,
1303
- rust::Str(rule.c_str()));
1304
- return {ret};
1305
- } else if (count == 4 &&
1306
- arguments[0].isObject() &&
1307
- arguments[3].isString()) {
1308
- auto path = getHostObject<Path2D>(
1309
- runtime, arguments[0]);
1310
- auto x = static_cast<float>(arguments[1].asNumber());
1311
- auto y = static_cast<float>(arguments[2].asNumber());
1312
- auto rule = arguments[3].asString(
1313
- runtime).utf8(runtime);
1314
-
1315
-
1316
- if (path != nullptr) {
1317
- auto ret = canvas_native_context_is_point_in_path_with_path(
1318
- this->GetContext(),
1319
- path->GetPath(), x, y,
1320
- rust::Str(rule.c_str()));
1321
- return {ret};
1322
- }
1323
- }
1324
-
1325
- return {false};
1326
-
1327
- }
1328
- );
1329
- } else if (methodName == "isPointInStroke") {
1330
- return jsi::Function::createFromHostFunction(runtime,
1331
- jsi::PropNameID::forAscii(runtime, methodName),
1332
- 3,
1333
- [this](jsi::Runtime &runtime,
1334
- const jsi::Value &thisValue,
1335
- const jsi::Value *arguments,
1336
- size_t count) -> jsi::Value {
1337
-
1338
- if (count == 2) {
1339
- auto x = static_cast<float>(arguments[0].asNumber());
1340
- auto y = static_cast<float>(arguments[1].asNumber());
1341
- auto ret = canvas_native_context_is_point_in_stroke(
1342
- this->GetContext(), x, y);
1343
- return {ret};
1344
- } else if (count == 3 &&
1345
- arguments[0].isObject()) {
1346
- auto path = getHostObject<Path2D>(
1347
- runtime, arguments[0]);
1348
- auto x = static_cast<float>(arguments[1].asNumber());
1349
- auto y = static_cast<float>(arguments[2].asNumber());
1350
- if (path != nullptr) {
1351
- auto ret = canvas_native_context_is_point_in_stroke_with_path(
1352
- this->GetContext(),
1353
- path->GetPath(), x,
1354
- y);
1355
- return {ret};
1356
- }
1357
- }
1358
-
1359
- return {false};
1360
-
1361
- }
1362
- );
1363
- } else if (methodName == "lineTo") {
1364
- return jsi::Function::createFromHostFunction(runtime,
1365
- jsi::PropNameID::forAscii(runtime, methodName),
1366
- 2,
1367
- [this](jsi::Runtime &runtime,
1368
- const jsi::Value &thisValue,
1369
- const jsi::Value *arguments,
1370
- size_t count) -> jsi::Value {
1371
-
1372
- if (count > 1) {
1373
- auto x = static_cast<float>(arguments[0].asNumber());
1374
- auto y = static_cast<float>(arguments[1].asNumber());
1375
- canvas_native_context_line_to(
1376
- this->GetContext(), x, y);
1377
- }
1378
-
1379
- return jsi::Value::undefined();
1380
-
1381
- }
1382
- );
1383
- } else if (methodName == "measureText") {
1384
- return jsi::Function::createFromHostFunction(runtime,
1385
- jsi::PropNameID::forAscii(runtime, methodName),
1386
- 2,
1387
- [this](jsi::Runtime &runtime,
1388
- const jsi::Value &thisValue,
1389
- const jsi::Value *arguments,
1390
- size_t count) -> jsi::Value {
1391
-
1392
- auto text = arguments[0].asString(
1393
- runtime).utf8(
1394
- runtime);
1395
- auto metrics = canvas_native_context_measure_text(
1396
- this->GetContext(),
1397
- rust::Str(text.c_str()));
1398
-
1399
- auto object = std::make_shared<TextMetricsImpl>(
1400
- std::move(metrics));
1401
-
1402
- return jsi::Object::createFromHostObject(
1403
- runtime, object);
1404
- }
1405
- );
1406
- } else if (methodName == "moveTo") {
1407
- return jsi::Function::createFromHostFunction(runtime,
1408
- jsi::PropNameID::forAscii(runtime, methodName),
1409
- 2,
1410
- [this](jsi::Runtime &runtime,
1411
- const jsi::Value &thisValue,
1412
- const jsi::Value *arguments,
1413
- size_t count) -> jsi::Value {
1414
-
1415
- if (count > 1) {
1416
- auto x = static_cast<float>(arguments[0].asNumber());
1417
- auto y = static_cast<float>(arguments[1].asNumber());
1418
- canvas_native_context_move_to(
1419
- this->GetContext(), x, y);
1420
- }
1421
-
1422
- return jsi::Value::undefined();
1423
-
1424
- }
1425
- );
1426
- } else if (methodName == "putImageData") {
1427
- return jsi::Function::createFromHostFunction(runtime,
1428
- jsi::PropNameID::forAscii(runtime, methodName),
1429
- 7,
1430
- [this](jsi::Runtime &runtime,
1431
- const jsi::Value &thisValue,
1432
- const jsi::Value *arguments,
1433
- size_t count) -> jsi::Value {
1434
-
1435
- auto imageData = getHostObject<ImageDataImpl>(
1436
- runtime, arguments[0]);
1437
- if (count == 3) {
1438
- auto dx = static_cast<float>(arguments[1].asNumber());
1439
- auto dy = static_cast<float>(arguments[2].asNumber());
1440
- float dirtyX = 0;
1441
- float dirtyY = 0;
1442
- auto dirtyWidth = (float) canvas_native_image_data_get_width(
1443
- imageData->GetImageData());
1444
- auto dirtyHeight = (float) canvas_native_image_data_get_height(
1445
- imageData->GetImageData());
1446
- canvas_native_context_put_image_data(
1447
- this->GetContext(),
1448
- imageData->GetImageData(), dx,
1449
- dy, dirtyX, dirtyY,
1450
- dirtyWidth, dirtyHeight);
1451
- this->UpdateInvalidateState();
1452
- } else if (count == 7) {
1453
- auto dx = static_cast<float>(arguments[1].asNumber());
1454
- auto dy = static_cast<float>(arguments[2].asNumber());
1455
- auto dirtyX = static_cast<float>(arguments[3].asNumber());
1456
- auto dirtyY = static_cast<float>(arguments[4].asNumber());
1457
- auto dirtyWidth = static_cast<float>(arguments[5].asNumber());
1458
- auto dirtyHeight = static_cast<float>(arguments[6].asNumber());
1459
- canvas_native_context_put_image_data(
1460
- this->GetContext(),
1461
- imageData->GetImageData(), dx,
1462
- dy, dirtyX, dirtyY,
1463
- dirtyWidth, dirtyHeight);
1464
- this->UpdateInvalidateState();
1465
- }
1466
-
1467
- return jsi::Value::undefined();
1468
-
1469
- }
1470
- );
1471
- } else if (methodName == "quadraticCurveTo") {
1472
- return jsi::Function::createFromHostFunction(runtime,
1473
- jsi::PropNameID::forAscii(runtime, methodName),
1474
- 4,
1475
- [this](jsi::Runtime &runtime,
1476
- const jsi::Value &thisValue,
1477
- const jsi::Value *arguments,
1478
- size_t count) -> jsi::Value {
1479
-
1480
- if (count == 4) {
1481
- auto cpx = static_cast<float>(arguments[0].asNumber());
1482
- auto cpy = static_cast<float>(arguments[1].asNumber());
1483
- auto x = static_cast<float>(arguments[2].asNumber());
1484
- auto y = static_cast<float>(arguments[3].asNumber());
1485
- canvas_native_context_quadratic_curve_to(
1486
- this->GetContext(), cpx, cpy,
1487
- x, y);
1488
- }
1489
-
1490
- return jsi::Value::undefined();
1491
-
1492
- }
1493
- );
1494
- } else if (methodName == "roundRect") {
1495
- return jsi::Function::createFromHostFunction(runtime,
1496
- jsi::PropNameID::forAscii(runtime, methodName),
1497
- 4,
1498
- [this](jsi::Runtime &runtime,
1499
- const jsi::Value &thisValue,
1500
- const jsi::Value *arguments,
1501
- size_t count) -> jsi::Value {
1502
-
1503
- if (count == 5) {
1504
- auto x = static_cast<float>(arguments[0].asNumber());
1505
- auto y = static_cast<float>(arguments[1].asNumber());
1506
- auto width = static_cast<float>(arguments[2].asNumber());
1507
- auto height = static_cast<float>(arguments[3].asNumber());
1508
- if (arguments[4].isObject()) {
1509
- auto radii = arguments[4].asObject(
1510
- runtime);
1511
- if (radii.isArray(runtime)) {
1512
- auto array = radii.getArray(
1513
- runtime);
1514
- auto size = array.size(
1515
- runtime);
1516
- if (size > 1) {
1517
- rust::Vec<float> store;
1518
- store.reserve(size);
1519
- for (int i = 0;
1520
- i < size; i++) {
1521
- store[i] = (float) array.getValueAtIndex(
1522
- runtime,
1523
- i).asNumber();
1524
- }
1525
-
1526
- rust::Slice<const float> buf(
1527
- store.data(),
1528
- store.size());
1529
- canvas_native_context_round_rect(
1530
- this->GetContext(),
1531
- x, y,
1532
- width,
1533
- height, buf);
1534
-
1535
- }
1536
- }
1537
- } else {
1538
- auto radii = (float) arguments[4].asNumber();
1539
- canvas_native_context_round_rect_tl_tr_br_bl(
1540
- this->GetContext(), x, y,
1541
- width,
1542
- height, radii, radii,
1543
- radii, radii);
1544
-
1545
- }
1546
- }
1547
-
1548
- return jsi::Value::undefined();
1549
-
1550
- }
1551
- );
1552
- } else if (methodName == "rect") {
1553
- return jsi::Function::createFromHostFunction(runtime,
1554
- jsi::PropNameID::forAscii(runtime, methodName),
1555
- 4,
1556
- [this](jsi::Runtime &runtime,
1557
- const jsi::Value &thisValue,
1558
- const jsi::Value *arguments,
1559
- size_t count) -> jsi::Value {
1560
-
1561
- if (count == 4) {
1562
- auto x = static_cast<float>(arguments[0].asNumber());
1563
- auto y = static_cast<float>(arguments[1].asNumber());
1564
- auto width = static_cast<float>(arguments[2].asNumber());
1565
- auto height = static_cast<float>(arguments[3].asNumber());
1566
- canvas_native_context_rect(
1567
- this->GetContext(), x, y,
1568
- width,
1569
- height);
1570
- }
1571
-
1572
- return jsi::Value::undefined();
1573
-
1574
- }
1575
- );
1576
- } else if (methodName == "removeHitRegion") {
1577
- return jsi::Function::createFromHostFunction(runtime,
1578
- jsi::PropNameID::forAscii(runtime, methodName),
1579
- 0,
1580
- [](jsi::Runtime &runtime,
1581
- const jsi::Value &thisValue,
1582
- const jsi::Value *arguments,
1583
- size_t count) -> jsi::Value {
1584
-
1585
- return jsi::Value::undefined();
1586
-
1587
- }
1588
- );
1589
- } else if (methodName == "resetTransform") {
1590
- return jsi::Function::createFromHostFunction(runtime,
1591
- jsi::PropNameID::forAscii(runtime, methodName),
1592
- 0,
1593
- [this](jsi::Runtime &runtime,
1594
- const jsi::Value &thisValue,
1595
- const jsi::Value *arguments,
1596
- size_t count) -> jsi::Value {
1597
- canvas_native_context_reset_transform(
1598
- this->GetContext());
1599
- return jsi::Value::undefined();
1600
-
1601
- }
1602
- );
1603
- } else if (methodName == "restore") {
1604
- return jsi::Function::createFromHostFunction(runtime,
1605
- jsi::PropNameID::forAscii(runtime, methodName),
1606
- 0,
1607
- [this](jsi::Runtime &runtime,
1608
- const jsi::Value &thisValue,
1609
- const jsi::Value *arguments,
1610
- size_t count) -> jsi::Value {
1611
- canvas_native_context_restore(
1612
- this->GetContext());
1613
- return jsi::Value::undefined();
1614
-
1615
- }
1616
- );
1617
- } else if (methodName == "rotate") {
1618
- return jsi::Function::createFromHostFunction(runtime,
1619
- jsi::PropNameID::forAscii(runtime, methodName),
1620
- 1,
1621
- [this](jsi::Runtime &runtime,
1622
- const jsi::Value &thisValue,
1623
- const jsi::Value *arguments,
1624
- size_t count) -> jsi::Value {
1625
-
1626
- if (count == 1 &&
1627
- arguments[0].isNumber()) {
1628
- canvas_native_context_rotate(
1629
- this->GetContext(),
1630
- (float) arguments[0].asNumber());
1631
- }
1632
-
1633
- return jsi::Value::undefined();
1634
-
1635
- }
1636
- );
1637
- } else if (methodName == "save") {
1638
- return jsi::Function::createFromHostFunction(runtime,
1639
- jsi::PropNameID::forAscii(runtime, methodName),
1640
- 0,
1641
- [this](jsi::Runtime &runtime,
1642
- const jsi::Value &thisValue,
1643
- const jsi::Value *arguments,
1644
- size_t count) -> jsi::Value {
1645
- canvas_native_context_save(
1646
- this->GetContext());
1647
- return jsi::Value::undefined();
1648
-
1649
- }
1650
- );
1651
- } else if (methodName == "scale") {
1652
- return jsi::Function::createFromHostFunction(runtime,
1653
- jsi::PropNameID::forAscii(runtime, methodName),
1654
- 2,
1655
- [this](jsi::Runtime &runtime,
1656
- const jsi::Value &thisValue,
1657
- const jsi::Value *arguments,
1658
- size_t count) -> jsi::Value {
1659
-
1660
- if (count == 2) {
1661
- auto x = static_cast<float>(arguments[0].asNumber());
1662
- auto y = static_cast<float>(arguments[1].asNumber());
1663
- canvas_native_context_scale(
1664
- this->GetContext(), x, y);
1665
- }
1666
-
1667
- return jsi::Value::undefined();
1668
- }
1669
- );
1670
- } else if (methodName == "scrollPathIntoView") {
1671
- return jsi::Function::createFromHostFunction(runtime,
1672
- jsi::PropNameID::forAscii(runtime, methodName),
1673
- 0,
1674
- [](jsi::Runtime &runtime,
1675
- const jsi::Value &thisValue,
1676
- const jsi::Value *arguments,
1677
- size_t count) -> jsi::Value {
1678
- return jsi::Value::undefined();
1679
-
1680
- }
1681
- );
1682
- } else if (methodName == "setLineDash") {
1683
- return jsi::Function::createFromHostFunction(runtime,
1684
- jsi::PropNameID::forAscii(runtime, methodName),
1685
- 1,
1686
- [this](jsi::Runtime &runtime,
1687
- const jsi::Value &thisValue,
1688
- const jsi::Value *arguments,
1689
- size_t count) -> jsi::Value {
1690
-
1691
- if (count == 1 &&
1692
- arguments[0].isObject()) {
1693
- auto vecObject = arguments[0].asObject(
1694
- runtime);
1695
- if (vecObject.isArray(
1696
- runtime)) {
1697
- auto segments = vecObject.getArray(
1698
- runtime);
1699
- auto len = segments.size(runtime);
1700
- std::vector<float> data;
1701
- for (int i = 0; i < len; ++i) {
1702
- auto item = segments.getValueAtIndex(
1703
- runtime, i);
1704
- data.push_back(
1705
- static_cast<float>(item.asNumber()));
1706
- }
1707
- rust::Slice<const float> slice{
1708
- data.data(), data.size()};
1709
- canvas_native_context_set_line_dash(
1710
- this->GetContext(), slice);
1711
- }
1712
- }
1713
- return jsi::Value::undefined();
1714
-
1715
- }
1716
- );
1717
- } else if (methodName == "setTransform") {
1718
- return jsi::Function::createFromHostFunction(runtime,
1719
- jsi::PropNameID::forAscii(runtime, methodName),
1720
- 6,
1721
- [this](jsi::Runtime &runtime,
1722
- const jsi::Value &thisValue,
1723
- const jsi::Value *arguments,
1724
- size_t count) -> jsi::Value {
1725
-
1726
-
1727
- if (count == 1 &&
1728
- arguments[0].isObject()) {
1729
- auto matrix = getHostObject<MatrixImpl>(
1730
- runtime, arguments[0]);
1731
- if (matrix != nullptr) {
1732
- canvas_native_context_set_transform_matrix(
1733
- this->GetContext(),
1734
- matrix->GetMatrix());
1735
- }
1736
- } else if (count == 6) {
1737
- auto a = static_cast<float>(arguments[0].asNumber());
1738
- auto b = static_cast<float>(arguments[1].asNumber());
1739
- auto c = static_cast<float>(arguments[2].asNumber());
1740
- auto d = static_cast<float>(arguments[3].asNumber());
1741
- auto e = static_cast<float>(arguments[4].asNumber());
1742
- auto f = static_cast<float>(arguments[5].asNumber());
1743
- canvas_native_context_set_transform(
1744
- this->GetContext(), a, b, c, d,
1745
- e,
1746
- f);
1747
- }
1748
-
1749
- return jsi::Value::undefined();
1750
-
1751
- }
1752
- );
1753
- } else if (methodName == "stroke") {
1754
- return jsi::Function::createFromHostFunction(runtime,
1755
- jsi::PropNameID::forAscii(runtime, methodName),
1756
- 1,
1757
- [this](jsi::Runtime &runtime,
1758
- const jsi::Value &thisValue,
1759
- const jsi::Value *arguments,
1760
- size_t count) -> jsi::Value {
1761
-
1762
- if (count == 1 &&
1763
- arguments[0].isObject()) {
1764
- auto path = getHostObject<Path2D>(
1765
- runtime, arguments[0]);
1766
- if (path != nullptr) {
1767
- canvas_native_context_stroke_with_path(
1768
- this->GetContext(),
1769
- path->GetPath());
1770
- this->UpdateInvalidateState();
1771
- }
1772
- } else {
1773
- canvas_native_context_stroke(
1774
- this->GetContext());
1775
- this->UpdateInvalidateState();
1776
- }
1777
-
1778
- return jsi::Value::undefined();
1779
-
1780
- }
1781
- );
1782
- } else if (methodName == "strokeRect") {
1783
- return jsi::Function::createFromHostFunction(runtime,
1784
- jsi::PropNameID::forAscii(runtime, methodName),
1785
- 4,
1786
- [this](jsi::Runtime &runtime,
1787
- const jsi::Value &thisValue,
1788
- const jsi::Value *arguments,
1789
- size_t count) -> jsi::Value {
1790
-
1791
- if (count == 4) {
1792
- auto x = static_cast<float>(arguments[0].asNumber());
1793
- auto y = static_cast<float>(arguments[1].asNumber());
1794
- auto width = static_cast<float>(arguments[2].asNumber());
1795
- auto height = static_cast<float>(arguments[3].asNumber());
1796
- canvas_native_context_stroke_rect(
1797
- this->GetContext(), x, y,
1798
- width,
1799
- height);
1800
- this->UpdateInvalidateState();
1801
- }
1802
-
1803
- return jsi::Value::undefined();
1804
-
1805
- }
1806
- );
1807
- } else if (methodName == "strokeText") {
1808
- return jsi::Function::createFromHostFunction(runtime,
1809
- jsi::PropNameID::forAscii(runtime, methodName),
1810
- 4,
1811
- [this](jsi::Runtime &runtime,
1812
- const jsi::Value &thisValue,
1813
- const jsi::Value *arguments,
1814
- size_t count) -> jsi::Value {
1815
-
1816
- if (count >= 3) {
1817
- auto text = arguments[0].asString(
1818
- runtime).utf8(runtime);
1819
- auto x = static_cast<float>(arguments[1].asNumber());
1820
- auto y = static_cast<float>(arguments[2].asNumber());
1821
- float maxWidth = -1;
1822
-
1823
- if (count > 3) {
1824
- maxWidth = static_cast<float>(arguments[3].asNumber());
1825
- }
1826
-
1827
- canvas_native_context_stroke_text(
1828
- this->GetContext(),
1829
- rust::Str(text.c_str()),
1830
- x, y, maxWidth);
1831
- this->UpdateInvalidateState();
1832
- }
1833
- return jsi::Value::undefined();
1834
-
1835
- }
1836
- );
1837
- } else if (methodName == "transform") {
1838
- return jsi::Function::createFromHostFunction(runtime,
1839
- jsi::PropNameID::forAscii(runtime, methodName),
1840
- 6,
1841
- [this](jsi::Runtime &runtime,
1842
- const jsi::Value &thisValue,
1843
- const jsi::Value *arguments,
1844
- size_t count) -> jsi::Value {
1845
-
1846
- if (count == 6) {
1847
- auto a = static_cast<float>(arguments[0].asNumber());
1848
- auto b = static_cast<float>(arguments[1].asNumber());
1849
- auto c = static_cast<float>(arguments[2].asNumber());
1850
- auto d = static_cast<float>(arguments[3].asNumber());
1851
- auto e = static_cast<float>(arguments[4].asNumber());
1852
- auto f = static_cast<float>(arguments[5].asNumber());
1853
- canvas_native_context_transform(
1854
- this->GetContext(), a, b, c, d,
1855
- e,
1856
- f);
1857
- }
1858
-
1859
- return jsi::Value::undefined();
1860
-
1861
- }
1862
- );
1863
- } else if (methodName == "translate") {
1864
- return jsi::Function::createFromHostFunction(runtime,
1865
- jsi::PropNameID::forAscii(runtime, methodName),
1866
- 2,
1867
- [this](jsi::Runtime &runtime,
1868
- const jsi::Value &thisValue,
1869
- const jsi::Value *arguments,
1870
- size_t count) -> jsi::Value {
1871
-
1872
- if (count == 2) {
1873
- auto x = static_cast<float>(arguments[0].asNumber());
1874
- auto y = static_cast<float>(arguments[1].asNumber());
1875
- canvas_native_context_translate(
1876
- this->GetContext(), x, y);
1877
- }
1878
-
1879
- return jsi::Value::undefined();
1880
-
1881
- }
1882
- );
1883
- } else if (methodName == "__toDataURL") {
1884
-
1885
- return jsi::Function::createFromHostFunction(runtime,
1886
- jsi::PropNameID::forAscii(runtime, methodName),
1887
- 2,
1888
- [this](jsi::Runtime &runtime,
1889
- const jsi::Value &thisValue,
1890
- const jsi::Value *arguments,
1891
- size_t count) -> jsi::Value {
1892
-
1893
- auto format = arguments[0].asString(
1894
- runtime).utf8(
1895
- runtime);
1896
- auto quality = static_cast<int>(arguments[1].getNumber());
1897
-
1898
-
1899
-
1900
- // auto data = canvas_native_to_data_url(
1901
- // this->GetContext(), rust::Str(format.c_str()),quality);
1902
-
1903
-
1904
- auto data = canvas_native_to_data_url_c_string(this->GetContext(), format.c_str(),quality);
1905
- return jsi::String::createFromAscii(
1906
- runtime,
1907
- data.data(),
1908
- data.size());
1909
- }
1910
- );
1911
- }
1912
-
1913
-
1914
- return jsi::Value::undefined();
1915
- }
1916
-
1917
- CanvasRenderingContext2DImpl::~CanvasRenderingContext2DImpl() {
1918
- auto raf = this->raf_.get();
1919
- if (raf != nullptr) {
1920
- canvas_native_raf_stop(raf->GetRaf());
1921
- }
1922
- }
1923
-
1924
- void CanvasRenderingContext2DImpl::UpdateInvalidateState() {
1925
- auto raf = this->GetRaf();
1926
- if (raf != nullptr) {
1927
- if (!canvas_native_raf_get_started(raf->GetRaf())) {
1928
- canvas_native_raf_start(raf->GetRaf());
1929
- }
1930
- }
1931
-
1932
- auto state = this->GetInvalidateState();
1933
- this->SetInvalidateState((int) state | (int) InvalidateState::PENDING);
1934
- }
1935
-
1936
- InvalidateState CanvasRenderingContext2DImpl::GetInvalidateState() const {
1937
- return (InvalidateState)
1938
- this->invalidateState_;
1939
- }
1940
-
1941
- void CanvasRenderingContext2DImpl::SetInvalidateState(InvalidateState state) {
1942
- this->invalidateState_ = (int) state;
1943
- }
1944
-
1945
- void CanvasRenderingContext2DImpl::SetInvalidateState(int state) {
1946
- this->invalidateState_ = state;
1947
- }
1948
-
1949
-
1950
- void CanvasRenderingContext2DImpl::Flush() {
1951
- auto state = (int) this->GetInvalidateState() & (int) InvalidateState::PENDING;
1952
- if (state == (int) InvalidateState::PENDING) {
1953
- // canvas_native_context_flush(this->GetContext());
1954
- this->SetInvalidateState(InvalidateState::INVALIDATING);
1955
- canvas_native_context_render(this->GetContext());
1956
- // canvas_native_context_gl_make_current(this->GetContext());
1957
- // canvas_native_context_gl_swap_buffers(this->GetContext());
1958
- this->SetInvalidateState(InvalidateState::NONE);
1959
- }
1960
- }
1961
-
1962
- void CanvasRenderingContext2DImpl::Flush(intptr_t context) {
1963
- auto ctx = reinterpret_cast<CanvasRenderingContext2DImpl *>(reinterpret_cast<intptr_t *>(context));
1964
- if (ctx != nullptr) {
1965
- ctx->Flush();
1966
- }
1967
- }
1968
-
1969
-
1970
- CanvasRenderingContext2D &CanvasRenderingContext2DImpl::GetContext() {
1971
- return *this->context_;
1972
- }