@shopify/react-native-skia 0.1.158 → 0.1.159

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 (403) hide show
  1. package/android/CMakeLists.txt +35 -11
  2. package/android/build.gradle +21 -25
  3. package/android/cpp/jni/JniLoad.cpp +2 -0
  4. package/android/cpp/jni/include/JniSkiaDomView.h +89 -0
  5. package/android/cpp/rnskia-android/SkiaOpenGLRenderer.cpp +4 -3
  6. package/android/cpp/rnskia-android/SkiaOpenGLRenderer.h +4 -3
  7. package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +2 -1
  8. package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomView.java +45 -0
  9. package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomViewManager.java +64 -0
  10. package/cpp/api/JsiSkHostObjects.h +6 -0
  11. package/cpp/api/JsiSkImageFilterFactory.h +1 -1
  12. package/cpp/api/JsiSkPaint.h +9 -2
  13. package/cpp/api/JsiSkPath.h +1 -0
  14. package/cpp/api/JsiSkRuntimeEffect.h +36 -36
  15. package/cpp/jsi/JsiHostObject.cpp +16 -28
  16. package/cpp/jsi/JsiHostObject.h +127 -7
  17. package/cpp/jsi/JsiValue.cpp +346 -0
  18. package/cpp/jsi/JsiValue.h +222 -0
  19. package/cpp/jsi/JsiValueWrapper.h +33 -5
  20. package/cpp/rnskia/RNSkDomView.cpp +220 -0
  21. package/cpp/rnskia/RNSkDomView.h +140 -0
  22. package/cpp/rnskia/RNSkJsView.cpp +0 -4
  23. package/cpp/rnskia/RNSkJsView.h +6 -4
  24. package/cpp/rnskia/RNSkManager.cpp +7 -0
  25. package/cpp/rnskia/RNSkPictureView.h +5 -8
  26. package/cpp/rnskia/RNSkView.h +113 -5
  27. package/cpp/rnskia/dom/JsiDomApi.h +167 -0
  28. package/cpp/rnskia/dom/base/BaseNodeProp.h +72 -0
  29. package/cpp/rnskia/dom/base/DerivedNodeProp.h +187 -0
  30. package/cpp/rnskia/dom/base/DrawingContext.cpp +227 -0
  31. package/cpp/rnskia/dom/base/DrawingContext.h +136 -0
  32. package/cpp/rnskia/dom/base/JsiDependencyManager.h +294 -0
  33. package/cpp/rnskia/dom/base/JsiDomDeclarationNode.h +176 -0
  34. package/cpp/rnskia/dom/base/JsiDomDrawingNode.h +50 -0
  35. package/cpp/rnskia/dom/base/JsiDomNode.h +361 -0
  36. package/cpp/rnskia/dom/base/JsiDomRenderNode.h +267 -0
  37. package/cpp/rnskia/dom/base/NodeProp.h +130 -0
  38. package/cpp/rnskia/dom/base/NodePropsContainer.h +119 -0
  39. package/cpp/rnskia/dom/nodes/JsiBackdropFilterNode.h +38 -0
  40. package/cpp/rnskia/dom/nodes/JsiBlendNode.h +112 -0
  41. package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +78 -0
  42. package/cpp/rnskia/dom/nodes/JsiBoxNode.h +104 -0
  43. package/cpp/rnskia/dom/nodes/JsiBoxShadowNode.h +33 -0
  44. package/cpp/rnskia/dom/nodes/JsiCircleNode.h +38 -0
  45. package/cpp/rnskia/dom/nodes/JsiColorFilterNodes.h +192 -0
  46. package/cpp/rnskia/dom/nodes/JsiCustomDrawingNode.h +123 -0
  47. package/cpp/rnskia/dom/nodes/JsiDiffRectNode.h +42 -0
  48. package/cpp/rnskia/dom/nodes/JsiFillNode.h +22 -0
  49. package/cpp/rnskia/dom/nodes/JsiGlyphsNode.h +56 -0
  50. package/cpp/rnskia/dom/nodes/JsiGroupNode.h +26 -0
  51. package/cpp/rnskia/dom/nodes/JsiImageFilterNodes.h +415 -0
  52. package/cpp/rnskia/dom/nodes/JsiImageNode.h +34 -0
  53. package/cpp/rnskia/dom/nodes/JsiImageSvgNode.h +44 -0
  54. package/cpp/rnskia/dom/nodes/JsiLayerNode.h +64 -0
  55. package/cpp/rnskia/dom/nodes/JsiLineNode.h +43 -0
  56. package/cpp/rnskia/dom/nodes/JsiOvalNode.h +34 -0
  57. package/cpp/rnskia/dom/nodes/JsiPaintNode.h +77 -0
  58. package/cpp/rnskia/dom/nodes/JsiPatchNode.h +54 -0
  59. package/cpp/rnskia/dom/nodes/JsiPathEffectNodes.h +315 -0
  60. package/cpp/rnskia/dom/nodes/JsiPathNode.h +181 -0
  61. package/cpp/rnskia/dom/nodes/JsiPictureNode.h +32 -0
  62. package/cpp/rnskia/dom/nodes/JsiPointsNode.h +51 -0
  63. package/cpp/rnskia/dom/nodes/JsiRRectNode.h +34 -0
  64. package/cpp/rnskia/dom/nodes/JsiRectNode.h +34 -0
  65. package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +517 -0
  66. package/cpp/rnskia/dom/nodes/JsiTextBlobNode.h +47 -0
  67. package/cpp/rnskia/dom/nodes/JsiTextNode.h +54 -0
  68. package/cpp/rnskia/dom/nodes/JsiTextPathNode.h +32 -0
  69. package/cpp/rnskia/dom/nodes/JsiVerticesNode.h +43 -0
  70. package/cpp/rnskia/dom/props/BezierProps.h +63 -0
  71. package/cpp/rnskia/dom/props/BlendModeProp.h +101 -0
  72. package/cpp/rnskia/dom/props/BoxShadowProps.h +61 -0
  73. package/cpp/rnskia/dom/props/CircleProp.h +46 -0
  74. package/cpp/rnskia/dom/props/ClipProp.h +62 -0
  75. package/cpp/rnskia/dom/props/ColorProp.h +80 -0
  76. package/cpp/rnskia/dom/props/DrawingProp.h +33 -0
  77. package/cpp/rnskia/dom/props/FontProp.h +34 -0
  78. package/cpp/rnskia/dom/props/GlyphsProp.h +53 -0
  79. package/cpp/rnskia/dom/props/ImageProps.h +173 -0
  80. package/cpp/rnskia/dom/props/LayerProp.h +50 -0
  81. package/cpp/rnskia/dom/props/MatrixProp.h +33 -0
  82. package/cpp/rnskia/dom/props/NumbersProp.h +63 -0
  83. package/cpp/rnskia/dom/props/PaintProps.h +172 -0
  84. package/cpp/rnskia/dom/props/PathProp.h +55 -0
  85. package/cpp/rnskia/dom/props/PictureProp.h +38 -0
  86. package/cpp/rnskia/dom/props/PointProp.h +72 -0
  87. package/cpp/rnskia/dom/props/PointsProp.h +83 -0
  88. package/cpp/rnskia/dom/props/RRectProp.h +134 -0
  89. package/cpp/rnskia/dom/props/RadiusProp.h +43 -0
  90. package/cpp/rnskia/dom/props/RectProp.h +118 -0
  91. package/cpp/rnskia/dom/props/StrokeProps.h +75 -0
  92. package/cpp/rnskia/dom/props/SvgProp.h +37 -0
  93. package/cpp/rnskia/dom/props/TextBlobProp.h +128 -0
  94. package/cpp/rnskia/dom/props/TileModeProp.h +50 -0
  95. package/cpp/rnskia/dom/props/TransformProp.h +80 -0
  96. package/cpp/rnskia/dom/props/TransformsProps.h +68 -0
  97. package/cpp/rnskia/dom/props/UniformsProp.h +194 -0
  98. package/cpp/rnskia/dom/props/VertexModeProp.h +47 -0
  99. package/cpp/rnskia/dom/props/VerticesProps.h +67 -0
  100. package/cpp/rnskia/values/RNSkReadonlyValue.h +13 -4
  101. package/cpp/skia/include/android/SkAndroidFrameworkUtils.h +35 -1
  102. package/cpp/skia/include/codec/SkAndroidCodec.h +17 -1
  103. package/cpp/skia/include/codec/SkCodec.h +8 -5
  104. package/cpp/skia/include/core/SkAnnotation.h +2 -0
  105. package/cpp/skia/include/core/SkBitmap.h +52 -1
  106. package/cpp/skia/include/core/SkBlendMode.h +2 -0
  107. package/cpp/skia/include/core/SkCanvas.h +52 -31
  108. package/cpp/skia/include/core/SkCapabilities.h +44 -0
  109. package/cpp/skia/include/core/SkColor.h +7 -0
  110. package/cpp/skia/include/core/SkColorFilter.h +37 -0
  111. package/cpp/skia/include/core/SkColorSpace.h +1 -1
  112. package/cpp/skia/include/core/SkFont.h +4 -0
  113. package/cpp/skia/include/core/SkFontMgr.h +3 -0
  114. package/cpp/skia/include/core/SkGraphics.h +9 -0
  115. package/cpp/skia/include/core/SkImage.h +77 -17
  116. package/cpp/skia/include/core/SkImageEncoder.h +5 -3
  117. package/cpp/skia/include/core/SkImageGenerator.h +27 -17
  118. package/cpp/skia/include/core/SkM44.h +1 -0
  119. package/cpp/skia/include/core/SkMesh.h +120 -34
  120. package/cpp/skia/include/core/SkMilestone.h +1 -1
  121. package/cpp/skia/include/core/SkOverdrawCanvas.h +2 -1
  122. package/cpp/skia/include/core/SkPaint.h +15 -2
  123. package/cpp/skia/include/core/SkPath.h +4 -0
  124. package/cpp/skia/include/core/SkPathBuilder.h +1 -1
  125. package/cpp/skia/include/core/SkPicture.h +0 -3
  126. package/cpp/skia/include/core/SkPictureRecorder.h +0 -2
  127. package/cpp/skia/include/core/SkPixmap.h +19 -0
  128. package/cpp/skia/include/core/SkRasterHandleAllocator.h +3 -1
  129. package/cpp/skia/include/core/SkRect.h +11 -4
  130. package/cpp/skia/include/core/SkRefCnt.h +13 -1
  131. package/cpp/skia/include/core/SkRegion.h +6 -0
  132. package/cpp/skia/include/core/SkSamplingOptions.h +8 -6
  133. package/cpp/skia/include/core/SkScalar.h +6 -25
  134. package/cpp/skia/include/core/SkShader.h +20 -12
  135. package/cpp/skia/include/core/SkSpan.h +51 -19
  136. package/cpp/skia/include/core/SkStream.h +2 -2
  137. package/cpp/skia/include/core/SkString.h +11 -3
  138. package/cpp/skia/include/core/SkSurface.h +85 -8
  139. package/cpp/skia/include/core/SkTextBlob.h +5 -2
  140. package/cpp/skia/include/core/SkTypes.h +11 -10
  141. package/cpp/skia/include/docs/SkPDFDocument.h +0 -5
  142. package/cpp/skia/include/effects/Sk1DPathEffect.h +6 -1
  143. package/cpp/skia/include/effects/Sk2DPathEffect.h +4 -1
  144. package/cpp/skia/include/effects/SkColorMatrix.h +1 -0
  145. package/cpp/skia/include/effects/SkColorMatrixFilter.h +5 -8
  146. package/cpp/skia/include/effects/SkCornerPathEffect.h +5 -1
  147. package/cpp/skia/include/effects/SkDashPathEffect.h +5 -1
  148. package/cpp/skia/include/effects/SkGradientShader.h +68 -38
  149. package/cpp/skia/include/effects/SkHighContrastFilter.h +5 -1
  150. package/cpp/skia/include/effects/SkImageFilters.h +5 -4
  151. package/cpp/skia/include/effects/SkLumaColorFilter.h +4 -1
  152. package/cpp/skia/include/effects/SkOpPathEffect.h +6 -2
  153. package/cpp/skia/include/effects/SkOverdrawColorFilter.h +5 -2
  154. package/cpp/skia/include/effects/SkRuntimeEffect.h +54 -62
  155. package/cpp/skia/include/effects/SkShaderMaskFilter.h +3 -1
  156. package/cpp/skia/include/effects/SkTableColorFilter.h +8 -21
  157. package/cpp/skia/include/effects/SkTableMaskFilter.h +5 -1
  158. package/cpp/skia/include/effects/SkTrimPathEffect.h +5 -1
  159. package/cpp/skia/include/encode/SkEncoder.h +17 -0
  160. package/cpp/skia/include/encode/SkWebpEncoder.h +17 -0
  161. package/cpp/skia/include/gpu/GpuTypes.h +18 -0
  162. package/cpp/skia/include/gpu/GrBackendSurface.h +38 -17
  163. package/cpp/skia/include/gpu/GrBackendSurfaceMutableState.h +6 -71
  164. package/cpp/skia/include/gpu/GrContextOptions.h +1 -1
  165. package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +10 -9
  166. package/cpp/skia/include/gpu/GrDirectContext.h +42 -22
  167. package/cpp/skia/include/gpu/GrRecordingContext.h +6 -3
  168. package/cpp/skia/include/gpu/GrTypes.h +11 -11
  169. package/cpp/skia/include/gpu/MutableTextureState.h +122 -0
  170. package/cpp/skia/include/gpu/gl/GrGLFunctions.h +1 -0
  171. package/cpp/skia/include/gpu/gl/GrGLInterface.h +1 -0
  172. package/cpp/skia/include/gpu/graphite/BackendTexture.h +7 -0
  173. package/cpp/skia/include/gpu/graphite/CombinationBuilder.h +195 -0
  174. package/cpp/skia/include/gpu/graphite/Context.h +47 -55
  175. package/cpp/skia/include/gpu/graphite/ContextOptions.h +85 -0
  176. package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +1 -17
  177. package/cpp/skia/include/gpu/graphite/ImageProvider.h +61 -0
  178. package/cpp/skia/include/gpu/graphite/Recorder.h +87 -8
  179. package/cpp/skia/include/gpu/graphite/Recording.h +19 -9
  180. package/cpp/skia/include/gpu/graphite/TextureInfo.h +40 -8
  181. package/cpp/skia/include/gpu/graphite/dawn/DawnBackendContext.h +25 -0
  182. package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +3 -2
  183. package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +69 -0
  184. package/cpp/skia/include/gpu/mtl/MtlMemoryAllocator.h +39 -0
  185. package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +21 -19
  186. package/cpp/skia/include/gpu/vk/GrVkExtensions.h +2 -50
  187. package/cpp/skia/include/gpu/vk/GrVkMemoryAllocator.h +2 -127
  188. package/cpp/skia/include/gpu/vk/GrVkTypes.h +5 -43
  189. package/cpp/skia/include/gpu/vk/VulkanBackendContext.h +46 -0
  190. package/cpp/skia/include/gpu/vk/VulkanExtensions.h +67 -0
  191. package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +116 -0
  192. package/cpp/skia/include/gpu/vk/VulkanTypes.h +59 -0
  193. package/cpp/skia/include/pathops/SkPathOps.h +1 -1
  194. package/cpp/skia/include/private/SkColorData.h +10 -40
  195. package/cpp/skia/include/private/SkEncodedInfo.h +9 -3
  196. package/cpp/skia/include/private/SkFloatingPoint.h +9 -6
  197. package/cpp/skia/include/private/SkHalf.h +5 -52
  198. package/cpp/skia/include/private/SkMacros.h +1 -1
  199. package/cpp/skia/include/private/SkMalloc.h +4 -0
  200. package/cpp/skia/include/private/SkPathRef.h +10 -10
  201. package/cpp/skia/include/private/SkSLModifiers.h +59 -23
  202. package/cpp/skia/include/private/SkSLProgramKind.h +1 -0
  203. package/cpp/skia/include/private/SkSLSymbol.h +7 -3
  204. package/cpp/skia/include/private/SkStringView.h +4 -0
  205. package/cpp/skia/include/private/SkTArray.h +21 -7
  206. package/cpp/skia/include/private/SkTDArray.h +173 -285
  207. package/cpp/skia/include/private/SkTHash.h +33 -32
  208. package/cpp/skia/include/private/SkTemplates.h +24 -26
  209. package/cpp/skia/include/private/SkVx.h +218 -135
  210. package/cpp/skia/include/private/chromium/GrSlug.h +3 -65
  211. package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +6 -3
  212. package/cpp/skia/include/private/chromium/Slug.h +76 -0
  213. package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +6 -1
  214. package/cpp/skia/include/private/gpu/ganesh/GrVkTypesPriv.h +5 -39
  215. package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +63 -0
  216. package/cpp/skia/include/{gpu/vk/GrVkVulkan.h → private/gpu/vk/SkiaVulkan.h} +2 -2
  217. package/cpp/skia/include/private/gpu/vk/VulkanTypesPriv.h +57 -0
  218. package/cpp/skia/include/sksl/DSL.h +0 -1
  219. package/cpp/skia/include/sksl/DSLBlock.h +4 -18
  220. package/cpp/skia/include/sksl/DSLCase.h +2 -8
  221. package/cpp/skia/include/sksl/DSLCore.h +8 -15
  222. package/cpp/skia/include/sksl/DSLExpression.h +51 -142
  223. package/cpp/skia/include/sksl/DSLFunction.h +7 -15
  224. package/cpp/skia/include/sksl/DSLModifiers.h +5 -2
  225. package/cpp/skia/include/sksl/DSLStatement.h +4 -39
  226. package/cpp/skia/include/sksl/DSLSymbols.h +1 -11
  227. package/cpp/skia/include/sksl/DSLType.h +20 -12
  228. package/cpp/skia/include/sksl/DSLVar.h +56 -146
  229. package/cpp/skia/include/sksl/SkSLErrorReporter.h +2 -15
  230. package/cpp/skia/include/sksl/SkSLOperator.h +62 -59
  231. package/cpp/skia/include/sksl/SkSLPosition.h +2 -0
  232. package/cpp/skia/include/sksl/SkSLVersion.h +27 -0
  233. package/cpp/skia/include/svg/SkSVGCanvas.h +1 -0
  234. package/cpp/skia/include/utils/SkAnimCodecPlayer.h +1 -1
  235. package/cpp/skia/include/utils/SkBase64.h +2 -0
  236. package/cpp/skia/include/utils/SkCustomTypeface.h +24 -11
  237. package/cpp/skia/include/utils/SkEventTracer.h +12 -1
  238. package/cpp/skia/include/utils/SkNWayCanvas.h +11 -4
  239. package/cpp/skia/include/utils/SkPaintFilterCanvas.h +9 -4
  240. package/cpp/skia/include/utils/SkParse.h +3 -0
  241. package/cpp/skia/include/utils/SkShadowUtils.h +2 -0
  242. package/cpp/skia/include/utils/SkTextUtils.h +2 -1
  243. package/cpp/skia/{include/third_party → modules}/skcms/skcms.h +10 -0
  244. package/cpp/skia/modules/skcms/skcms_internal.h +56 -0
  245. package/cpp/skia/modules/skcms/src/Transform_inl.h +1609 -0
  246. package/cpp/skia/modules/skparagraph/include/DartTypes.h +153 -0
  247. package/cpp/skia/modules/skparagraph/include/FontArguments.h +46 -0
  248. package/cpp/skia/modules/skparagraph/include/FontCollection.h +84 -0
  249. package/cpp/skia/modules/skparagraph/include/Metrics.h +98 -0
  250. package/cpp/skia/modules/skparagraph/include/Paragraph.h +111 -0
  251. package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +69 -0
  252. package/cpp/skia/modules/skparagraph/include/ParagraphCache.h +77 -0
  253. package/cpp/skia/modules/skparagraph/include/ParagraphStyle.h +143 -0
  254. package/cpp/skia/modules/skparagraph/include/TextShadow.h +30 -0
  255. package/cpp/skia/modules/skparagraph/include/TextStyle.h +352 -0
  256. package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +81 -0
  257. package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +1 -1
  258. package/cpp/skia/modules/svg/include/SkSVGTypes.h +3 -3
  259. package/cpp/skia/src/core/SkLRUCache.h +126 -0
  260. package/cpp/skia/src/core/SkTInternalLList.h +302 -0
  261. package/cpp/utils/RNSkTimingInfo.h +1 -0
  262. package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.h +15 -4
  263. package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.mm +40 -54
  264. package/ios/RNSkia-iOS/SkiaDomViewManager.h +8 -0
  265. package/ios/RNSkia-iOS/SkiaDomViewManager.mm +51 -0
  266. package/lib/commonjs/dom/nodes/JsiSkDOM.js +56 -56
  267. package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +1 -1
  268. package/lib/commonjs/dom/nodes/RenderNode.js +1 -1
  269. package/lib/commonjs/dom/nodes/RenderNode.js.map +1 -1
  270. package/lib/commonjs/renderer/Canvas.js +19 -63
  271. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  272. package/lib/commonjs/renderer/DependencyManager.js +0 -5
  273. package/lib/commonjs/renderer/DependencyManager.js.map +1 -1
  274. package/lib/commonjs/renderer/HostComponents.js.map +1 -1
  275. package/lib/commonjs/renderer/useCanvas.js +4 -18
  276. package/lib/commonjs/renderer/useCanvas.js.map +1 -1
  277. package/lib/commonjs/views/SkiaBaseWebView.js +7 -0
  278. package/lib/commonjs/views/SkiaBaseWebView.js.map +1 -1
  279. package/lib/commonjs/views/SkiaDomView.js +152 -0
  280. package/lib/commonjs/views/SkiaDomView.js.map +1 -0
  281. package/lib/commonjs/views/SkiaDomView.web.js +55 -0
  282. package/lib/commonjs/views/SkiaDomView.web.js.map +1 -0
  283. package/lib/commonjs/views/SkiaPictureView.js +16 -2
  284. package/lib/commonjs/views/SkiaPictureView.js.map +1 -1
  285. package/lib/commonjs/views/SkiaView.js +17 -2
  286. package/lib/commonjs/views/SkiaView.js.map +1 -1
  287. package/lib/commonjs/views/index.js +13 -0
  288. package/lib/commonjs/views/index.js.map +1 -1
  289. package/lib/commonjs/views/types.js.map +1 -1
  290. package/lib/module/dom/nodes/JsiSkDOM.js +56 -56
  291. package/lib/module/dom/nodes/JsiSkDOM.js.map +1 -1
  292. package/lib/module/dom/nodes/RenderNode.js +1 -1
  293. package/lib/module/dom/nodes/RenderNode.js.map +1 -1
  294. package/lib/module/renderer/Canvas.js +20 -64
  295. package/lib/module/renderer/Canvas.js.map +1 -1
  296. package/lib/module/renderer/DependencyManager.js +0 -5
  297. package/lib/module/renderer/DependencyManager.js.map +1 -1
  298. package/lib/module/renderer/HostComponents.js.map +1 -1
  299. package/lib/module/renderer/useCanvas.js +2 -13
  300. package/lib/module/renderer/useCanvas.js.map +1 -1
  301. package/lib/module/views/SkiaBaseWebView.js +7 -0
  302. package/lib/module/views/SkiaBaseWebView.js.map +1 -1
  303. package/lib/module/views/SkiaDomView.js +128 -0
  304. package/lib/module/views/SkiaDomView.js.map +1 -0
  305. package/lib/module/views/SkiaDomView.web.js +41 -0
  306. package/lib/module/views/SkiaDomView.web.js.map +1 -0
  307. package/lib/module/views/SkiaPictureView.js +14 -2
  308. package/lib/module/views/SkiaPictureView.js.map +1 -1
  309. package/lib/module/views/SkiaView.js +15 -2
  310. package/lib/module/views/SkiaView.js.map +1 -1
  311. package/lib/module/views/index.js +1 -0
  312. package/lib/module/views/index.js.map +1 -1
  313. package/lib/module/views/types.js.map +1 -1
  314. package/lib/typescript/src/dom/nodes/JsiSkDOM.d.ts +57 -64
  315. package/lib/typescript/src/renderer/Canvas.d.ts +5 -8
  316. package/lib/typescript/src/renderer/DependencyManager.d.ts +0 -2
  317. package/lib/typescript/src/renderer/HostComponents.d.ts +66 -3
  318. package/lib/typescript/src/renderer/useCanvas.d.ts +0 -6
  319. package/lib/typescript/src/views/SkiaBaseWebView.d.ts +4 -0
  320. package/lib/typescript/src/views/SkiaDomView.d.ts +31 -0
  321. package/lib/typescript/src/views/SkiaDomView.web.d.ts +7 -0
  322. package/lib/typescript/src/views/index.d.ts +1 -0
  323. package/lib/typescript/src/views/types.d.ts +12 -2
  324. package/libs/android/arm64-v8a/libskia.a +0 -0
  325. package/libs/android/arm64-v8a/libskottie.a +0 -0
  326. package/libs/android/arm64-v8a/libskparagraph.a +0 -0
  327. package/libs/android/arm64-v8a/libsksg.a +0 -0
  328. package/libs/android/arm64-v8a/libskshaper.a +0 -0
  329. package/libs/android/arm64-v8a/libskunicode.a +0 -0
  330. package/libs/android/arm64-v8a/libsvg.a +0 -0
  331. package/libs/android/armeabi-v7a/libskia.a +0 -0
  332. package/libs/android/armeabi-v7a/libskottie.a +0 -0
  333. package/libs/android/armeabi-v7a/libskparagraph.a +0 -0
  334. package/libs/android/armeabi-v7a/libsksg.a +0 -0
  335. package/libs/android/armeabi-v7a/libskshaper.a +0 -0
  336. package/libs/android/armeabi-v7a/libskunicode.a +0 -0
  337. package/libs/android/armeabi-v7a/libsvg.a +0 -0
  338. package/libs/android/x86/libskia.a +0 -0
  339. package/libs/android/x86/libskottie.a +0 -0
  340. package/libs/android/x86/libskparagraph.a +0 -0
  341. package/libs/android/x86/libsksg.a +0 -0
  342. package/libs/android/x86/libskshaper.a +0 -0
  343. package/libs/android/x86/libskunicode.a +0 -0
  344. package/libs/android/x86/libsvg.a +0 -0
  345. package/libs/android/x86_64/libskia.a +0 -0
  346. package/libs/android/x86_64/libskottie.a +0 -0
  347. package/libs/android/x86_64/libskparagraph.a +0 -0
  348. package/libs/android/x86_64/libsksg.a +0 -0
  349. package/libs/android/x86_64/libskshaper.a +0 -0
  350. package/libs/android/x86_64/libskunicode.a +0 -0
  351. package/libs/android/x86_64/libsvg.a +0 -0
  352. package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  353. package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  354. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  355. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  356. package/libs/ios/libskparagraph.xcframework/Info.plist +42 -0
  357. package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
  358. package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  359. package/libs/ios/libsksg.xcframework/Info.plist +5 -5
  360. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  361. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  362. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  363. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  364. package/libs/ios/libskunicode.xcframework/Info.plist +42 -0
  365. package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
  366. package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.a +0 -0
  367. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  368. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  369. package/package.json +5 -3
  370. package/react-native-skia.podspec +3 -1
  371. package/src/dom/nodes/JsiSkDOM.ts +170 -56
  372. package/src/dom/nodes/RenderNode.ts +1 -1
  373. package/src/renderer/Canvas.tsx +32 -56
  374. package/src/renderer/DependencyManager.tsx +0 -5
  375. package/src/renderer/HostComponents.ts +152 -1
  376. package/src/renderer/useCanvas.ts +1 -15
  377. package/src/views/SkiaBaseWebView.tsx +4 -0
  378. package/src/views/SkiaDomView.tsx +120 -0
  379. package/src/views/SkiaDomView.web.tsx +37 -0
  380. package/src/views/SkiaPictureView.tsx +10 -2
  381. package/src/views/SkiaView.tsx +11 -3
  382. package/src/views/index.ts +1 -0
  383. package/src/views/types.ts +19 -2
  384. package/cpp/jsi/JsiSimpleValueWrapper.h +0 -99
  385. package/cpp/skia/include/c/sk_canvas.h +0 -159
  386. package/cpp/skia/include/c/sk_colorspace.h +0 -25
  387. package/cpp/skia/include/c/sk_data.h +0 -65
  388. package/cpp/skia/include/c/sk_image.h +0 -71
  389. package/cpp/skia/include/c/sk_imageinfo.h +0 -62
  390. package/cpp/skia/include/c/sk_maskfilter.h +0 -47
  391. package/cpp/skia/include/c/sk_matrix.h +0 -49
  392. package/cpp/skia/include/c/sk_paint.h +0 -145
  393. package/cpp/skia/include/c/sk_path.h +0 -102
  394. package/cpp/skia/include/c/sk_picture.h +0 -70
  395. package/cpp/skia/include/c/sk_shader.h +0 -143
  396. package/cpp/skia/include/c/sk_surface.h +0 -73
  397. package/cpp/skia/include/c/sk_types.h +0 -278
  398. package/cpp/skia/include/gpu/graphite/SkStuff.h +0 -47
  399. package/cpp/skia/include/private/SkNx.h +0 -430
  400. package/cpp/skia/include/private/SkNx_neon.h +0 -713
  401. package/cpp/skia/include/private/SkNx_sse.h +0 -823
  402. package/cpp/skia/include/sksl/DSLRuntimeEffects.h +0 -32
  403. package/cpp/skia/include/sksl/DSLWrapper.h +0 -77
