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

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 -24
  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 +2391 -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 +6457 -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 +4380 -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
@@ -3,25 +3,54 @@
3
3
  //
4
4
 
5
5
  #pragma once
6
- #include "rust/cxx.h"
7
- #include "canvas-cxx/src/lib.rs.h"
8
- #import <NativeScript/JSIRuntime.h>
6
+
7
+ #include "Common.h"
9
8
  #include "Helpers.h"
10
9
  #include <vector>
11
10
 
12
- using namespace facebook;
13
- using namespace org::nativescript::canvas;
14
-
15
- class JSI_EXPORT Path2D : public jsi::HostObject {
11
+ class Path2D {
16
12
  public:
17
- Path2D(rust::Box<Path> path);
13
+ Path2D(Path* path);
14
+ ~Path2D(){
15
+ canvas_native_path_destroy(this->GetPath());
16
+ this->path_ = nullptr;
17
+ }
18
+
19
+ Path* GetPath();
20
+
21
+ static void Init(v8::Local<v8::Object> canvasModule, v8::Isolate *isolate);
22
+
23
+ static Path2D *GetPointer(const v8::Local<v8::Object> &object);
24
+
25
+ static v8::Local<v8::FunctionTemplate> GetCtor(v8::Isolate *isolate);
26
+
27
+ static void Ctor(const v8::FunctionCallbackInfo<v8::Value> &args);
28
+
29
+ static void AddPath(const v8::FunctionCallbackInfo<v8::Value> &args);
30
+
31
+ static void Arc(const v8::FunctionCallbackInfo<v8::Value> &args);
32
+
33
+ static void ArcTo(const v8::FunctionCallbackInfo<v8::Value> &args);
34
+
35
+ static void BezierCurveTo(const v8::FunctionCallbackInfo<v8::Value> &args);
36
+
37
+ static void ClosePath(const v8::FunctionCallbackInfo<v8::Value> &args);
38
+
39
+ static void Ellipse(const v8::FunctionCallbackInfo<v8::Value> &args);
40
+
41
+ static void LineTo(const v8::FunctionCallbackInfo<v8::Value> &args);
42
+
43
+ static void MoveTo(const v8::FunctionCallbackInfo<v8::Value> &args);
44
+
45
+ static void QuadraticCurveTo(const v8::FunctionCallbackInfo<v8::Value> &args);
46
+
47
+ static void Rect(const v8::FunctionCallbackInfo<v8::Value> &args);
18
48
 
19
- jsi::Value get(jsi::Runtime &, const jsi::PropNameID &name) override;
49
+ static void RoundRect(const v8::FunctionCallbackInfo<v8::Value> &args);
20
50
 
21
- std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime &rt) override;
51
+ static void __toSVG(const v8::FunctionCallbackInfo<v8::Value> &args);
22
52
 
23
- Path &GetPath();
24
53
 
25
54
  private:
26
- rust::Box<Path> path_;
55
+ Path* path_;
27
56
  };
