@nativescript/canvas 2.0.0-alpha.20 → 2.0.0-alpha.21

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 (234) hide show
  1. package/Canvas/common.d.ts +2 -0
  2. package/Canvas/common.js +6 -0
  3. package/Canvas/common.js.map +1 -1
  4. package/Canvas/index.android.d.ts +0 -2
  5. package/Canvas/index.android.js +8 -22
  6. package/Canvas/index.android.js.map +1 -1
  7. package/Canvas/index.d.ts +7 -0
  8. package/Canvas/index.ios.d.ts +0 -2
  9. package/Canvas/index.ios.js +7 -26
  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 +0 -2
  18. package/Canvas2D/CanvasRenderingContext2D/index.js +120 -138
  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 +5 -5
  23. package/Canvas2D/ImageData/index.js.map +1 -1
  24. package/Canvas2D/Path2D/index.d.ts +0 -2
  25. package/Canvas2D/Path2D/index.js +34 -39
  26. package/Canvas2D/Path2D/index.js.map +1 -1
  27. package/ImageAsset/index.d.ts +2 -2
  28. package/ImageAsset/index.js +33 -37
  29. package/ImageAsset/index.js.map +1 -1
  30. package/ImageBitmap/index.d.ts +0 -2
  31. package/ImageBitmap/index.js +23 -29
  32. package/ImageBitmap/index.js.map +1 -1
  33. package/SVG/SVG.js +1 -1
  34. package/TextDecoder/index.d.ts +0 -2
  35. package/TextDecoder/index.js +3 -12
  36. package/TextDecoder/index.js.map +1 -1
  37. package/TextEncoder/index.d.ts +0 -2
  38. package/TextEncoder/index.js +4 -13
  39. package/TextEncoder/index.js.map +1 -1
  40. package/WebGL/WebGLExtensions/index.d.ts +0 -9
  41. package/WebGL/WebGLExtensions/index.js +17 -74
  42. package/WebGL/WebGLExtensions/index.js.map +1 -1
  43. package/WebGL/WebGLRenderingContext/common.d.ts +0 -2
  44. package/WebGL/WebGLRenderingContext/common.js +0 -10
  45. package/WebGL/WebGLRenderingContext/common.js.map +1 -1
  46. package/WebGL/WebGLRenderingContext/index.js +159 -298
  47. package/WebGL/WebGLRenderingContext/index.js.map +1 -1
  48. package/WebGL2/WebGL2RenderingContext/index.js +107 -195
  49. package/WebGL2/WebGL2RenderingContext/index.js.map +1 -1
  50. package/angular/esm2020/index.mjs +5 -5
  51. package/angular/fesm2015/nativescript-canvas-angular.mjs +4 -4
  52. package/angular/fesm2015/nativescript-canvas-angular.mjs.map +1 -1
  53. package/angular/fesm2020/nativescript-canvas-angular.mjs +4 -4
  54. package/angular/fesm2020/nativescript-canvas-angular.mjs.map +1 -1
  55. package/index.js.map +1 -1
  56. package/package.json +1 -1
  57. package/platforms/android/canvas-release.aar +0 -0
  58. package/platforms/android/include.gradle +15 -0
  59. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative +0 -0
  60. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/CanvasNative-Swift.h +87 -57
  61. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/CanvasNative.h +10 -0
  62. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_ios.h +142 -0
  63. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_native.h +2589 -110
  64. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Info.plist +0 -0
  65. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  66. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json +1174 -89
  67. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.private.swiftinterface +2 -2
  68. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  69. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftinterface +2 -2
  70. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  71. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative +0 -0
  72. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/CanvasNative-Swift.h +174 -114
  73. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/CanvasNative.h +10 -0
  74. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_ios.h +142 -0
  75. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_native.h +2589 -110
  76. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Info.plist +0 -0
  77. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  78. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  79. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json +1174 -89
  80. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +2 -2
  81. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  82. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftinterface +2 -2
  83. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json +1174 -89
  84. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +2 -2
  85. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  86. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +2 -2
  87. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +42 -31
  88. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  89. package/platforms/ios/Podfile +3 -0
  90. package/platforms/ios/build.xcconfig +3 -3
  91. package/platforms/ios/src/CanvasModule.h +0 -2
  92. package/platforms/ios/src/CanvasModule.mm +4 -4
  93. package/platforms/ios/src/NSOperationQueueWrapper.h +11 -0
  94. package/platforms/ios/src/NSOperationQueueWrapper.mm +74 -0
  95. package/platforms/ios/src/cpp/Caches.cpp +35 -0
  96. package/platforms/ios/src/cpp/Caches.h +186 -0
  97. package/platforms/ios/src/cpp/CanvasJSIModule.cpp +1582 -0
  98. package/platforms/ios/src/cpp/CanvasJSIModule.h +7 -34
  99. package/platforms/ios/src/cpp/Common.h +30 -0
  100. package/platforms/ios/src/cpp/ConcurrentMap.h +54 -0
  101. package/platforms/ios/src/cpp/Helpers.h +304 -38
  102. package/platforms/ios/src/cpp/ImageAssetImpl.cpp +802 -0
  103. package/platforms/ios/src/cpp/ImageAssetImpl.h +44 -12
  104. package/platforms/ios/src/cpp/ImageBitmapImpl.cpp +189 -0
  105. package/platforms/ios/src/cpp/ImageBitmapImpl.h +22 -16
  106. package/platforms/ios/src/cpp/JSICallback.h +61 -5
  107. package/platforms/ios/src/cpp/JSIReadFileCallback.h +86 -6
  108. package/platforms/ios/src/cpp/JSIRuntime.cpp +21 -0
  109. package/platforms/ios/src/cpp/JSIRuntime.h +7 -0
  110. package/platforms/ios/src/cpp/OneByteStringResource.cpp +25 -0
  111. package/platforms/ios/src/cpp/OneByteStringResource.h +21 -0
  112. package/platforms/ios/src/cpp/RafImpl.cpp +8 -0
  113. package/platforms/ios/src/cpp/RafImpl.h +11 -8
  114. package/platforms/ios/src/cpp/TextDecoderImpl.cpp +188 -0
  115. package/platforms/ios/src/cpp/TextDecoderImpl.h +20 -14
  116. package/platforms/ios/src/cpp/TextEncoderImpl.cpp +139 -0
  117. package/platforms/ios/src/cpp/TextEncoderImpl.h +20 -11
  118. package/platforms/ios/src/cpp/canvas2d/CanvasGradient.cpp +71 -0
  119. package/platforms/ios/src/cpp/canvas2d/CanvasGradient.h +27 -13
  120. package/platforms/ios/src/cpp/canvas2d/CanvasPattern.cpp +89 -0
  121. package/platforms/ios/src/cpp/canvas2d/CanvasPattern.h +26 -13
  122. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.cpp +2402 -0
  123. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.h +264 -21
  124. package/platforms/ios/src/cpp/canvas2d/ImageDataImpl.cpp +203 -0
  125. package/platforms/ios/src/cpp/canvas2d/ImageDataImpl.h +26 -12
  126. package/platforms/ios/src/cpp/canvas2d/MatrixImpl.cpp +800 -0
  127. package/platforms/ios/src/cpp/canvas2d/MatrixImpl.h +172 -13
  128. package/platforms/ios/src/cpp/canvas2d/Path2D.cpp +449 -0
  129. package/platforms/ios/src/cpp/canvas2d/Path2D.h +41 -12
  130. package/platforms/ios/src/cpp/canvas2d/TextMetricsImpl.cpp +253 -0
  131. package/platforms/ios/src/cpp/canvas2d/TextMetricsImpl.h +50 -12
  132. package/platforms/ios/src/cpp/gl.h +57 -7
  133. package/platforms/ios/src/cpp/gl3stub.c +425 -0
  134. package/platforms/ios/src/cpp/gl3stub.h +665 -0
  135. package/platforms/ios/src/cpp/gles3jni.h +37 -0
  136. package/platforms/ios/src/cpp/include/robin_hood.h +2544 -0
  137. package/platforms/ios/src/cpp/webgl/WebGLActiveInfoImpl.cpp +93 -0
  138. package/platforms/ios/src/cpp/webgl/WebGLActiveInfoImpl.h +33 -13
  139. package/platforms/ios/src/cpp/webgl/WebGLBuffer.h +41 -6
  140. package/platforms/ios/src/cpp/webgl/WebGLFramebuffer.h +46 -10
  141. package/platforms/ios/src/cpp/webgl/WebGLProgram.h +40 -5
  142. package/platforms/ios/src/cpp/webgl/WebGLRenderbuffer.h +40 -6
  143. package/platforms/ios/src/cpp/webgl/WebGLRenderingContext.cpp +6691 -0
  144. package/platforms/ios/src/cpp/webgl/WebGLRenderingContext.h +261 -390
  145. package/platforms/ios/src/cpp/webgl/{WebGLRenderingContextBase.mm → WebGLRenderingContextBase.cpp} +17 -16
  146. package/platforms/ios/src/cpp/webgl/WebGLRenderingContextBase.h +15 -36
  147. package/platforms/ios/src/cpp/webgl/WebGLShader.h +40 -6
  148. package/platforms/ios/src/cpp/webgl/WebGLShaderPrecisionFormatImpl.cpp +50 -0
  149. package/platforms/ios/src/cpp/webgl/WebGLShaderPrecisionFormatImpl.h +66 -11
  150. package/platforms/ios/src/cpp/webgl/WebGLTexture.h +40 -6
  151. package/platforms/ios/src/cpp/webgl/WebGLUniformLocation.h +44 -8
  152. package/platforms/ios/src/cpp/webgl/extensions/ANGLE_instanced_arraysImpl.cpp +126 -0
  153. package/platforms/ios/src/cpp/webgl/extensions/ANGLE_instanced_arraysImpl.h +25 -12
  154. package/platforms/ios/src/cpp/webgl/extensions/EXT_blend_minmaxImpl.cpp +35 -0
  155. package/platforms/ios/src/cpp/webgl/extensions/EXT_blend_minmaxImpl.h +25 -5
  156. package/platforms/ios/src/cpp/webgl/extensions/EXT_color_buffer_half_floatImpl.cpp +41 -0
  157. package/platforms/ios/src/cpp/webgl/extensions/EXT_color_buffer_half_floatImpl.h +25 -5
  158. package/platforms/ios/src/cpp/webgl/extensions/EXT_disjoint_timer_queryImpl.cpp +323 -0
  159. package/platforms/ios/src/cpp/webgl/extensions/EXT_disjoint_timer_queryImpl.h +47 -13
  160. package/platforms/ios/src/cpp/webgl/extensions/EXT_sRGBImpl.h +49 -6
  161. package/platforms/ios/src/cpp/webgl/extensions/EXT_shader_texture_lodImpl.h +37 -15
  162. package/platforms/ios/src/cpp/webgl/extensions/EXT_texture_filter_anisotropicImpl.h +47 -6
  163. package/platforms/ios/src/cpp/webgl/extensions/OES_element_index_uintImpl.h +49 -6
  164. package/platforms/ios/src/cpp/webgl/extensions/OES_fbo_render_mipmap.h +36 -15
  165. package/platforms/ios/src/cpp/webgl/extensions/OES_standard_derivativesImpl.h +44 -6
  166. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_floatImpl.h +38 -15
  167. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_float_linearImpl.h +37 -16
  168. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_half_floatImpl.h +41 -6
  169. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_half_float_linearImpl.h +40 -16
  170. package/platforms/ios/src/cpp/webgl/extensions/OES_vertex_array_objectImpl.cpp +102 -0
  171. package/platforms/ios/src/cpp/webgl/extensions/OES_vertex_array_objectImpl.h +69 -14
  172. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_color_buffer_floatImpl.h +51 -8
  173. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_atcImpl.h +49 -6
  174. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_etc1Impl.h +49 -8
  175. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_etcImpl.h +76 -6
  176. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_pvrtcImpl.h +57 -6
  177. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_s3tcImpl.h +53 -6
  178. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_s3tc_srgbImpl.h +59 -6
  179. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_depth_textureImpl.h +46 -6
  180. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_draw_buffersImpl.cpp +43 -0
  181. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_draw_buffersImpl.h +126 -14
  182. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_lose_contextImpl.cpp +32 -0
  183. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_lose_contextImpl.h +61 -12
  184. package/platforms/ios/src/cpp/webgl2/WebGL2RenderingContext.cpp +4517 -0
  185. package/platforms/ios/src/cpp/webgl2/WebGL2RenderingContext.h +139 -343
  186. package/platforms/ios/src/cpp/webgl2/WebGLQuery.h +40 -4
  187. package/platforms/ios/src/cpp/webgl2/WebGLSampler.h +42 -3
  188. package/platforms/ios/src/cpp/webgl2/WebGLSyncImpl.h +44 -11
  189. package/platforms/ios/src/cpp/webgl2/WebGLTransformFeedback.h +42 -4
  190. package/platforms/ios/src/cpp/webgl2/WebGLVertexArrayObject.h +43 -4
  191. package/platforms/ios/src/module.modulemap +1 -0
  192. package/platforms/ios/src/cpp/CanvasJSIModule.mm +0 -1105
  193. package/platforms/ios/src/cpp/ImageAssetImpl.mm +0 -417
  194. package/platforms/ios/src/cpp/ImageBitmapImpl.mm +0 -126
  195. package/platforms/ios/src/cpp/RafImpl.mm +0 -10
  196. package/platforms/ios/src/cpp/TextDecoderImpl.mm +0 -97
  197. package/platforms/ios/src/cpp/TextEncoderImpl.mm +0 -60
  198. package/platforms/ios/src/cpp/VecMutableBuffer.h +0 -46
  199. package/platforms/ios/src/cpp/canvas-cxx/src/lib.rs.cc +0 -6156
  200. package/platforms/ios/src/cpp/canvas-cxx/src/lib.rs.h +0 -2867
  201. package/platforms/ios/src/cpp/canvas2d/CanvasGradient.mm +0 -42
  202. package/platforms/ios/src/cpp/canvas2d/CanvasPattern.mm +0 -49
  203. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.mm +0 -1972
  204. package/platforms/ios/src/cpp/canvas2d/ImageDataImpl.mm +0 -68
  205. package/platforms/ios/src/cpp/canvas2d/MatrixImpl.mm +0 -149
  206. package/platforms/ios/src/cpp/canvas2d/Path2D.mm +0 -335
  207. package/platforms/ios/src/cpp/canvas2d/TextMetricsImpl.mm +0 -68
  208. package/platforms/ios/src/cpp/rust/cxx.cc +0 -793
  209. package/platforms/ios/src/cpp/rust/cxx.h +0 -1111
  210. package/platforms/ios/src/cpp/webgl/WebGLActiveInfoImpl.mm +0 -39
  211. package/platforms/ios/src/cpp/webgl/WebGLRenderingContext.mm +0 -5958
  212. package/platforms/ios/src/cpp/webgl/WebGLShaderPrecisionFormatImpl.mm +0 -40
  213. package/platforms/ios/src/cpp/webgl/extensions/ANGLE_instanced_arraysImpl.mm +0 -108
  214. package/platforms/ios/src/cpp/webgl/extensions/EXT_blend_minmaxImpl.mm +0 -28
  215. package/platforms/ios/src/cpp/webgl/extensions/EXT_color_buffer_half_floatImpl.mm +0 -42
  216. package/platforms/ios/src/cpp/webgl/extensions/EXT_disjoint_timer_queryImpl.mm +0 -295
  217. package/platforms/ios/src/cpp/webgl/extensions/EXT_sRGBImpl.mm +0 -40
  218. package/platforms/ios/src/cpp/webgl/extensions/EXT_texture_filter_anisotropicImpl.mm +0 -37
  219. package/platforms/ios/src/cpp/webgl/extensions/OES_element_index_uintImpl.mm +0 -28
  220. package/platforms/ios/src/cpp/webgl/extensions/OES_standard_derivativesImpl.mm +0 -31
  221. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_half_floatImpl.mm +0 -28
  222. package/platforms/ios/src/cpp/webgl/extensions/OES_vertex_array_objectImpl.mm +0 -127
  223. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_color_buffer_floatImpl.mm +0 -45
  224. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_atcImpl.mm +0 -45
  225. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_etc1Impl.mm +0 -31
  226. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_etcImpl.mm +0 -70
  227. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_pvrtcImpl.mm +0 -47
  228. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_s3tcImpl.mm +0 -46
  229. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_s3tc_srgbImpl.mm +0 -49
  230. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_depth_textureImpl.mm +0 -30
  231. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_draw_buffersImpl.mm +0 -177
  232. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_lose_contextImpl.mm +0 -64
  233. package/platforms/ios/src/cpp/webgl2/WebGL2RenderingContext.mm +0 -4551
  234. /package/platforms/ios/src/cpp/{OnRafCallback.mm → OnRafCallback.cpp} +0 -0
