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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/Canvas/index.android.js +1 -1
  2. package/Canvas/index.android.js.map +1 -1
  3. package/Canvas/index.ios.d.ts +1 -0
  4. package/Canvas/index.ios.js +9 -1
  5. package/Canvas/index.ios.js.map +1 -1
  6. package/Canvas2D/CanvasRenderingContext2D/index.js +23 -8
  7. package/Canvas2D/CanvasRenderingContext2D/index.js.map +1 -1
  8. package/Dom/Dom.d.ts +4 -1
  9. package/Dom/Dom.js +27 -8
  10. package/Dom/Dom.js.map +1 -1
  11. package/Dom/index.d.ts +1 -0
  12. package/Dom/index.js +1 -0
  13. package/Dom/index.js.map +1 -1
  14. package/Dom/shaders/Gradients.d.ts +3 -0
  15. package/Dom/shaders/Gradients.js +4 -0
  16. package/Dom/shaders/Gradients.js.map +1 -0
  17. package/Dom/shaders/LinearGradient.d.ts +14 -0
  18. package/Dom/shaders/LinearGradient.js +35 -0
  19. package/Dom/shaders/LinearGradient.js.map +1 -0
  20. package/Dom/shaders/TwoPointConicalGradient.d.ts +16 -0
  21. package/Dom/shaders/TwoPointConicalGradient.js +45 -0
  22. package/Dom/shaders/TwoPointConicalGradient.js.map +1 -0
  23. package/Dom/shaders/index.d.ts +2 -0
  24. package/Dom/shaders/index.js +3 -0
  25. package/Dom/shaders/index.js.map +1 -0
  26. package/Dom/shapes/Circle.js +1 -0
  27. package/Dom/shapes/Circle.js.map +1 -1
  28. package/Dom/shapes/Line.js +5 -3
  29. package/Dom/shapes/Line.js.map +1 -1
  30. package/Dom/shapes/Rect.js +12 -5
  31. package/Dom/shapes/Rect.js.map +1 -1
  32. package/package.json +1 -1
  33. package/platforms/android/canvas-release.aar +0 -0
  34. package/platforms/ios/CanvasNative.xcframework/Info.plist +5 -5
  35. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative +0 -0
  36. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_native.h +2 -0
  37. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  38. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative +0 -0
  39. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_native.h +2 -0
  40. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +2 -2
  41. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  42. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.cpp +126 -89
  43. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.h +57 -55
  44. package/platforms/ios/src/cpp/webgl/WebGLRenderingContext.cpp +5 -0
  45. package/platforms/ios/src/cpp/webgl/WebGLRenderingContextBase.cpp +37 -7
  46. package/platforms/ios/src/cpp/webgl/WebGLRenderingContextBase.h +10 -0
  47. package/src-native/ios/NativeScript.podspec +1 -1
@@ -1,5 +1,6 @@
1
1
  import { Property } from '@nativescript/core';
2
2
  import { Paint } from '../Paint';
