@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,68 +0,0 @@
1
- //
2
- // Created by Osei Fortune on 27/03/2022.
3
- //
4
-
5
- #include "ImageDataImpl.h"
6
-
7
-
8
- struct ImageDataBuffer : jsi::MutableBuffer {
9
- public:
10
- explicit ImageDataBuffer(rust::Box<ImageData> imageData) : imageData_(std::move(imageData)) {
11
- auto slice = canvas_native_image_data_get_data(*this->imageData_);
12
- this->buf_ = slice.data();
13
- this->size_ = slice.size();
14
- }
15
-
16
- size_t size() const override {
17
- return this->size_;
18
- }
19
-
20
- uint8_t *data() override {
21
- return this->buf_;
22
- }
23
-
24
- ~ImageDataBuffer() override {
25
- this->buf_ = nullptr;
26
- }
27
-
28
- private:
29
- uint8_t *buf_;
30
- size_t size_;
31
- rust::Box<ImageData> imageData_;
32
- };
33
-
34
- ImageDataImpl::ImageDataImpl(rust::Box<ImageData> imageData) : imageData_(std::move(imageData)) {}
35
-
36
- std::vector<jsi::PropNameID> ImageDataImpl::getPropertyNames(jsi::Runtime &rt) {
37
- std::vector<jsi::PropNameID> ret;
38
- ret.reserve(3);
39
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("width")));
40
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("height")));
41
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("data")));
42
- return ret;
43
- }
44
-
45
- jsi::Value ImageDataImpl::get(jsi::Runtime &runtime, const jsi::PropNameID &name) {
46
- auto methodName = name.utf8(runtime);
47
- if (methodName == "width") {
48
- return {canvas_native_image_data_get_width(this->GetImageData())};
49
- } else if (methodName == "height") {
50
- return {canvas_native_image_data_get_height(this->GetImageData())};
51
- } else if (methodName == "data") {
52
- auto buf = std::make_shared<ImageDataBuffer>(
53
- canvas_native_image_data_get_shared_instance(this->GetImageData()));
54
-
55
- auto ab = jsi::ArrayBuffer(runtime, buf);
56
-
57
-
58
- auto Uint8ClampedArray = runtime.global()
59
- .getProperty(runtime,
60
- "Uint8ClampedArray")
61
- .asObject(runtime)
62
- .asFunction(runtime);
63
-
64
- return Uint8ClampedArray.callAsConstructor(
65
- runtime, ab);
66
- }
67
- return jsi::Value::undefined();
68
- }
@@ -1,149 +0,0 @@
1
- //
2
- // Created by Osei Fortune on 03/04/2022.
3
- //
4
-
5
- #include "MatrixImpl.h"
6
-
7
-
8
- MatrixImpl::MatrixImpl(rust::Box<Matrix> matrix) : matrix_(std::move(matrix)) {}
9
-
10
- std::vector<jsi::PropNameID> MatrixImpl::getPropertyNames(jsi::Runtime &rt) {
11
- std::vector<jsi::PropNameID> ret;
12
- ret.reserve(22);
13
-
14
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("a")));
15
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("b")));
16
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("c")));
17
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("d")));
18
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("e")));
19
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("f")));
20
-
21
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m11")));
22
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m12")));
23
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m13")));
24
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m14")));
25
-
26
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m21")));
27
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m22")));
28
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m23")));
29
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m24")));
30
-
31
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m31")));
32
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m32")));
33
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m33")));
34
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m34")));
35
-
36
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m41")));
37
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m42")));
38
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m43")));
39
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("m44")));
40
-
41
-
42
- return ret;
43
- }
44
-
45
- jsi::Value MatrixImpl::get(jsi::Runtime &runtime, const jsi::PropNameID &name) {
46
- auto methodName = name.utf8(runtime);
47
- if (methodName == "a") {
48
- return {(double) canvas_native_matrix_get_a(this->GetMatrix())};
49
- } else if (methodName == "b") {
50
- return {(double) canvas_native_matrix_get_b(this->GetMatrix())};
51
- } else if (methodName == "c") {
52
- return {(double) canvas_native_matrix_get_c(this->GetMatrix())};
53
- } else if (methodName == "d") {
54
- return {(double) canvas_native_matrix_get_d(this->GetMatrix())};
55
- } else if (methodName == "e") {
56
- return {(double) canvas_native_matrix_get_e(this->GetMatrix())};
57
- } else if (methodName == "f") {
58
- return {(double) canvas_native_matrix_get_f(this->GetMatrix())};
59
- } else if (methodName == "m11") {
60
- return {(double) canvas_native_matrix_get_m11(this->GetMatrix())};
61
- } else if (methodName == "m12") {
62
- return {(double) canvas_native_matrix_get_m12(this->GetMatrix())};
63
- } else if (methodName == "m13") {
64
- return {(double) canvas_native_matrix_get_m13(this->GetMatrix())};
65
- } else if (methodName == "m14") {
66
- return {(double) canvas_native_matrix_get_m14(this->GetMatrix())};
67
- } else if (methodName == "m21") {
68
- return {(double) canvas_native_matrix_get_m21(this->GetMatrix())};
69
- } else if (methodName == "m22") {
70
- return {(double) canvas_native_matrix_get_m22(this->GetMatrix())};
71
- } else if (methodName == "m23") {
72
- return {(double) canvas_native_matrix_get_m23(this->GetMatrix())};
73
- } else if (methodName == "m24") {
74
- return {(double) canvas_native_matrix_get_m24(this->GetMatrix())};
75
- } else if (methodName == "m31") {
76
- return {(double) canvas_native_matrix_get_m31(this->GetMatrix())};
77
- } else if (methodName == "m32") {
78
- return {(double) canvas_native_matrix_get_m32(this->GetMatrix())};
79
- } else if (methodName == "m33") {
80
- return {(double) canvas_native_matrix_get_m33(this->GetMatrix())};
81
- } else if (methodName == "m34") {
82
- return {(double) canvas_native_matrix_get_m34(this->GetMatrix())};
83
- } else if (methodName == "m41") {
84
- return {(double) canvas_native_matrix_get_m41(this->GetMatrix())};
85
- } else if (methodName == "m42") {
86
- return {(double) canvas_native_matrix_get_m42(this->GetMatrix())};
87
- } else if (methodName == "m43") {
88
- return {(double) canvas_native_matrix_get_m43(this->GetMatrix())};
89
- } else if (methodName == "m44") {
90
- return {(double) canvas_native_matrix_get_m44(this->GetMatrix())};
91
- }
92
-
93
- return jsi::Value::undefined();
94
- }
95
-
96
- void MatrixImpl::set(jsi::Runtime &runtime, const jsi::PropNameID &name, const jsi::Value &value) {
97
- auto methodName = name.utf8(runtime);
98
- if (!value.isNumber()) { return; }
99
- auto val = (float) value.asNumber();
100
- if (methodName == "a") {
101
- canvas_native_matrix_set_a(this->GetMatrix(), val);
102
- } else if (methodName == "b") {
103
- canvas_native_matrix_set_b(this->GetMatrix(), val);
104
- } else if (methodName == "c") {
105
- canvas_native_matrix_set_c(this->GetMatrix(), val);
106
- } else if (methodName == "d") {
107
- canvas_native_matrix_set_d(this->GetMatrix(), val);
108
- } else if (methodName == "e") {
109
- canvas_native_matrix_set_e(this->GetMatrix(), val);
110
- } else if (methodName == "f") {
111
- canvas_native_matrix_set_f(this->GetMatrix(), val);
112
- } else if (methodName == "m11") {
113
- canvas_native_matrix_set_m11(this->GetMatrix(), val);
114
- } else if (methodName == "m12") {
115
- canvas_native_matrix_set_m12(this->GetMatrix(), val);
116
- } else if (methodName == "m13") {
117
- canvas_native_matrix_set_m13(this->GetMatrix(), val);
118
- } else if (methodName == "m14") {
119
- canvas_native_matrix_set_m14(this->GetMatrix(), val);
120
- } else if (methodName == "m21") {
121
- canvas_native_matrix_set_m21(this->GetMatrix(), val);
122
- } else if (methodName == "m22") {
123
- canvas_native_matrix_set_m22(this->GetMatrix(), val);
124
- } else if (methodName == "m23") {
125
- canvas_native_matrix_set_m23(this->GetMatrix(), val);
126
- } else if (methodName == "m24") {
127
- canvas_native_matrix_set_m24(this->GetMatrix(), val);
128
- } else if (methodName == "m31") {
129
- canvas_native_matrix_set_m31(this->GetMatrix(), val);
130
- } else if (methodName == "m32") {
131
- canvas_native_matrix_set_m32(this->GetMatrix(), val);
132
- } else if (methodName == "m33") {
133
- canvas_native_matrix_set_m33(this->GetMatrix(), val);
134
- } else if (methodName == "m34") {
135
- canvas_native_matrix_set_m34(this->GetMatrix(), val);
136
- } else if (methodName == "m41") {
137
- canvas_native_matrix_set_m41(this->GetMatrix(), val);
138
- } else if (methodName == "m42") {
139
- canvas_native_matrix_set_m42(this->GetMatrix(), val);
140
- } else if (methodName == "m43") {
141
- canvas_native_matrix_set_m43(this->GetMatrix(), val);
142
- } else if (methodName == "m44") {
143
- canvas_native_matrix_set_m44(this->GetMatrix(), val);
144
- }
145
- }
146
-
147
- Matrix &MatrixImpl::GetMatrix() {
148
- return *this->matrix_;
149
- }
@@ -1,335 +0,0 @@
1
- //
2
- // Created by Osei Fortune on 28/03/2022.
3
- //
4
-
5
- #include "Path2D.h"
6
-
7
-
8
- Path2D::Path2D(rust::Box<Path> path)
9
- : path_(std::move(path)) {}
10
-
11
- std::vector<jsi::PropNameID> Path2D::getPropertyNames(jsi::Runtime &rt) {
12
- std::vector<jsi::PropNameID> ret;
13
- ret.reserve(11);
14
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("addPath")));
15
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("arc")));
16
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("arcTo")));
17
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("bezierCurveTo")));
18
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("closePath")));
19
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("ellipse")));
20
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("lineTo")));
21
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("moveTo")));
22
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("quadraticCurveTo")));
23
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("rect")));
24
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("roundRect")));
25
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("__toSVG")));
26
- return ret;
27
- }
28
-
29
- jsi::Value Path2D::get(jsi::Runtime &runtime, const jsi::PropNameID &name) {
30
- auto methodName = name.utf8(runtime);
31
- if (methodName == "addPath") {
32
- return jsi::Function::createFromHostFunction(runtime,
33
- jsi::PropNameID::forAscii(runtime, methodName),
34
- 1,
35
- [this](jsi::Runtime &runtime,
36
- const jsi::Value &thisValue,
37
- const jsi::Value *arguments,
38
- size_t count) -> jsi::Value {
39
- auto object = getHostObject<Path2D>(
40
- runtime, arguments[0]);
41
- if (object != nullptr) {
42
- canvas_native_path_add_path(
43
- this->GetPath(),
44
- object->GetPath());
45
- }
46
- return jsi::Value::undefined();
47
- }
48
- );
49
- } else if (methodName == "arc") {
50
- return jsi::Function::createFromHostFunction(runtime,
51
- jsi::PropNameID::forAscii(runtime, methodName),
52
- 6,
53
- [this](jsi::Runtime &runtime,
54
- const jsi::Value &thisValue,
55
- const jsi::Value *arguments,
56
- size_t count) -> jsi::Value {
57
-
58
-
59
- auto anti_clockwise = false;
60
- if (count == 6) {
61
- anti_clockwise = arguments[5].asBool();
62
- }
63
-
64
- canvas_native_path_arc(
65
- this->GetPath(),
66
- static_cast<float>(arguments[0].asNumber()),
67
- static_cast<float>(arguments[1].asNumber()),
68
- static_cast<float>(arguments[2].asNumber()),
69
- static_cast<float>(arguments[3].asNumber()),
70
- static_cast<float>(arguments[4].asNumber()),
71
- anti_clockwise
72
- );
73
-
74
- return jsi::Value::undefined();
75
- }
76
- );
77
-
78
- } else if (methodName == "arcTo") {
79
- return jsi::Function::createFromHostFunction(runtime,
80
- jsi::PropNameID::forAscii(runtime, methodName),
81
- 5,
82
- [this](jsi::Runtime &runtime,
83
- const jsi::Value &thisValue,
84
- const jsi::Value *arguments,
85
- size_t count) -> jsi::Value {
86
-
87
-
88
- canvas_native_path_arc_to(
89
- this->GetPath(),
90
- static_cast<float>(arguments[0].asNumber()),
91
- static_cast<float>(arguments[1].asNumber()),
92
- static_cast<float>(arguments[2].asNumber()),
93
- static_cast<float>(arguments[3].asNumber()),
94
- static_cast<float>(arguments[4].asNumber())
95
- );
96
-
97
- return jsi::Value::undefined();
98
- }
99
- );
100
-
101
- } else if (methodName == "bezierCurveTo") {
102
- return jsi::Function::createFromHostFunction(runtime,
103
- jsi::PropNameID::forAscii(runtime, methodName),
104
- 6,
105
- [this](jsi::Runtime &runtime,
106
- const jsi::Value &thisValue,
107
- const jsi::Value *arguments,
108
- size_t count) -> jsi::Value {
109
-
110
-
111
- canvas_native_path_bezier_curve_to(
112
- this->GetPath(),
113
- static_cast<float>(arguments[0].asNumber()),
114
- static_cast<float>(arguments[1].asNumber()),
115
- static_cast<float>(arguments[2].asNumber()),
116
- static_cast<float>(arguments[3].asNumber()),
117
- static_cast<float>(arguments[4].asNumber()),
118
- static_cast<float>(arguments[5].asNumber())
119
- );
120
-
121
- return jsi::Value::undefined();
122
- }
123
- );
124
-
125
- } else if (methodName == "closePath") {
126
- return jsi::Function::createFromHostFunction(runtime,
127
- jsi::PropNameID::forAscii(runtime, methodName),
128
- 0,
129
- [this](jsi::Runtime &runtime,
130
- const jsi::Value &thisValue,
131
- const jsi::Value *arguments,
132
- size_t count) -> jsi::Value {
133
-
134
-
135
- canvas_native_path_close_path(
136
- this->GetPath());
137
-
138
- return jsi::Value::undefined();
139
- }
140
- );
141
-
142
- } else if (methodName == "ellipse") {
143
- return jsi::Function::createFromHostFunction(runtime,
144
- jsi::PropNameID::forAscii(runtime, methodName),
145
- 7,
146
- [this](jsi::Runtime &runtime,
147
- const jsi::Value &thisValue,
148
- const jsi::Value *arguments,
149
- size_t count) -> jsi::Value {
150
-
151
-
152
- auto anti_clockwise = false;
153
- if (count > 7) {
154
- anti_clockwise = arguments[7].asBool();
155
- }
156
- canvas_native_path_ellipse(
157
- this->GetPath(),
158
- static_cast<float>(arguments[0].asNumber()),
159
- static_cast<float>(arguments[1].asNumber()),
160
- static_cast<float>(arguments[2].asNumber()),
161
- static_cast<float>(arguments[3].asNumber()),
162
- static_cast<float>(arguments[4].asNumber()),
163
- static_cast<float>(arguments[5].asNumber()),
164
- static_cast<float>(arguments[6].asNumber()),
165
- anti_clockwise
166
- );
167
-
168
- return jsi::Value::undefined();
169
- }
170
- );
171
-
172
- } else if (methodName == "lineTo") {
173
- return jsi::Function::createFromHostFunction(runtime,
174
- jsi::PropNameID::forAscii(runtime, methodName),
175
- 2,
176
- [this](jsi::Runtime &runtime,
177
- const jsi::Value &thisValue,
178
- const jsi::Value *arguments,
179
- size_t count) -> jsi::Value {
180
-
181
-
182
- canvas_native_path_line_to(this->GetPath(),
183
- static_cast<float>(arguments[0].asNumber()),
184
- static_cast<float>(arguments[1].asNumber()));
185
-
186
- return jsi::Value::undefined();
187
- }
188
- );
189
-
190
- } else if (methodName == "moveTo") {
191
- return jsi::Function::createFromHostFunction(runtime,
192
- jsi::PropNameID::forAscii(runtime, methodName),
193
- 2,
194
- [this](jsi::Runtime &runtime,
195
- const jsi::Value &thisValue,
196
- const jsi::Value *arguments,
197
- size_t count) -> jsi::Value {
198
-
199
-
200
- canvas_native_path_move_to(this->GetPath(),
201
- static_cast<float>(arguments[0].asNumber()),
202
- static_cast<float>(arguments[1].asNumber()));
203
-
204
- return jsi::Value::undefined();
205
- }
206
- );
207
-
208
- } else if (methodName == "quadraticCurveTo") {
209
- return jsi::Function::createFromHostFunction(runtime,
210
- jsi::PropNameID::forAscii(runtime, methodName),
211
- 4,
212
- [this](jsi::Runtime &runtime,
213
- const jsi::Value &thisValue,
214
- const jsi::Value *arguments,
215
- size_t count) -> jsi::Value {
216
-
217
-
218
- canvas_native_path_quadratic_curve_to(
219
- this->GetPath(),
220
- static_cast<float>(arguments[0].asNumber()),
221
- static_cast<float>(arguments[1].asNumber()),
222
- static_cast<float>(arguments[2].asNumber()),
223
- static_cast<float>(arguments[3].asNumber())
224
- );
225
-
226
- return jsi::Value::undefined();
227
- }
228
- );
229
-
230
- } else if (methodName == "rect") {
231
- return jsi::Function::createFromHostFunction(runtime,
232
- jsi::PropNameID::forAscii(runtime, methodName),
233
- 4,
234
- [this](jsi::Runtime &runtime,
235
- const jsi::Value &thisValue,
236
- const jsi::Value *arguments,
237
- size_t count) -> jsi::Value {
238
-
239
-
240
- canvas_native_path_rect(
241
- this->GetPath(),
242
- static_cast<float>(arguments[0].asNumber()),
243
- static_cast<float>(arguments[1].asNumber()),
244
- static_cast<float>(arguments[2].asNumber()),
245
- static_cast<float>(arguments[3].asNumber())
246
- );
247
-
248
- return jsi::Value::undefined();
249
- }
250
- );
251
-
252
- } else if (methodName == "roundRect") {
253
- return jsi::Function::createFromHostFunction(runtime,
254
- jsi::PropNameID::forAscii(runtime, methodName),
255
- 4,
256
- [this](jsi::Runtime &runtime,
257
- const jsi::Value &thisValue,
258
- const jsi::Value *arguments,
259
- size_t count) -> jsi::Value {
260
-
261
- if (count == 5) {
262
- auto x = static_cast<float>(arguments[0].asNumber());
263
- auto y = static_cast<float>(arguments[1].asNumber());
264
- auto width = static_cast<float>(arguments[2].asNumber());
265
- auto height = static_cast<float>(arguments[3].asNumber());
266
- if (arguments[4].isObject()) {
267
- auto radii = arguments[4].asObject(
268
- runtime);
269
- if (radii.isArray(runtime)) {
270
- auto array = radii.getArray(
271
- runtime);
272
- auto size = array.size(
273
- runtime);
274
- if (size > 1) {
275
- rust::Vec<float> store;
276
- store.reserve(size);
277
- for (int i = 0;
278
- i < size; i++) {
279
- store[i] = (float) array.getValueAtIndex(
280
- runtime,
281
- i).asNumber();
282
- }
283
-
284
- rust::Slice<const float> buf(
285
- store.data(),
286
- store.size());
287
- canvas_native_path_round_rect(
288
- this->GetPath(),
289
- x, y,
290
- width,
291
- height, buf);
292
-
293
- }
294
- }
295
- } else {
296
- auto radii = (float) arguments[4].asNumber();
297
- canvas_native_path_round_rect_tl_tr_br_bl(
298
- this->GetPath(), x, y,
299
- width,
300
- height, radii, radii,
301
- radii, radii);
302
-
303
- }
304
- }
305
-
306
- return jsi::Value::undefined();
307
-
308
- }
309
- );
310
- } else if (methodName == "__toSVG") {
311
- return jsi::Function::createFromHostFunction(runtime,
312
- jsi::PropNameID::forAscii(runtime, methodName),
313
- 0,
314
- [this](jsi::Runtime &runtime,
315
- const jsi::Value &thisValue,
316
- const jsi::Value *arguments,
317
- size_t count) -> jsi::Value {
318
-
319
-
320
- auto d = canvas_native_path_to_string(
321
- this->GetPath());
322
- return jsi::String::createFromAscii(
323
- runtime, d.data(), d.size());
324
- }
325
- );
326
-
327
- }
328
-
329
- return jsi::Value::undefined();
330
- }
331
-
332
- Path &Path2D::GetPath() {
333
- return *this->path_;
334
- }
335
-
@@ -1,68 +0,0 @@
1
- //
2
- // Created by Osei Fortune on 18/04/2022.
3
- //
4
-
5
- #include "TextMetricsImpl.h"
6
- #include "canvas-cxx/src/lib.rs.h"
7
-
8
- TextMetricsImpl::TextMetricsImpl(rust::Box<TextMetrics> metrics) : metrics_(std::move(metrics)) {}
9
-
10
- std::vector<jsi::PropNameID> TextMetricsImpl::getPropertyNames(jsi::Runtime &rt) {
11
- std::vector<jsi::PropNameID> ret;
12
- ret.reserve(12);
13
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("width")));
14
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("actualBoundingBoxLeft")));
15
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("actualBoundingBoxRight")));
16
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("actualBoundingBoxAscent")));
17
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("actualBoundingBoxDescent")));
18
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("fontBoundingBoxAscent")));
19
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("fontBoundingBoxDescent")));
20
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("emHeightAscent")));
21
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("emHeightDescent")));
22
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("hangingBaseline")));
23
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("alphabeticBaseline")));
24
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("ideographicBaseline")));
25
- return ret;
26
- }
27
-
28
- jsi::Value TextMetricsImpl::get(jsi::Runtime &runtime, const jsi::PropNameID &name) {
29
- auto methodName = name.utf8(runtime);
30
- if (methodName == "width") {
31
- return {(double) canvas_native_text_metrics_get_width(this->GetTextMetrics())};
32
- } else if (methodName == "actualBoundingBoxLeft") {
33
- return {(double) canvas_native_text_metrics_get_actual_bounding_box_left(
34
- this->GetTextMetrics())};
35
- } else if (methodName == "actualBoundingBoxRight") {
36
- return {(double) canvas_native_text_metrics_get_actual_bounding_box_right(
37
- this->GetTextMetrics())};
38
- } else if (methodName == "actualBoundingBoxAscent") {
39
- return {(double) canvas_native_text_metrics_get_actual_bounding_box_ascent(
40
- this->GetTextMetrics())};
41
- } else if (methodName == "actualBoundingBoxDescent") {
42
- return {(double) canvas_native_text_metrics_get_actual_bounding_box_descent(
43
- this->GetTextMetrics())};
44
- } else if (methodName == "fontBoundingBoxAscent") {
45
- return {(double) canvas_native_text_metrics_get_font_bounding_box_ascent(
46
- this->GetTextMetrics())};
47
- } else if (methodName == "fontBoundingBoxDescent") {
48
- return {(double) canvas_native_text_metrics_get_font_bounding_box_descent(
49
- this->GetTextMetrics())};
50
- } else if (methodName == "emHeightAscent") {
51
- return {(double) canvas_native_text_metrics_get_em_height_ascent(this->GetTextMetrics())};
52
- } else if (methodName == "emHeightDescent") {
53
- return {(double) canvas_native_text_metrics_get_em_height_descent(this->GetTextMetrics())};
54
- } else if (methodName == "alphabeticBaseline") {
55
- return {(double) canvas_native_text_metrics_get_alphabetic_baseline(
56
- this->GetTextMetrics())};
57
- } else if (methodName == "ideographicBaseline") {
58
- return {(double) canvas_native_text_metrics_get_ideographic_baseline(
59
- this->GetTextMetrics())};
60
- }
61
-
62
- return jsi::Value::undefined();
63
- }
64
-
65
-
66
- TextMetrics &TextMetricsImpl::GetTextMetrics() {
67
- return *this->metrics_;
68
- }