@nativescript/canvas 2.0.0-beta.2 → 2.0.0-beta.20
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.
- package/Canvas/common.d.ts +23 -15
- package/Canvas/common.js +127 -55
- package/Canvas/common.js.map +1 -1
- package/Canvas/index.android.d.ts +1 -0
- package/Canvas/index.android.js +53 -88
- package/Canvas/index.android.js.map +1 -1
- package/Canvas/index.d.ts +2 -0
- package/Canvas/index.ios.d.ts +4 -1
- package/Canvas/index.ios.js +58 -52
- package/Canvas/index.ios.js.map +1 -1
- package/Canvas2D/CanvasRenderingContext2D/index.d.ts +14 -0
- package/Canvas2D/CanvasRenderingContext2D/index.js +207 -19
- package/Canvas2D/CanvasRenderingContext2D/index.js.map +1 -1
- package/Canvas2D/DOMMatrix/index.d.ts +14 -0
- package/Canvas2D/DOMMatrix/index.js +62 -0
- package/Canvas2D/DOMMatrix/index.js.map +1 -1
- package/Canvas2D/ImageData/index.js +4 -6
- package/Canvas2D/ImageData/index.js.map +1 -1
- package/Canvas2D/Path2D/index.d.ts +2 -1
- package/Canvas2D/Path2D/index.js +3 -12
- package/Canvas2D/Path2D/index.js.map +1 -1
- package/Dom/Dom.d.ts +20 -1
- package/Dom/Dom.js +78 -10
- package/Dom/Dom.js.map +1 -1
- package/Dom/Group.d.ts +5 -0
- package/Dom/Group.js +15 -0
- package/Dom/Group.js.map +1 -1
- package/Dom/Image.d.ts +1 -0
- package/Dom/Image.js +20 -0
- package/Dom/Image.js.map +1 -1
- package/Dom/Paint.d.ts +4 -0
- package/Dom/Paint.js +19 -7
- package/Dom/Paint.js.map +1 -1
- package/Dom/Shadow.js +9 -0
- package/Dom/Shadow.js.map +1 -1
- package/Dom/Text.js +11 -1
- package/Dom/Text.js.map +1 -1
- package/Dom/index.d.ts +1 -0
- package/Dom/index.js +1 -0
- package/Dom/index.js.map +1 -1
- package/Dom/shaders/Gradients.d.ts +3 -0
- package/Dom/shaders/Gradients.js +4 -0
- package/Dom/shaders/Gradients.js.map +1 -0
- package/Dom/shaders/LinearGradient.d.ts +14 -0
- package/Dom/shaders/LinearGradient.js +44 -0
- package/Dom/shaders/LinearGradient.js.map +1 -0
- package/Dom/shaders/TwoPointConicalGradient.d.ts +16 -0
- package/Dom/shaders/TwoPointConicalGradient.js +60 -0
- package/Dom/shaders/TwoPointConicalGradient.js.map +1 -0
- package/Dom/shaders/index.d.ts +2 -0
- package/Dom/shaders/index.js +3 -0
- package/Dom/shaders/index.js.map +1 -0
- package/Dom/shapes/Atlas.d.ts +22 -0
- package/Dom/shapes/Atlas.js +60 -0
- package/Dom/shapes/Atlas.js.map +1 -0
- package/Dom/shapes/Circle.js +11 -0
- package/Dom/shapes/Circle.js.map +1 -1
- package/Dom/shapes/Line.d.ts +16 -4
- package/Dom/shapes/Line.js +13 -8
- package/Dom/shapes/Line.js.map +1 -1
- package/Dom/shapes/Oval.d.ts +12 -0
- package/Dom/shapes/Oval.js +87 -0
- package/Dom/shapes/Oval.js.map +1 -0
- package/Dom/shapes/Path.d.ts +19 -2
- package/Dom/shapes/Path.js +68 -4
- package/Dom/shapes/Path.js.map +1 -1
- package/Dom/shapes/Points.js +9 -1
- package/Dom/shapes/Points.js.map +1 -1
- package/Dom/shapes/Rect.js +27 -5
- package/Dom/shapes/Rect.js.map +1 -1
- package/Dom/shapes/RoundedRect.d.ts +2 -1
- package/Dom/shapes/RoundedRect.js +13 -2
- package/Dom/shapes/RoundedRect.js.map +1 -1
- package/Dom/shapes/index.d.ts +17 -0
- package/Dom/shapes/index.js +31 -0
- package/Dom/shapes/index.js.map +1 -1
- package/WebGL/WebGLRenderingContext/index.d.ts +1 -0
- package/WebGL/WebGLRenderingContext/index.js +104 -14
- package/WebGL/WebGLRenderingContext/index.js.map +1 -1
- package/WebGL2/WebGL2RenderingContext/index.d.ts +1 -0
- package/WebGL2/WebGL2RenderingContext/index.js +2 -3
- package/WebGL2/WebGL2RenderingContext/index.js.map +1 -1
- package/index.d.ts +0 -1
- package/index.js +14 -15
- package/index.js.map +1 -1
- package/package.json +1 -4
- package/platforms/android/canvas-release.aar +0 -0
- package/platforms/ios/CanvasNative.xcframework/Info.plist +4 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/CanvasNative-Swift.h +35 -25
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_ios.h +50 -4
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_native.h +139 -16
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Info.plist +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json +982 -3319
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.private.swiftinterface +18 -33
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftinterface +18 -33
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/module.modulemap +1 -1
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/NSCCanvas.nib +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +622 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/CanvasNative-Swift.h +70 -50
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_ios.h +50 -4
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_native.h +139 -16
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Info.plist +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json +982 -3319
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +18 -33
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftinterface +18 -33
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json +982 -3319
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +18 -33
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +18 -33
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/module.modulemap +1 -1
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/NSCCanvas.nib +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +35 -35
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +624 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/x86_64/CanvasNative.yml +624 -0
- package/platforms/ios/src/cpp/CanvasJSIModule.cpp +297 -397
- package/platforms/ios/src/cpp/Helpers.h +3 -4
- package/platforms/ios/src/cpp/ImageAssetImpl.cpp +30 -30
- package/platforms/ios/src/cpp/ImageAssetImpl.h +8 -5
- package/platforms/ios/src/cpp/URLImpl.cpp +73 -0
- package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.cpp +339 -33
- package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.h +150 -55
- package/platforms/ios/src/cpp/canvas2d/MatrixImpl.cpp +409 -3
- package/platforms/ios/src/cpp/canvas2d/MatrixImpl.h +27 -0
- package/platforms/ios/src/cpp/canvas2d/Path2D.cpp +19 -48
- package/platforms/ios/src/cpp/canvas2d/Path2D.h +19 -0
- package/platforms/ios/src/cpp/webgl/WebGLRenderingContext.cpp +105 -119
- package/platforms/ios/src/cpp/webgl/WebGLRenderingContextBase.cpp +37 -7
- package/platforms/ios/src/cpp/webgl/WebGLRenderingContextBase.h +10 -0
- package/platforms/ios/src/cpp/webgl2/WebGL2RenderingContext.cpp +1766 -1659
- package/src-native/ios/NativeScript.podspec +1 -1
- package/SVG/Circle.d.ts +0 -11
- package/SVG/Circle.js +0 -21
- package/SVG/Circle.js.map +0 -1
- package/SVG/ClipPath.d.ts +0 -4
- package/SVG/ClipPath.js +0 -9
- package/SVG/ClipPath.js.map +0 -1
- package/SVG/Defs.d.ts +0 -4
- package/SVG/Defs.js +0 -9
- package/SVG/Defs.js.map +0 -1
- package/SVG/Ellipse.d.ts +0 -13
- package/SVG/Ellipse.js +0 -26
- package/SVG/Ellipse.js.map +0 -1
- package/SVG/G.d.ts +0 -7
- package/SVG/G.js +0 -9
- package/SVG/G.js.map +0 -1
- package/SVG/Image.d.ts +0 -11
- package/SVG/Image.js +0 -40
- package/SVG/Image.js.map +0 -1
- package/SVG/Line.d.ts +0 -13
- package/SVG/Line.js +0 -26
- package/SVG/Line.js.map +0 -1
- package/SVG/LinearGradient.d.ts +0 -10
- package/SVG/LinearGradient.js +0 -13
- package/SVG/LinearGradient.js.map +0 -1
- package/SVG/Path.d.ts +0 -7
- package/SVG/Path.js +0 -14
- package/SVG/Path.js.map +0 -1
- package/SVG/Pattern.d.ts +0 -4
- package/SVG/Pattern.js +0 -9
- package/SVG/Pattern.js.map +0 -1
- package/SVG/Polygon.d.ts +0 -7
- package/SVG/Polygon.js +0 -14
- package/SVG/Polygon.js.map +0 -1
- package/SVG/Polyline.d.ts +0 -7
- package/SVG/Polyline.js +0 -14
- package/SVG/Polyline.js.map +0 -1
- package/SVG/Rect.d.ts +0 -8
- package/SVG/Rect.js +0 -13
- package/SVG/Rect.js.map +0 -1
- package/SVG/SVG.d.ts +0 -31
- package/SVG/SVG.js +0 -190
- package/SVG/SVG.js.map +0 -1
- package/SVG/SVGItem.d.ts +0 -5
- package/SVG/SVGItem.js +0 -8
- package/SVG/SVGItem.js.map +0 -1
- package/SVG/Stop.d.ts +0 -5
- package/SVG/Stop.js +0 -9
- package/SVG/Stop.js.map +0 -1
- package/SVG/Symbol.d.ts +0 -4
- package/SVG/Symbol.js +0 -9
- package/SVG/Symbol.js.map +0 -1
- package/SVG/Text.d.ts +0 -14
- package/SVG/Text.js +0 -26
- package/SVG/Text.js.map +0 -1
- package/SVG/Use.d.ts +0 -4
- package/SVG/Use.js +0 -9
- package/SVG/Use.js.map +0 -1
- package/SVG/index.d.ts +0 -18
- package/SVG/index.js +0 -19
- package/SVG/index.js.map +0 -1
- package/platforms/ios/src/cpp/PerIsolateData.cpp +0 -49
- package/platforms/ios/src/cpp/PerIsolateData.h +0 -54
|
@@ -5,11 +5,21 @@
|
|
|
5
5
|
#include "CanvasRenderingContext2DImpl.h"
|
|
6
6
|
#include "Caches.h"
|
|
7
7
|
#include "OneByteStringResource.h"
|
|
8
|
+
#include "WebGLRenderingContextBase.h"
|
|
8
9
|
|
|
10
|
+
v8::CFunction CanvasRenderingContext2DImpl::fast_start_raf_(
|
|
11
|
+
v8::CFunction::Make(CanvasRenderingContext2DImpl::__FastStartRaf));
|
|
12
|
+
|
|
13
|
+
v8::CFunction CanvasRenderingContext2DImpl::fast_stop_raf_(
|
|
14
|
+
v8::CFunction::Make(CanvasRenderingContext2DImpl::__FastStopRaf));
|
|
9
15
|
|
|
10
16
|
v8::CFunction CanvasRenderingContext2DImpl::fast_draw_point_(
|
|
11
17
|
v8::CFunction::Make(CanvasRenderingContext2DImpl::FastDrawPoint));
|
|
12
18
|
|
|
19
|
+
//v8::CFunction CanvasRenderingContext2DImpl::fast_draw_atlas_(
|
|
20
|
+
// v8::CFunction::Make(CanvasRenderingContext2DImpl::FastDrawAtlas));
|
|
21
|
+
|
|
22
|
+
|
|
13
23
|
v8::CFunction CanvasRenderingContext2DImpl::fast_ellipse_(
|
|
14
24
|
v8::CFunction::Make(CanvasRenderingContext2DImpl::FastEllipse));
|
|
15
25
|
|
|
@@ -81,13 +91,19 @@ v8::CFunction CanvasRenderingContext2DImpl::fast_clear_rect_(
|
|
|
81
91
|
v8::CFunction CanvasRenderingContext2DImpl::fast_fill_rect_(
|
|
82
92
|
v8::CFunction::Make(CanvasRenderingContext2DImpl::FastFillRect));
|
|
83
93
|
|
|
94
|
+
v8::CFunction CanvasRenderingContext2DImpl::fast_fill_oval_(
|
|
95
|
+
v8::CFunction::Make(CanvasRenderingContext2DImpl::FastFillOval));
|
|
96
|
+
|
|
97
|
+
|
|
84
98
|
v8::CFunction CanvasRenderingContext2DImpl::fast_stroke_rect_(
|
|
85
99
|
v8::CFunction::Make(CanvasRenderingContext2DImpl::FastStrokeRect));
|
|
86
100
|
|
|
101
|
+
v8::CFunction CanvasRenderingContext2DImpl::fast_stroke_oval_(
|
|
102
|
+
v8::CFunction::Make(CanvasRenderingContext2DImpl::FastStrokeOval));
|
|
103
|
+
|
|
87
104
|
v8::CFunction CanvasRenderingContext2DImpl::fast_rotate_(
|
|
88
105
|
v8::CFunction::Make(CanvasRenderingContext2DImpl::FastRotate));
|
|
89
106
|
|
|
90
|
-
|
|
91
107
|
v8::CFunction CanvasRenderingContext2DImpl::fast_fill_(
|
|
92
108
|
v8::CFunction::Make(CanvasRenderingContext2DImpl::FastFill));
|
|
93
109
|
|
|
@@ -239,7 +255,7 @@ void CanvasRenderingContext2DImpl::Init(v8::Local<v8::Object> canvasModule, v8::
|
|
|
239
255
|
auto context = isolate->GetCurrentContext();
|
|
240
256
|
auto func = ctor->GetFunction(context).ToLocalChecked();
|
|
241
257
|
|
|
242
|
-
canvasModule->Set(context, ConvertToV8String(isolate, "CanvasRenderingContext2D"), func);
|
|
258
|
+
canvasModule->Set(context, ConvertToV8String(isolate, "CanvasRenderingContext2D"), func).FromJust();
|
|
243
259
|
}
|
|
244
260
|
|
|
245
261
|
CanvasRenderingContext2DImpl *
|
|
@@ -251,6 +267,27 @@ CanvasRenderingContext2DImpl::GetPointer(const v8::Local<v8::Object> &object) {
|
|
|
251
267
|
return static_cast<CanvasRenderingContext2DImpl *>(ptr);
|
|
252
268
|
}
|
|
253
269
|
|
|
270
|
+
|
|
271
|
+
void CanvasRenderingContext2DImpl::StartRaf() {
|
|
272
|
+
auto raf = this->GetRaf();
|
|
273
|
+
if (raf != nullptr) {
|
|
274
|
+
if (!canvas_native_raf_get_started(raf->GetRaf())) {
|
|
275
|
+
canvas_native_raf_start(raf->GetRaf());
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
void CanvasRenderingContext2DImpl::StopRaf() {
|
|
282
|
+
auto raf = this->GetRaf();
|
|
283
|
+
if (raf != nullptr) {
|
|
284
|
+
if (canvas_native_raf_get_started(raf->GetRaf())) {
|
|
285
|
+
canvas_native_raf_stop(raf->GetRaf());
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
|
|
254
291
|
v8::Local<v8::FunctionTemplate> CanvasRenderingContext2DImpl::GetCtor(v8::Isolate *isolate) {
|
|
255
292
|
auto cache = Caches::Get(isolate);
|
|
256
293
|
auto ctor = cache->CanvasRenderingContext2DTmpl.get();
|
|
@@ -264,6 +301,13 @@ v8::Local<v8::FunctionTemplate> CanvasRenderingContext2DImpl::GetCtor(v8::Isolat
|
|
|
264
301
|
auto tmpl = ctorTmpl->InstanceTemplate();
|
|
265
302
|
tmpl->SetInternalFieldCount(2);
|
|
266
303
|
|
|
304
|
+
|
|
305
|
+
SetFastMethod(isolate, tmpl, "__startRaf", __StartRaf, &fast_start_raf_,
|
|
306
|
+
v8::Local<v8::Value>());
|
|
307
|
+
|
|
308
|
+
SetFastMethod(isolate, tmpl, "__stopRaf", __StopRaf, &fast_stop_raf_,
|
|
309
|
+
v8::Local<v8::Value>());
|
|
310
|
+
|
|
267
311
|
SetFastMethod(isolate, tmpl, "drawPoint", DrawPoint, &fast_draw_point_, v8::Local<v8::Value>());
|
|
268
312
|
|
|
269
313
|
tmpl->Set(ConvertToV8String(isolate, "drawPoints"),
|
|
@@ -278,6 +322,9 @@ v8::Local<v8::FunctionTemplate> CanvasRenderingContext2DImpl::GetCtor(v8::Isolat
|
|
|
278
322
|
v8::FunctionTemplate::New(isolate, __GetPointer));
|
|
279
323
|
tmpl->Set(ConvertToV8String(isolate, "__resize"), v8::FunctionTemplate::New(isolate, __Resize));
|
|
280
324
|
|
|
325
|
+
tmpl->SetAccessor(ConvertToV8String(isolate, "continuousRenderMode"), GetContinuousRenderMode,
|
|
326
|
+
SetContinuousRenderMode);
|
|
327
|
+
|
|
281
328
|
tmpl->SetAccessor(ConvertToV8String(isolate, "filter"), GetFilter, SetFilter);
|
|
282
329
|
tmpl->SetAccessor(ConvertToV8String(isolate, "font"), GetFont, SetFont);
|
|
283
330
|
tmpl->SetAccessor(ConvertToV8String(isolate, "letterSpacing"), GetLetterSpacing,
|
|
@@ -319,24 +366,19 @@ v8::Local<v8::FunctionTemplate> CanvasRenderingContext2DImpl::GetCtor(v8::Isolat
|
|
|
319
366
|
|
|
320
367
|
SetFastMethod(isolate, tmpl, "beginPath", BeginPath, &fast_begin_path_, v8::Local<v8::Value>());
|
|
321
368
|
|
|
322
|
-
|
|
323
369
|
SetFastMethod(isolate, tmpl, "bezierCurveTo", BezierCurveTo, &fast_bezier_curve_to_,
|
|
324
370
|
v8::Local<v8::Value>());
|
|
325
371
|
|
|
326
|
-
|
|
327
372
|
tmpl->Set(ConvertToV8String(isolate, "clearHitRegions"),
|
|
328
373
|
v8::FunctionTemplate::New(isolate, &ClearHitRegions));
|
|
329
374
|
|
|
330
|
-
|
|
331
375
|
SetFastMethod(isolate, tmpl, "clearRect", ClearRect, &fast_clear_rect_, v8::Local<v8::Value>());
|
|
332
376
|
|
|
333
|
-
|
|
334
377
|
SetFastMethodWithOverLoads(isolate, tmpl, "clip", Clip, fast_clip_overloads_,
|
|
335
378
|
v8::Local<v8::Value>());
|
|
336
379
|
|
|
337
380
|
SetFastMethod(isolate, tmpl, "closePath", ClosePath, &fast_close_path_, v8::Local<v8::Value>());
|
|
338
381
|
|
|
339
|
-
|
|
340
382
|
tmpl->Set(ConvertToV8String(isolate, "createImageData"),
|
|
341
383
|
v8::FunctionTemplate::New(isolate, &CreateImageData));
|
|
342
384
|
tmpl->Set(ConvertToV8String(isolate, "createPattern"),
|
|
@@ -352,6 +394,11 @@ v8::Local<v8::FunctionTemplate> CanvasRenderingContext2DImpl::GetCtor(v8::Isolat
|
|
|
352
394
|
tmpl->Set(ConvertToV8String(isolate, "drawFocusIfNeeded"),
|
|
353
395
|
v8::FunctionTemplate::New(isolate, &DrawFocusIfNeeded));
|
|
354
396
|
|
|
397
|
+
tmpl->Set(ConvertToV8String(isolate, "drawAtlas"),
|
|
398
|
+
v8::FunctionTemplate::New(isolate, &DrawAtlas));
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
// SetFastMethod(isolate, tmpl, "drawAtlas", DrawAtlas, &fast_draw_atlas_, v8::Local<v8::Value>());
|
|
355
402
|
|
|
356
403
|
SetFastMethodWithOverLoads(isolate, tmpl, "drawImage", DrawImage, fast_draw_overloads_,
|
|
357
404
|
v8::Local<v8::Value>());
|
|
@@ -365,6 +412,10 @@ v8::Local<v8::FunctionTemplate> CanvasRenderingContext2DImpl::GetCtor(v8::Isolat
|
|
|
365
412
|
|
|
366
413
|
tmpl->Set(ConvertToV8String(isolate, "fillText"),
|
|
367
414
|
v8::FunctionTemplate::New(isolate, &FillText));
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+
SetFastMethod(isolate, tmpl, "fillOval", FillOval, &fast_fill_oval_, v8::Local<v8::Value>());
|
|
418
|
+
|
|
368
419
|
tmpl->Set(ConvertToV8String(isolate, "getImageData"),
|
|
369
420
|
v8::FunctionTemplate::New(isolate, &GetImageData));
|
|
370
421
|
tmpl->Set(ConvertToV8String(isolate, "getLineDash"),
|
|
@@ -444,6 +495,10 @@ v8::Local<v8::FunctionTemplate> CanvasRenderingContext2DImpl::GetCtor(v8::Isolat
|
|
|
444
495
|
tmpl->Set(ConvertToV8String(isolate, "strokeText"),
|
|
445
496
|
v8::FunctionTemplate::New(isolate, &StrokeText));
|
|
446
497
|
|
|
498
|
+
|
|
499
|
+
SetFastMethod(isolate, tmpl, "strokeOval", StrokeOval, &fast_stroke_oval_,
|
|
500
|
+
v8::Local<v8::Value>());
|
|
501
|
+
|
|
447
502
|
SetFastMethod(isolate, tmpl, "transform", Transform, &fast_transform_, v8::Local<v8::Value>());
|
|
448
503
|
|
|
449
504
|
|
|
@@ -466,6 +521,59 @@ RafImpl *CanvasRenderingContext2DImpl::GetRaf() {
|
|
|
466
521
|
return this->raf_.get();
|
|
467
522
|
}
|
|
468
523
|
|
|
524
|
+
|
|
525
|
+
void CanvasRenderingContext2DImpl::__StartRaf(const v8::FunctionCallbackInfo<v8::Value> &args) {
|
|
526
|
+
CanvasRenderingContext2DImpl *ptr = GetPointer(args.This());
|
|
527
|
+
if (ptr == nullptr) {
|
|
528
|
+
return;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
ptr->StartRaf();
|
|
532
|
+
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
void CanvasRenderingContext2DImpl::__StopRaf(const v8::FunctionCallbackInfo<v8::Value> &args) {
|
|
536
|
+
CanvasRenderingContext2DImpl *ptr = GetPointer(args.This());
|
|
537
|
+
if (ptr == nullptr) {
|
|
538
|
+
return;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
ptr->StopRaf();
|
|
542
|
+
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
|
|
546
|
+
void CanvasRenderingContext2DImpl::GetContinuousRenderMode(v8::Local<v8::String> property,
|
|
547
|
+
const v8::PropertyCallbackInfo<v8::Value> &info) {
|
|
548
|
+
CanvasRenderingContext2DImpl *ptr = GetPointer(info.This());
|
|
549
|
+
if (ptr == nullptr) {
|
|
550
|
+
info.GetReturnValue().Set(false);
|
|
551
|
+
return;
|
|
552
|
+
}
|
|
553
|
+
info.GetReturnValue().Set(ptr->continuousRender_);
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
void CanvasRenderingContext2DImpl::SetContinuousRenderMode(v8::Local<v8::String> property,
|
|
557
|
+
v8::Local<v8::Value> value,
|
|
558
|
+
const v8::PropertyCallbackInfo<void> &info) {
|
|
559
|
+
CanvasRenderingContext2DImpl *ptr = GetPointer(info.This());
|
|
560
|
+
if (ptr == nullptr) {
|
|
561
|
+
return;
|
|
562
|
+
}
|
|
563
|
+
auto isolate = info.GetIsolate();
|
|
564
|
+
auto val = value->BooleanValue(isolate);
|
|
565
|
+
if (val == ptr->continuousRender_) {
|
|
566
|
+
return;
|
|
567
|
+
}
|
|
568
|
+
if (val) {
|
|
569
|
+
ptr->StartRaf();
|
|
570
|
+
} else {
|
|
571
|
+
ptr->StopRaf();
|
|
572
|
+
}
|
|
573
|
+
ptr->continuousRender_ = val;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
|
|
469
577
|
/* Non Standard 2D */
|
|
470
578
|
|
|
471
579
|
void CanvasRenderingContext2DImpl::DrawPoint(const v8::FunctionCallbackInfo<v8::Value> &args) {
|
|
@@ -495,26 +603,16 @@ void CanvasRenderingContext2DImpl::DrawPoints(const v8::FunctionCallbackInfo<v8:
|
|
|
495
603
|
auto context = isolate->GetCurrentContext();
|
|
496
604
|
|
|
497
605
|
|
|
498
|
-
auto mode =
|
|
606
|
+
auto mode = args[0];
|
|
499
607
|
auto points = args[1].As<v8::Array>();
|
|
500
608
|
auto size = points->Length();
|
|
501
609
|
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
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
|
-
}
|
|
610
|
+
if (size == 0) { return; }
|
|
611
|
+
uint32_t pointMode = 0;
|
|
612
|
+
if (mode->IsUint32() && mode->Uint32Value(context).To(&pointMode)) {
|
|
515
613
|
std::vector<float> store;
|
|
516
|
-
|
|
517
|
-
|
|
614
|
+
auto len = size * 2;
|
|
615
|
+
store.reserve(len);
|
|
518
616
|
for (int i = 0; i < size; i++) {
|
|
519
617
|
|
|
520
618
|
auto object = points->Get(
|
|
@@ -526,10 +624,8 @@ void CanvasRenderingContext2DImpl::DrawPoints(const v8::FunctionCallbackInfo<v8:
|
|
|
526
624
|
auto y = object->Get(context,
|
|
527
625
|
ConvertToV8String(isolate, "y")).ToLocalChecked()->NumberValue(
|
|
528
626
|
context).ToChecked();
|
|
529
|
-
store
|
|
530
|
-
store
|
|
531
|
-
|
|
532
|
-
next = i + 2;
|
|
627
|
+
store.emplace_back((float) x);
|
|
628
|
+
store.emplace_back((float) y);
|
|
533
629
|
}
|
|
534
630
|
|
|
535
631
|
canvas_native_context_draw_points(
|
|
@@ -1285,7 +1381,7 @@ void CanvasRenderingContext2DImpl::GetLineDash(v8::Local<v8::String> property,
|
|
|
1285
1381
|
auto ret = v8::Array::New(isolate, (int) size);
|
|
1286
1382
|
for (int i = 0; i < size; i++) {
|
|
1287
1383
|
auto item = buf[i];
|
|
1288
|
-
ret->Set(context, i, v8::Number::New(isolate, (double) item));
|
|
1384
|
+
ret->Set(context, i, v8::Number::New(isolate, (double) item)).FromJust();
|
|
1289
1385
|
}
|
|
1290
1386
|
|
|
1291
1387
|
}
|
|
@@ -1791,6 +1887,143 @@ CanvasRenderingContext2DImpl::DrawFocusIfNeeded(const v8::FunctionCallbackInfo<v
|
|
|
1791
1887
|
}
|
|
1792
1888
|
|
|
1793
1889
|
|
|
1890
|
+
void
|
|
1891
|
+
CanvasRenderingContext2DImpl::DrawAtlas(const v8::FunctionCallbackInfo<v8::Value> &args) {
|
|
1892
|
+
|
|
1893
|
+
CanvasRenderingContext2DImpl *ptr = GetPointer(args.This());
|
|
1894
|
+
if (ptr == nullptr) {
|
|
1895
|
+
return;
|
|
1896
|
+
}
|
|
1897
|
+
|
|
1898
|
+
auto count = args.Length();
|
|
1899
|
+
auto value = args[0];
|
|
1900
|
+
|
|
1901
|
+
if (value->IsNullOrUndefined() || !value->IsObject()) {
|
|
1902
|
+
return;
|
|
1903
|
+
}
|
|
1904
|
+
|
|
1905
|
+
auto isolate = args.GetIsolate();
|
|
1906
|
+
auto context = isolate->GetCurrentContext();
|
|
1907
|
+
auto image = value.As<v8::Object>();
|
|
1908
|
+
auto imageType = GetNativeType(image);
|
|
1909
|
+
|
|
1910
|
+
|
|
1911
|
+
auto xformValue = args[1];
|
|
1912
|
+
auto texValue = args[2];
|
|
1913
|
+
auto colorsValue = args[3];
|
|
1914
|
+
auto blendValue = args[4];
|
|
1915
|
+
|
|
1916
|
+
if (xformValue->IsArray() && texValue->IsArray()) {
|
|
1917
|
+
|
|
1918
|
+
std::vector<float> xform;
|
|
1919
|
+
std::vector<float> tex;
|
|
1920
|
+
|
|
1921
|
+
v8::Local<v8::Array> xformArray = xformValue.As<v8::Array>();
|
|
1922
|
+
v8::Local<v8::Array> texArray = texValue.As<v8::Array>();
|
|
1923
|
+
|
|
1924
|
+
auto xformLen = xformArray->Length();
|
|
1925
|
+
xform.reserve(xformLen);
|
|
1926
|
+
auto texLen = texArray->Length();
|
|
1927
|
+
tex.reserve(texLen);
|
|
1928
|
+
|
|
1929
|
+
|
|
1930
|
+
for (int i = 0; i < xformLen; i++) {
|
|
1931
|
+
xform.emplace_back((float) xformArray->Get(context, i).ToLocalChecked()->NumberValue(
|
|
1932
|
+
context).ToChecked());
|
|
1933
|
+
}
|
|
1934
|
+
|
|
1935
|
+
for (int i = 0; i < texLen; i++) {
|
|
1936
|
+
tex.emplace_back((float) texArray->Get(context, i).ToLocalChecked()->NumberValue(
|
|
1937
|
+
context).ToChecked());
|
|
1938
|
+
}
|
|
1939
|
+
|
|
1940
|
+
std::vector<std::string> colors;
|
|
1941
|
+
std::vector<const char *> colors_ref;
|
|
1942
|
+
|
|
1943
|
+
// dst-over
|
|
1944
|
+
int32_t mode = 4;
|
|
1945
|
+
|
|
1946
|
+
if (blendValue->IsInt32()) {
|
|
1947
|
+
auto val = blendValue->Int32Value(context).To(&mode);
|
|
1948
|
+
}
|
|
1949
|
+
|
|
1950
|
+
if (colorsValue->IsArray()) {
|
|
1951
|
+
auto colorsArray = colorsValue.As<v8::Array>();
|
|
1952
|
+
auto colorsLen = colorsArray->Length();
|
|
1953
|
+
colors.reserve(colorsLen);
|
|
1954
|
+
colors_ref.reserve(colorsLen);
|
|
1955
|
+
for (int i = 0; i < colorsLen; i++) {
|
|
1956
|
+
auto str = ConvertFromV8String(isolate, texArray->Get(context, i).ToLocalChecked());
|
|
1957
|
+
colors.emplace_back(str);
|
|
1958
|
+
colors_ref.emplace_back(str.c_str());
|
|
1959
|
+
}
|
|
1960
|
+
}
|
|
1961
|
+
|
|
1962
|
+
switch (imageType) {
|
|
1963
|
+
case NativeType::ImageAsset: {
|
|
1964
|
+
auto image_asset = ImageAssetImpl::GetPointer(image);
|
|
1965
|
+
|
|
1966
|
+
if (image_asset != nullptr) {
|
|
1967
|
+
|
|
1968
|
+
if (colors.empty()) {
|
|
1969
|
+
canvas_native_context_draw_atlas_asset(ptr->GetContext(),
|
|
1970
|
+
image_asset->GetImageAsset(),
|
|
1971
|
+
xform.data(), xform.size(),
|
|
1972
|
+
tex.data(),
|
|
1973
|
+
tex.size(), nullptr,
|
|
1974
|
+
0, mode);
|
|
1975
|
+
} else {
|
|
1976
|
+
canvas_native_context_draw_atlas_asset(ptr->GetContext(),
|
|
1977
|
+
image_asset->GetImageAsset(),
|
|
1978
|
+
xform.data(), xform.size(),
|
|
1979
|
+
tex.data(),
|
|
1980
|
+
tex.size(), colors_ref.data(),
|
|
1981
|
+
colors_ref.size(), mode);
|
|
1982
|
+
}
|
|
1983
|
+
|
|
1984
|
+
|
|
1985
|
+
ptr->UpdateInvalidateState();
|
|
1986
|
+
}
|
|
1987
|
+
}
|
|
1988
|
+
break;
|
|
1989
|
+
case NativeType::ImageBitmap: {
|
|
1990
|
+
auto image_bitmap = ImageBitmapImpl::GetPointer(image);
|
|
1991
|
+
if (image_bitmap != nullptr) {
|
|
1992
|
+
if (colors.empty()) {
|
|
1993
|
+
canvas_native_context_draw_atlas_asset(ptr->GetContext(),
|
|
1994
|
+
image_bitmap->GetImageAsset(),
|
|
1995
|
+
xform.data(), xform.size(),
|
|
1996
|
+
tex.data(),
|
|
1997
|
+
tex.size(), nullptr,
|
|
1998
|
+
0, mode);
|
|
1999
|
+
} else {
|
|
2000
|
+
canvas_native_context_draw_atlas_asset(ptr->GetContext(),
|
|
2001
|
+
image_bitmap->GetImageAsset(),
|
|
2002
|
+
xform.data(), xform.size(),
|
|
2003
|
+
tex.data(),
|
|
2004
|
+
tex.size(), colors_ref.data(),
|
|
2005
|
+
colors_ref.size(), mode);
|
|
2006
|
+
}
|
|
2007
|
+
}
|
|
2008
|
+
}
|
|
2009
|
+
break;
|
|
2010
|
+
case NativeType::CanvasRenderingContext2D: {
|
|
2011
|
+
auto image_canvas = CanvasRenderingContext2DImpl::GetPointer(image);
|
|
2012
|
+
if (image_canvas != nullptr) {
|
|
2013
|
+
|
|
2014
|
+
ptr->UpdateInvalidateState();
|
|
2015
|
+
}
|
|
2016
|
+
}
|
|
2017
|
+
break;
|
|
2018
|
+
default:
|
|
2019
|
+
break;
|
|
2020
|
+
}
|
|
2021
|
+
}
|
|
2022
|
+
|
|
2023
|
+
|
|
2024
|
+
}
|
|
2025
|
+
|
|
2026
|
+
|
|
1794
2027
|
void
|
|
1795
2028
|
CanvasRenderingContext2DImpl::DrawImage(const v8::FunctionCallbackInfo<v8::Value> &args) {
|
|
1796
2029
|
|
|
@@ -1849,6 +2082,17 @@ CanvasRenderingContext2DImpl::DrawImage(const v8::FunctionCallbackInfo<v8::Value
|
|
|
1849
2082
|
}
|
|
1850
2083
|
}
|
|
1851
2084
|
break;
|
|
2085
|
+
case NativeType::WebGLRenderingContextBase: {
|
|
2086
|
+
auto gl = WebGLRenderingContextBase::GetPointer(image);
|
|
2087
|
+
if (gl != nullptr) {
|
|
2088
|
+
canvas_native_context_draw_image_dx_dy_webgl(
|
|
2089
|
+
ptr->GetContext(),
|
|
2090
|
+
gl->GetState(),
|
|
2091
|
+
dx, dy
|
|
2092
|
+
);
|
|
2093
|
+
}
|
|
2094
|
+
}
|
|
2095
|
+
break;
|
|
1852
2096
|
default:
|
|
1853
2097
|
break;
|
|
1854
2098
|
}
|
|
@@ -1899,6 +2143,17 @@ CanvasRenderingContext2DImpl::DrawImage(const v8::FunctionCallbackInfo<v8::Value
|
|
|
1899
2143
|
}
|
|
1900
2144
|
}
|
|
1901
2145
|
break;
|
|
2146
|
+
case NativeType::WebGLRenderingContextBase: {
|
|
2147
|
+
auto gl = WebGLRenderingContextBase::GetPointer(image);
|
|
2148
|
+
if (gl != nullptr) {
|
|
2149
|
+
canvas_native_context_draw_image_dx_dy_dw_dh_webgl(
|
|
2150
|
+
ptr->GetContext(),
|
|
2151
|
+
gl->GetState(),
|
|
2152
|
+
dx, dy, dWidth, dHeight
|
|
2153
|
+
);
|
|
2154
|
+
}
|
|
2155
|
+
}
|
|
2156
|
+
break;
|
|
1902
2157
|
default:
|
|
1903
2158
|
break;
|
|
1904
2159
|
}
|
|
@@ -1957,6 +2212,20 @@ CanvasRenderingContext2DImpl::DrawImage(const v8::FunctionCallbackInfo<v8::Value
|
|
|
1957
2212
|
}
|
|
1958
2213
|
}
|
|
1959
2214
|
break;
|
|
2215
|
+
case NativeType::WebGLRenderingContextBase: {
|
|
2216
|
+
auto gl = WebGLRenderingContextBase::GetPointer(image);
|
|
2217
|
+
if (gl != nullptr) {
|
|
2218
|
+
canvas_native_context_draw_image_webgl(
|
|
2219
|
+
ptr->GetContext(),
|
|
2220
|
+
gl->GetState(),
|
|
2221
|
+
sx,
|
|
2222
|
+
sy, sWidth, sHeight,
|
|
2223
|
+
dx,
|
|
2224
|
+
dy, dWidth, dHeight
|
|
2225
|
+
);
|
|
2226
|
+
}
|
|
2227
|
+
}
|
|
2228
|
+
break;
|
|
1960
2229
|
default:
|
|
1961
2230
|
break;
|
|
1962
2231
|
}
|
|
@@ -2090,6 +2359,26 @@ CanvasRenderingContext2DImpl::FillText(const v8::FunctionCallbackInfo<v8::Value>
|
|
|
2090
2359
|
|
|
2091
2360
|
}
|
|
2092
2361
|
|
|
2362
|
+
|
|
2363
|
+
void
|
|
2364
|
+
CanvasRenderingContext2DImpl::FillOval(const v8::FunctionCallbackInfo<v8::Value> &args) {
|
|
2365
|
+
CanvasRenderingContext2DImpl *ptr = GetPointer(args.This());
|
|
2366
|
+
if (ptr == nullptr) {
|
|
2367
|
+
return;
|
|
2368
|
+
}
|
|
2369
|
+
auto isolate = args.GetIsolate();
|
|
2370
|
+
auto context = isolate->GetCurrentContext();
|
|
2371
|
+
|
|
2372
|
+
auto x = static_cast<float>(args[0]->NumberValue(context).ToChecked());
|
|
2373
|
+
auto y = static_cast<float>(args[1]->NumberValue(context).ToChecked());
|
|
2374
|
+
auto width = static_cast<float>(args[2]->NumberValue(context).ToChecked());
|
|
2375
|
+
auto height = static_cast<float>(args[3]->NumberValue(context).ToChecked());
|
|
2376
|
+
canvas_native_context_fill_oval(
|
|
2377
|
+
ptr->GetContext(), x, y, width,
|
|
2378
|
+
height);
|
|
2379
|
+
ptr->UpdateInvalidateState();
|
|
2380
|
+
}
|
|
2381
|
+
|
|
2093
2382
|
void
|
|
2094
2383
|
CanvasRenderingContext2DImpl::GetImageData(const v8::FunctionCallbackInfo<v8::Value> &args) {
|
|
2095
2384
|
CanvasRenderingContext2DImpl *ptr = GetPointer(args.This());
|
|
@@ -2150,7 +2439,7 @@ CanvasRenderingContext2DImpl::GetLineDash(const v8::FunctionCallbackInfo<v8::Val
|
|
|
2150
2439
|
for (int i = 0; i < size; ++i) {
|
|
2151
2440
|
array->Set(context, i,
|
|
2152
2441
|
v8::Number::New(isolate,
|
|
2153
|
-
(double) buf[i]));
|
|
2442
|
+
(double) buf[i])).FromJust();
|
|
2154
2443
|
}
|
|
2155
2444
|
|
|
2156
2445
|
args.GetReturnValue().Set(array);
|
|
@@ -2676,6 +2965,27 @@ CanvasRenderingContext2DImpl::StrokeText(const v8::FunctionCallbackInfo<v8::Valu
|
|
|
2676
2965
|
}
|
|
2677
2966
|
}
|
|
2678
2967
|
|
|
2968
|
+
void
|
|
2969
|
+
CanvasRenderingContext2DImpl::StrokeOval(const v8::FunctionCallbackInfo<v8::Value> &args) {
|
|
2970
|
+
CanvasRenderingContext2DImpl *ptr = GetPointer(args.This());
|
|
2971
|
+
|
|
2972
|
+
auto isolate = args.GetIsolate();
|
|
2973
|
+
auto context = isolate->GetCurrentContext();
|
|
2974
|
+
|
|
2975
|
+
if (args.Length() == 4) {
|
|
2976
|
+
auto x = static_cast<float>(args[0]->NumberValue(context).ToChecked());
|
|
2977
|
+
auto y = static_cast<float>(args[1]->NumberValue(context).ToChecked());
|
|
2978
|
+
auto width = static_cast<float>(args[2]->NumberValue(context).ToChecked());
|
|
2979
|
+
auto height = static_cast<float>(args[3]->NumberValue(context).ToChecked());
|
|
2980
|
+
canvas_native_context_stroke_oval(
|
|
2981
|
+
ptr->GetContext(), x, y,
|
|
2982
|
+
width,
|
|
2983
|
+
height);
|
|
2984
|
+
ptr->UpdateInvalidateState();
|
|
2985
|
+
}
|
|
2986
|
+
}
|
|
2987
|
+
|
|
2988
|
+
|
|
2679
2989
|
void
|
|
2680
2990
|
CanvasRenderingContext2DImpl::Transform(const v8::FunctionCallbackInfo<v8::Value> &args) {
|
|
2681
2991
|
CanvasRenderingContext2DImpl *ptr = GetPointer(args.This());
|
|
@@ -2785,11 +3095,7 @@ void CanvasRenderingContext2DImpl::Flush() {
|
|
|
2785
3095
|
auto state = (int) this->GetInvalidateState() & (int) InvalidateState::InvalidateStatePending;
|
|
2786
3096
|
if (state == (int) InvalidateState::InvalidateStatePending) {
|
|
2787
3097
|
this->SetInvalidateState(InvalidateState::InvalidateStateInvalidating);
|
|
2788
|
-
// canvas_native_context_flush(ptr->GetContext());
|
|
2789
|
-
|
|
2790
3098
|
canvas_native_context_render(this->GetContext());
|
|
2791
|
-
// canvas_native_context_gl_make_current(ptr->GetContext());
|
|
2792
|
-
// canvas_native_context_gl_swap_buffers(ptr->GetContext());
|
|
2793
3099
|
this->SetInvalidateState(InvalidateState::InvalidateStateNone);
|
|
2794
3100
|
}
|
|
2795
3101
|
}
|