3
+ import { Path2D } from '../../Canvas2D';
3
4
  export const p1Property = new Property({
4
5
  name: 'p1',
5
6
  valueConverter(value) {
@@ -21,13 +22,14 @@ export class Line extends Paint {
21
22
  const context = this._canvas.getContext('2d');
22
23
  const line = new Path2D();
23
24
  line.lineTo(this.p1, this.p2);
24
- const style = this.paintStyle;
25
+ const color = this._getColor();
26
+ const style = this._getPaintStyle();
25
27
  if (style === 'fill') {
26
- context.fillStyle = this.color.hex;
28
+ context.fillStyle = color;
27
29
  context.fill(line);
28
30
  }
29
31
  else if (style === 'stroke') {
30
- context.strokeStyle = this.color.hex;
32
+ context.strokeStyle = color;
31
33
  context.stroke(line);
32
34
  }
33
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Line.js","sourceRoot":"","sources":["../../../../../packages/canvas/Dom/shapes/Line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,QAAQ,EAAoB,MAAM,oBAAoB,CAAC;AAE/E,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,QAAQ,CAAe;IACpD,IAAI,EAAE,IAAI;IACV,cAAc,CAAC,KAAK;QACnB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,QAAQ,CAAe;IACpD,IAAI,EAAE,IAAI;IACV,cAAc,CAAC,KAAK;QACnB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACD,CAAC,CAAC;AAEH,MAAM,OAAO,IAAK,SAAQ,KAAK;IAI9B,IAAI;QACH,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE;YACnD,OAAO;SACP;QACD,MAAM,cAAc,GAAI,IAAI,CAAC,MAAc,CAAC,cAAc,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAoC,CAAC;QACjF,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;QAC9B,IAAI,KAAK,KAAK,MAAM,EAAE;YACrB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnB;aAAM,IAAI,KAAK,KAAK,QAAQ,EAAE;YAC9B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YACrC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACrB;IACF,CAAC;CACD;AAED,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1B,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"Line.js","sourceRoot":"","sources":["../../../../../packages/canvas/Dom/shapes/Line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,QAAQ,EAAoB,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,QAAQ,CAAe;IACpD,IAAI,EAAE,IAAI;IACV,cAAc,CAAC,KAAK;QACnB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,QAAQ,CAAe;IACpD,IAAI,EAAE,IAAI;IACV,cAAc,CAAC,KAAK;QACnB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACD,CAAC,CAAC;AAEH,MAAM,OAAO,IAAK,SAAQ,KAAK;IAI9B,IAAI;QACH,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE;YACnD,OAAO;SACP;QACD,MAAM,cAAc,GAAI,IAAI,CAAC,MAAc,CAAC,cAAc,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAoC,CAAC;QACjF,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEpC,IAAI,KAAK,KAAK,MAAM,EAAE;YACrB,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnB;aAAM,IAAI,KAAK,KAAK,QAAQ,EAAE;YAC9B,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;YAC5B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACrB;IACF,CAAC;CACD;AAED,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1B,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC"}
@@ -34,14 +34,16 @@ export class Rect extends Paint {
34
34
  context.rect(this.x, this.y, this.width, this.height);
35
35
  if (this._children.length > 0) {
36
36
  for (const child of this._children) {
37
- switch (child.paintStyle) {
37
+ const color = child._getColor();
38
+ const style = child._getPaintStyle();
39
+ switch (style) {
38
40
  case 'fill':
39
- context.fillStyle = child.color.hex;
41
+ context.fillStyle = color;
40
42
  context.fill();
41
43
  break;
42
44
  case 'stroke':
43
- context.strokeStyle = child.color.hex;
44
- context.lineWidth = child.strokeWidth;
45
+ context.strokeStyle = color;
46
+ context.lineWidth = child._getStrokeWidth();
45
47
  context.stroke();
46
48
  break;
47
49
  }
@@ -52,7 +54,12 @@ export class Rect extends Paint {
52
54
  }
53
55
  }
54
56
  _addViewToNativeVisualTree(view, atIndex) {
55
- if (view instanceof Paint) {
57
+ if (view === this._canvas) {
58
+ this.nativeView.addView(this._canvas.nativeView);
59
+ return true;
60
+ }
61
+ else if (view instanceof Paint) {
62
+ view._canvas = this._canvas;
56
63
  this._children.push(view);
57
64
  }
58
65
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"Rect.js","sourceRoot":"","sources":["../../../../../packages/canvas/Dom/shapes/Rect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,QAAQ,EAA8B,MAAM,oBAAoB,CAAC;AAEzF,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,QAAQ,CAAe;IACnD,IAAI,EAAE,GAAG;IACT,cAAc,CAAC,KAAK;QACnB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,QAAQ,CAAe;IACnD,IAAI,EAAE,GAAG;IACT,cAAc,CAAC,KAAK;QACnB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAe;IACvD,IAAI,EAAE,OAAO;IACb,cAAc,CAAC,KAAK;QACnB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAe;IACxD,IAAI,EAAE,QAAQ;IACd,cAAc,CAAC,KAAK;QACnB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACD,CAAC,CAAC;AAEH,MAAM,OAAO,IAAK,SAAQ,KAAK;IAA/B;;QAMC,cAAS,GAAY,EAAE,CAAC;IA8BzB,CAAC;IA5BA,IAAI;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAoC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;gBACnC,QAAQ,KAAK,CAAC,UAAU,EAAE;oBACzB,KAAK,MAAM;wBACV,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;wBACpC,OAAO,CAAC,IAAI,EAAE,CAAC;wBACf,MAAM;oBACP,KAAK,QAAQ;wBACZ,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;wBACtC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC;wBACtC,OAAO,CAAC,MAAM,EAAE,CAAC;wBACjB,MAAM;iBACP;aACD;SACD;aAAM;YACN,KAAK,CAAC,IAAI,EAAE,CAAC;SACb;IACF,CAAC;IAED,0BAA0B,CAAC,IAAc,EAAE,OAAgB;QAC1D,IAAI,IAAI,YAAY,KAAK,EAAE;YAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1B;QACD,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AAED,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"Rect.js","sourceRoot":"","sources":["../../../../../packages/canvas/Dom/shapes/Rect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,QAAQ,EAA8B,MAAM,oBAAoB,CAAC;AAEzF,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,QAAQ,CAAe;IACnD,IAAI,EAAE,GAAG;IACT,cAAc,CAAC,KAAK;QACnB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,QAAQ,CAAe;IACnD,IAAI,EAAE,GAAG;IACT,cAAc,CAAC,KAAK;QACnB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAe;IACvD,IAAI,EAAE,OAAO;IACb,cAAc,CAAC,KAAK;QACnB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAe;IACxD,IAAI,EAAE,QAAQ;IACd,cAAc,CAAC,KAAK;QACnB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACD,CAAC,CAAC;AAEH,MAAM,OAAO,IAAK,SAAQ,KAAK;IAA/B;;QAMC,cAAS,GAAY,EAAE,CAAC;IAoCzB,CAAC;IAlCA,IAAI;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAoC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;gBACnC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;gBACrC,QAAQ,KAAK,EAAE;oBACd,KAAK,MAAM;wBACV,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;wBAC1B,OAAO,CAAC,IAAI,EAAE,CAAC;wBACf,MAAM;oBACP,KAAK,QAAQ;wBACZ,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;wBAC5B,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;wBAC5C,OAAO,CAAC,MAAM,EAAE,CAAC;wBACjB,MAAM;iBACP;aACD;SACD;aAAM;YACN,KAAK,CAAC,IAAI,EAAE,CAAC;SACb;IACF,CAAC;IAED,0BAA0B,CAAC,IAAc,EAAE,OAAgB;QAC1D,IAAI,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE;YAC1B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;SACZ;aAAM,IAAI,IAAI,YAAY,KAAK,EAAE;YACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1B;QACD,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AAED,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nativescript/canvas",
3
- "version": "2.0.0-beta.1",
3
+ "version": "2.0.0-beta.3",
4
4
  "description": "DOM Canvas API for NativeScript",
5
5
  "main": "index",
6
6
  "typings": "index.d.ts",
@@ -8,32 +8,32 @@
8
8
  <key>DebugSymbolsPath</key>
9
9
  <string>dSYMs</string>
10
10
  <key>LibraryIdentifier</key>
11
- <string>ios-arm64</string>
11
+ <string>ios-arm64_x86_64-simulator</string>
12
12
  <key>LibraryPath</key>
13
13
  <string>CanvasNative.framework</string>
14
14
  <key>SupportedArchitectures</key>
15
15
  <array>
16
16
  <string>arm64</string>
17
+ <string>x86_64</string>
17
18
  </array>
18
19
  <key>SupportedPlatform</key>
19
20
  <string>ios</string>
21
+ <key>SupportedPlatformVariant</key>
22
+ <string>simulator</string>
20
23
  </dict>
21
24
  <dict>
22
25
  <key>DebugSymbolsPath</key>
23
26
  <string>dSYMs</string>
24
27
  <key>LibraryIdentifier</key>
25
- <string>ios-arm64_x86_64-simulator</string>
28
+ <string>ios-arm64</string>
26
29
  <key>LibraryPath</key>
27
30
  <string>CanvasNative.framework</string>
28
31
  <key>SupportedArchitectures</key>
29
32
  <array>
30
33
  <string>arm64</string>
31
- <string>x86_64</string>
32
34
  </array>
33
35
  <key>SupportedPlatform</key>
34
36
  <string>ios</string>
35
- <key>SupportedPlatformVariant</key>
36
- <string>simulator</string>
37
37
  </dict>
38
38
  </array>
39
39
  <key>CFBundlePackageType</key>
@@ -1213,6 +1213,8 @@ bool canvas_native_webgl_make_current(struct WebGLState *state);
1213
1213
 
1214
1214
  bool canvas_native_webgl_swap_buffers(struct WebGLState *state);
1215
1215
 
1216
+ bool canvas_native_webgl_make_current_and_swap_buffers(struct WebGLState *state);
1217
+
1216
1218
  void canvas_native_webgl_resized(struct WebGLState *_state);
1217
1219
 
1218
1220
  const char *canvas_native_webgl_to_data_url(struct WebGLState *state,
@@ -1213,6 +1213,8 @@ bool canvas_native_webgl_make_current(struct WebGLState *state);
1213
1213
 
1214
1214
  bool canvas_native_webgl_swap_buffers(struct WebGLState *state);
1215
1215
 
1216
+ bool canvas_native_webgl_make_current_and_swap_buffers(struct WebGLState *state);
1217
+
1216
1218
  void canvas_native_webgl_resized(struct WebGLState *_state);
1217
1219
 
1218
1220
  const char *canvas_native_webgl_to_data_url(struct WebGLState *state,
@@ -18,7 +18,7 @@
18
18
  </data>
19
19
  <key>Headers/canvas_native.h</key>
20
20
  <data>
21
- XsX2QGyWWWRx+Re/2nxFcoBoMjg=
21
+ fHjKG7aDZ9ZVi79Vu9g8z8IS9lo=
22
22
  </data>
23
23
  <key>Info.plist</key>
24
24
  <data>
@@ -108,7 +108,7 @@
108
108
  <dict>
109
109
  <key>hash2</key>
110
110
  <data>
111
- xQtVdm5vJz/Oga/nNrCvEeqLDQmYAbn6yURH5MwoH0k=
111
+ aufqGvTGgpXa9ipXAyNSFoJPEdAdB2J5O3Cf8sPHYMM=
112
112
  </data>
113
113
  </dict>
114
114
  <key>Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo</key>
@@ -6,6 +6,11 @@
6
6
  #include "Caches.h"
7
7
  #include "OneByteStringResource.h"
8
8
 
9
+ v8::CFunction CanvasRenderingContext2DImpl::fast_start_raf_(
10
+ v8::CFunction::Make(CanvasRenderingContext2DImpl::__FastStartRaf));
11
+
12
+ v8::CFunction CanvasRenderingContext2DImpl::fast_stop_raf_(
13
+ v8::CFunction::Make(CanvasRenderingContext2DImpl::__FastStopRaf));
9
14
 
10
15
  v8::CFunction CanvasRenderingContext2DImpl::fast_draw_point_(
11
16
  v8::CFunction::Make(CanvasRenderingContext2DImpl::FastDrawPoint));
@@ -251,6 +256,27 @@ CanvasRenderingContext2DImpl::GetPointer(const v8::Local<v8::Object> &object) {
251
256
  return static_cast<CanvasRenderingContext2DImpl *>(ptr);
252
257
  }
253
258
 
259
+
260
+ void CanvasRenderingContext2DImpl::StartRaf() {
261
+ auto raf = this->GetRaf();
262
+ if (raf != nullptr) {
263
+ if (!canvas_native_raf_get_started(raf->GetRaf())) {
264
+ canvas_native_raf_start(raf->GetRaf());
265
+ }
266
+ }
267
+ }
268
+
269
+
270
+ void CanvasRenderingContext2DImpl::StopRaf() {
271
+ auto raf = this->GetRaf();
272
+ if (raf != nullptr) {
273
+ if (canvas_native_raf_get_started(raf->GetRaf())) {
274
+ canvas_native_raf_stop(raf->GetRaf());
275
+ }
276
+ }
277
+ }
278
+
279
+
254
280
  v8::Local<v8::FunctionTemplate> CanvasRenderingContext2DImpl::GetCtor(v8::Isolate *isolate) {
255
281
  auto cache = Caches::Get(isolate);
256
282
  auto ctor = cache->CanvasRenderingContext2DTmpl.get();
@@ -264,6 +290,13 @@ v8::Local<v8::FunctionTemplate> CanvasRenderingContext2DImpl::GetCtor(v8::Isolat
264
290
  auto tmpl = ctorTmpl->InstanceTemplate();
265
291
  tmpl->SetInternalFieldCount(2);
266
292
 
293
+
294
+ SetFastMethod(isolate, tmpl, "__startRaf", __StartRaf, &fast_start_raf_,
295
+ v8::Local<v8::Value>());
296
+
297
+ SetFastMethod(isolate, tmpl, "__stopRaf", __StopRaf, &fast_stop_raf_,
298
+ v8::Local<v8::Value>());
299
+
267
300
  SetFastMethod(isolate, tmpl, "drawPoint", DrawPoint, &fast_draw_point_, v8::Local<v8::Value>());
268
301
 
269
302
  tmpl->Set(ConvertToV8String(isolate, "drawPoints"),
@@ -278,6 +311,9 @@ v8::Local<v8::FunctionTemplate> CanvasRenderingContext2DImpl::GetCtor(v8::Isolat
278
311
  v8::FunctionTemplate::New(isolate, __GetPointer));
279
312
  tmpl->Set(ConvertToV8String(isolate, "__resize"), v8::FunctionTemplate::New(isolate, __Resize));
280
313
 
314
+ tmpl->SetAccessor(ConvertToV8String(isolate, "continuousRenderMode"), GetContinuousRenderMode,
315
+ SetContinuousRenderMode);
316
+
281
317
  tmpl->SetAccessor(ConvertToV8String(isolate, "filter"), GetFilter, SetFilter);
282
318
  tmpl->SetAccessor(ConvertToV8String(isolate, "font"), GetFont, SetFont);
283
319
  tmpl->SetAccessor(ConvertToV8String(isolate, "letterSpacing"), GetLetterSpacing,
@@ -319,24 +355,19 @@ v8::Local<v8::FunctionTemplate> CanvasRenderingContext2DImpl::GetCtor(v8::Isolat
319
355
 
320
356
  SetFastMethod(isolate, tmpl, "beginPath", BeginPath, &fast_begin_path_, v8::Local<v8::Value>());
321
357
 
322
-
323
358
  SetFastMethod(isolate, tmpl, "bezierCurveTo", BezierCurveTo, &fast_bezier_curve_to_,
324
359
  v8::Local<v8::Value>());
325
360
 
326
-
327
361
  tmpl->Set(ConvertToV8String(isolate, "clearHitRegions"),
328
362
  v8::FunctionTemplate::New(isolate, &ClearHitRegions));
329
363
 
330
-
331
364
  SetFastMethod(isolate, tmpl, "clearRect", ClearRect, &fast_clear_rect_, v8::Local<v8::Value>());
332
365
 
333
-
334
366
  SetFastMethodWithOverLoads(isolate, tmpl, "clip", Clip, fast_clip_overloads_,
335
367
  v8::Local<v8::Value>());
336
368
 
337
369
  SetFastMethod(isolate, tmpl, "closePath", ClosePath, &fast_close_path_, v8::Local<v8::Value>());
338
370
 
339
-
340
371
  tmpl->Set(ConvertToV8String(isolate, "createImageData"),
341
372
  v8::FunctionTemplate::New(isolate, &CreateImageData));
342
373
  tmpl->Set(ConvertToV8String(isolate, "createPattern"),
@@ -352,7 +383,6 @@ v8::Local<v8::FunctionTemplate> CanvasRenderingContext2DImpl::GetCtor(v8::Isolat
352
383
  tmpl->Set(ConvertToV8String(isolate, "drawFocusIfNeeded"),
353
384
  v8::FunctionTemplate::New(isolate, &DrawFocusIfNeeded));
354
385
 
355
-
356
386
  SetFastMethodWithOverLoads(isolate, tmpl, "drawImage", DrawImage, fast_draw_overloads_,
357
387
  v8::Local<v8::Value>());
358
388
 
@@ -466,6 +496,59 @@ RafImpl *CanvasRenderingContext2DImpl::GetRaf() {
466
496
  return this->raf_.get();
467
497
  }
468
498
 
499
+
500
+ void CanvasRenderingContext2DImpl::__StartRaf(const v8::FunctionCallbackInfo<v8::Value> &args) {
501
+ CanvasRenderingContext2DImpl *ptr = GetPointer(args.This());
502
+ if (ptr == nullptr) {
503
+ return;
504
+ }
505
+
506
+ ptr->StartRaf();
507
+
508
+ }
509
+
510
+ void CanvasRenderingContext2DImpl::__StopRaf(const v8::FunctionCallbackInfo<v8::Value> &args) {
511
+ CanvasRenderingContext2DImpl *ptr = GetPointer(args.This());
512
+ if (ptr == nullptr) {
513
+ return;
514
+ }
515
+
516
+ ptr->StopRaf();
517
+
518
+ }
519
+
520
+
521
+ void CanvasRenderingContext2DImpl::GetContinuousRenderMode(v8::Local<v8::String> property,
522
+ const v8::PropertyCallbackInfo<v8::Value> &info) {
523
+ CanvasRenderingContext2DImpl *ptr = GetPointer(info.This());
524
+ if (ptr == nullptr) {
525
+ info.GetReturnValue().Set(false);
526
+ return;
527
+ }
528
+ info.GetReturnValue().Set(ptr->continuousRender_);
529
+ }
530
+
531
+ void CanvasRenderingContext2DImpl::SetContinuousRenderMode(v8::Local<v8::String> property,
532
+ v8::Local<v8::Value> value,
533
+ const v8::PropertyCallbackInfo<void> &info) {
534
+ CanvasRenderingContext2DImpl *ptr = GetPointer(info.This());
535
+ if (ptr == nullptr) {
536
+ return;
537
+ }
538
+ auto isolate = info.GetIsolate();
539
+ auto val = value->BooleanValue(isolate);
540
+ if (val == ptr->continuousRender_) {
541
+ return;
542
+ }
543
+ if (val) {
544
+ ptr->StartRaf();
545
+ } else {
546
+ ptr->StopRaf();
547
+ }
548
+ ptr->continuousRender_ = val;
549
+ }
550
+
551
+
469
552
  /* Non Standard 2D */
470
553
 
471
554
  void CanvasRenderingContext2DImpl::DrawPoint(const v8::FunctionCallbackInfo<v8::Value> &args) {
@@ -490,53 +573,41 @@ void CanvasRenderingContext2DImpl::DrawPoints(const v8::FunctionCallbackInfo<v8:
490
573
  if (ptr == nullptr) {
491
574
  return;
492
575
  }
493
-
576
+
494
577
  auto isolate = args.GetIsolate();
495
578
  auto context = isolate->GetCurrentContext();
496
-
497
-
498
- auto mode = ConvertFromV8String(isolate, args[0]);
579
+
580
+
581
+ auto mode = args[0];
499
582
  auto points = args[1].As<v8::Array>();
500
583
  auto size = points->Length();
501
-
502
-
503
- if ((size % 2) == 0) {
504
- int32_t pointMode = -1;
505
- if (mode == "points") {
506
- pointMode = 0;
507
- } else if (mode == "lines") {
508
- pointMode = 1;
509
- } else if (mode == "polygon") {
510
- pointMode = 2;
511
- }
512
- if (pointMode == -1) {
513
- return;
514
- }
584
+
585
+ if (size == 0){return;}
586
+ uint32_t pointMode = 0;
587
+ if(mode->IsUint32() && mode->Uint32Value(context).To(&pointMode)){
515
588
  std::vector<float> store;
516
- store.reserve(size);
517
- int next = 0;
589
+ auto len = size * 2;
590
+ store.reserve(len);
518
591
  for (int i = 0; i < size; i++) {
519
-
592
+
520
593
  auto object = points->Get(
521
- context, i).ToLocalChecked().As<v8::Object>();
522
-
594
+ context, i).ToLocalChecked().As<v8::Object>();
595
+
523
596
  auto x = object->Get(context,
524
597
  ConvertToV8String(isolate, "x")).ToLocalChecked()->NumberValue(
525
- context).ToChecked();
598
+ context).ToChecked();
526
599
  auto y = object->Get(context,
527
600
  ConvertToV8String(isolate, "y")).ToLocalChecked()->NumberValue(
528
- context).ToChecked();
529
- store[next] = (float) x;
530
- store[next + 1] = (float) y;
531
-
532
- next = i + 2;
601
+ context).ToChecked();
602
+ store.emplace_back((float) x);
603
+ store.emplace_back((float) y);
533
604
  }
534
-
605
+
535
606
  canvas_native_context_draw_points(
536
- ptr->GetContext(), pointMode,
537
- store.data(), store.size());
538
-
539
-
607
+ ptr->GetContext(), pointMode,
608
+ store.data(), store.size());
609
+
610
+
540
611
  ptr->UpdateInvalidateState();
541
612
  }
542
613
  }
@@ -2011,33 +2082,19 @@ CanvasRenderingContext2DImpl::Fill(const v8::FunctionCallbackInfo<v8::Value> &ar
2011
2082
 
2012
2083
  if (object != nullptr) {
2013
2084
  auto rule = args[1]->Uint32Value(context).ToChecked();
2014
- switch (rule) {
2015
- case 0:
2016
- case 1:
2017
- canvas_native_context_fill_with_path(
2018
- ptr->GetContext(),
2019
- object->GetPath(), rule);
2020
- ptr->UpdateInvalidateState();
2021
- break;
2022
- default:
2023
- break;
2024
- }
2025
-
2085
+ canvas_native_context_fill_with_path(
2086
+ ptr->GetContext(),
2087
+ object->GetPath(), rule);
2088
+ ptr->UpdateInvalidateState();
2026
2089
  }
2027
2090
  }
2028
2091
  } else if (count == 1) {
2029
- if (value->IsInt32()) {
2030
- auto rule = args[1]->Uint32Value(context).ToChecked();
2031
- switch (rule) {
2032
- case 0:
2033
- canvas_native_context_fill(
2034
- ptr->GetContext(),
2035
- rule);
2036
- ptr->UpdateInvalidateState();
2037
- break;
2038
- default:
2039
- break;
2040
- }
2092
+ if (value->IsUint32()) {
2093
+ auto rule = value->Uint32Value(context).ToChecked();
2094
+ canvas_native_context_fill(
2095
+ ptr->GetContext(),
2096
+ rule);
2097
+ ptr->UpdateInvalidateState();
2041
2098
  } else if (value->IsObject()) {
2042
2099
  auto type = GetNativeType(value.As<v8::Object>());
2043
2100
  if (type == NativeType::Path2D) {
@@ -2190,16 +2247,8 @@ CanvasRenderingContext2DImpl::IsPointInPath(const v8::FunctionCallbackInfo<v8::V
2190
2247
  auto x = static_cast<float>(args[0]->NumberValue(context).ToChecked());
2191
2248
  auto y = static_cast<float>(args[1]->NumberValue(context).ToChecked());
2192
2249
  auto rule = args[2]->Uint32Value(context).ToChecked();
2193
- bool ret = false;
2194
- switch (rule) {
2195
- case 0:
2196
- case 1:
2197
- ret = canvas_native_context_is_point_in_path(
2198
- ptr->GetContext(), x, y, rule);
2199
- break;
2200
- default:
2201
- break;
2202
- }
2250
+ bool ret = canvas_native_context_is_point_in_path(
2251
+ ptr->GetContext(), x, y, rule);
2203
2252
  args.GetReturnValue().Set(ret);
2204
2253
  return;
2205
2254
  } else if (count == 4 &&
@@ -2214,20 +2263,12 @@ CanvasRenderingContext2DImpl::IsPointInPath(const v8::FunctionCallbackInfo<v8::V
2214
2263
  auto x = static_cast<float>(args[1]->NumberValue(context).ToChecked());
2215
2264
  auto y = static_cast<float>(args[2]->NumberValue(context).ToChecked());
2216
2265
  auto rule = args[3]->Uint32Value(context).ToChecked();
2217
- bool ret = false;
2218
2266
 
2219
2267
  if (path != nullptr) {
2220
2268
 
2221
- switch (rule) {
2222
- case 0:
2223
- case 1:
2224
- ret = canvas_native_context_is_point_in_path_with_path(
2225
- ptr->GetContext(),
2226
- path->GetPath(), x, y, rule);
2227
- break;
2228
- default:
2229
- break;
2230
- }
2269
+ bool ret = canvas_native_context_is_point_in_path_with_path(
2270
+ ptr->GetContext(),
2271
+ path->GetPath(), x, y, rule);
2231
2272
 
2232
2273
  args.GetReturnValue().Set(ret);
2233
2274
  return;
@@ -2815,11 +2856,7 @@ void CanvasRenderingContext2DImpl::Flush() {
2815
2856
  auto state = (int) this->GetInvalidateState() & (int) InvalidateState::InvalidateStatePending;
2816
2857
  if (state == (int) InvalidateState::InvalidateStatePending) {
2817
2858
  this->SetInvalidateState(InvalidateState::InvalidateStateInvalidating);
2818
- // canvas_native_context_flush(ptr->GetContext());
2819
-
2820
2859
  canvas_native_context_render(this->GetContext());
2821
- // canvas_native_context_gl_make_current(ptr->GetContext());
2822
- // canvas_native_context_gl_swap_buffers(ptr->GetContext());
2823
2860
  this->SetInvalidateState(InvalidateState::InvalidateStateNone);
2824
2861
  }
2825
2862
  }