@nativescript/canvas 2.0.0-beta.2 → 2.0.0-beta.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 (201) hide show
  1. package/Canvas/common.d.ts +23 -15
  2. package/Canvas/common.js +127 -55
  3. package/Canvas/common.js.map +1 -1
  4. package/Canvas/index.android.d.ts +1 -0
  5. package/Canvas/index.android.js +53 -88
  6. package/Canvas/index.android.js.map +1 -1
  7. package/Canvas/index.d.ts +2 -0
  8. package/Canvas/index.ios.d.ts +4 -1
  9. package/Canvas/index.ios.js +58 -52
  10. package/Canvas/index.ios.js.map +1 -1
  11. package/Canvas2D/CanvasRenderingContext2D/index.d.ts +14 -0
  12. package/Canvas2D/CanvasRenderingContext2D/index.js +207 -19
  13. package/Canvas2D/CanvasRenderingContext2D/index.js.map +1 -1
  14. package/Canvas2D/DOMMatrix/index.d.ts +14 -0
  15. package/Canvas2D/DOMMatrix/index.js +62 -0
  16. package/Canvas2D/DOMMatrix/index.js.map +1 -1
  17. package/Canvas2D/ImageData/index.js +4 -6
  18. package/Canvas2D/ImageData/index.js.map +1 -1
  19. package/Canvas2D/Path2D/index.d.ts +2 -1
  20. package/Canvas2D/Path2D/index.js +3 -12
  21. package/Canvas2D/Path2D/index.js.map +1 -1
  22. package/Dom/Dom.d.ts +20 -1
  23. package/Dom/Dom.js +78 -10
  24. package/Dom/Dom.js.map +1 -1
  25. package/Dom/Group.d.ts +5 -0
  26. package/Dom/Group.js +15 -0
  27. package/Dom/Group.js.map +1 -1
  28. package/Dom/Image.d.ts +1 -0
  29. package/Dom/Image.js +20 -0
  30. package/Dom/Image.js.map +1 -1
  31. package/Dom/Paint.d.ts +4 -0
  32. package/Dom/Paint.js +19 -7
  33. package/Dom/Paint.js.map +1 -1
  34. package/Dom/Shadow.js +9 -0
  35. package/Dom/Shadow.js.map +1 -1
  36. package/Dom/Text.js +11 -1
  37. package/Dom/Text.js.map +1 -1
  38. package/Dom/index.d.ts +1 -0
  39. package/Dom/index.js +1 -0
  40. package/Dom/index.js.map +1 -1
  41. package/Dom/shaders/Gradients.d.ts +3 -0
  42. package/Dom/shaders/Gradients.js +4 -0
  43. package/Dom/shaders/Gradients.js.map +1 -0
  44. package/Dom/shaders/LinearGradient.d.ts +14 -0
  45. package/Dom/shaders/LinearGradient.js +44 -0
  46. package/Dom/shaders/LinearGradient.js.map +1 -0
  47. package/Dom/shaders/TwoPointConicalGradient.d.ts +16 -0
  48. package/Dom/shaders/TwoPointConicalGradient.js +60 -0
  49. package/Dom/shaders/TwoPointConicalGradient.js.map +1 -0
  50. package/Dom/shaders/index.d.ts +2 -0
  51. package/Dom/shaders/index.js +3 -0
  52. package/Dom/shaders/index.js.map +1 -0
  53. package/Dom/shapes/Atlas.d.ts +22 -0
  54. package/Dom/shapes/Atlas.js +60 -0
  55. package/Dom/shapes/Atlas.js.map +1 -0
  56. package/Dom/shapes/Circle.js +11 -0
  57. package/Dom/shapes/Circle.js.map +1 -1
  58. package/Dom/shapes/Line.d.ts +16 -4
  59. package/Dom/shapes/Line.js +13 -8
  60. package/Dom/shapes/Line.js.map +1 -1
  61. package/Dom/shapes/Oval.d.ts +12 -0
  62. package/Dom/shapes/Oval.js +87 -0
  63. package/Dom/shapes/Oval.js.map +1 -0
  64. package/Dom/shapes/Path.d.ts +19 -2
  65. package/Dom/shapes/Path.js +68 -4
  66. package/Dom/shapes/Path.js.map +1 -1
  67. package/Dom/shapes/Points.js +9 -1
  68. package/Dom/shapes/Points.js.map +1 -1
  69. package/Dom/shapes/Rect.js +27 -5
  70. package/Dom/shapes/Rect.js.map +1 -1
  71. package/Dom/shapes/RoundedRect.d.ts +2 -1
  72. package/Dom/shapes/RoundedRect.js +13 -2
  73. package/Dom/shapes/RoundedRect.js.map +1 -1
  74. package/Dom/shapes/index.d.ts +17 -0
  75. package/Dom/shapes/index.js +31 -0
  76. package/Dom/shapes/index.js.map +1 -1
  77. package/WebGL/WebGLRenderingContext/index.d.ts +1 -0
  78. package/WebGL/WebGLRenderingContext/index.js +104 -14
  79. package/WebGL/WebGLRenderingContext/index.js.map +1 -1
  80. package/WebGL2/WebGL2RenderingContext/index.d.ts +1 -0
  81. package/WebGL2/WebGL2RenderingContext/index.js +2 -3
  82. package/WebGL2/WebGL2RenderingContext/index.js.map +1 -1
  83. package/index.d.ts +0 -1
  84. package/index.js +14 -15
  85. package/index.js.map +1 -1
  86. package/package.json +1 -4
  87. package/platforms/android/canvas-release.aar +0 -0
  88. package/platforms/ios/CanvasNative.xcframework/Info.plist +4 -0
  89. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative +0 -0
  90. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/CanvasNative-Swift.h +35 -25
  91. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_ios.h +50 -4
  92. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_native.h +139 -16
  93. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Info.plist +0 -0
  94. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  95. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json +982 -3319
  96. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.private.swiftinterface +18 -33
  97. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  98. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftinterface +18 -33
  99. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/module.modulemap +1 -1
  100. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/NSCCanvas.nib +0 -0
  101. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  102. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +622 -0
  103. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative +0 -0
  104. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/CanvasNative-Swift.h +70 -50
  105. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_ios.h +50 -4
  106. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_native.h +139 -16
  107. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Info.plist +0 -0
  108. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  109. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  110. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json +982 -3319
  111. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +18 -33
  112. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  113. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftinterface +18 -33
  114. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json +982 -3319
  115. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +18 -33
  116. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  117. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +18 -33
  118. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/module.modulemap +1 -1
  119. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/NSCCanvas.nib +0 -0
  120. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +35 -35
  121. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  122. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +624 -0
  123. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/x86_64/CanvasNative.yml +624 -0
  124. package/platforms/ios/src/cpp/CanvasJSIModule.cpp +297 -397
  125. package/platforms/ios/src/cpp/Helpers.h +3 -4
  126. package/platforms/ios/src/cpp/ImageAssetImpl.cpp +30 -30
  127. package/platforms/ios/src/cpp/ImageAssetImpl.h +8 -5
  128. package/platforms/ios/src/cpp/URLImpl.cpp +73 -0
  129. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.cpp +339 -33
  130. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.h +150 -55
  131. package/platforms/ios/src/cpp/canvas2d/MatrixImpl.cpp +409 -3
  132. package/platforms/ios/src/cpp/canvas2d/MatrixImpl.h +27 -0
  133. package/platforms/ios/src/cpp/canvas2d/Path2D.cpp +19 -48
  134. package/platforms/ios/src/cpp/canvas2d/Path2D.h +19 -0
  135. package/platforms/ios/src/cpp/webgl/WebGLRenderingContext.cpp +105 -119
  136. package/platforms/ios/src/cpp/webgl/WebGLRenderingContextBase.cpp +37 -7
  137. package/platforms/ios/src/cpp/webgl/WebGLRenderingContextBase.h +10 -0
  138. package/platforms/ios/src/cpp/webgl2/WebGL2RenderingContext.cpp +1766 -1659
  139. package/src-native/ios/NativeScript.podspec +1 -1
  140. package/SVG/Circle.d.ts +0 -11
  141. package/SVG/Circle.js +0 -21
  142. package/SVG/Circle.js.map +0 -1
  143. package/SVG/ClipPath.d.ts +0 -4
  144. package/SVG/ClipPath.js +0 -9
  145. package/SVG/ClipPath.js.map +0 -1
  146. package/SVG/Defs.d.ts +0 -4
  147. package/SVG/Defs.js +0 -9
  148. package/SVG/Defs.js.map +0 -1
  149. package/SVG/Ellipse.d.ts +0 -13
  150. package/SVG/Ellipse.js +0 -26
  151. package/SVG/Ellipse.js.map +0 -1
  152. package/SVG/G.d.ts +0 -7
  153. package/SVG/G.js +0 -9
  154. package/SVG/G.js.map +0 -1
  155. package/SVG/Image.d.ts +0 -11
  156. package/SVG/Image.js +0 -40
  157. package/SVG/Image.js.map +0 -1
  158. package/SVG/Line.d.ts +0 -13
  159. package/SVG/Line.js +0 -26
  160. package/SVG/Line.js.map +0 -1
  161. package/SVG/LinearGradient.d.ts +0 -10
  162. package/SVG/LinearGradient.js +0 -13
  163. package/SVG/LinearGradient.js.map +0 -1
  164. package/SVG/Path.d.ts +0 -7
  165. package/SVG/Path.js +0 -14
  166. package/SVG/Path.js.map +0 -1
  167. package/SVG/Pattern.d.ts +0 -4
  168. package/SVG/Pattern.js +0 -9
  169. package/SVG/Pattern.js.map +0 -1
  170. package/SVG/Polygon.d.ts +0 -7
  171. package/SVG/Polygon.js +0 -14
  172. package/SVG/Polygon.js.map +0 -1
  173. package/SVG/Polyline.d.ts +0 -7
  174. package/SVG/Polyline.js +0 -14
  175. package/SVG/Polyline.js.map +0 -1
  176. package/SVG/Rect.d.ts +0 -8
  177. package/SVG/Rect.js +0 -13
  178. package/SVG/Rect.js.map +0 -1
  179. package/SVG/SVG.d.ts +0 -31
  180. package/SVG/SVG.js +0 -190
  181. package/SVG/SVG.js.map +0 -1
  182. package/SVG/SVGItem.d.ts +0 -5
  183. package/SVG/SVGItem.js +0 -8
  184. package/SVG/SVGItem.js.map +0 -1
  185. package/SVG/Stop.d.ts +0 -5
  186. package/SVG/Stop.js +0 -9
  187. package/SVG/Stop.js.map +0 -1
  188. package/SVG/Symbol.d.ts +0 -4
  189. package/SVG/Symbol.js +0 -9
  190. package/SVG/Symbol.js.map +0 -1
  191. package/SVG/Text.d.ts +0 -14
  192. package/SVG/Text.js +0 -26
  193. package/SVG/Text.js.map +0 -1
  194. package/SVG/Use.d.ts +0 -4
  195. package/SVG/Use.js +0 -9
  196. package/SVG/Use.js.map +0 -1
  197. package/SVG/index.d.ts +0 -18
  198. package/SVG/index.js +0 -19
  199. package/SVG/index.js.map +0 -1
  200. package/platforms/ios/src/cpp/PerIsolateData.cpp +0 -49
  201. package/platforms/ios/src/cpp/PerIsolateData.h +0 -54