@@ -0,0 +1,253 @@
1
+ //
2
+ // Created by Osei Fortune on 18/04/2022.
3
+ //
4
+
5
+ #include "TextMetricsImpl.h"
6
+ #include "Caches.h"
7
+
8
+ TextMetricsImpl::TextMetricsImpl(TextMetrics* metrics) : metrics_(metrics) {}
9
+
10
+ void TextMetricsImpl::Init(v8::Local<v8::Object> canvasModule, v8::Isolate *isolate) {
11
+ v8::Locker locker(isolate);
12
+ v8::Isolate::Scope isolate_scope(isolate);
13
+ v8::HandleScope handle_scope(isolate);
14
+
15
+ auto ctor = GetCtor(isolate);
16
+ auto context = isolate->GetCurrentContext();
17
+ auto func = ctor->GetFunction(context).ToLocalChecked();
18
+
19
+ canvasModule->Set(context, ConvertToV8String(isolate, "TextMetrics"), func);
20
+ }
21
+
22
+ TextMetricsImpl *TextMetricsImpl::GetPointer(v8::Local<v8::Object> object) {
23
+ auto ptr = object->GetInternalField(0).As<v8::External>()->Value();
24
+ if (ptr == nullptr) {
25
+ return nullptr;
26
+ }
27
+ return static_cast<TextMetricsImpl *>(ptr);
28
+ }
29
+
30
+ v8::Local<v8::FunctionTemplate> TextMetricsImpl::GetCtor(v8::Isolate *isolate) {
31
+ auto cache = Caches::Get(isolate);
32
+ auto ctor = cache->TextMetricsTmpl.get();
33
+ if (ctor != nullptr) {
34
+ return ctor->Get(isolate);
35
+ }
36
+
37
+ v8::Local<v8::FunctionTemplate> ctorTmpl = v8::FunctionTemplate::New(isolate);
38
+ ctorTmpl->InstanceTemplate()->SetInternalFieldCount(1);
39
+ ctorTmpl->SetClassName(ConvertToV8String(isolate, "TextMetrics"));
40
+
41
+ auto tmpl = ctorTmpl->InstanceTemplate();
42
+ tmpl->SetInternalFieldCount(1);
43
+
44
+ tmpl->SetAccessor(
45
+ ConvertToV8String(isolate, "width"),
46
+ &GetWidth);
47
+
48
+ tmpl->SetAccessor(
49
+ ConvertToV8String(isolate, "actualBoundingBoxLeft"),
50
+ &GetActualBoundingBoxLeft);
51
+
52
+ tmpl->SetAccessor(
53
+ ConvertToV8String(isolate, "actualBoundingBoxRight"),
54
+ &GetActualBoundingBoxRight);
55
+
56
+ tmpl->SetAccessor(
57
+ ConvertToV8String(isolate, "actualBoundingBoxAscent"),
58
+ &GetActualBoundingBoxAscent);
59
+
60
+ tmpl->SetAccessor(
61
+ ConvertToV8String(isolate, "actualBoundingBoxDescent"),
62
+ &GetActualBoundingBoxDescent);
63
+
64
+ tmpl->SetAccessor(
65
+ ConvertToV8String(isolate, "fontBoundingBoxAscent"),
66
+ &GetFontBoundingBoxAscent);
67
+
68
+ tmpl->SetAccessor(
69
+ ConvertToV8String(isolate, "fontBoundingBoxDescent"),
70
+ &GetFontBoundingBoxDescent);
71
+
72
+
73
+ tmpl->SetAccessor(
74
+ ConvertToV8String(isolate, "emHeightAscent"),
75
+ &GetEmHeightAscent);
76
+
77
+ tmpl->SetAccessor(
78
+ ConvertToV8String(isolate, "emHeightDescent"),
79
+ &GetEmHeightDescent);
80
+
81
+ tmpl->SetAccessor(
82
+ ConvertToV8String(isolate, "hangingBaseline"),
83
+ &GetHangingBaseline);
84
+
85
+ tmpl->SetAccessor(
86
+ ConvertToV8String(isolate, "alphabeticBaseline"),
87
+ &GetAlphabeticBaseline);
88
+
89
+ tmpl->SetAccessor(
90
+ ConvertToV8String(isolate, "ideographicBaseline"),
91
+ &GetIdeographicBaseline);
92
+
93
+ cache->TextMetricsTmpl =
94
+ std::make_unique<v8::Persistent<v8::FunctionTemplate>>(isolate, ctorTmpl);
95
+ return ctorTmpl;
96
+ }
97
+
98
+
99
+ void TextMetricsImpl::GetWidth(v8::Local<v8::String> property,
100
+ const v8::PropertyCallbackInfo<v8::Value> &info) {
101
+ TextMetricsImpl *ptr = GetPointer(info.This());
102
+ if (ptr == nullptr) {
103
+ info.GetReturnValue().Set(0);
104
+ return;
105
+ }
106
+
107
+ info.GetReturnValue().Set((double) canvas_native_text_metrics_get_width(ptr->GetTextMetrics()));
108
+ }
109
+
110
+
111
+ void TextMetricsImpl::GetActualBoundingBoxLeft(v8::Local<v8::String> property,
112
+ const v8::PropertyCallbackInfo<v8::Value> &info) {
113
+ TextMetricsImpl *ptr = GetPointer(info.This());
114
+ if (ptr == nullptr) {
115
+ info.GetReturnValue().Set(0);
116
+ return;
117
+ }
118
+
119
+ info.GetReturnValue().Set((double) canvas_native_text_metrics_get_actual_bounding_box_left(
120
+ ptr->GetTextMetrics()));
121
+ }
122
+
123
+
124
+ void TextMetricsImpl::GetActualBoundingBoxRight(v8::Local<v8::String> property,
125
+ const v8::PropertyCallbackInfo<v8::Value> &info) {
126
+ TextMetricsImpl *ptr = GetPointer(info.This());
127
+ if (ptr == nullptr) {
128
+ info.GetReturnValue().Set(0);
129
+ return;
130
+ }
131
+
132
+ info.GetReturnValue().Set((double) canvas_native_text_metrics_get_actual_bounding_box_right(
133
+ ptr->GetTextMetrics()));
134
+ }
135
+
136
+
137
+ void TextMetricsImpl::GetActualBoundingBoxAscent(v8::Local<v8::String> property,
138
+ const v8::PropertyCallbackInfo<v8::Value> &info) {
139
+ TextMetricsImpl *ptr = GetPointer(info.This());
140
+ if (ptr == nullptr) {
141
+ info.GetReturnValue().Set(0);
142
+ return;
143
+ }
144
+
145
+ info.GetReturnValue().Set((double) canvas_native_text_metrics_get_actual_bounding_box_ascent(
146
+ ptr->GetTextMetrics()));
147
+ }
148
+
149
+
150
+ void TextMetricsImpl::GetActualBoundingBoxDescent(v8::Local<v8::String> property,
151
+ const v8::PropertyCallbackInfo<v8::Value> &info) {
152
+ TextMetricsImpl *ptr = GetPointer(info.This());
153
+ if (ptr == nullptr) {
154
+ info.GetReturnValue().Set(0);
155
+ return;
156
+ }
157
+
158
+ info.GetReturnValue().Set((double) canvas_native_text_metrics_get_actual_bounding_box_descent(
159
+ ptr->GetTextMetrics()));
160
+ }
161
+
162
+
163
+ void TextMetricsImpl::GetFontBoundingBoxAscent(v8::Local<v8::String> property,
164
+ const v8::PropertyCallbackInfo<v8::Value> &info) {
165
+ TextMetricsImpl *ptr = GetPointer(info.This());
166
+ if (ptr == nullptr) {
167
+ info.GetReturnValue().Set(0);
168
+ return;
169
+ }
170
+
171
+ info.GetReturnValue().Set((double) canvas_native_text_metrics_get_font_bounding_box_ascent(
172
+ ptr->GetTextMetrics()));
173
+ }
174
+
175
+
176
+ void TextMetricsImpl::GetFontBoundingBoxDescent(v8::Local<v8::String> property,
177
+ const v8::PropertyCallbackInfo<v8::Value> &info) {
178
+ TextMetricsImpl *ptr = GetPointer(info.This());
179
+ if (ptr == nullptr) {
180
+ info.GetReturnValue().Set(0);
181
+ return;
182
+ }
183
+
184
+ info.GetReturnValue().Set((double) canvas_native_text_metrics_get_font_bounding_box_descent(
185
+ ptr->GetTextMetrics()));
186
+ }
187
+
188
+
189
+ void TextMetricsImpl::GetEmHeightAscent(v8::Local<v8::String> property,
190
+ const v8::PropertyCallbackInfo<v8::Value> &info) {
191
+ TextMetricsImpl *ptr = GetPointer(info.This());
192
+ if (ptr == nullptr) {
193
+ info.GetReturnValue().Set(0);
194
+ return;
195
+ }
196
+
197
+ info.GetReturnValue().Set(
198
+ (double) canvas_native_text_metrics_get_em_height_ascent(ptr->GetTextMetrics()));
199
+ }
200
+
201
+
202
+ void TextMetricsImpl::GetEmHeightDescent(v8::Local<v8::String> property,
203
+ const v8::PropertyCallbackInfo<v8::Value> &info) {
204
+ TextMetricsImpl *ptr = GetPointer(info.This());
205
+ if (ptr == nullptr) {
206
+ info.GetReturnValue().Set(0);
207
+ return;
208
+ }
209
+
210
+ info.GetReturnValue().Set(
211
+ (double) canvas_native_text_metrics_get_em_height_descent(ptr->GetTextMetrics()));
212
+ }
213
+
214
+
215
+ void TextMetricsImpl::GetHangingBaseline(v8::Local<v8::String> property,
216
+ const v8::PropertyCallbackInfo<v8::Value> &info) {
217
+ TextMetricsImpl *ptr = GetPointer(info.This());
218
+ if (ptr == nullptr) {
219
+ info.GetReturnValue().Set(0);
220
+ return;
221
+ }
222
+
223
+ info.GetReturnValue().Set(
224
+ (double) canvas_native_text_metrics_get_hanging_baseline(ptr->GetTextMetrics()));
225
+ }
226
+
227
+ void TextMetricsImpl::GetAlphabeticBaseline(v8::Local<v8::String> property,
228
+ const v8::PropertyCallbackInfo<v8::Value> &info) {
229
+ TextMetricsImpl *ptr = GetPointer(info.This());
230
+ if (ptr == nullptr) {
231
+ info.GetReturnValue().Set(0);
232
+ return;
233
+ }
234
+
235
+ info.GetReturnValue().Set(
236
+ (double) canvas_native_text_metrics_get_alphabetic_baseline(ptr->GetTextMetrics()));
237
+ }
238
+
239
+ void TextMetricsImpl::GetIdeographicBaseline(v8::Local<v8::String> property,
240
+ const v8::PropertyCallbackInfo<v8::Value> &info) {
241
+ TextMetricsImpl *ptr = GetPointer(info.This());
242
+ if (ptr == nullptr) {
243
+ info.GetReturnValue().Set(0);
244
+ return;
245
+ }
246
+
247
+ info.GetReturnValue().Set(
248
+ (double) canvas_native_text_metrics_get_ideographic_baseline(ptr->GetTextMetrics()));
249
+ }
250
+
251
+ TextMetrics* TextMetricsImpl::GetTextMetrics() {
252
+ return this->metrics_;
253
+ }
@@ -4,26 +4,64 @@
4
4
 
