@shopify/react-native-skia 0.1.154 → 0.1.156

Sign up to get free protection for your applications and to get access to all the features.
Files changed (167) hide show
  1. package/android/cpp/jni/JniLoad.cpp +5 -5
  2. package/android/cpp/jni/JniPlatformContext.cpp +107 -119
  3. package/android/cpp/jni/JniSkiaManager.cpp +18 -20
  4. package/android/cpp/jni/include/JniPlatformContext.h +41 -45
  5. package/android/cpp/jni/include/JniSkiaBaseView.h +52 -55
  6. package/android/cpp/jni/include/JniSkiaDrawView.h +72 -77
  7. package/android/cpp/jni/include/JniSkiaManager.h +51 -53
  8. package/android/cpp/jni/include/JniSkiaPictureView.h +74 -78
  9. package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +36 -45
  10. package/android/cpp/rnskia-android/RNSkAndroidView.h +87 -92
  11. package/android/cpp/rnskia-android/RNSkOpenGLCanvasProvider.cpp +62 -65
  12. package/android/cpp/rnskia-android/RNSkOpenGLCanvasProvider.h +20 -17
  13. package/android/cpp/rnskia-android/SkiaOpenGLRenderer.cpp +257 -313
  14. package/android/cpp/rnskia-android/SkiaOpenGLRenderer.h +107 -110
  15. package/cpp/api/JsiSkApi.h +66 -62
  16. package/cpp/api/JsiSkCanvas.h +38 -30
  17. package/cpp/api/JsiSkColor.h +58 -56
  18. package/cpp/api/JsiSkColorFilter.h +5 -3
  19. package/cpp/api/JsiSkColorFilterFactory.h +23 -21
  20. package/cpp/api/JsiSkContourMeasure.h +74 -85
  21. package/cpp/api/JsiSkContourMeasureIter.h +68 -75
  22. package/cpp/api/JsiSkData.h +16 -22
  23. package/cpp/api/JsiSkDataFactory.h +86 -79
  24. package/cpp/api/JsiSkFont.h +286 -311
  25. package/cpp/api/JsiSkHostObjects.h +15 -16
  26. package/cpp/api/JsiSkImage.h +107 -103
  27. package/cpp/api/JsiSkImageFactory.h +34 -36
  28. package/cpp/api/JsiSkImageFilter.h +5 -3
  29. package/cpp/api/JsiSkImageFilterFactory.h +71 -68
  30. package/cpp/api/JsiSkImageInfo.h +41 -38
  31. package/cpp/api/JsiSkMaskFilter.h +5 -3
  32. package/cpp/api/JsiSkMaskFilterFactory.h +2 -3
  33. package/cpp/api/JsiSkMatrix.h +26 -36
  34. package/cpp/api/JsiSkPaint.h +20 -13
  35. package/cpp/api/JsiSkPath.h +70 -85
  36. package/cpp/api/JsiSkPathEffect.h +5 -3
  37. package/cpp/api/JsiSkPathEffectFactory.h +33 -28
  38. package/cpp/api/JsiSkPathFactory.h +68 -67
  39. package/cpp/api/JsiSkPicture.h +28 -22
  40. package/cpp/api/JsiSkPictureFactory.h +13 -12
  41. package/cpp/api/JsiSkPictureRecorder.h +21 -19
  42. package/cpp/api/JsiSkPoint.h +6 -8
  43. package/cpp/api/JsiSkRRect.h +11 -7
  44. package/cpp/api/JsiSkRSXform.h +82 -85
  45. package/cpp/api/JsiSkRect.h +9 -9
  46. package/cpp/api/JsiSkRuntimeEffect.h +182 -186
  47. package/cpp/api/JsiSkRuntimeEffectFactory.h +10 -11
  48. package/cpp/api/JsiSkRuntimeShaderBuilder.h +64 -61
  49. package/cpp/api/JsiSkSVG.h +4 -5
  50. package/cpp/api/JsiSkSVGFactory.h +28 -27
  51. package/cpp/api/JsiSkShader.h +3 -2
  52. package/cpp/api/JsiSkShaderFactory.h +37 -25
  53. package/cpp/api/JsiSkSurface.h +44 -40
  54. package/cpp/api/JsiSkSurfaceFactory.h +22 -22
  55. package/cpp/api/JsiSkTextBlob.h +28 -31
  56. package/cpp/api/JsiSkTextBlobFactory.h +88 -87
  57. package/cpp/api/JsiSkTypeface.h +6 -5
  58. package/cpp/api/JsiSkTypefaceFactory.h +22 -21
  59. package/cpp/api/JsiSkVertices.h +137 -124
  60. package/cpp/api/third_party/CSSColorParser.cpp +161 -174
  61. package/cpp/api/third_party/CSSColorParser.h +172 -96
  62. package/cpp/jsi/JsiHostObject.cpp +11 -9
  63. package/cpp/jsi/JsiHostObject.h +31 -24
  64. package/cpp/jsi/JsiSimpleValueWrapper.h +74 -83
  65. package/cpp/jsi/JsiValueWrapper.h +52 -54
  66. package/cpp/rnskia/RNSkAnimation.h +26 -29
  67. package/cpp/rnskia/RNSkDispatchQueue.cpp +50 -61
  68. package/cpp/rnskia/RNSkDispatchQueue.h +3 -1
  69. package/cpp/rnskia/RNSkInfoParameter.h +12 -12
  70. package/cpp/rnskia/RNSkJsView.cpp +82 -81
  71. package/cpp/rnskia/RNSkJsView.h +45 -41
  72. package/cpp/rnskia/RNSkJsiViewApi.h +99 -89
  73. package/cpp/rnskia/RNSkManager.cpp +8 -7
  74. package/cpp/rnskia/RNSkManager.h +8 -6
  75. package/cpp/rnskia/RNSkPictureView.h +44 -37
  76. package/cpp/rnskia/RNSkPlatformContext.h +39 -28
  77. package/cpp/rnskia/RNSkValueApi.h +33 -34
  78. package/cpp/rnskia/RNSkView.h +108 -93
  79. package/cpp/rnskia/values/RNSkClockValue.h +63 -64
  80. package/cpp/rnskia/values/RNSkComputedValue.h +32 -30
  81. package/cpp/rnskia/values/RNSkReadonlyValue.h +60 -59
  82. package/cpp/rnskia/values/RNSkValue.h +38 -40
  83. package/cpp/utils/RNSkLog.h +9 -7
  84. package/cpp/utils/RNSkMeasureTime.h +7 -7
  85. package/cpp/utils/RNSkTimingInfo.h +27 -24
  86. package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.h +8 -9
  87. package/ios/RNSkia-iOS/RNSkiOSPlatformContext.h +24 -23
  88. package/ios/RNSkia-iOS/RNSkiOSView.h +16 -13
  89. package/ios/RNSkia-iOS/SkiaUIView.h +9 -8
  90. package/lib/commonjs/dom/nodes/JsiSkDOM.js +6 -0
  91. package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +1 -1
  92. package/lib/commonjs/dom/nodes/LayerNode.js +43 -0
  93. package/lib/commonjs/dom/nodes/LayerNode.js.map +1 -0
  94. package/lib/commonjs/dom/nodes/RenderNode.js +1 -1
  95. package/lib/commonjs/dom/nodes/RenderNode.js.map +1 -1
  96. package/lib/commonjs/dom/types/NodeType.js +1 -0
  97. package/lib/commonjs/dom/types/NodeType.js.map +1 -1
  98. package/lib/commonjs/dom/types/SkDOM.js.map +1 -1
  99. package/lib/commonjs/renderer/HostComponents.js +3 -0
  100. package/lib/commonjs/renderer/HostComponents.js.map +1 -1
  101. package/lib/commonjs/renderer/components/Group.js +19 -4
  102. package/lib/commonjs/renderer/components/Group.js.map +1 -1
  103. package/lib/commonjs/renderer/components/Paint.js +6 -1
  104. package/lib/commonjs/renderer/components/Paint.js.map +1 -1
  105. package/lib/commonjs/views/SkiaPictureView.js +3 -2
  106. package/lib/commonjs/views/SkiaPictureView.js.map +1 -1
  107. package/lib/commonjs/views/SkiaView.js +6 -3
  108. package/lib/commonjs/views/SkiaView.js.map +1 -1
  109. package/lib/module/dom/nodes/JsiSkDOM.js +5 -0
  110. package/lib/module/dom/nodes/JsiSkDOM.js.map +1 -1
  111. package/lib/module/dom/nodes/LayerNode.js +32 -0
  112. package/lib/module/dom/nodes/LayerNode.js.map +1 -0
  113. package/lib/module/dom/nodes/RenderNode.js +1 -1
  114. package/lib/module/dom/nodes/RenderNode.js.map +1 -1
  115. package/lib/module/dom/types/NodeType.js +1 -0
  116. package/lib/module/dom/types/NodeType.js.map +1 -1
  117. package/lib/module/dom/types/SkDOM.js.map +1 -1
  118. package/lib/module/renderer/HostComponents.js +3 -0
  119. package/lib/module/renderer/HostComponents.js.map +1 -1
  120. package/lib/module/renderer/components/Group.js +16 -3
  121. package/lib/module/renderer/components/Group.js.map +1 -1
  122. package/lib/module/renderer/components/Paint.js +7 -1
  123. package/lib/module/renderer/components/Paint.js.map +1 -1
  124. package/lib/module/views/SkiaPictureView.js +2 -2
  125. package/lib/module/views/SkiaPictureView.js.map +1 -1
  126. package/lib/module/views/SkiaView.js +4 -2
  127. package/lib/module/views/SkiaView.js.map +1 -1
  128. package/lib/typescript/src/dom/nodes/JsiSkDOM.d.ts +2 -0
  129. package/lib/typescript/src/dom/nodes/LayerNode.d.ts +8 -0
  130. package/lib/typescript/src/dom/types/NodeType.d.ts +1 -0
  131. package/lib/typescript/src/dom/types/SkDOM.d.ts +1 -0
  132. package/lib/typescript/src/renderer/HostComponents.d.ts +2 -1
  133. package/lib/typescript/src/renderer/components/Group.d.ts +5 -1
  134. package/lib/typescript/src/views/SkiaView.d.ts +3 -0
  135. package/libs/android/arm64-v8a/libskottie.a +0 -0
  136. package/libs/android/arm64-v8a/libsksg.a +0 -0
  137. package/libs/android/armeabi-v7a/libskottie.a +0 -0
  138. package/libs/android/armeabi-v7a/libsksg.a +0 -0
  139. package/libs/android/x86/libskottie.a +0 -0
  140. package/libs/android/x86/libsksg.a +0 -0
  141. package/libs/android/x86_64/libskottie.a +0 -0
  142. package/libs/android/x86_64/libsksg.a +0 -0
  143. package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  144. package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  145. package/libs/ios/libskottie.xcframework/Info.plist +42 -0
  146. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  147. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  148. package/libs/ios/libsksg.xcframework/Info.plist +42 -0
  149. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  150. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  151. package/libs/ios/libskshaper.xcframework/Info.plist +5 -5
  152. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  153. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  154. package/libs/ios/libsvg.xcframework/Info.plist +5 -5
  155. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  156. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  157. package/package.json +3 -1
  158. package/src/dom/nodes/JsiSkDOM.ts +5 -0
  159. package/src/dom/nodes/LayerNode.ts +35 -0
  160. package/src/dom/nodes/RenderNode.ts +4 -3
  161. package/src/dom/types/NodeType.ts +1 -0
  162. package/src/dom/types/SkDOM.ts +1 -0
  163. package/src/renderer/HostComponents.ts +3 -0
  164. package/src/renderer/components/Group.tsx +16 -3
  165. package/src/renderer/components/Paint.tsx +7 -1
  166. package/src/views/SkiaPictureView.tsx +2 -3
  167. package/src/views/SkiaView.tsx +2 -2