@@ -28,6 +28,10 @@
28
28
  class CanvasRenderingContext2DImpl : ObjectWrapperImpl {
29
29
  public:
30
30
 
31
+ static v8::CFunction fast_start_raf_;
32
+
33
+ static v8::CFunction fast_stop_raf_;
34
+
31
35
  static v8::CFunction fast_draw_point_;
32
36
 
33
37
  static v8::CFunction fast_arc_;
@@ -102,12 +106,16 @@ public:
102
106
 
103
107
  static v8::CFunction fast_fill_rect_;
104
108
 
109
+ static v8::CFunction fast_fill_oval_;
110
+
105
111
  static v8::CFunction fast_stroke_;
106
112
 
107
113
  static v8::CFunction fast_stroke_path_;
108
114
 
109
115
  static v8::CFunction fast_stroke_rect_;
110
116
 
117
+ static v8::CFunction fast_stroke_oval_;
118
+
111
119
  static v8::CFunction fast_rotate_;
112
120
 
113
121
  static v8::CFunction fast_reset_transform_;
@@ -118,9 +126,39 @@ public:
118
126
 
119
127
  static v8::CFunction fast_translate_;
120
128
 
129
+ static v8::CFunction fast_draw_atlas_;
130
+
121
131
 
122
132
  CanvasRenderingContext2DImpl(CanvasRenderingContext2D *context);
123
133
 
134
+ void StartRaf();
135
+
136
+ void StopRaf();
137
+
138
+ static void __StartRaf(const v8::FunctionCallbackInfo<v8::Value> &args);
139
+
140
+ static void __FastStartRaf(v8::Local<v8::Object> receiver_obj) {
141
+ CanvasRenderingContext2DImpl *ptr = GetPointer(receiver_obj);
142
+ if (ptr == nullptr) {
143
+ return;
144
+ }
145
+
146
+ ptr->StartRaf();
147
+
148
+ }
149
+
150
+ static void __StopRaf(const v8::FunctionCallbackInfo<v8::Value> &args);
151
+
152
+ static void __FastStopRaf(v8::Local<v8::Object> receiver_obj) {
153
+ CanvasRenderingContext2DImpl *ptr = GetPointer(receiver_obj);
154
+ if (ptr == nullptr) {
155
+ return;
156
+ }
157
+
158
+ ptr->StopRaf();
159
+
160
+ }
161
+
124
162
  static void Init(v8::Local<v8::Object> canvasModule, v8::Isolate *isolate);
125
163
 
126
164
  static CanvasRenderingContext2DImpl *GetPointer(const v8::Local<v8::Object> &object);
@@ -163,6 +201,15 @@ public:
163
201
 
164
202
  static void __Resize(const v8::FunctionCallbackInfo<v8::Value> &args);
165
203
 
204
+
205
+ static void SetContinuousRenderMode(v8::Local<v8::String> property,
206
+ v8::Local<v8::Value> value,
207
+ const v8::PropertyCallbackInfo<void> &info);
208
+
209
+ static void GetContinuousRenderMode(v8::Local<v8::String> property,
210
+ const v8::PropertyCallbackInfo<v8::Value> &info);
211
+
212
+
166
213
  static void GetFilter(v8::Local<v8::String> property,
167
214
  const v8::PropertyCallbackInfo<v8::Value> &info);
168
215
 
@@ -489,18 +536,10 @@ public:
489
536
 
490
537
  if (GetNativeType(path_obj) == NativeType::Path2D) {
491
538
  auto path = Path2D::GetPointer(path_obj);
492
- switch (rule) {
493
- case 0:
494
- case 1:
495
- canvas_native_context_clip(
496
- ptr->GetContext(), path->GetPath(), rule);
497
- break;
498
- default:
499
- break;
500
- }
539
+ canvas_native_context_clip(
540
+ ptr->GetContext(), path->GetPath(), rule);
501
541
  }
502
542
 
503
-
504
543
  }