5
5
  #pragma once
6
6
 
7
- #include "rust/cxx.h"
8
- #include "canvas-cxx/src/lib.rs.h"
9
- #import <NativeScript/JSIRuntime.h>
10
7
  #include <vector>
8
+ #include "Helpers.h"
11
9
 
12
- using namespace facebook;
13
- using namespace org::nativescript::canvas;
14
-
15
- class JSI_EXPORT TextMetricsImpl : public jsi::HostObject {
10
+ class TextMetricsImpl {
16
11
  public:
17
- TextMetricsImpl(rust::Box<TextMetrics> metrics);
12
+ TextMetricsImpl(TextMetrics* metrics);
13
+
14
+ ~TextMetricsImpl(){
15
+ canvas_native_text_metrics_destroy(this->GetTextMetrics());
16
+ this->metrics_ = nullptr;
17
+ }
18
+
19
+ TextMetrics* GetTextMetrics();
20
+
21
+ static void Init(v8::Local<v8::Object> canvasModule, v8::Isolate *isolate);
22
+
23
+ static TextMetricsImpl *GetPointer(v8::Local<v8::Object> object);
24
+
25
+ static v8::Local<v8::FunctionTemplate> GetCtor(v8::Isolate *isolate);
26
+
27
+ static void GetWidth(v8::Local<v8::String> name,
28
+ const v8::PropertyCallbackInfo<v8::Value> &info);
29
+
30
+ static void GetActualBoundingBoxLeft(v8::Local<v8::String> name,
31
+ const v8::PropertyCallbackInfo<v8::Value> &info);
32
+
33
+
34
+ static void GetActualBoundingBoxRight(v8::Local<v8::String> name,
35
+ const v8::PropertyCallbackInfo<v8::Value> &info);
36
+
37
+ static void GetActualBoundingBoxAscent(v8::Local<v8::String> name,
38
+ const v8::PropertyCallbackInfo<v8::Value> &info);
39
+
40
+ static void GetActualBoundingBoxDescent(v8::Local<v8::String> name,
41
+ const v8::PropertyCallbackInfo<v8::Value> &info);
42
+
43
+ static void GetFontBoundingBoxAscent(v8::Local<v8::String> name,
44
+ const v8::PropertyCallbackInfo<v8::Value> &info);
45
+
46
+ static void GetFontBoundingBoxDescent(v8::Local<v8::String> name,
47
+ const v8::PropertyCallbackInfo<v8::Value> &info);
48
+
49
+ static void GetEmHeightAscent(v8::Local<v8::String> name,
50
+ const v8::PropertyCallbackInfo<v8::Value> &info);
18
51
 
19
- jsi::Value get(jsi::Runtime &, const jsi::PropNameID &name) override;
52
+ static void GetEmHeightDescent(v8::Local<v8::String> name,
53
+ const v8::PropertyCallbackInfo<v8::Value> &info);
20
54
 
21
- std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime &rt) override;
55
+ static void GetHangingBaseline(v8::Local<v8::String> name,
56
+ const v8::PropertyCallbackInfo<v8::Value> &info);
22
57
 
23
- TextMetrics &GetTextMetrics();
58
+ static void GetAlphabeticBaseline(v8::Local<v8::String> name,
59
+ const v8::PropertyCallbackInfo<v8::Value> &info);
24
60
 
61
+ static void GetIdeographicBaseline(v8::Local<v8::String> name,
62
+ const v8::PropertyCallbackInfo<v8::Value> &info);
25
63
 
26
64
  private:
27
- rust::Box<TextMetrics> metrics_;
65
+ TextMetrics* metrics_;
28
66
  };