@@ -0,0 +1,76 @@
1
+ /*
2
+ * Copyright 2021 Google LLC
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef sktext_gpu_Slug_DEFINED
9
+ #define sktext_gpu_Slug_DEFINED
10
+
11
+ #include "include/core/SkData.h"
12
+ #include "include/core/SkRect.h"
13
+ #include "include/core/SkRefCnt.h"
14
+
15
+ class SkCanvas;
16
+ class SkMatrix;
17
+ class SkPaint;
18
+ class SkTextBlob;
19
+ class SkReadBuffer;
20
+ class SkStrikeClient;
21
+ class SkWriteBuffer;
22
+
23
+ namespace sktext::gpu {
24
+
25
+ // You can use Slug to simulate drawTextBlob by defining the following at compile time.
26
+ // SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG
27
+ // You can use Slug serialization to simulate drawTextBlob by defining the following:
28
+ // SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG_SERIALIZE
29
+ // For Skia, add this to your args.gn file.
30
+ // extra_cflags = ["-D", "SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG"]
31
+
32
+ // Slug encapsulates an SkTextBlob at a specific origin, using a specific paint. It can be
33
+ // manipulated using matrix and clip changes to the canvas. If the canvas is transformed, then
34
+ // the Slug will also transform with smaller glyphs using bi-linear interpolation to render. You
35
+ // can think of a Slug as making a rubber stamp out of a SkTextBlob.
36
+ class SK_API Slug : public SkRefCnt {
37
+ public:
38
+ // Return nullptr if the blob would not draw. This is not because of clipping, but because of
39
+ // some paint optimization. The Slug is captured as if drawn using drawTextBlob.
40
+ static sk_sp<Slug> ConvertBlob(
41
+ SkCanvas* canvas, const SkTextBlob& blob, SkPoint origin, const SkPaint& paint);
42
+
43
+ // Serialize the slug.
44
+ sk_sp<SkData> serialize() const;
45
+ size_t serialize(void* buffer, size_t size) const;
46
+
47
+ // Set the client parameter to the appropriate SkStrikeClient when typeface ID translation
48
+ // is needed.
49
+ static sk_sp<Slug> Deserialize(
50
+ const void* data, size_t size, const SkStrikeClient* client = nullptr);
51
+ static sk_sp<Slug> MakeFromBuffer(SkReadBuffer& buffer);
52
+
53
+
54
+ // Draw the Slug obeying the canvas's mapping and clipping.
55
+ void draw(SkCanvas* canvas) const;
56
+
57
+ virtual SkRect sourceBounds() const = 0;
58
+ virtual SkRect sourceBoundsWithOrigin () const = 0;
59
+
60
+ // The paint passed into ConvertBlob; this paint is used instead of the paint resulting from
61
+ // the call to aboutToDraw because when we call draw(), the initial paint is needed to call
62
+ // aboutToDraw again to get the layer right.
63
+ virtual const SkPaint& initialPaint() const = 0;
64
+
65
+ virtual void doFlatten(SkWriteBuffer&) const = 0;
66
+
67
+ uint32_t uniqueID() const { return fUniqueID; }
68
+
69
+ private:
70
+ static uint32_t NextUniqueID();
71
+ const uint32_t fUniqueID{NextUniqueID()};
72
+ };
73
+
74
+ } // namespace sktext::gpu
75
+
76
+ #endif // sktext_gpu_Slug_DEFINED
@@ -135,6 +135,11 @@ struct GrMipLevel {
135
135
  size_t fRowBytes = 0;
136
136
  // This may be used to keep fPixels from being freed while a GrMipLevel exists.
137
137
  sk_sp<SkData> fOptionalStorage;
138
+
139
+ static_assert(::sk_is_trivially_relocatable<decltype(fPixels)>::value);
140
+ static_assert(::sk_is_trivially_relocatable<decltype(fOptionalStorage)>::value);
141
+
142
+ using sk_is_trivially_relocatable = std::true_type;
138
143
  };
139
144
 
140
145
  enum class GrSemaphoreWrapType {
@@ -410,7 +415,7 @@ enum class GrGpuBufferType {
410
415
  kXferGpuToCpu,
411
416
  kUniform,
412
417
  };
413
- static const int kGrGpuBufferTypeCount = static_cast<int>(GrGpuBufferType::kUniform) + 1;
418
+ static const constexpr int kGrGpuBufferTypeCount = static_cast<int>(GrGpuBufferType::kUniform) + 1;
414
419
 
415
420
  /**
416
421
  * Provides a performance hint regarding the frequency at which a data store will be accessed.
@@ -11,7 +11,10 @@
11
11
  #include "include/core/SkRefCnt.h"
12
12
  #include "include/gpu/vk/GrVkTypes.h"
13
13
 
14
- class GrBackendSurfaceMutableStateImpl;
14
+ namespace skgpu {
15
+ class MutableTextureStateRef;
16
+ }
17
+
15
18
 
16
19
  // This struct is to used to store the the actual information about the vulkan backend image on the
17
20
  // GrBackendTexture and GrBackendRenderTarget. When a client calls getVkImageInfo on a
@@ -30,7 +33,7 @@ struct GrVkBackendSurfaceInfo {
30
33
  // attempt to unref the old fLayout on this object.
31
34
  void assign(const GrVkBackendSurfaceInfo&, bool isValid);
32
35
 
33
- GrVkImageInfo snapImageInfo(const GrBackendSurfaceMutableStateImpl*) const;
36
+ GrVkImageInfo snapImageInfo(const skgpu::MutableTextureStateRef*) const;
34
37
 
35
38
  bool isProtected() const { return fImageInfo.fProtected == GrProtected::kYes; }
36
39
  #if GR_TEST_UTILS
@@ -41,43 +44,6 @@ private:
41
44
  GrVkImageInfo fImageInfo;
42
45
  };
43
46
 
44
- class GrVkSharedImageInfo {
45
- public:
46
- GrVkSharedImageInfo(VkImageLayout layout, uint32_t queueFamilyIndex)
47
- : fLayout(layout)
48
- , fQueueFamilyIndex(queueFamilyIndex) {}
49
-
50
- GrVkSharedImageInfo& operator=(const GrVkSharedImageInfo& that) {
51
- fLayout = that.getImageLayout();
52
- fQueueFamilyIndex = that.getQueueFamilyIndex();
53
- return *this;
54
- }
55
-
56
- void setImageLayout(VkImageLayout layout) {
57
- // Defaulting to use std::memory_order_seq_cst
58
- fLayout.store(layout);
59
- }
60
-
61
- VkImageLayout getImageLayout() const {
62
- // Defaulting to use std::memory_order_seq_cst
63
- return fLayout.load();
64
- }
65
-
66
- void setQueueFamilyIndex(uint32_t queueFamilyIndex) {
67
- // Defaulting to use std::memory_order_seq_cst
68
- fQueueFamilyIndex.store(queueFamilyIndex);
69
- }
70
-
71
- uint32_t getQueueFamilyIndex() const {
72
- // Defaulting to use std::memory_order_seq_cst
73
- return fQueueFamilyIndex.load();
74
- }
75
-
76
- private:
77
- std::atomic<VkImageLayout> fLayout;
78
- std::atomic<uint32_t> fQueueFamilyIndex;
79
- };
80
-
81
47
  struct GrVkImageSpec {
82
48
  GrVkImageSpec()
83
49
  : fImageTiling(VK_IMAGE_TILING_OPTIMAL)
@@ -0,0 +1,63 @@
1
+ /*
2
+ * Copyright 2022 Google LLC.
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef skgpu_graphite_VulkanGraphiteTypesPriv_DEFINED
9
+ #define skgpu_graphite_VulkanGraphiteTypesPriv_DEFINED
10
+
11
+ #include "include/gpu/graphite/vk/VulkanGraphiteTypes.h"
12
+
13
+ namespace skgpu::graphite {
14
+
15
+ struct VulkanTextureSpec {
16
+ VulkanTextureSpec()
17
+ : fFlags(0)
18
+ , fFormat(VK_FORMAT_UNDEFINED)
19
+ , fImageTiling(VK_IMAGE_TILING_OPTIMAL)
20
+ , fImageUsageFlags(0)
21
+ , fSharingMode(VK_SHARING_MODE_EXCLUSIVE)
22
+ , fCurrentQueueFamily(VK_QUEUE_FAMILY_IGNORED)
23
+ , fImageLayout(VK_IMAGE_LAYOUT_UNDEFINED)
24
+ , fAspectMask(VK_IMAGE_ASPECT_COLOR_BIT) {}
25
+ VulkanTextureSpec(const VulkanTextureInfo& info)
26
+ : fFlags(info.fFlags)
27
+ , fFormat(info.fFormat)
28
+ , fImageTiling(info.fImageTiling)
29
+ , fImageUsageFlags(info.fImageUsageFlags)
30
+ , fSharingMode(info.fSharingMode)
31
+ , fCurrentQueueFamily(info.fCurrentQueueFamily)
32
+ , fImageLayout(info.fImageLayout)
33
+ , fAspectMask(info.fAspectMask) {}
34
+
35
+ bool operator==(const VulkanTextureSpec& that) const {
36
+ return fFlags == that.fFlags &&
37
+ fFormat == that.fFormat &&
38
+ fImageTiling == that.fImageTiling &&
39
+ fImageUsageFlags == that.fImageUsageFlags &&
40
+ fSharingMode == that.fSharingMode &&
41
+ fCurrentQueueFamily == that.fCurrentQueueFamily &&
42
+ fImageLayout == that.fImageLayout &&
43
+ fAspectMask == that.fAspectMask;
44
+ }
45
+
46
+ VkImageCreateFlags fFlags;
47
+ VkFormat fFormat;
48
+ VkImageTiling fImageTiling;
49
+ VkImageUsageFlags fImageUsageFlags;
50
+ VkSharingMode fSharingMode;
51
+ uint32_t fCurrentQueueFamily;
52
+ VkImageLayout fImageLayout;
53
+ VkImageAspectFlags fAspectMask;
54
+ // GrVkYcbcrConversionInfo fYcbcrConversionInfo;
55
+ };
56
+
57
+ VulkanTextureInfo VulkanTextureSpecToTextureInfo(const VulkanTextureSpec& vkSpec,
58
+ uint32_t sampleCount,
59
+ uint32_t levelCount);
60
+
61
+ } // namespace skgpu::graphite
62
+
63
+ #endif // skgpu_graphite_VulkanGraphiteTypesPriv_DEFINED
@@ -5,8 +5,8 @@
5
5
  * found in the LICENSE file.
6
6
  */