505
544
 
506
545
  static void ClosePath(const v8::FunctionCallbackInfo<v8::Value> &args);
@@ -536,6 +575,51 @@ public:
536
575
 
537
576
  static void DrawFocusIfNeeded(const v8::FunctionCallbackInfo<v8::Value> &args);
538
577
 
578
+
579
+ static void DrawAtlas(const v8::FunctionCallbackInfo<v8::Value> &args);
580
+
581
+ /*
582
+ static void FastDrawAtlas(v8::Local<v8::Object> receiver_obj, v8::Local<v8::Object> image_obj, v8::Local<v8::Array> xform, v8::Local<v8::Array> tex, v8::Local<v8::Array> xform) {
583
+ CanvasRenderingContext2DImpl *ptr = GetPointer(receiver_obj);
584
+ if (ptr == nullptr) {
585
+ return;
586
+ }
587
+
588
+
589
+ auto len = array->Length();
590
+ std::vector<float> buf;
591
+ buf.reserve(len);
592
+
593
+ auto copied = v8::TryToCopyAndConvertArrayToCppBuffer<v8::CTypeInfoBuilder<float>::Build().GetId(), float>(
594
+ array, buf.data(), len);
595
+
596
+ if (copied) {
597
+
598
+ auto imageType = GetNativeType(image_obj);
599
+ switch (imageType) {
600
+ case NativeType::ImageAsset: {
601
+ auto asset = ImageAssetImpl::GetPointer(image_obj);
602
+
603
+ }
604
+ break;
605
+ case NativeType::ImageBitmap: {
606
+ auto asset = ImageBitmapImpl::GetPointer(image_obj);
607
+ }
608
+ break;
609
+ case NativeType::CanvasRenderingContext2D: {
610
+ auto context = CanvasRenderingContext2DImpl::GetPointer(image_obj);
611
+
612
+ }
613
+ break;
614
+ default:
615
+ break;
616
+ }
617
+
618
+
619
+ ptr->UpdateInvalidateState();
620
+ }
621
+ */
622
+
539
623
  static void DrawImage(const v8::FunctionCallbackInfo<v8::Value> &args);