@@ -1,5 +1,6 @@
1
1
  #pragma once
2
2
 
3
+ #include <algorithm>
3
4
  #include <memory>
4
5
  #include <utility>
5
6
 
@@ -17,67 +18,68 @@
17
18
 
18
19
  namespace RNSkia {
19
20
 
20
- using namespace facebook;
21
+ namespace jsi = facebook::jsi;
21
22
 
22
- class JsiSkColor : public JsiHostObject {
23
- public:
23
+ class JsiSkColor : public RNJsi::JsiHostObject {
24
+ public:
25
+ JsiSkColor() : JsiHostObject() {}
24
26
 
25
- JsiSkColor(): JsiHostObject() {}
27
+ ~JsiSkColor() {}
26
28
 
27
- ~JsiSkColor() {}
29
+ static jsi::Object toValue(jsi::Runtime &runtime, SkColor color) {
30
+ auto result = runtime.global()
31
+ .getPropertyAsFunction(runtime, "Float32Array")
32
+ .callAsConstructor(runtime, 4)
33
+ .getObject(runtime);
34
+ jsi::ArrayBuffer buffer =
35
+ result
36
+ .getProperty(runtime, jsi::PropNameID::forAscii(runtime, "buffer"))
37
+ .asObject(runtime)
38
+ .getArrayBuffer(runtime);
39
+ auto bfrPtr = reinterpret_cast<float *>(buffer.data(runtime));
40
+ auto color4f = SkColor4f::FromColor(color).array();
41
+ std::copy(color4f.begin(), color4f.end(), bfrPtr);
42
+ return result;
43
+ }
28
44
 
29
- static jsi::Object toValue(jsi::Runtime &runtime, SkColor color) {
30
- auto result = runtime
31
- .global()
32
- .getPropertyAsFunction(runtime, "Float32Array")
33
- .callAsConstructor(runtime, 4)
34
- .getObject(runtime);
35
- jsi::ArrayBuffer buffer = result
36
- .getProperty(runtime, jsi::PropNameID::forAscii(runtime, "buffer"))
37
- .asObject(runtime)
38
- .getArrayBuffer(runtime);
39
- auto bfrPtr = reinterpret_cast<float *>(buffer.data(runtime));
40
- auto color4f = SkColor4f::FromColor(color).array();
41
- std::copy(color4f.begin(), color4f.end(), bfrPtr);
42
- return result;
43
- }
44
-
45
- static SkColor fromValue(jsi::Runtime &runtime, const jsi::Value &obj) {
46
- const auto& object = obj.asObject(runtime);
47
- jsi::ArrayBuffer buffer = object
48
- .getProperty(runtime, jsi::PropNameID::forAscii(runtime, "buffer"))
49
- .asObject(runtime)
50
- .getArrayBuffer(runtime);
51
- auto bfrPtr = reinterpret_cast<float *>(buffer.data(runtime));
52
- if (bfrPtr[0] > 1 || bfrPtr[1] > 1 || bfrPtr[2] > 1 || bfrPtr[3] > 1) {
53
- return SK_ColorBLACK;
54
- }
55
- return SkColorSetARGB(bfrPtr[3] * 255, bfrPtr[0] * 255, bfrPtr[1] * 255, bfrPtr[2] * 255);
56
- }
45
+ static SkColor fromValue(jsi::Runtime &runtime, const jsi::Value &obj) {
46
+ const auto &object = obj.asObject(runtime);
47
+ jsi::ArrayBuffer buffer =
48
+ object
49
+ .getProperty(runtime, jsi::PropNameID::forAscii(runtime, "buffer"))
50
+ .asObject(runtime)
51
+ .getArrayBuffer(runtime);
52
+ auto bfrPtr = reinterpret_cast<float *>(buffer.data(runtime));
53
+ if (bfrPtr[0] > 1 || bfrPtr[1] > 1 || bfrPtr[2] > 1 || bfrPtr[3] > 1) {
54
+ return SK_ColorBLACK;
55
+ }
56
+ return SkColorSetARGB(bfrPtr[3] * 255, bfrPtr[0] * 255, bfrPtr[1] * 255,
57
+ bfrPtr[2] * 255);
58
+ }
57
59
 
58
- /**
59
- * Creates the function for construction a new instance of the SkColor
60
- * wrapper
61
- * @return A function for creating a new host object wrapper for the SkColor
62
- * class
63
- */
64
- static const jsi::HostFunctionType
65
- createCtor() {
66
- return JSI_HOST_FUNCTION_LAMBDA {
67
- if (arguments[0].isNumber()) {
68
- return JsiSkColor::toValue(runtime, arguments[0].getNumber());
69
- } else if(arguments[0].isString()) {
70
- auto text = arguments[0].asString(runtime).utf8(runtime);
71
- auto color = CSSColorParser::parse(text);
72
- if (color.a == -1.0f) {
73
- return JsiSkColor::toValue(runtime, SK_ColorBLACK);
74
- }
75
- return JsiSkColor::toValue(runtime, SkColorSetARGB(color.a * 255, color.r, color.g, color.b));
76
- } else if (arguments[0].isObject()) {
77
- return arguments[0].getObject(runtime);
78
- }
79
- return jsi::Value::undefined();
80
- };
60
+ /**
61
+ * Creates the function for construction a new instance of the SkColor
62
+ * wrapper
63
+ * @return A function for creating a new host object wrapper for the SkColor
64
+ * class
65
+ */
66
+ static const jsi::HostFunctionType createCtor() {
67
+ return JSI_HOST_FUNCTION_LAMBDA {
68
+ if (arguments[0].isNumber()) {
69
+ return JsiSkColor::toValue(runtime, arguments[0].getNumber());
70
+ } else if (arguments[0].isString()) {
71
+ auto text = arguments[0].asString(runtime).utf8(runtime);
72
+ auto color = CSSColorParser::parse(text);
73
+ if (color.a == -1.0f) {
74
+ return JsiSkColor::toValue(runtime, SK_ColorBLACK);
81
75
  }
76
+ return JsiSkColor::toValue(
77
+ runtime, SkColorSetARGB(color.a * 255, color.r, color.g, color.b));
78
+ } else if (arguments[0].isObject()) {
79
+ return arguments[0].getObject(runtime);
80
+ }
81
+ return jsi::Value::undefined();
82
82
  };
83
+ }
84
+ };
83
85
  } // namespace RNSkia
@@ -14,20 +14,22 @@
14
14
 
15
15
  namespace RNSkia {
16
16
 
17
- using namespace facebook;
17
+ namespace jsi = facebook::jsi;
18
18
 
19
19
  class JsiSkColorFilter : public JsiSkWrappingSkPtrHostObject<SkColorFilter> {
20
20
  public:
21
21
  JsiSkColorFilter(std::shared_ptr<RNSkPlatformContext> context,
22
22
  sk_sp<SkColorFilter> colorFilter)
23
- : JsiSkWrappingSkPtrHostObject<SkColorFilter>(std::move(context), std::move(colorFilter)) {}
23
+ : JsiSkWrappingSkPtrHostObject<SkColorFilter>(std::move(context),
24
+ std::move(colorFilter)) {}
24
25
 
25
26
  // TODO: declare in JsiSkWrappingSkPtrHostObject via extra template parameter?
26
27
  JSI_PROPERTY_GET(__typename__) {
27
28
  return jsi::String::createFromUtf8(runtime, "ColorFilter");
28
29
  }
29
30
 
30
- JSI_EXPORT_PROPERTY_GETTERS(JSI_EXPORT_PROP_GET(JsiSkColorFilter, __typename__))
31
+ JSI_EXPORT_PROPERTY_GETTERS(JSI_EXPORT_PROP_GET(JsiSkColorFilter,
32
+ __typename__))
31
33
 
32
34
  /**
33
35
  Returns the underlying object from a host object of this type
@@ -1,9 +1,10 @@
1
1
  #pragma once
2
2
 
3
+ #include "JsiSkColor.h"
3
4
  #include "JsiSkColorFilter.h"
4
5
  #include "JsiSkHostObjects.h"
5
- #include "JsiSkColor.h"
6
6
  #include <jsi/jsi.h>
7
+ #include <memory>
7
8
  #include <utility>
8
9
 
9
10
  #pragma clang diagnostic push
@@ -16,7 +17,7 @@
16
17
 
17
18
  namespace RNSkia {
18
19
 
19
- using namespace facebook;
20
+ namespace jsi = facebook::jsi;
20
21
 
21
22
  class JsiSkColorFilterFactory : public JsiSkHostObject {
22
23
  public:
@@ -49,7 +50,8 @@ public:
49
50
  // Return the newly constructed object
50
51
  return jsi::Object::createFromHostObject(
51
52
  runtime, std::make_shared<JsiSkColorFilter>(
52
- getContext(), SkColorFilters::Compose(std::move(outer), std::move(inner))));
53
+ getContext(), SkColorFilters::Compose(std::move(outer),
54
+ std::move(inner))));
53
55
  }
54
56
 
55
57
  JSI_HOST_FUNCTION(MakeLerp) {
@@ -59,15 +61,16 @@ public:
59
61
  // Return the newly constructed object
60
62
  return jsi::Object::createFromHostObject(
61
63
  runtime, std::make_shared<JsiSkColorFilter>(
62
- getContext(), SkColorFilters::Lerp(t, std::move(dst), std::move(src))));
64
+ getContext(),
65
+ SkColorFilters::Lerp(t, std::move(dst), std::move(src))));
63
66
  }
64
67
 
65
- JSI_HOST_FUNCTION(MakeSRGBToLinearGamma) {
66
- // Return the newly constructed object
67
- return jsi::Object::createFromHostObject(
68
- runtime, std::make_shared<JsiSkColorFilter>(
69
- getContext(), SkColorFilters::SRGBToLinearGamma()));
70
- }
68
+ JSI_HOST_FUNCTION(MakeSRGBToLinearGamma) {
69
+ // Return the newly constructed object
70
+ return jsi::Object::createFromHostObject(
71
+ runtime, std::make_shared<JsiSkColorFilter>(
72
+ getContext(), SkColorFilters::SRGBToLinearGamma()));
73
+ }
71
74
 
72
75
  JSI_HOST_FUNCTION(MakeLinearToSRGBGamma) {
73
76
  // Return the newly constructed object
@@ -79,21 +82,20 @@ public:
79
82
  JSI_HOST_FUNCTION(MakeLumaColorFilter) {
80
83
  // Return the newly constructed object
81
84
  return jsi::Object::createFromHostObject(
82
- runtime, std::make_shared<JsiSkColorFilter>(
83
- getContext(), SkLumaColorFilter::Make()));
85
+ runtime, std::make_shared<JsiSkColorFilter>(getContext(),
86
+ SkLumaColorFilter::Make()));
84
87
  }
85
88
 
86
89
  JSI_EXPORT_FUNCTIONS(
87
- JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeMatrix),
88
- JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeBlend),
89
- JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeCompose),
90
- JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeLerp),
91
- JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeSRGBToLinearGamma),
92
- JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeLinearToSRGBGamma),
93
- JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeLumaColorFilter)
94
- )
90
+ JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeMatrix),
91
+ JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeBlend),
92
+ JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeCompose),
93
+ JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeLerp),
94
+ JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeSRGBToLinearGamma),
95
+ JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeLinearToSRGBGamma),
96
+ JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeLumaColorFilter))
95
97
 
96
- JsiSkColorFilterFactory(std::shared_ptr<RNSkPlatformContext> context)
98
+ explicit JsiSkColorFilterFactory(std::shared_ptr<RNSkPlatformContext> context)
97
99
  : JsiSkHostObject(std::move(context)) {}
98
100
  };
99
101
  } // namespace RNSkia
@@ -12,91 +12,80 @@
12
12
 
13
13
  #include <SkContourMeasure.h>
14
14
 
15
- #pragma clang diagnostic pop
15
+ #include "JsiSkPath.h"
16
16
 
17
+ #pragma clang diagnostic pop
17
18
 
18
- namespace RNSkia
19
- {
20
-
21
- using namespace facebook;
22
-
23
- class JsiSkContourMeasure : public JsiSkWrappingSkPtrHostObject<SkContourMeasure>
24
- {
25
- public:
26
- JsiSkContourMeasure(std::shared_ptr<RNSkPlatformContext> context,
27
- const sk_sp<SkContourMeasure> contourMeasure)
28
- : JsiSkWrappingSkPtrHostObject(std::move(context), std::move(contourMeasure))
29
- {
30
- if (contourMeasure == nullptr)
31
- {
32
- throw jsi::JSError(*context->getJsRuntime(), "Contour measure is null");
33
- }
34
- };
35
-
36
- JSI_HOST_FUNCTION(getPosTan)
37
- {
38
- auto dist = arguments[0].asNumber();
39
- SkPoint position;
40
- SkPoint tangent;
41
- auto result = getObject()->getPosTan(dist, &position, &tangent);
42
- if (!result)
43
- {
44
- throw jsi::JSError(runtime, "getSegment() failed");
45
- }
46
- auto posTan = jsi::Object(runtime);
47
- posTan.setProperty(runtime, "px", position.x());
48
- posTan.setProperty(runtime, "py", position.y());
49
- posTan.setProperty(runtime, "tx", tangent.x());
50
- posTan.setProperty(runtime, "ty", tangent.y());
51
- return posTan;
52
- }
53
-
54
- JSI_HOST_FUNCTION(length)
55
- {
56
- return jsi::Value(SkScalarToDouble(getObject()->length()));
57
- }
58
-
59
- JSI_HOST_FUNCTION(isClosed)
60
- {
61
- return jsi::Value(getObject()->isClosed());
62
- }
63
-
64
- JSI_HOST_FUNCTION(getSegment)
65
- {
66
- auto start = arguments[0].asNumber();
67
- auto end = arguments[1].asNumber();
68
- auto startWithMoveTo = arguments[2].getBool();
69
- SkPath path;
70
- auto result = getObject()->getSegment(start, end, &path, startWithMoveTo);
71
- if (!result)
72
- {
73
- throw jsi::JSError(runtime, "getSegment() failed");
74
- }
75
- return JsiSkPath::toValue(runtime, getContext(), std::move(path));
76
- }
77
-
78
- JSI_PROPERTY_GET(__typename__)
79
- {
80
- return jsi::String::createFromUtf8(runtime, "ContourMeasure");
81
- }
82
-
83
- JSI_EXPORT_PROPERTY_GETTERS(JSI_EXPORT_PROP_GET(JsiSkContourMeasure, __typename__))
84
-
85
- JSI_EXPORT_FUNCTIONS(
86
- JSI_EXPORT_FUNC(JsiSkContourMeasure, getPosTan),
87
- JSI_EXPORT_FUNC(JsiSkContourMeasure, length),
88
- JSI_EXPORT_FUNC(JsiSkContourMeasure, isClosed),
89
- JSI_EXPORT_FUNC(JsiSkContourMeasure, getSegment))
90
-
91
- /**
92
- Returns the underlying object from a host object of this type
93
- */
94
- static sk_sp<SkContourMeasure> fromValue(jsi::Runtime &runtime,
95
- const jsi::Value &obj)
96
- {
97
- return obj.asObject(runtime)
98
- .asHostObject<JsiSkContourMeasure>(runtime)
99
- ->getObject();
100
- }
101
- };
19
+ namespace RNSkia {
20
+
21
+ namespace jsi = facebook::jsi;
22
+
23
+ class JsiSkContourMeasure
24
+ : public JsiSkWrappingSkPtrHostObject<SkContourMeasure> {
25
+ public:
26
+ JsiSkContourMeasure(std::shared_ptr<RNSkPlatformContext> context,
27
+ const sk_sp<SkContourMeasure> contourMeasure)
28
+ : JsiSkWrappingSkPtrHostObject(std::move(context),
29
+ std::move(contourMeasure)) {
30
+ if (contourMeasure == nullptr) {
31
+ throw jsi::JSError(*context->getJsRuntime(), "Contour measure is null");
32
+ }
33
+ }
34
+
35
+ JSI_HOST_FUNCTION(getPosTan) {
36
+ auto dist = arguments[0].asNumber();
37
+ SkPoint position;
38
+ SkPoint tangent;
39
+ auto result = getObject()->getPosTan(dist, &position, &tangent);
40
+ if (!result) {
41
+ throw jsi::JSError(runtime, "getSegment() failed");
42
+ }
43
+ auto posTan = jsi::Object(runtime);
44
+ posTan.setProperty(runtime, "px", position.x());
45
+ posTan.setProperty(runtime, "py", position.y());
46
+ posTan.setProperty(runtime, "tx", tangent.x());
47
+ posTan.setProperty(runtime, "ty", tangent.y());
48
+ return posTan;
49
+ }
50
+
51
+ JSI_HOST_FUNCTION(length) {
52
+ return jsi::Value(SkScalarToDouble(getObject()->length()));
53
+ }
54
+
55
+ JSI_HOST_FUNCTION(isClosed) { return jsi::Value(getObject()->isClosed()); }
56
+
57
+ JSI_HOST_FUNCTION(getSegment) {
58
+ auto start = arguments[0].asNumber();
59
+ auto end = arguments[1].asNumber();
60
+ auto startWithMoveTo = arguments[2].getBool();
61
+ SkPath path;
62
+ auto result = getObject()->getSegment(start, end, &path, startWithMoveTo);
63
+ if (!result) {
64
+ throw jsi::JSError(runtime, "getSegment() failed");
65
+ }
66
+ return JsiSkPath::toValue(runtime, getContext(), std::move(path));
67
+ }
68
+
69
+ JSI_PROPERTY_GET(__typename__) {
70
+ return jsi::String::createFromUtf8(runtime, "ContourMeasure");
71
+ }
72
+
73
+ JSI_EXPORT_PROPERTY_GETTERS(JSI_EXPORT_PROP_GET(JsiSkContourMeasure,
74
+ __typename__))
75
+
76
+ JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkContourMeasure, getPosTan),
77
+ JSI_EXPORT_FUNC(JsiSkContourMeasure, length),
78
+ JSI_EXPORT_FUNC(JsiSkContourMeasure, isClosed),
79
+ JSI_EXPORT_FUNC(JsiSkContourMeasure, getSegment))
80
+
81
+ /**
82
+ Returns the underlying object from a host object of this type
83
+ */
84
+ static sk_sp<SkContourMeasure> fromValue(jsi::Runtime &runtime,
85
+ const jsi::Value &obj) {
86
+ return obj.asObject(runtime)
87
+ .asHostObject<JsiSkContourMeasure>(runtime)
88
+ ->getObject();
89
+ }
90
+ };
102
91
  } // namespace RNSkia
@@ -3,88 +3,81 @@
3
3
  #include <memory>
4
4
  #include <utility>
5
5
 
6
- #include "JsiSkHostObjects.h"
7
6
  #include "JsiSkContourMeasure.h"
7
+ #include "JsiSkHostObjects.h"
8
8
 
9
9
  #pragma clang diagnostic push
10
10
  #pragma clang diagnostic ignored "-Wdocumentation"
11
11
 
12
12
  #include <SkContourMeasure.h>
13
13
 
14
+ #include "JsiSkPath.h"
15
+
14
16
  #pragma clang diagnostic pop
15
17
 
16
- namespace RNSkia
17
- {
18
-
19
- using namespace facebook;
20
-
21
- class JsiSkContourMeasureIter : public JsiSkWrappingSharedPtrHostObject<SkContourMeasureIter>
22
- {
23
- public:
24
- JsiSkContourMeasureIter(
25
- std::shared_ptr<RNSkPlatformContext> context,
26
- const SkPath &path,
27
- bool forceClosed,
28
- SkScalar resScale = 1) : JsiSkWrappingSharedPtrHostObject<SkContourMeasureIter>(std::move(context), std::make_shared<SkContourMeasureIter>(path, forceClosed, resScale)) {}
29
-
30
- // TODO: declare in JsiSkWrappingSkPtrHostObject via extra template parameter?
31
- JSI_PROPERTY_GET(__typename__)
32
- {
33
- return jsi::String::createFromUtf8(runtime, "ContourMeasureIter");
34
- }
35
-
36
- JSI_EXPORT_PROPERTY_GETTERS(
37
- JSI_EXPORT_PROP_GET(JsiSkContourMeasureIter, __typename__), )
38
-
39
- JSI_HOST_FUNCTION(next)
40
- {
41
- auto next = getObject()->next();
42
- if (next == nullptr)
43
- {
44
- return jsi::Value::undefined();
45
- }
46
- auto nextObject = std::make_shared<JsiSkContourMeasure>(getContext(), std::move(next));
47
-
48
- return jsi::Object::createFromHostObject(runtime, std::move(nextObject));
49
- }
50
-
51
- JSI_EXPORT_FUNCTIONS(
52
- JSI_EXPORT_FUNC(JsiSkContourMeasureIter, next))
53
-
54
- /**
55
- Returns the underlying object from a host object of this type
56
- */
57
- static std::shared_ptr<SkContourMeasureIter> fromValue(jsi::Runtime &runtime,
58
- const jsi::Value &obj)
59
- {
60
- return obj.asObject(runtime)
61
- .asHostObject<JsiSkContourMeasureIter>(runtime)
62
- ->getObject();
63
- }
64
-
65
- /**
66
- * Creates the function for construction a new instance of the SkContourMeasureIter
67
- * wrapper
68
- * @param context platform context
69
- * @return A function for creating a new host object wrapper for the SkContourMeasureIter
70
- * class
71
- */
72
- static const jsi::HostFunctionType
73
- createCtor(std::shared_ptr<RNSkPlatformContext> context)
74
- {
75
- return JSI_HOST_FUNCTION_LAMBDA
76
- {
77
- auto path = JsiSkPath::fromValue(runtime, arguments[0]);
78
- auto forceClosed = arguments[1].getBool();
79
- auto resScale = arguments[2].asNumber();
80
- // Return the newly constructed object
81
- return jsi::Object::createFromHostObject(
82
- runtime, std::make_shared<JsiSkContourMeasureIter>(
83
- std::move(context),
84
- *path,
85
- forceClosed,
86
- resScale));
87
- };
88
- }
89
- };
18
+ namespace RNSkia {
19
+
20
+ namespace jsi = facebook::jsi;
21
+
22
+ class JsiSkContourMeasureIter
23
+ : public JsiSkWrappingSharedPtrHostObject<SkContourMeasureIter> {
24
+ public:
25
+ JsiSkContourMeasureIter(std::shared_ptr<RNSkPlatformContext> context,
26
+ const SkPath &path, bool forceClosed,
27
+ SkScalar resScale = 1)
28
+ : JsiSkWrappingSharedPtrHostObject<SkContourMeasureIter>(
29
+ std::move(context), std::make_shared<SkContourMeasureIter>(
30
+ path, forceClosed, resScale)) {}
31
+
32
+ // TODO: declare in JsiSkWrappingSkPtrHostObject via extra template parameter?
33
+ JSI_PROPERTY_GET(__typename__) {
34
+ return jsi::String::createFromUtf8(runtime, "ContourMeasureIter");
35
+ }
36
+
37
+ JSI_EXPORT_PROPERTY_GETTERS(JSI_EXPORT_PROP_GET(JsiSkContourMeasureIter,
38
+ __typename__), )
39
+
40
+ JSI_HOST_FUNCTION(next) {
41
+ auto next = getObject()->next();
42
+ if (next == nullptr) {
43
+ return jsi::Value::undefined();
44
+ }
45
+ auto nextObject =
46
+ std::make_shared<JsiSkContourMeasure>(getContext(), std::move(next));
47
+
48
+ return jsi::Object::createFromHostObject(runtime, std::move(nextObject));
49
+ }
50
+
51
+ JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkContourMeasureIter, next))
52
+
53
+ /**
54
+ Returns the underlying object from a host object of this type
55
+ */
56
+ static std::shared_ptr<SkContourMeasureIter>
57
+ fromValue(jsi::Runtime &runtime, const jsi::Value &obj) {
58
+ return obj.asObject(runtime)
59
+ .asHostObject<JsiSkContourMeasureIter>(runtime)
60
+ ->getObject();
61
+ }
62
+
63
+ /**
64
+ * Creates the function for construction a new instance of the
65
+ * SkContourMeasureIter wrapper
66
+ * @param context platform context
67
+ * @return A function for creating a new host object wrapper for the
68
+ * SkContourMeasureIter class
69
+ */
70
+ static const jsi::HostFunctionType
71
+ createCtor(std::shared_ptr<RNSkPlatformContext> context) {
72
+ return JSI_HOST_FUNCTION_LAMBDA {
73
+ auto path = JsiSkPath::fromValue(runtime, arguments[0]);
74
+ auto forceClosed = arguments[1].getBool();
75
+ auto resScale = arguments[2].asNumber();
76
+ // Return the newly constructed object
77
+ return jsi::Object::createFromHostObject(
78
+ runtime, std::make_shared<JsiSkContourMeasureIter>(
79
+ std::move(context), *path, forceClosed, resScale));
80
+ };
81
+ }
82
+ };
90
83
  } // namespace RNSkia