7
7
 
8
- #ifndef GrVkVulkan_DEFINED
9
- #define GrVkVulkan_DEFINED
8
+ #ifndef SkiaVulkan_DEFINED
9
+ #define SkiaVulkan_DEFINED
10
10
 
11
11
  #include "include/core/SkTypes.h"
12
12
 
@@ -0,0 +1,57 @@
1
+ /*
2
+ * Copyright 2022 Google LLC.
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef skgpu_VulkanTypesPriv_DEFINED
9
+ #define skgpu_VulkanTypesPriv_DEFINED
10
+
11
+ #include "include/gpu/vk/VulkanTypes.h"
12
+
13
+ #include <atomic>
14
+
15
+ namespace skgpu {
16
+
17
+ class VulkanMutableTextureState {
18
+ public:
19
+ VulkanMutableTextureState(VkImageLayout layout, uint32_t queueFamilyIndex)
20
+ : fLayout(layout)
21
+ , fQueueFamilyIndex(queueFamilyIndex) {}
22
+
23
+ VulkanMutableTextureState& operator=(const VulkanMutableTextureState& that) {
24
+ fLayout = that.getImageLayout();
25
+ fQueueFamilyIndex = that.getQueueFamilyIndex();
26
+ return *this;
27
+ }
28
+
29
+ void setImageLayout(VkImageLayout layout) {
30
+ // Defaulting to use std::memory_order_seq_cst
31
+ fLayout.store(layout);
32
+ }
33
+
34
+ VkImageLayout getImageLayout() const {
35
+ // Defaulting to use std::memory_order_seq_cst
36
+ return fLayout.load();
37
+ }
38
+
39
+ void setQueueFamilyIndex(uint32_t queueFamilyIndex) {
40
+ // Defaulting to use std::memory_order_seq_cst
41
+ fQueueFamilyIndex.store(queueFamilyIndex);
42
+ }
43
+
44
+ uint32_t getQueueFamilyIndex() const {
45
+ // Defaulting to use std::memory_order_seq_cst
46
+ return fQueueFamilyIndex.load();
47
+ }
48
+
49
+ private:
50
+ std::atomic<VkImageLayout> fLayout;
51
+ std::atomic<uint32_t> fQueueFamilyIndex;
52
+ };
53
+
54
+ } // namespace skgpu
55
+
56
+ #endif // skgpu_VulkanGraphiteTypesPriv_DEFINED
57
+
@@ -29,7 +29,6 @@ using Modifiers = DSLModifiers;
29
29
  using Parameter = DSLParameter;
30
30
  using Statement = DSLStatement;
31
31
  using Var = DSLVar;
32
- template<typename T> using Wrapper = DSLWrapper<T>;
33
32
 
34
33
  } // namespace dsl
35
34
 
@@ -14,7 +14,6 @@
14
14
  #include "include/sksl/SkSLPosition.h"
15
15
 
16
16
  #include <memory>
17
- #include <utility>
18
17
 
19
18
  namespace SkSL {
20
19
 
@@ -28,29 +27,19 @@ public:
28
27
  template<class... Statements>
29
28
  DSLBlock(Statements... statements) {
30
29
  fStatements.reserve_back(sizeof...(statements));
31
- // in C++17, we could just do:
32
- // (fStatements.push_back(DSLStatement(statements.release()).release()), ...);
33
- int unused[] =
34
- {0,
35
- (static_cast<void>(fStatements.push_back(DSLStatement(statements.release()).release())),
36
- 0)...};
37
- static_cast<void>(unused);
30
+ ((void)fStatements.push_back(DSLStatement(statements.release()).release()), ...);
38
31
  }
39
32
 
40
- DSLBlock(DSLBlock&& other) = default;
41
-
42
33
  DSLBlock(SkSL::StatementArray statements, std::shared_ptr<SymbolTable> symbols = nullptr,
43
34
  Position pos = {});
44
35
 
45
36
  DSLBlock(SkTArray<DSLStatement> statements, std::shared_ptr<SymbolTable> symbols = nullptr,
46
37
  Position pos = {});
47
38
 
48
- ~DSLBlock();
39
+ DSLBlock(DSLBlock&& other) = default;
40
+ DSLBlock& operator=(DSLBlock&& other) = default;
49
41
 
50
- DSLBlock& operator=(DSLBlock&& other) {
51
- fStatements = std::move(other.fStatements);
52
- return *this;
53
- }
42
+ ~DSLBlock() = default;
54
43
 
55
44
  void append(DSLStatement stmt);
56
45
 
@@ -60,9 +49,6 @@ private:
60
49
  SkSL::StatementArray fStatements;
61
50
  std::shared_ptr<SkSL::SymbolTable> fSymbols;
62
51
  Position fPosition;
63
-
64
- friend class DSLStatement;
65
- friend class DSLFunction;
66
52
  };
67
53
 
68
54
  } // namespace dsl
@@ -27,13 +27,7 @@ public:
27
27
  DSLCase(DSLExpression value, Statements... statements)
28
28
  : fValue(std::move(value)) {
29
29
  fStatements.reserve_back(sizeof...(statements));
30
- // in C++17, we could just do:
31
- // (fStatements.push_back(DSLStatement(std::move(statements)).release()), ...);
32
- int unused[] =
33
- {0,
34
- (static_cast<void>(fStatements.push_back(DSLStatement(std::move(statements)).release())),
35
- 0)...};
36
- static_cast<void>(unused);
30
+ ((void)fStatements.push_back(DSLStatement(std::move(statements)).release()), ...);
37
31
  }
38
32
 
39
33
  DSLCase(DSLExpression value, SkTArray<DSLStatement> statements,
@@ -58,7 +52,7 @@ private:
58
52
  friend class DSLCore;
59
53
 
60
54
  template<class... Cases>
61
- friend DSLPossibleStatement Switch(DSLExpression value, Cases... cases);
55
+ friend DSLStatement Switch(DSLExpression value, Cases... cases);
62
56
  };
63
57
 
64
58
  } // namespace dsl
@@ -15,6 +15,7 @@
15
15
  #include "include/sksl/DSLExpression.h"
16
16
  #include "include/sksl/DSLStatement.h"
17
17
  #include "include/sksl/DSLVar.h"
18
+ #include "include/sksl/SkSLPosition.h"
18
19
 
19
20
  #include <memory>
20
21
  #include <string>
@@ -25,8 +26,6 @@ namespace SkSL {
25
26
 
26
27
  class Compiler;
27
28
  class ErrorReporter;
28
- class Position;
29
- struct ForLoopPositions;
30
29
  struct Program;
31
30
  struct ProgramSettings;
32
31
 
@@ -58,7 +57,7 @@ void End();
58
57
  /**
59
58
  * Returns all global elements (functions and global variables) as a self-contained Program. The
60
59
  * optional source string is retained as the program's source. DSL programs do not normally have
61
- * sources, but when a DSL program is produced from parsed program text (as in DSLParser), it may be
60
+ * sources, but when a DSL program is produced from parsed program text (as in Parser), it may be
62
61
  * important to retain it so that any std::string_views derived from it remain valid.
63
62
  */