540
624
 
541
625
  static void
@@ -800,18 +884,10 @@ public:
800
884
  auto object = Path2D::GetPointer(path);
801
885
 
802
886
  if (object != nullptr) {
803
- switch (rule) {
804
- case 0:
805
- case 1:
806
- canvas_native_context_fill_with_path(
807
- ptr->GetContext(),
808
- object->GetPath(),
809
- rule);
810
- break;
811
- default:
812
- break;
813
- }
814
-
887
+ canvas_native_context_fill_with_path(
888
+ ptr->GetContext(),
889
+ object->GetPath(),
890
+ rule);
815
891
  ptr->UpdateInvalidateState();
816
892
  }
817
893
  }
@@ -837,16 +913,9 @@ public:
837
913
  return;
838
914
  }
839
915
 
840
- switch (rule) {
841
- case 0:
842
- case 1:
843
- canvas_native_context_fill(
844
- ptr->GetContext(), rule);
845
- ptr->UpdateInvalidateState();
846
- break;
847
- default:
848
- break;
849
- }
916
+ canvas_native_context_fill(
917
+ ptr->GetContext(), rule);
918
+ ptr->UpdateInvalidateState();
850
919
  }
851
920
 
852
921
  static void FastFill(v8::Local<v8::Object> receiver_obj) {
@@ -882,6 +951,27 @@ public:
882
951
 
883
952
  static void FillText(const v8::FunctionCallbackInfo<v8::Value> &args);
884
953
 
954
+
955
+ static void FillOval(const v8::FunctionCallbackInfo<v8::Value> &args);
956
+
957
+
958
+ static void FastFillOval(v8::Local<v8::Object> receiver_obj, double x, double y, double width,
959
+ double height) {
960
+ CanvasRenderingContext2DImpl *ptr = GetPointer(receiver_obj);
961
+ if (ptr == nullptr) {
962
+ return;
963
+ }
964
+
965
+ canvas_native_context_fill_oval(
966
+ ptr->GetContext(),
967
+ static_cast<float>(x),
968
+ static_cast<float>(y),
969
+ static_cast<float>(width),
970
+ static_cast<float>(height)
971
+ );
972
+ ptr->UpdateInvalidateState();
973
+ }
974
+
885
975
  static void GetImageData(const v8::FunctionCallbackInfo<v8::Value> &args);
886
976
 
887
977
  static void GetLineDash(const v8::FunctionCallbackInfo<v8::Value> &args);
@@ -907,18 +997,8 @@ public:
907
997
  return false;
908
998
  }
