@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
@@ -8,12 +8,13 @@
8
8
  #ifndef SKSL_DSL_VAR
9
9
  #define SKSL_DSL_VAR
10
10
 
11
+ #include "include/private/SkSLStatement.h"
11
12
  #include "include/sksl/DSLExpression.h"
12
13
  #include "include/sksl/DSLModifiers.h"
13
14
  #include "include/sksl/DSLType.h"
14
15
  #include "include/sksl/SkSLPosition.h"
15
16
 
16
- #include <stdint.h>
17
+ #include <cstdint>
17
18
  #include <memory>
18
19
  #include <string_view>
19
20
  #include <utility>
@@ -22,9 +23,6 @@ namespace SkSL {
22
23
 
23
24
  class Expression;
24
25
  class ExpressionArray;
25
- class IRGenerator;
26
- class SPIRVCodeGenerator;
27
- class Statement;
28
26
  class Variable;
29
27
  enum class VariableStorage : int8_t;
30
28
 
@@ -33,31 +31,16 @@ namespace dsl {
33
31
  class DSLVarBase {
34
32
  public:
35
33
  /**
36
- * Creates an empty, unpopulated var. Can be replaced with a real var later via `swap`.
37
- */
38
- DSLVarBase() : fType(kVoid_Type), fDeclared(true) {}
39
-
40
- /**
41
- * Constructs a new variable with the specified type and name. The name is used (in mangled
42
- * form) in the resulting shader code; it is not otherwise important. Since mangling prevents
43
- * name conflicts and the variable's name is only important when debugging shaders, the name
44
- * parameter is optional.
34
+ * Constructs a new variable with the specified type and name.
45
35
  */
46
- DSLVarBase(DSLType type, std::string_view name, DSLExpression initialValue, Position pos,
47
- Position namePos);
48
-
49
- DSLVarBase(DSLType type, DSLExpression initialValue, Position pos, Position namePos);
50
-
51
- DSLVarBase(const DSLModifiers& modifiers, DSLType type, std::string_view name,
36
+ DSLVarBase(VariableStorage storage, DSLType type, std::string_view name,
52
37
  DSLExpression initialValue, Position pos, Position namePos);
53
38
 
54
- DSLVarBase(const DSLModifiers& modifiers, DSLType type, DSLExpression initialValue,
55
- Position pos, Position namePos);
39
+ DSLVarBase(VariableStorage storage, const DSLModifiers& modifiers, DSLType type,
40
+ std::string_view name, DSLExpression initialValue, Position pos, Position namePos);
56
41
 
57
42
  DSLVarBase(DSLVarBase&&) = default;
58
43
 
59
- virtual ~DSLVarBase();
60
-
61
44
  std::string_view name() const {
62
45
  return fName;
63
46
  }
@@ -66,64 +49,75 @@ public:
66
49
  return fModifiers;
67
50
  }
68
51
 
69
- virtual VariableStorage storage() const = 0;
52
+ VariableStorage storage() const {
53
+ return fStorage;
54
+ }
70
55
 
71
56
  DSLExpression x() {
72
- return DSLExpression(*this, Position()).x();
57
+ return DSLExpression(*this).x();
73
58
  }
74
59
 
75
60
  DSLExpression y() {
76
- return DSLExpression(*this, Position()).y();
61
+ return DSLExpression(*this).y();
77
62
  }
78
63
 
79
64
  DSLExpression z() {
80
- return DSLExpression(*this, Position()).z();
65
+ return DSLExpression(*this).z();
81
66
  }
82
67
 
83
68
  DSLExpression w() {
84
- return DSLExpression(*this, Position()).w();
69
+ return DSLExpression(*this).w();
85
70
  }
86
71
 
87
72
  DSLExpression r() {
88
- return DSLExpression(*this, Position()).r();
73
+ return DSLExpression(*this).r();
89
74
  }
90
75
 
91
76
  DSLExpression g() {
92
- return DSLExpression(*this, Position()).g();
77
+ return DSLExpression(*this).g();
93
78
  }
94
79
 
95
80
  DSLExpression b() {
96
- return DSLExpression(*this, Position()).b();
81
+ return DSLExpression(*this).b();
97
82
  }
98
83
 
99
84
  DSLExpression a() {
100
- return DSLExpression(*this, Position()).a();
85
+ return DSLExpression(*this).a();
101
86
  }
102
87
 
103
88
  DSLExpression field(std::string_view name) {
104
- return DSLExpression(*this, Position()).field(name);
89
+ return DSLExpression(*this).field(name);
105
90
  }
106
91
 
107
- DSLPossibleExpression operator[](DSLExpression&& index);
92
+ DSLExpression operator[](DSLExpression&& index);
108
93
 
109
- DSLPossibleExpression operator++() {
110
- return ++DSLExpression(*this, Position());
94
+ DSLExpression operator++() {
95
+ return ++DSLExpression(*this);
111
96
  }
112
97
 
113
- DSLPossibleExpression operator++(int) {
114
- return DSLExpression(*this, Position())++;
98
+ DSLExpression operator++(int) {
99
+ return DSLExpression(*this)++;
115
100
  }
116
101
 
117
- DSLPossibleExpression operator--() {
118
- return --DSLExpression(*this, Position());
102
+ DSLExpression operator--() {
103
+ return --DSLExpression(*this);
119
104
  }
120
105
 
121
- DSLPossibleExpression operator--(int) {
122
- return DSLExpression(*this, Position())--;
106
+ DSLExpression operator--(int) {
107
+ return DSLExpression(*this)--;
108
+ }
109
+
110
+ template <class T> DSLExpression assign(T&& param) {
111
+ return this->assignExpression(DSLExpression(std::forward<T>(param)));
123
112
  }
124
113
 
125
114
  protected:
126
- DSLPossibleExpression assign(DSLExpression other);
115
+ /**
116
+ * Creates an empty, unpopulated var. Can be replaced with a real var later via `swap`.
117
+ */
118
+ DSLVarBase(VariableStorage storage) : fType(kVoid_Type), fStorage(storage) {}
119
+
120
+ DSLExpression assignExpression(DSLExpression other);
127
121
 
128
122
  void swap(DSLVarBase& other);
129
123
 
@@ -133,24 +127,18 @@ protected:
133
127
  // it to kVoid; in other words, you shouldn't generally be relying on this field to be correct.
134
128
  // If you need to determine the variable's type, look at DSLWriter::Var(...)->type() instead.
135
129
  DSLType fType;
136
- int fUniformHandle = -1;
137
130
  std::unique_ptr<SkSL::Statement> fDeclaration;
138
- const SkSL::Variable* fVar = nullptr;
131
+ SkSL::Variable* fVar = nullptr;
139
132
  Position fNamePosition;
140
- std::string_view fRawName; // for error reporting
141
133
  std::string_view fName;
142
134
  DSLExpression fInitialValue;
143
- // true if we have attempted to create the SkSL var
144
- bool fInitialized = false;
145
- bool fDeclared = false;
146
135
  Position fPosition;
136
+ VariableStorage fStorage;
137
+ bool fInitialized = false;
147
138
 
148
139
  friend class DSLCore;
149
- friend class DSLExpression;
150
140
  friend class DSLFunction;
151
141
  friend class DSLWriter;
152
- friend class ::SkSL::IRGenerator;
153
- friend class ::SkSL::SPIRVCodeGenerator;
154
142
  };
155
143
 
156
144
  /**
@@ -158,45 +146,18 @@ protected:
158
146
  */
159
147
  class DSLVar : public DSLVarBase {
160
148
  public:
161
- DSLVar() = default;
149
+ DSLVar();
162
150
 
163
- DSLVar(DSLType type, std::string_view name = "var",
164
- DSLExpression initialValue = DSLExpression(),
165
- Position pos = {}, Position namePos = {})
166
- : INHERITED(type, name, std::move(initialValue), pos, namePos) {}
151
+ DSLVar(DSLType type, std::string_view name, DSLExpression initialValue = DSLExpression(),
152
+ Position pos = {}, Position namePos = {});
167
153
 
168
- DSLVar(DSLType type, const char* name, DSLExpression initialValue = DSLExpression(),
169
- Position pos = {}, Position namePos = {})
170
- : DSLVar(type, std::string_view(name), std::move(initialValue), pos, namePos) {}
171
-
172
- DSLVar(DSLType type, DSLExpression initialValue, Position pos = {}, Position namePos = {})
173
- : INHERITED(type, std::move(initialValue), pos, namePos) {}
174
-
175
- DSLVar(const DSLModifiers& modifiers, DSLType type, std::string_view name = "var",
176
- DSLExpression initialValue = DSLExpression(), Position pos = {}, Position namePos = {})
177
- : INHERITED(modifiers, type, name, std::move(initialValue), pos, namePos) {}
178
-
179
- DSLVar(const DSLModifiers& modifiers, DSLType type, const char* name,
180
- DSLExpression initialValue = DSLExpression(), Position pos = {}, Position namePos = {})
181
- : DSLVar(modifiers, type, std::string_view(name), std::move(initialValue), pos, namePos) {}
154
+ DSLVar(const DSLModifiers& modifiers, DSLType type, std::string_view name,
155
+ DSLExpression initialValue = DSLExpression(), Position pos = {}, Position namePos = {});
182
156
 
183
157
  DSLVar(DSLVar&&) = default;
184
158
 
185
- VariableStorage storage() const override;
186
-
187
159
  void swap(DSLVar& other);
188
160
 
189
- DSLPossibleExpression operator=(DSLExpression expr);
190
-
191
- DSLPossibleExpression operator=(DSLVar& param) {
192
- return this->operator=(DSLExpression(param));
193
- }
194
-
195
- template<class Param>
196
- DSLPossibleExpression operator=(Param& param) {
197
- return this->operator=(DSLExpression(param));
198
- }
199
-
200
161
  private:
201
162
  using INHERITED = DSLVarBase;
202
163
  };
@@ -206,48 +167,21 @@ private:
206
167
  */
207
168
  class DSLGlobalVar : public DSLVarBase {
208
169
  public:
209
- DSLGlobalVar() = default;
210
-
211
- DSLGlobalVar(DSLType type, std::string_view name = "var",
212
- DSLExpression initialValue = DSLExpression(), Position pos = {}, Position namePos = {})
213
- : INHERITED(type, name, std::move(initialValue), pos, namePos) {}
214
-
215
- DSLGlobalVar(DSLType type, const char* name, DSLExpression initialValue = DSLExpression(),
216
- Position pos = {}, Position namePos = {})
217
- : DSLGlobalVar(type, std::string_view(name), std::move(initialValue), pos, namePos) {}
170
+ DSLGlobalVar();
218
171
 
219
- DSLGlobalVar(DSLType type, DSLExpression initialValue,
220
- Position pos = {}, Position namePos = {})
221
- : INHERITED(type, std::move(initialValue), pos, namePos) {}
172
+ DSLGlobalVar(DSLType type, std::string_view name, DSLExpression initialValue = DSLExpression(),
173
+ Position pos = {}, Position namePos = {});
222
174
 
223
- DSLGlobalVar(const DSLModifiers& modifiers, DSLType type, std::string_view name = "var",
224
- DSLExpression initialValue = DSLExpression(), Position pos = {}, Position namePos = {})
225
- : INHERITED(modifiers, type, name, std::move(initialValue), pos, namePos) {}
226
-
227
- DSLGlobalVar(const DSLModifiers& modifiers, DSLType type, const char* name,
228
- DSLExpression initialValue = DSLExpression(), Position pos = {}, Position namePos = {})
229
- : DSLGlobalVar(modifiers, type, std::string_view(name), std::move(initialValue), pos,
230
- namePos) {}
175
+ DSLGlobalVar(const DSLModifiers& modifiers, DSLType type, std::string_view name,
176
+ DSLExpression initialValue = DSLExpression(),
177
+ Position pos = {}, Position namePos = {});
231
178
 
232
179
  DSLGlobalVar(const char* name);
233
180
 
234
181
  DSLGlobalVar(DSLGlobalVar&&) = default;
235
182
 
236
- VariableStorage storage() const override;
237
-
238
183
  void swap(DSLGlobalVar& other);
239
184
 
240
- DSLPossibleExpression operator=(DSLExpression expr);
241
-
242
- DSLPossibleExpression operator=(DSLGlobalVar& param) {
243
- return this->operator=(DSLExpression(param));
244
- }
245
-
246
- template<class Param>
247
- DSLPossibleExpression operator=(Param& param) {
248
- return this->operator=(DSLExpression(param));
249
- }
250
-
251
185
  /**
252
186
  * Implements the following method calls:
253
187
  * half4 shader::eval(float2 coords);
@@ -259,8 +193,7 @@ public:
259
193
  * Implements the following method call:
260
194
  * half4 blender::eval(half4 src, half4 dst);
261
195
  */
262
- DSLExpression eval(DSLExpression x, DSLExpression y,
263
- Position pos = {});
196
+ DSLExpression eval(DSLExpression x, DSLExpression y, Position pos = {});
264
197
 
265
198
  private:
266
199
  DSLExpression eval(ExpressionArray args, Position pos);
@@ -275,40 +208,17 @@ private:
275
208
  */
276
209
  class DSLParameter : public DSLVarBase {
277
210
  public:
278
- DSLParameter() = default;
279
-
280
- DSLParameter(DSLType type, std::string_view name = "var",
281
- Position pos = {}, Position namePos = {})
282
- : INHERITED(type, name, DSLExpression(), pos, namePos) {}
211
+ DSLParameter();
283
212
 
284
- DSLParameter(DSLType type, const char* name, Position pos = {}, Position namePos = {})
285
- : DSLParameter(type, std::string_view(name), pos, namePos) {}
213
+ DSLParameter(DSLType type, std::string_view name, Position pos = {}, Position namePos = {});
286
214
 
287
- DSLParameter(const DSLModifiers& modifiers, DSLType type, std::string_view name = "var",
288
- Position pos = {}, Position namePos = {})
289
- : INHERITED(modifiers, type, name, DSLExpression(), pos, namePos) {}
290
-
291
- DSLParameter(const DSLModifiers& modifiers, DSLType type, const char* name,
292
- Position pos = {}, Position namePos = {})
293
- : DSLParameter(modifiers, type, std::string_view(name), pos, namePos) {}
215
+ DSLParameter(const DSLModifiers& modifiers, DSLType type, std::string_view name,
216
+ Position pos = {}, Position namePos = {});
294
217
 
295
218
  DSLParameter(DSLParameter&&) = default;
296
219
 
297
- VariableStorage storage() const override;
298
-
299
220
  void swap(DSLParameter& other);
300
221
 
301
- DSLPossibleExpression operator=(DSLExpression expr);
302
-
303
- DSLPossibleExpression operator=(DSLParameter& param) {
304
- return this->operator=(DSLExpression(param));
305
- }
306
-
307
- template<class Param>
308
- DSLPossibleExpression operator=(Param& param) {
309
- return this->operator=(DSLExpression(param));
310
- }
311
-
312
222
  private:
313
223
  using INHERITED = DSLVarBase;
314
224
  };
@@ -10,9 +10,7 @@
10
10
 
11
11
  #include "include/core/SkTypes.h"
12
12
 
13
- #include <string>
14
13
  #include <string_view>
15
- #include <vector>
16
14
 
17
15
  namespace SkSL {
18
16
 
@@ -25,24 +23,14 @@ class ErrorReporter {
25
23
  public:
26
24
  ErrorReporter() {}
27
25
 
28
- virtual ~ErrorReporter() {
29
- SkASSERT(fPendingErrors.empty());
30
- }
26
+ virtual ~ErrorReporter() {}
31
27
 
32
- void error(std::string_view msg, Position position);
33
-
34
- /**
35
- * Reports an error message at the given line of the source text. Errors reported
36
- * with a line of -1 will be queued until line number information can be determined.
37
- */
38
- void error(Position pos, std::string_view msg);
28
+ void error(Position position, std::string_view msg);
39
29
 
40
30
  std::string_view source() const { return fSource; }
41
31
 
42
32
  void setSource(std::string_view source) { fSource = source; }
43
33
 
44
- void reportPendingErrors(Position pos);
45
-
46
34
  int errorCount() const {
47
35
  return fErrorCount;
48
36
  }
@@ -61,7 +49,6 @@ private:
61
49
  Position position(int offset) const;
62
50
 
63
51
  std::string_view fSource;
64
- std::vector<std::string> fPendingErrors;
65
52
  int fErrorCount = 0;
66
53
  };
67
54
 
@@ -8,6 +8,7 @@
8
8
  #ifndef SKSL_OPERATOR
9
9
  #define SKSL_OPERATOR
10
10
 
11
+ #include <cstdint>
11
12
  #include <string_view>
12
13
 
13
14
  namespace SkSL {
@@ -15,66 +16,68 @@ namespace SkSL {
15
16
  class Context;
16
17
  class Type;
17
18
 
19
+ enum class OperatorKind : uint8_t {
20
+ PLUS,
21
+ MINUS,
22
+ STAR,
23
+ SLASH,
24
+ PERCENT,
25
+ SHL,
26
+ SHR,
27
+ LOGICALNOT,
28
+ LOGICALAND,
29
+ LOGICALOR,
30
+ LOGICALXOR,
31
+ BITWISENOT,
32
+ BITWISEAND,
33
+ BITWISEOR,
34
+ BITWISEXOR,
35
+ EQ,
36
+ EQEQ,
37
+ NEQ,
38
+ LT,
39
+ GT,
40
+ LTEQ,
41
+ GTEQ,
42
+ PLUSEQ,
43
+ MINUSEQ,
44
+ STAREQ,
45
+ SLASHEQ,
46
+ PERCENTEQ,
47
+ SHLEQ,
48
+ SHREQ,
49
+ BITWISEANDEQ,
50
+ BITWISEOREQ,
51
+ BITWISEXOREQ,
52
+ PLUSPLUS,
53
+ MINUSMINUS,
54
+ COMMA
55
+ };
56
+
57
+ enum class OperatorPrecedence : uint8_t {
58
+ kParentheses = 1,
59
+ kPostfix = 2,
60
+ kPrefix = 3,
61
+ kMultiplicative = 4,
62
+ kAdditive = 5,
63
+ kShift = 6,
64
+ kRelational = 7,
65
+ kEquality = 8,
66
+ kBitwiseAnd = 9,
67
+ kBitwiseXor = 10,
68
+ kBitwiseOr = 11,
69
+ kLogicalAnd = 12,
70
+ kLogicalXor = 13,
71
+ kLogicalOr = 14,
72
+ kTernary = 15,
73
+ kAssignment = 16,
74
+ kSequence = 17,
75
+ kTopLevel = kSequence
76
+ };
77
+
18
78
  class Operator {
19
79
  public:
20
- enum class Kind {
21
- PLUS,
22
- MINUS,
23
- STAR,
24
- SLASH,
25
- PERCENT,
26
- SHL,
27
- SHR,
28
- LOGICALNOT,
29
- LOGICALAND,
30
- LOGICALOR,
31
- LOGICALXOR,
32
- BITWISENOT,
33
- BITWISEAND,
34
- BITWISEOR,
35
- BITWISEXOR,
36
- EQ,
37
- EQEQ,
38
- NEQ,
39
- LT,
40
- GT,
41
- LTEQ,
42
- GTEQ,
43
- PLUSEQ,
44
- MINUSEQ,
45
- STAREQ,
46
- SLASHEQ,
47
- PERCENTEQ,
48
- SHLEQ,
49
- SHREQ,
50
- BITWISEANDEQ,
51
- BITWISEOREQ,
52
- BITWISEXOREQ,
53
- PLUSPLUS,
54
- MINUSMINUS,
55
- COMMA
56
- };
57
-
58
- enum class Precedence {
59
- kParentheses = 1,
60
- kPostfix = 2,
61
- kPrefix = 3,
62
- kMultiplicative = 4,
63
- kAdditive = 5,
64
- kShift = 6,
65
- kRelational = 7,
66
- kEquality = 8,
67
- kBitwiseAnd = 9,
68
- kBitwiseXor = 10,
69
- kBitwiseOr = 11,
70
- kLogicalAnd = 12,
71
- kLogicalXor = 13,
72
- kLogicalOr = 14,
73
- kTernary = 15,
74
- kAssignment = 16,
75
- kSequence = 17,
76
- kTopLevel = kSequence
77
- };
80
+ using Kind = OperatorKind;
78
81
 
79
82
  Operator(Kind op) : fKind(op) {}
80
83
 
@@ -84,7 +87,7 @@ public:
84
87
  return fKind == Kind::EQEQ || fKind == Kind::NEQ;
85
88
  }
86
89
 
87
- Precedence getBinaryPrecedence() const;
90
+ OperatorPrecedence getBinaryPrecedence() const;
88
91
 
89
92
  // Returns the operator name surrounded by the expected whitespace for a tidy binary expression.
90
93
  const char* operatorName() const;
@@ -9,6 +9,8 @@
9
9
  #define SKSL_POSITION
10
10
 
11
11
  #include "include/core/SkTypes.h"
12
+
13
+ #include <cstdint>
12
14
  #include <string_view>
13
15
 
14
16
  namespace SkSL {
@@ -0,0 +1,27 @@
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 SkSLVersion_DEFINED
9
+ #define SkSLVersion_DEFINED
10
+
11
+ namespace SkSL {
12
+
13
+ enum class Version {
14
+ /**
15
+ * Desktop GLSL 1.10, GLSL ES 1.00, WebGL 1.0
16
+ */
17
+ k100,
18
+
19
+ /**
20
+ * Desktop GLSL 3.30, GLSL ES 3.00, WebGL 2.0
21
+ */
22
+ k300,
23
+ };
24
+
25
+ } // namespace SkSL
26
+
27
+ #endif
@@ -10,6 +10,7 @@
10
10
 
11
11
  #include "include/core/SkTypes.h"
12
12
 
13
+ #include <cstdint>
13
14
  #include <memory>
14
15
 
15
16
  class SkCanvas;
@@ -13,7 +13,7 @@
13
13
  #include "include/core/SkRefCnt.h"
14
14
  #include "include/core/SkSize.h"
15
15
 
16
- #include <stdint.h>
16
+ #include <cstdint>
17
17
  #include <memory>
18
18
  #include <vector>
19
19
 
@@ -10,6 +10,8 @@
10
10
 
11
11
  #include "include/core/SkTypes.h"
12
12
 
13
+ #include <cstddef>
14
+
13
15
  struct SkBase64 {
14
16
  public:
15
17
  enum Error {
@@ -8,28 +8,25 @@
8
8
  #ifndef SkCustomTypeface_DEFINED
9
9
  #define SkCustomTypeface_DEFINED
10
10
 
11
+ #include "include/core/SkDrawable.h"
11
12
  #include "include/core/SkFontMetrics.h"
12
13
  #include "include/core/SkFontStyle.h"
13
14
  #include "include/core/SkPath.h"
15
+ #include "include/core/SkRect.h"
14
16
  #include "include/core/SkRefCnt.h"
15
17
  #include "include/core/SkTypes.h"
16
18
 
17
19
  #include <vector>
18
20
 
19
- class SkImage;
20
- class SkPaint;
21
- class SkPicture;
22
21
  class SkStream;
23
22
  class SkTypeface;
24
23
 
25
- class SkCustomTypefaceBuilder {
24
+ class SK_API SkCustomTypefaceBuilder {
26
25
  public:
27
26
  SkCustomTypefaceBuilder();
28
27
 
29
28
  void setGlyph(SkGlyphID, float advance, const SkPath&);
30
- void setGlyph(SkGlyphID, float advance, const SkPath&, const SkPaint&);
31
- void setGlyph(SkGlyphID, float advance, sk_sp<SkImage>, float scale);
32
- void setGlyph(SkGlyphID, float advance, sk_sp<SkPicture>);
29
+ void setGlyph(SkGlyphID, float advance, sk_sp<SkDrawable>, const SkRect& bounds);
33
30
 
34
31
  void setMetrics(const SkFontMetrics& fm, float scale = 1);
35
32
  void setFontStyle(SkFontStyle);
@@ -37,14 +34,30 @@ public:
37
34
  sk_sp<SkTypeface> detach();
38
35
 
39
36
  private:
40
- std::vector<SkPath> fPaths;
41
- std::vector<float> fAdvances;
42
- SkFontMetrics fMetrics;
43
- SkFontStyle fStyle;
37
+ struct GlyphRec {
38
+ // logical union
39
+ SkPath fPath;
40
+ sk_sp<SkDrawable> fDrawable;
41
+
42
+ SkRect fBounds = {0,0,0,0}; // only used for drawable glyphs atm
43
+ float fAdvance = 0;
44
+
45
+ bool isDrawable() const {
46
+ SkASSERT(!fDrawable || fPath.isEmpty());
47
+ return fDrawable != nullptr;
48
+ }
49
+ };
50
+
51
+ std::vector<GlyphRec> fGlyphRecs;
52
+ SkFontMetrics fMetrics;
53
+ SkFontStyle fStyle;
54
+
55
+ GlyphRec& ensureStorage(SkGlyphID);
44
56
 
45
57
  static sk_sp<SkTypeface> Deserialize(SkStream*);
46
58
 
47
59
  friend class SkTypeface;
60
+ friend class SkUserTypeface;
48
61
  };
49
62
 
50
63
  #endif