64
63
  std::unique_ptr<SkSL::Program> ReleaseProgram(std::unique_ptr<std::string> source = nullptr);
@@ -171,37 +170,31 @@ DSLStatement StaticIf(DSLExpression test, DSLStatement ifTrue,
171
170
  Position pos = {});
172
171
 
173
172
  // Internal use only
174
- DSLPossibleStatement PossibleStaticSwitch(DSLExpression value, SkTArray<DSLCase> cases);
175
-
176
- DSLStatement StaticSwitch(DSLExpression value, SkTArray<DSLCase> cases,
177
- Position pos = {});
173
+ DSLStatement StaticSwitch(DSLExpression value, SkTArray<DSLCase> cases, Position pos = {});
178
174
 
179
175
  /**
180
176
  * @switch (value) { cases }
181
177
  */
182
178
  template<class... Cases>
183
- DSLPossibleStatement StaticSwitch(DSLExpression value, Cases... cases) {
179
+ DSLStatement StaticSwitch(DSLExpression value, Cases... cases) {
184
180
  SkTArray<DSLCase> caseArray;
185
181
  caseArray.reserve_back(sizeof...(cases));
186
182
  (caseArray.push_back(std::move(cases)), ...);
187
- return PossibleStaticSwitch(std::move(value), std::move(caseArray));
183
+ return StaticSwitch(std::move(value), std::move(caseArray), Position{});
188
184
  }
189
185
 
190
186
  // Internal use only
191
- DSLPossibleStatement PossibleSwitch(DSLExpression value, SkTArray<DSLCase> cases);
192
-
193
- DSLStatement Switch(DSLExpression value, SkTArray<DSLCase> cases,
194
- Position pos = {});
187
+ DSLStatement Switch(DSLExpression value, SkTArray<DSLCase> cases, Position pos = {});
195
188
 
196
189
  /**
197
190
  * switch (value) { cases }
198
191
  */
199
192
  template<class... Cases>
200
- DSLPossibleStatement Switch(DSLExpression value, Cases... cases) {
193
+ DSLStatement Switch(DSLExpression value, Cases... cases) {
201
194
  SkTArray<DSLCase> caseArray;
202
195
  caseArray.reserve_back(sizeof...(cases));
203
196
  (caseArray.push_back(std::move(cases)), ...);
204
- return PossibleSwitch(std::move(value), std::move(caseArray));
197
+ return Switch(std::move(value), std::move(caseArray), Position{});
205
198
  }
206
199
 
207
200
  /**