29
67
 
@@ -4,14 +4,20 @@
4
4
 
5
5
  #pragma once
6
6
 
7
- #import "canvas-cxx/src/lib.rs.h"
8
7
 
9
- #import <OpenGLES/ES1/gl.h>
10
- #import <OpenGLES/ES1/glext.h>
11
- #import <OpenGLES/ES2/gl.h>
12
- #import <OpenGLES/ES2/glext.h>
13
- #import <OpenGLES/ES3/gl.h>
14
- #import <OpenGLES/ES3/glext.h>
8
+ #ifdef __ANDROID__
9
+ #include <GLES2/gl2.h>
10
+ #include <GLES2/gl2ext.h>
11
+ #include "gles3jni.h"
12
+ #endif
13
+
14
+ #ifdef __APPLE__
15
+ #include <OpenGLES/ES1/gl.h>
16
+ #include <OpenGLES/ES1/glext.h>
17
+ #include <OpenGLES/ES2/gl.h>
18
+ #include <OpenGLES/ES2/glext.h>
19
+ #include <OpenGLES/ES3/gl.h>
20
+ #include <OpenGLES/ES3/glext.h>
15
21
 
16
22
  #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
17
23
  #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
@@ -27,3 +33,47 @@
27
33
  #define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93
28
34
  #define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE
29
35
 
36
+
37
+
38
+ #define GL_COLOR_ATTACHMENT0_EXT GL_COLOR_ATTACHMENT0
39
+ #define GL_COLOR_ATTACHMENT1_EXT GL_COLOR_ATTACHMENT1
40
+ #define GL_COLOR_ATTACHMENT2_EXT GL_COLOR_ATTACHMENT2
41
+ #define GL_COLOR_ATTACHMENT3_EXT GL_COLOR_ATTACHMENT3
42
+ #define GL_COLOR_ATTACHMENT4_EXT GL_COLOR_ATTACHMENT4
43
+ #define GL_COLOR_ATTACHMENT5_EXT GL_COLOR_ATTACHMENT5
44
+ #define GL_COLOR_ATTACHMENT6_EXT GL_COLOR_ATTACHMENT6
45
+ #define GL_COLOR_ATTACHMENT7_EXT GL_COLOR_ATTACHMENT7
46
+ #define GL_COLOR_ATTACHMENT8_EXT GL_COLOR_ATTACHMENT8
47
+ #define GL_COLOR_ATTACHMENT9_EXT GL_COLOR_ATTACHMENT9
48
+ #define GL_COLOR_ATTACHMENT10_EXT GL_COLOR_ATTACHMENT10
49
+ #define GL_COLOR_ATTACHMENT11_EXT GL_COLOR_ATTACHMENT11
50
+ #define GL_COLOR_ATTACHMENT12_EXT GL_COLOR_ATTACHMENT12
51
+ #define GL_COLOR_ATTACHMENT13_EXT GL_COLOR_ATTACHMENT13
52
+ #define GL_COLOR_ATTACHMENT14_EXT GL_COLOR_ATTACHMENT14
53
+ #define GL_COLOR_ATTACHMENT15_EXT GL_COLOR_ATTACHMENT15
54
+
55
+
56
+ #define GL_DRAW_BUFFER0_EXT GL_DRAW_BUFFER0
57
+ #define GL_DRAW_BUFFER1_EXT GL_DRAW_BUFFER1
58
+ #define GL_DRAW_BUFFER2_EXT GL_DRAW_BUFFER2
59
+ #define GL_DRAW_BUFFER3_EXT GL_DRAW_BUFFER3
60
+ #define GL_DRAW_BUFFER4_EXT GL_DRAW_BUFFER4
61
+ #define GL_DRAW_BUFFER5_EXT GL_DRAW_BUFFER5
62
+ #define GL_DRAW_BUFFER6_EXT GL_DRAW_BUFFER6
63
+ #define GL_DRAW_BUFFER7_EXT GL_DRAW_BUFFER7
64
+ #define GL_DRAW_BUFFER8_EXT GL_DRAW_BUFFER8
65
+ #define GL_DRAW_BUFFER9_EXT GL_DRAW_BUFFER9
66
+ #define GL_DRAW_BUFFER10_EXT GL_DRAW_BUFFER10
67
+ #define GL_DRAW_BUFFER11_EXT GL_DRAW_BUFFER11
68
+ #define GL_DRAW_BUFFER12_EXT GL_DRAW_BUFFER12
69
+ #define GL_DRAW_BUFFER13_EXT GL_DRAW_BUFFER13
70
+ #define GL_DRAW_BUFFER14_EXT GL_DRAW_BUFFER14
71
+ #define GL_DRAW_BUFFER15_EXT GL_DRAW_BUFFER15
72
+
73
+ #define GL_MAX_COLOR_ATTACHMENTS_EXT GL_MAX_COLOR_ATTACHMENTS
74
+ #define GL_MAX_DRAW_BUFFERS_EXT GL_MAX_DRAW_BUFFERS
75
+
76
+
77
+
78
+ #endif
79
+