@@ -1,417 +0,0 @@
1
- //
2
- // Created by Osei Fortune on 22/03/2022.
3
- //
4
-
5
- #include "ImageAssetImpl.h"
6
- #include <string>
7
- #include "JSICallback.h"
8
-
9
-
10
-
11
- ImageAssetImpl::ImageAssetImpl(rust::Box<ImageAsset> asset)
12
- : asset_(std::move(asset)) {
13
- }
14
-
15
- std::vector<jsi::PropNameID> ImageAssetImpl::getPropertyNames(jsi::Runtime &rt) {
16
- std::vector<jsi::PropNameID> ret;
17
- ret.reserve(12);
18
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("width")));
19
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("height")));
20
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("error")));
21
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("scale")));
22
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("fromUrlSync")));
23
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("fromUrlCb")));
24
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("fromFileSync")));
25
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("fromFileCb")));
26
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("fromBytesSync")));
27
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("fromBytesCb")));
28
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("saveSync")));
29
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("saveCb")));
30
- return ret;
31
- }
32
-
33
- jsi::Value ImageAssetImpl::get(jsi::Runtime &runtime, const jsi::PropNameID &name) {
34
- auto methodName = name.utf8(runtime);
35
- if (methodName == "width") {
36
- return {(double) canvas_native_image_asset_width(this->GetImageAsset())};
37
- } else if (methodName == "height") {
38
- return {(double) canvas_native_image_asset_height(this->GetImageAsset())};
39
- } else if (methodName == "error") {
40
- auto error = canvas_native_image_asset_get_error(this->GetImageAsset());
41
- return jsi::String::createFromAscii(runtime, error.data(), error.size());
42
- } else if (methodName == "scale") {
43
- return jsi::Function::createFromHostFunction(runtime,
44
- jsi::PropNameID::forAscii(runtime, methodName),
45
- 2,
46
- [this](jsi::Runtime &runtime,
47
- const jsi::Value &thisValue,
48
- const jsi::Value *arguments,
49
- size_t count) -> jsi::Value {
50
- if (count > 1) {
51
- auto x = (uint32_t) arguments[0].asNumber();
52
- auto y = (uint32_t) arguments[1].asNumber();
53
- if (x > 0 && y > 0) {
54
- canvas_native_image_asset_scale(
55
- this->GetImageAsset(), x,
56
- y);
57
- }
58
- }
59
-
60
-
61
- return jsi::Value::undefined();
62
- }
63
- );
64
- } else if (methodName == "fromUrlSync") {
65
- return jsi::Function::createFromHostFunction(runtime,
66
- jsi::PropNameID::forAscii(runtime, methodName),
67
- 1,
68
- [this](jsi::Runtime &runtime,
69
- const jsi::Value &thisValue,
70
- const jsi::Value *arguments,
71
- size_t count) -> jsi::Value {
72
-
73
- auto url = arguments[0].asString(
74
- runtime).utf8(runtime);
75
- auto done = canvas_native_image_asset_load_from_url(
76
- this->GetImageAsset(),
77
- rust::Str(url.c_str()));
78
- return {done};
79
- }
80
- );
81
- } else if (methodName == "fromUrlCb") {
82
- return jsi::Function::createFromHostFunction(runtime,
83
- jsi::PropNameID::forAscii(runtime, methodName),
84
- 2,
85
- [this](jsi::Runtime &runtime,
86
- const jsi::Value &thisValue,
87
- const jsi::Value *arguments,
88
- size_t count) -> jsi::Value {
89
-
90
- auto current_queue = NSOperationQueue.currentQueue;
91
-
92
- if (count < 2) {
93
- return jsi::Value::undefined();
94
- }
95
-
96
-
97
- auto url = arguments[0].asString(
98
- runtime).utf8(runtime);
99
-
100
- auto asset = canvas_native_image_asset_shared_clone(
101
- this->GetImageAsset());
102
-
103
- auto cb = std::make_shared<jsi::Value>(
104
- runtime, arguments[1]);
105
-
106
-
107
- auto jsi_callback = new JSICallback(
108
- std::shared_ptr<jsi::Value>(
109
- cb));
110
-
111
-
112
- auto queue = [NSOperationQueue new];
113
- [queue addOperationWithBlock:^{
114
- rust::Str asset_url(url.c_str());
115
-
116
- auto asset = canvas_native_image_asset_shared_clone(
117
- this->GetImageAsset());
118
-
119
- auto done = canvas_native_image_asset_load_from_url(
120
- this->GetImageAsset(), asset_url
121
- );
122
- [current_queue addOperationWithBlock:^{
123
-
124
-
125
-
126
-
127
- auto func = jsi_callback->value_->asObject(
128
- runtime).asFunction(
129
- runtime);
130
-
131
-
132
-
133
- func.call(runtime,
134
- jsi::Value(
135
- done));
136
-
137
- delete static_cast<JSICallback *>(jsi_callback);
138
- }];
139
- }];
140
- return jsi::Value::undefined();
141
- }
142
- );
143
- } else if (methodName == "fromFileSync") {
144
- return jsi::Function::createFromHostFunction(runtime,
145
- jsi::PropNameID::forAscii(runtime, methodName),
146
- 1,
147
- [this](jsi::Runtime &runtime,
148
- const jsi::Value &thisValue,
149
- const jsi::Value *arguments,
150
- size_t count) -> jsi::Value {
151
-
152
-
153
- auto path = arguments[0].asString(
154
- runtime).utf8(runtime);
155
-
156
- auto done = canvas_native_image_asset_load_from_path(
157
- this->GetImageAsset(),
158
- rust::Str(path.c_str()));
159
-
160
- return {done};
161
- }
162
- );
163
- } else if (methodName == "fromFileCb") {
164
- auto current_queue = NSOperationQueue.currentQueue;
165
- return jsi::Function::createFromHostFunction(runtime,
166
- jsi::PropNameID::forAscii(runtime, methodName),
167
- 2,
168
- [this, current_queue](jsi::Runtime &runtime,
169
- const jsi::Value &thisValue,
170
- const jsi::Value *arguments,
171
- size_t count) -> jsi::Value {
172
-
173
-
174
- auto path = arguments[0].asString(
175
- runtime).utf8(runtime);
176
-
177
-
178
-
179
- auto cb = std::make_shared<jsi::Value>(
180
- runtime, arguments[1]);
181
-
182
-
183
- auto jsi_callback = new JSICallback(
184
- std::shared_ptr<jsi::Value>(
185
- cb));
186
-
187
-
188
-
189
-
190
- auto queue = [NSOperationQueue new];
191
- [queue addOperationWithBlock:^{
192
- rust::Str asset_path(path.c_str());
193
-
194
- auto asset = canvas_native_image_asset_shared_clone(
195
- this->GetImageAsset());
196
-
197
- auto done = canvas_native_image_asset_load_from_path(
198
- this->GetImageAsset(), asset_path
199
- );
200
- [current_queue addOperationWithBlock:^{
201
-
202
-
203
-
204
-
205
- auto func = jsi_callback->value_->asObject(
206
- runtime).asFunction(
207
- runtime);
208
-
209
-
210
-
211
- func.call(runtime,
212
- jsi::Value(
213
- done));
214
-
215
- delete static_cast<JSICallback *>(jsi_callback);
216
- }];
217
- }];
218
-
219
-
220
- return jsi::Value::undefined();
221
- }
222
- );
223
- } else if (methodName == "fromBytesSync") {
224
- return jsi::Function::createFromHostFunction(runtime,
225
- jsi::PropNameID::forAscii(runtime, methodName),
226
- 1,
227
- [this](jsi::Runtime &runtime,
228
- const jsi::Value &thisValue,
229
- const jsi::Value *arguments,
230
- size_t count) -> jsi::Value {
231
-
232
-
233
- if (arguments[0].isObject()) {
234
- auto object = arguments[0].asObject(
235
- runtime);
236
- if (!object.isArrayBuffer(
237
- runtime)) { return {false}; }
238
- auto buf = object.getArrayBuffer(
239
- runtime);
240
-
241
- auto size = buf.size(runtime);
242
- auto data = buf.data(runtime);
243
- auto done = canvas_native_image_asset_load_from_raw(
244
- this->GetImageAsset(),
245
- rust::Slice<const uint8_t>(
246
- data, size));
247
- return {done};
248
- }
249
- return {false};
250
- }
251
- );
252
- } else if (methodName == "fromBytesCb") {
253
- auto current_queue = NSOperationQueue.currentQueue;
254
- return jsi::Function::createFromHostFunction(runtime,
255
- jsi::PropNameID::forAscii(runtime, methodName),
256
- 2,
257
- [this, current_queue](jsi::Runtime &runtime,
258
- const jsi::Value &thisValue,
259
- const jsi::Value *arguments,
260
- size_t count) -> jsi::Value {
261
-
262
-
263
- auto bytes = arguments[0].asObject(
264
- runtime).getArrayBuffer(runtime);
265
-
266
- auto size = bytes.size(runtime);
267
- auto data = bytes.data(runtime);
268
- auto buf = rust::Slice<const uint8_t>(data,
269
- size);
270
-
271
- auto asset = canvas_native_image_asset_shared_clone(
272
- this->GetImageAsset());
273
-
274
-
275
- auto cb = std::make_shared<jsi::Value>(
276
- runtime, arguments[1]);
277
-
278
- auto jsi_callback = new JSICallback(
279
- std::shared_ptr<jsi::Value>(
280
- cb));
281
-
282
-
283
- auto queue = [NSOperationQueue new];
284
- [queue addOperationWithBlock:^{
285
-
286
- auto asset = canvas_native_image_asset_shared_clone(
287
- this->GetImageAsset());
288
-
289
-
290
-
291
-
292
- auto done = canvas_native_image_asset_load_from_raw(
293
- this->GetImageAsset(), buf);
294
-
295
- [current_queue addOperationWithBlock:^{
296
-
297
-
298
-
299
-
300
- auto func = jsi_callback->value_->asObject(
301
- runtime).asFunction(
302
- runtime);
303
-
304
-
305
-
306
- func.call(runtime,
307
- jsi::Value(
308
- done));
309
-
310
- delete static_cast<JSICallback *>(jsi_callback);
311
- }];
312
- }];
313
-
314
- return jsi::Value::undefined();
315
- }
316
- );
317
- } else if (methodName == "saveSync") {
318
- return jsi::Function::createFromHostFunction(runtime,
319
- jsi::PropNameID::forAscii(runtime, methodName),
320
- 2,
321
- [this](jsi::Runtime &runtime,
322
- const jsi::Value &thisValue,
323
- const jsi::Value *arguments,
324
- size_t count) -> jsi::Value {
325
-
326
- if (count < 2) {
327
- return {false};
328
- }
329
-
330
- auto path = arguments[0].asString(
331
- runtime).utf8(runtime);
332
- auto format = (uint32_t) arguments[1].asNumber();
333
- auto done = canvas_native_image_asset_save_path(
334
- this->GetImageAsset(),
335
- rust::Str(path.c_str()), format);
336
-
337
- return {done};
338
- }
339
- );
340
- } else if (methodName == "saveCb") {
341
- auto current_queue = NSOperationQueue.currentQueue;
342
- return jsi::Function::createFromHostFunction(runtime,
343
- jsi::PropNameID::forAscii(runtime, methodName),
344
- 3,
345
- [this, current_queue](jsi::Runtime &runtime,
346
- const jsi::Value &thisValue,
347
- const jsi::Value *arguments,
348
- size_t count) -> jsi::Value {
349
-
350
-
351
- auto path = arguments[0].asString(
352
- runtime).utf8(runtime);
353
-
354
- auto format = (uint32_t) arguments[1].asNumber();
355
-
356
-
357
- auto asset = canvas_native_image_asset_shared_clone(
358
- this->GetImageAsset());
359
-
360
-
361
- auto cb = std::make_shared<jsi::Value>(
362
- runtime, arguments[1]);
363
-
364
- auto jsi_callback = new JSICallback(
365
- std::shared_ptr<jsi::Value>(
366
- cb));
367
-
368
-
369
- auto queue = [NSOperationQueue new];
370
- [queue addOperationWithBlock:^{
371
-
372
- rust::Str asset_path(
373
- path.c_str());
374
-
375
-
376
- auto asset = canvas_native_image_asset_shared_clone(
377
- this->GetImageAsset());
378
-
379
-
380
- auto done = canvas_native_image_asset_save_path(
381
- this->GetImageAsset(),
382
- asset_path,
383
- format);
384
-
385
-
386
-
387
- [current_queue addOperationWithBlock:^{
388
-
389
-
390
-
391
-
392
- auto func = jsi_callback->value_->asObject(
393
- runtime).asFunction(
394
- runtime);
395
-
396
-
397
-
398
- func.call(runtime,
399
- jsi::Value(
400
- done));
401
-
402
- delete static_cast<JSICallback *>(jsi_callback);
403
- }];
404
- }];
405
-
406
- return jsi::Value::undefined();
407
- }
408
- );
409
- }
410
-
411
- return jsi::Value::undefined();
412
-
413
- }
414
-
415
- ImageAsset &ImageAssetImpl::GetImageAsset() {
416
- return *this->asset_;
417
- }
@@ -1,126 +0,0 @@
1
- //
2
- // Created by Osei Fortune on 22/03/2022.
3
- //
4
-
5
- #include "ImageBitmapImpl.h"
6
- #include "ImageAssetImpl.h"
7
- #include "rust/cxx.h"
8
-
9
- ImageBitmapImpl::ImageBitmapImpl(rust::Box<ImageAsset> asset)
10
- : bitmap_(std::move(asset)) {}
11
-
12
- jsi::Value ImageBitmapImpl::get(jsi::Runtime &runtime, const jsi::PropNameID &name) {
13
- auto methodName = name.utf8(runtime);
14
- if (methodName == "width") {
15
- if (this->closed_) {
16
- return {0};
17
- }
18
- return {(int32_t) canvas_native_image_asset_width(this->GetImageAsset())};
19
- } else if (methodName == "height") {
20
- if (this->closed_) {
21
- return {0};
22
- }
23
- return {(int32_t) canvas_native_image_asset_height(this->GetImageAsset())};
24
- } else if (methodName == "close") {
25
- return jsi::Function::createFromHostFunction(runtime,
26
- jsi::PropNameID::forAscii(runtime, methodName),
27
- 0,
28
- [this](jsi::Runtime &runtime,
29
- const jsi::Value &thisValue,
30
- const jsi::Value *arguments,
31
- size_t count) -> jsi::Value {
32
- this->closed_ = true;
33
- return jsi::Value::undefined();
34
- }
35
- );
36
- }
37
- return jsi::Value::undefined();
38
- }
39
-
40
-
41
- std::vector<jsi::PropNameID> ImageBitmapImpl::getPropertyNames(jsi::Runtime &rt) {
42
- std::vector<jsi::PropNameID> ret;
43
- ret.reserve(3);
44
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("width")));
45
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("height")));
46
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("close")));
47
- return ret;
48
- }
49
-
50
-
51
- Options
52
- ImageBitmapImpl::HandleOptions(jsi::Runtime &runtime, const jsi::Value &options) {
53
- Options ret;
54
-
55
- if (options.isObject()) {
56
- auto config = options.asObject(runtime);
57
-
58
-
59
- auto flipYValue = config.getProperty(runtime, "flipY");
60
- if (flipYValue.isBool()) {
61
- ret.flipY = flipYValue.asBool();
62
- }
63
-
64
- auto premultiplyAlphaValue = config.getProperty(runtime, "premultiplyAlpha");
65
-
66
- if (premultiplyAlphaValue.isString()) {
67
- auto premultiplyAlpha = premultiplyAlphaValue.asString(runtime).utf8(runtime);
68
-
69
- if (premultiplyAlpha == "premultiply") {
70
- ret.premultiplyAlpha = ImageBitmapPremultiplyAlpha::Premultiply;
71
- }
72
-
73
- if (premultiplyAlpha == "none") {
74
- ret.premultiplyAlpha = ImageBitmapPremultiplyAlpha::None;
75
- }
76
- }
77
-
78
- auto colorSpaceConversionValue = config.getProperty(runtime, "colorSpaceConversion");
79
-
80
- if (colorSpaceConversionValue.isString()) {
81
- auto colorSpaceConversion = colorSpaceConversionValue.asString(runtime).utf8(runtime);
82
-
83
- if (colorSpaceConversion == "none") {
84
- ret.colorSpaceConversion = ImageBitmapColorSpaceConversion::None;
85
- }
86
- }
87
-
88
- auto resizeQualityValue = config.getProperty(runtime, "resizeQuality");
89
-
90
- if (resizeQualityValue.isString()) {
91
- auto resizeQuality = resizeQualityValue.asString(runtime).utf8(runtime);
92
-
93
- if (resizeQuality == "medium") {
94
- ret.resizeQuality = ImageBitmapResizeQuality::Medium;
95
- }
96
-
97
- if (resizeQuality == "high") {
98
- ret.resizeQuality = ImageBitmapResizeQuality::High;
99
- }
100
-
101
- if (resizeQuality == "pixelated") {
102
- ret.resizeQuality = ImageBitmapResizeQuality::Pixelated;
103
- }
104
- }
105
-
106
- auto resizeWidthValue = config.getProperty(runtime, "resizeWidth");
107
-
108
- if (resizeWidthValue.isNumber()) {
109
- auto val = resizeWidthValue.asNumber();
110
- ret.resizeWidth = (float) val;
111
- }
112
-
113
- auto resizeHeightValue = config.getProperty(runtime, "resizeHeight");
114
-
115
- if (resizeHeightValue.isNumber()) {
116
- auto val = resizeHeightValue.asNumber();
117
- ret.resizeHeight = (float) val;
118
- }
119
- }
120
-
121
- return ret;
122
- }
123
-
124
- ImageAsset &ImageBitmapImpl::GetImageAsset() {
125
- return *this->bitmap_;
126
- }
@@ -1,10 +0,0 @@
1
- //
2
- // Created by Osei Fortune on 20/04/2022.
3
- //
4
-
5
- #include "RafImpl.h"
6
- #include "rust/cxx.h"
7
- #include "canvas-cxx/src/lib.rs.h"
8
-
9
- RafImpl::RafImpl(OnRafCallback *rafCallback, intptr_t callback, rust::Box<Raf> raf) : rafCallback_(
10
- rafCallback), callback_(callback), raf_(std::move(raf)) {}
@@ -1,97 +0,0 @@
1
- //
2
- // Created by Osei Fortune on 19/04/2022.
3
- //
4
-
5
- #include "TextDecoderImpl.h"
6
-
7
- TextDecoderImpl::TextDecoderImpl(rust::Box<TextDecoder> decoder) : decoder_(std::move(decoder)) {}
8
-
9
- std::vector<jsi::PropNameID> TextDecoderImpl::getPropertyNames(jsi::Runtime &rt) {
10
- std::vector<jsi::PropNameID> ret;
11
- ret.reserve(2);
12
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("encoding")));
13
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("decode")));
14
- return ret;
15
- }
16
-
17
- jsi::Value TextDecoderImpl::get(jsi::Runtime &runtime, const jsi::PropNameID &name) {
18
- auto methodName = name.utf8(runtime);
19
- if (methodName == "encoding") {
20
- auto encoding = canvas_native_text_decoder_get_encoding(this->GetTextDecoder());
21
- return jsi::String::createFromAscii(runtime, encoding.data(), encoding.size());
22
- } else if (methodName == "decode") {
23
- return jsi::Function::createFromHostFunction(runtime,
24
- jsi::PropNameID::forAscii(runtime, methodName),
25
- 0,
26
- [this](jsi::Runtime &runtime,
27
- const jsi::Value &thisValue,
28
- const jsi::Value *arguments,
29
- size_t count) -> jsi::Value {
30
-
31
- if (count == 1) {
32
- if (arguments[0].isNull() ||
33
- arguments[0].isUndefined() ||
34
- !arguments[0].isObject()) {
35
-
36
- throw jsi::JSINativeException(
37
- "Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'");
38
- }
39
-
40
- auto buf = arguments[0].asObject(
41
- runtime);
42
-
43
- if (buf.isArrayBuffer(runtime)) {
44
-
45
- auto buffer = buf.getArrayBuffer(
46
- runtime);
47
-
48
- auto data = buffer.data(runtime);
49
- auto size = buffer.size(runtime);
50
- rust::Slice<const uint8_t> slice{
51
- data,
52
- size};
53
- auto decoded = canvas_native_text_decoder_decode(
54
- this->GetTextDecoder(),
55
- slice);
56
- return jsi::String::createFromAscii(
57
- runtime, decoded.data(),
58
- decoded.size());
59
- }
60
-
61
-
62
- if (buf.isTypedArray(runtime)) {
63
-
64
- auto buffer = buf.getTypedArray(
65
- runtime);
66
-
67
- auto data = GetTypedArrayData<const uint8_t>(
68
- runtime, buffer);
69
-
70
- auto decoded = canvas_native_text_decoder_decode(
71
- this->GetTextDecoder(),
72
- data);
73
-
74
- return jsi::String::createFromAscii(
75
- runtime, decoded.data(),
76
- decoded.size());
77
- }
78
-
79
-
80
- throw jsi::JSINativeException(
81
- "Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'");
82
-
83
-
84
- }
85
-
86
- return jsi::String::createFromUtf8(runtime,
87
- "");
88
- }
89
- );
90
- }
91
-
92
- return jsi::Value::undefined();
93
- }
94
-
95
- TextDecoder &TextDecoderImpl::GetTextDecoder() {
96
- return *this->decoder_;
97
- }