@@ -15,32 +15,26 @@
15
15
 
16
16
  #pragma clang diagnostic pop
17
17
 
18
-
19
18
  namespace RNSkia {
20
19
 
21
- using namespace facebook;
22
-
23
- class JsiSkData : public JsiSkWrappingSkPtrHostObject<SkData> {
24
- public:
25
- JsiSkData(std::shared_ptr<RNSkPlatformContext> context,
26
- sk_sp<SkData> asset)
27
- : JsiSkWrappingSkPtrHostObject(std::move(context), std::move(asset)){}
20
+ namespace jsi = facebook::jsi;
28
21
 
22
+ class JsiSkData : public JsiSkWrappingSkPtrHostObject<SkData> {
23
+ public:
24
+ JsiSkData(std::shared_ptr<RNSkPlatformContext> context, sk_sp<SkData> asset)
25
+ : JsiSkWrappingSkPtrHostObject(std::move(context), std::move(asset)) {}
29
26
 
30
- JSI_PROPERTY_GET(__typename__) {
31
- return jsi::String::createFromUtf8(runtime, "Data");
32
- }
27
+ JSI_PROPERTY_GET(__typename__) {
28
+ return jsi::String::createFromUtf8(runtime, "Data");
29
+ }
33
30
 
34
- JSI_EXPORT_PROPERTY_GETTERS(JSI_EXPORT_PROP_GET(JsiSkData, __typename__))
31
+ JSI_EXPORT_PROPERTY_GETTERS(JSI_EXPORT_PROP_GET(JsiSkData, __typename__))
35
32
 
36
- /**
37
- Returns the underlying object from a host object of this type
38
- */
39
- static sk_sp<SkData> fromValue(jsi::Runtime &runtime,
40
- const jsi::Value &obj) {
41
- return obj.asObject(runtime)
42
- .asHostObject<JsiSkData>(runtime)
43
- ->getObject();
44
- }
45
- };
33
+ /**
34
+ Returns the underlying object from a host object of this type
35
+ */
36
+ static sk_sp<SkData> fromValue(jsi::Runtime &runtime, const jsi::Value &obj) {
37
+ return obj.asObject(runtime).asHostObject<JsiSkData>(runtime)->getObject();
38
+ }
39
+ };
46
40
  } // namespace RNSkia