909
999
 
910
- bool ret = false;
911
- switch (rule) {
912
- case 0:
913
- case 1:
914
- ret = canvas_native_context_is_point_in_path(
915
- ptr->GetContext(), static_cast<float>(x), static_cast<float>(y), rule);
916
- break;
917
- default:
918
- break;
919
- }
920
-
921
- return ret;
1000
+ return canvas_native_context_is_point_in_path(
1001
+ ptr->GetContext(), static_cast<float>(x), static_cast<float>(y), rule);
922
1002
  }
923
1003
 
924
1004
  static bool
@@ -939,17 +1019,9 @@ public:
939
1019
  auto path = Path2D::GetPointer(path_obj);
940
1020
 
941
1021
 
942
- switch (rule) {
943
- case 0:
944
- case 1:
945
- ret = canvas_native_context_is_point_in_path_with_path(
946
- ptr->GetContext(),
947
- path->GetPath(), x, y, rule);
948
- break;
949
- break;
950
- default:
951
- break;
952
- }
1022
+ ret = canvas_native_context_is_point_in_path_with_path(
1023
+ ptr->GetContext(),
1024
+ path->GetPath(), x, y, rule);
953
1025
 
954
1026
  }
955
1027
  return ret;
@@ -1325,6 +1397,27 @@ public:
1325
1397
 
1326
1398
  static void StrokeText(const v8::FunctionCallbackInfo<v8::Value> &args);
1327
1399
 
1400
+
1401
+
1402
+ static void StrokeOval(const v8::FunctionCallbackInfo<v8::Value> &args);
1403
+
1404
+
1405
+ static void FastStrokeOval(v8::Local<v8::Object> receiver_obj, double x, double y, double width,
1406
+ double height) {
1407
+ CanvasRenderingContext2DImpl *ptr = GetPointer(receiver_obj);
1408
+ if (ptr == nullptr) {
1409
+ return;
1410
+ }
1411
+
1412
+ canvas_native_context_stroke_oval(
1413
+ ptr->GetContext(), static_cast<float>(x),
1414
+ static_cast<float>(y),
1415
+ static_cast<float>(width),
1416
+ static_cast<float>(height));
1417
+ ptr->UpdateInvalidateState();
1418
+ }
1419
+
1420
+
1328
1421
  static void Transform(const v8::FunctionCallbackInfo<v8::Value> &args);
1329
1422
 
1330
1423
  static void
@@ -1385,4 +1478,6 @@ private:
1385
1478
 
1386
1479
  std::shared_ptr<RafImpl> raf_;
1387
1480
 
1481
+ bool continuousRender_ = true;
1482
+
1388
1483
  };