shaders 3.0.443 → 3.0.445

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 (468) hide show
  1. package/dist/cli.js +2 -2
  2. package/dist/core/{AngularBlur-CJsRS1Ri.js → AngularBlur-D33jrcZd.js} +2 -2
  3. package/dist/core/{Arc-CNesL3S9.js → Arc-BG8Bpknl.js} +2 -2
  4. package/dist/core/{Ascii-z7til0PQ.js → Ascii-DE0vAAOX.js} +2 -2
  5. package/dist/core/{Aurora-BAuYUYGc.js → Aurora-Cu4JGjCD.js} +3 -3
  6. package/dist/core/{BarShift-qVwbTMcq.js → BarShift-o_IvV0t_.js} +5 -5
  7. package/dist/core/{BarnDoors-DrOAeSqj.js → BarnDoors-JraHuTwe.js} +2 -2
  8. package/dist/core/{Beam-BW6yblZw.js → Beam-DshQatlM.js} +2 -2
  9. package/dist/core/{Bend-B7PMQ3T5.js → Bend-KJzYWEJV.js} +4 -4
  10. package/dist/core/{Blob-CRJ5N0hK.js → Blob-BJxkqvOO.js} +3 -3
  11. package/dist/core/{BlockDissolve-D-6Wy66g.js → BlockDissolve-CsIQWUpY.js} +2 -2
  12. package/dist/core/{BlockNoise-Ct9Fae_7.js → BlockNoise-DVI-0PnC.js} +3 -3
  13. package/dist/core/{BlueNoise-Cu7rJuP0.js → BlueNoise-CzBN6i38.js} +2 -2
  14. package/dist/core/{Blur-BrdVVSPq.js → Blur-W95k4Lxz.js} +1 -1
  15. package/dist/core/{Boids-DIzUaLGM.js → Boids-BJ6wxFC8.js} +2 -2
  16. package/dist/core/{BokehBlur-yYb03spN.js → BokehBlur-CbOO__cN.js} +2 -2
  17. package/dist/core/{BrickPattern-BL_MOS_A.js → BrickPattern-eQv5DrKE.js} +3 -3
  18. package/dist/core/{BrightnessContrast-CiKimIcA.js → BrightnessContrast-CmH2DvaZ.js} +1 -1
  19. package/dist/core/{BrushedMetal-dvYjizvg.js → BrushedMetal-D-7M7ZuM.js} +5 -5
  20. package/dist/core/{Bulge-CogpoPKe.js → Bulge-KmBnaVMx.js} +4 -4
  21. package/dist/core/{CRTScreen-X64EnHMB.js → CRTScreen-t7dyfO5u.js} +1 -1
  22. package/dist/core/{CarbonFiber-CTy3P-Qk.js → CarbonFiber-D4jap49E.js} +4 -4
  23. package/dist/core/{Chalkboard-CnHUOHtc.js → Chalkboard-H6-0OXC3.js} +2 -2
  24. package/dist/core/{ChannelBlur-MwnpNLSZ.js → ChannelBlur-BKJfnu91.js} +1 -1
  25. package/dist/core/{CheckerWipe-CCNc70ye.js → CheckerWipe-acIaflfK.js} +2 -2
  26. package/dist/core/{Checkerboard-C97ZiLyQ.js → Checkerboard-NwKMLVHe.js} +2 -2
  27. package/dist/core/{Chevron-ABT6D1wM.js → Chevron-eBbFV2ud.js} +3 -3
  28. package/dist/core/{ChromaFlow-7tJQEFm9.js → ChromaFlow-ex7l4tTK.js} +2 -2
  29. package/dist/core/{ChromaticAberration-D7-fxyEd.js → ChromaticAberration-Bbi9vNxS.js} +2 -2
  30. package/dist/core/{Circle-I0DIAypS.js → Circle-DdFWEti1.js} +2 -2
  31. package/dist/core/{ColorWheel-CEqzzrN-.js → ColorWheel-BqcyPqcj.js} +3 -3
  32. package/dist/core/{CompressionArtifacts-C24nRoC3.js → CompressionArtifacts-DqWq-4h8.js} +1 -1
  33. package/dist/core/{ConcentricSpin-CAu-PGNH.js → ConcentricSpin-CtI1hKio.js} +5 -5
  34. package/dist/core/{ConicGradient-n12K5TLj.js → ConicGradient-HmImN4LO.js} +3 -3
  35. package/dist/core/{ContourLines-FOStIWDr.js → ContourLines-BMom2vMu.js} +2 -2
  36. package/dist/core/{CornerPin-DsUVMFcX.js → CornerPin-D_-luriU.js} +3 -3
  37. package/dist/core/{Crescent-9i_5WPA-.js → Crescent-CY6MeN9V.js} +2 -2
  38. package/dist/core/{Cross-HiA69xGL.js → Cross-ClImej9a.js} +2 -2
  39. package/dist/core/{Crystal-BBjEm9m4.js → Crystal-CMrqHLFD.js} +4 -4
  40. package/dist/core/{CurlNoise-1jifziI0.js → CurlNoise-C_QZBT5m.js} +3 -3
  41. package/dist/core/{CursorRipples-D4agAYHK.js → CursorRipples-Bmlex_IF.js} +2 -2
  42. package/dist/core/{CursorTrail-C-FrY0e2.js → CursorTrail-B68x1Cv-.js} +3 -3
  43. package/dist/core/{DataMosh-DXcM1I4Y.js → DataMosh-FZQWg5Ui.js} +1 -1
  44. package/dist/core/{DiamondGradient-CQ5jeKEc.js → DiamondGradient-C0hD1lNN.js} +3 -3
  45. package/dist/core/{DiamondWipe-B1EXgweH.js → DiamondWipe-B8rFSwsV.js} +2 -2
  46. package/dist/core/{DiffuseBlur-CmD97dHb.js → DiffuseBlur--Gn4bDwC.js} +2 -2
  47. package/dist/core/{DisplacementMap-JV_CNJfU.js → DisplacementMap-DQk8S4sK.js} +4 -4
  48. package/dist/core/{Dither-NJDWpGb3.js → Dither-rB9M7FS7.js} +2 -2
  49. package/dist/core/{DotGrid-B2w7RFcv.js → DotGrid-DszAbmy5.js} +3 -3
  50. package/dist/core/{DropShadow-CLWp-bon.js → DropShadow-BS3S178o.js} +2 -2
  51. package/dist/core/{Duotone-Be2jx-jZ.js → Duotone-Cf_ybegD.js} +2 -2
  52. package/dist/core/{Ellipse-BR6qXidK.js → Ellipse-DY8FgSSx.js} +2 -2
  53. package/dist/core/{Emboss-C8ElxLo3.js → Emboss-RxgVyKyU.js} +4 -4
  54. package/dist/core/{Engraving-D67DM--1.js → Engraving-C0OuioUr.js} +2 -2
  55. package/dist/core/{ErosionNoise-FeEMQOkR.js → ErosionNoise-B-I3VFiY.js} +2 -2
  56. package/dist/core/{Exposure-CZ1gfqpf.js → Exposure-360tdOrT.js} +1 -1
  57. package/dist/core/{FallingLines-ifuQ01oA.js → FallingLines-4sVKJMDj.js} +3 -3
  58. package/dist/core/{FilmGrain-p5sawa_f.js → FilmGrain-CgzuRidb.js} +1 -1
  59. package/dist/core/{FilmStock-BD5wv1TV.js → FilmStock-BW9k3EPE.js} +1 -1
  60. package/dist/core/{Flip-MKiLH9jJ.js → Flip-DqdxtYHS.js} +2 -2
  61. package/dist/core/{FloatingParticles-Bn8CmtwG.js → FloatingParticles-BI8Y9Gcv.js} +2 -2
  62. package/dist/core/{FlowField-BdFeRmif.js → FlowField-CV0Is569.js} +5 -5
  63. package/dist/core/{Flower-BwDBwcSk.js → Flower-IaNzANoa.js} +2 -2
  64. package/dist/core/{FlowingGradient-RYOS36eB.js → FlowingGradient-CEAAa11t.js} +3 -3
  65. package/dist/core/{FlutedGlass-Ong8W4Ih.js → FlutedGlass-CF6mZMq4.js} +3 -3
  66. package/dist/core/{Fog-C-X8msRb.js → Fog-D9OYGwhY.js} +2 -2
  67. package/dist/core/{Form3D-BZ_vaLWe.js → Form3D-CJKutcFA.js} +3 -3
  68. package/dist/core/{FractalNoise-BPj8RPkE.js → FractalNoise-DelBWQyb.js} +3 -3
  69. package/dist/core/{Frost-DmxlFu63.js → Frost-Br7b9n4L.js} +5 -5
  70. package/dist/core/{GaborNoise-Boc8ieHd.js → GaborNoise-DViNgIse.js} +3 -3
  71. package/dist/core/{Glass-D5p21MIw.js → Glass-IwPea9h1.js} +4 -4
  72. package/dist/core/{GlassTiles-BP4CzdI3.js → GlassTiles-DpPHPKv7.js} +3 -5
  73. package/dist/core/{Glitch-cJguD7jS.js → Glitch-CKmX-agV.js} +1 -1
  74. package/dist/core/{Glow-BabfcnwS.js → Glow-CVcVetaa.js} +1 -1
  75. package/dist/core/{Godrays-BpiKSlNR.js → Godrays-CNNHJzNz.js} +3 -3
  76. package/dist/core/{Goo-BaQEtOyr.js → Goo-BUXnhwTk.js} +5 -5
  77. package/dist/core/{GradientMap-BtKtW-4M.js → GradientMap-DqGEXRl9.js} +2 -2
  78. package/dist/core/{Grayscale-Bgwugyvv.js → Grayscale-DiJAjdx3.js} +1 -1
  79. package/dist/core/{Grid-5cEDkyWX.js → Grid-utmP7uyR.js} +2 -2
  80. package/dist/core/{GridDistortion-Byf4G720.js → GridDistortion-Bn6D5dfC.js} +3 -3
  81. package/dist/core/{Group-DUEQSUir.js → Group-u-o7qE0Y.js} +1 -1
  82. package/dist/core/{HTMLInCanvas-uW1O3Z-R.js → HTMLInCanvas-sK9HN-gI.js} +1 -1
  83. package/dist/core/{Halftone-BiSLVvGF.js → Halftone-C5La06l6.js} +2 -2
  84. package/dist/core/{Heart-RAGeVEVH.js → Heart-CGLx1F8D.js} +2 -2
  85. package/dist/core/{Heatmap-Ds65scO7.js → Heatmap-CE5DLeJp.js} +5 -5
  86. package/dist/core/{HexGrid-H1N5Y1XD.js → HexGrid-CqB-yMWN.js} +2 -2
  87. package/dist/core/{Hologram-DpDfyeSz.js → Hologram-CctodmpA.js} +5 -5
  88. package/dist/core/{Holographic-Ckubuqn8.js → Holographic-DSz4qfkn.js} +5 -5
  89. package/dist/core/{HueShift-C_a5UVHy.js → HueShift-Cfq-ijQP.js} +1 -1
  90. package/dist/core/{ImageTexture-CM-dPJQ4.js → ImageTexture-DdzAYFTi.js} +1 -1
  91. package/dist/core/{InkFlow-CY7sCKpI.js → InkFlow-CCPfoQXs.js} +2 -2
  92. package/dist/core/{Invert-DhHrtwHQ.js → Invert-CtUHcYmv.js} +1 -1
  93. package/dist/core/{IrisWipe-BnOMUdEV.js → IrisWipe-DWVFMn81.js} +2 -2
  94. package/dist/core/{IsometricCubes-CXPz62PB.js → IsometricCubes-m-mYnbqN.js} +2 -2
  95. package/dist/core/{Kaleidoscope-CSgi0E5B.js → Kaleidoscope-DMNLVgx6.js} +4 -4
  96. package/dist/core/{KeyFrames-C3I4poq8.js → KeyFrames-jgrfR3Hj.js} +2 -2
  97. package/dist/core/{LensFlare-DxvbKXgt.js → LensFlare-CuWJsfwE.js} +3 -3
  98. package/dist/core/{LightEdge-niXz_FAk.js → LightEdge-WMxb-xKB.js} +5 -5
  99. package/dist/core/{LightLeak-B7Pt1tt4.js → LightLeak-DfOngFp7.js} +3 -3
  100. package/dist/core/{LinearBlur-CXNcduWQ.js → LinearBlur-iLXYGof_.js} +2 -2
  101. package/dist/core/{LinearGradient-CYiaWIXd.js → LinearGradient-DLrJban6.js} +3 -3
  102. package/dist/core/{LinearWipe-gwLhEveK.js → LinearWipe-C_fWBl4i.js} +2 -2
  103. package/dist/core/{LiquidMetal-D0sgLjcd.js → LiquidMetal-DHM8kVNr.js} +5 -5
  104. package/dist/core/{Liquify-h08a8S-C.js → Liquify-FQWL8j4t.js} +4 -4
  105. package/dist/core/{MagneticFilings-BlNWPVwS.js → MagneticFilings-BUzSkycD.js} +2 -2
  106. package/dist/core/{Marble-bps2lOWc.js → Marble-BnHffB3C.js} +3 -3
  107. package/dist/core/{Mirror-8miSUAyZ.js → Mirror-B_v4FunG.js} +3 -3
  108. package/dist/core/{MultiPointGradient-C-9_Q6CM.js → MultiPointGradient-5NGBm90u.js} +2 -2
  109. package/dist/core/{Neon-RDh1tAjH.js → Neon-BjBSg2FR.js} +4 -4
  110. package/dist/core/{NoiseDissolve-DjlWGdUc.js → NoiseDissolve-kDP6-h9F.js} +2 -2
  111. package/dist/core/{ObjectTracker-DW4aEBRv.js → ObjectTracker-vU1bVmIJ.js} +3 -3
  112. package/dist/core/{PagePeel-JsbScYi4.js → PagePeel-BgDvgtIV.js} +1 -1
  113. package/dist/core/{Paper-BGTU0GOF.js → Paper-_alN4JdS.js} +1 -1
  114. package/dist/core/{Parallelogram-RC3MxzlN.js → Parallelogram--Cil139y.js} +2 -2
  115. package/dist/core/{ParticleField-XypD7Eru.js → ParticleField-DZ7um7tu.js} +1 -1
  116. package/dist/core/{ParticleFlow-DBw7m9C6.js → ParticleFlow-CmRP2S8W.js} +2 -2
  117. package/dist/core/{Particles-CvpZvfe3.js → Particles-DFw2E9SE.js} +3 -3
  118. package/dist/core/{PerlinNoise-CHVaarmz.js → PerlinNoise-BmNpwJtM.js} +3 -3
  119. package/dist/core/{Perspective-zyCZAb3_.js → Perspective-DVcUW7jR.js} +4 -4
  120. package/dist/core/{PixelSort-B-zefB9S.js → PixelSort-Bz5dIrqH.js} +1 -1
  121. package/dist/core/{PixelThrow-BZ6erf3G.js → PixelThrow-DEMX8VOw.js} +2 -2
  122. package/dist/core/{Pixelate-D1e7buDQ.js → Pixelate-D-eWrHTE.js} +1 -1
  123. package/dist/core/{Plasma-CBrx8Xu-.js → Plasma-C_EIkpQi.js} +3 -3
  124. package/dist/core/{Plastic-CcS4iAJM.js → Plastic-CYeefb91.js} +5 -5
  125. package/dist/core/{PolarCoordinates-B9SuYLgF.js → PolarCoordinates-DmpUBdGX.js} +3 -3
  126. package/dist/core/{Polygon-N0l1KfIO.js → Polygon-DEEUdZd6.js} +2 -2
  127. package/dist/core/{Posterize-u2et79Pv.js → Posterize-B8oVbNZL.js} +1 -1
  128. package/dist/core/{Prism-BnDsPBcD.js → Prism-Btijlm0t.js} +3 -3
  129. package/dist/core/{ProgressiveBlur-D9FiTJQy.js → ProgressiveBlur-BoRFh6Tn.js} +2 -2
  130. package/dist/core/{RadialGradient-C4oB78ya.js → RadialGradient-CNDiMPZM.js} +3 -3
  131. package/dist/core/{RadialWipe-Dzb7i6wy.js → RadialWipe-C213vCrJ.js} +2 -2
  132. package/dist/core/{RandomBars-DO9j43mN.js → RandomBars-hOY9hNS7.js} +2 -2
  133. package/dist/core/{ReactionDiffusion-DG1NSPhM.js → ReactionDiffusion--UjME4_r.js} +2 -2
  134. package/dist/core/{RectangularCoordinates-Ck1gXdGx.js → RectangularCoordinates-DB7rPJ2Z.js} +3 -3
  135. package/dist/core/{ReflectivePlane-DFQDgLYC.js → ReflectivePlane-D92GjNLR.js} +2 -2
  136. package/dist/core/{Repeater-CT35_BhW.js → Repeater-CJjylN6O.js} +2 -2
  137. package/dist/core/{Ring-DywDgKDv.js → Ring-CJYQP2Qm.js} +2 -2
  138. package/dist/core/{RippleWipe-ePWlg-DT.js → RippleWipe-DJlrObO0.js} +2 -2
  139. package/dist/core/{Ripples-fTSMeqiE.js → Ripples-Brj67b7H.js} +3 -3
  140. package/dist/core/{RoundedRect-B0lxuFfM.js → RoundedRect-3vfFsHAl.js} +2 -2
  141. package/dist/core/{Saturation-ClaD54dk.js → Saturation-lx3DV3Up.js} +1 -1
  142. package/dist/core/{Scratches-D8ZIBZ50.js → Scratches-CMFr8AfL.js} +3 -3
  143. package/dist/core/{Sharpness-CsnT4s1o.js → Sharpness-ByZbUAd0.js} +1 -1
  144. package/dist/core/{Shatter-D_V7GBel.js → Shatter-B1_rLacw.js} +2 -2
  145. package/dist/core/{SimplexNoise-tI2G3Wzn.js → SimplexNoise-zItLLG1j.js} +3 -3
  146. package/dist/core/{SineWave-BGsYyEFg.js → SineWave-BvrhRcvv.js} +3 -3
  147. package/dist/core/{SliceWipe-s4pWdINK.js → SliceWipe-9bUWTClo.js} +1 -1
  148. package/dist/core/{Smoke-C3SLe_rD.js → Smoke-YixCTJbh.js} +3 -3
  149. package/dist/core/{SmokeFill-BuKZtbX8.js → SmokeFill-Cccbyi4g.js} +4 -4
  150. package/dist/core/{SmokeFlow-5fnVH2a9.js → SmokeFlow-DJ3sQPH1.js} +3 -3
  151. package/dist/core/{Solarize-TP85IPV7.js → Solarize-CZeTsJG8.js} +1 -1
  152. package/dist/core/{SolidColor-16e4q89i.js → SolidColor-DB8l6xRl.js} +1 -1
  153. package/dist/core/{Spherize-C4qsnql6.js → Spherize-BdYP0Auv.js} +3 -3
  154. package/dist/core/{Spiral-rPHDFACm.js → Spiral-PPqgFMRM.js} +3 -3
  155. package/dist/core/{Star-BDFhZWLo.js → Star-mgLhY4e_.js} +2 -2
  156. package/dist/core/{Stone-CCXo9IgA.js → Stone-CehIcoVu.js} +2 -2
  157. package/dist/core/{Strands-DCzYUsCX.js → Strands-Dzj-5h31.js} +3 -3
  158. package/dist/core/{Stretch-CjhYXAth.js → Stretch-C82iJhQu.js} +4 -4
  159. package/dist/core/{Stripes-CN2TFWGw.js → Stripes-C3XL9mWC.js} +3 -3
  160. package/dist/core/{StudioBackground-I_XxtKjr.js → StudioBackground-CDpLmvMH.js} +3 -3
  161. package/dist/core/{SunBurst-CGQkdsXl.js → SunBurst-fFeTV8O4.js} +3 -3
  162. package/dist/core/{Surface3D-CpCPTs0u.js → Surface3D-BFGuR3YZ.js} +2 -2
  163. package/dist/core/{Swirl-BCnlG3G8.js → Swirl-DGZs_YDx.js} +3 -3
  164. package/dist/core/{Teardrop-DX-YZkNC.js → Teardrop-DN7t-3HU.js} +2 -2
  165. package/dist/core/{Text-oI5d7_UD.js → Text-DuQnSDiW.js} +6 -5
  166. package/dist/core/{ThinFilm-CEYaV4nn.js → ThinFilm-DhQXCGw9.js} +4 -4
  167. package/dist/core/{TiltShift-C8GluqAm.js → TiltShift-CpHBxw5I.js} +2 -2
  168. package/dist/core/{TimeTrail-CPiSo5Of.js → TimeTrail-j89dMqNU.js} +2 -2
  169. package/dist/core/{Tint-NA7BO-Qk.js → Tint-WmBROyUm.js} +2 -2
  170. package/dist/core/{Trapezoid-BOGSQvW5.js → Trapezoid-RrEwHfyH.js} +2 -2
  171. package/dist/core/{TriangularGrid-Zx3I4CqA.js → TriangularGrid-D7r3Nhss.js} +3 -3
  172. package/dist/core/{Tritone-Bl69W4Y4.js → Tritone-BREi33uL.js} +2 -2
  173. package/dist/core/{Truchet-RJI0-v6x.js → Truchet-CTjP4x60.js} +2 -2
  174. package/dist/core/{Twirl-CrIawDs2.js → Twirl-Bvk8-3JT.js} +4 -4
  175. package/dist/core/{VHS-B12KbScc.js → VHS-et86dWDU.js} +1 -1
  176. package/dist/core/{VenetianBlinds-CGfPlhGd.js → VenetianBlinds-Bv0f2lFw.js} +2 -2
  177. package/dist/core/{Vesica-DekjxkHL.js → Vesica-BV2Sz5VV.js} +2 -2
  178. package/dist/core/{Vibrance-DKKduAD8.js → Vibrance-Q9Mrvfs-.js} +1 -1
  179. package/dist/core/{VideoTexture-1xg_a680.js → VideoTexture-BUY69Gqp.js} +1 -1
  180. package/dist/core/{Vignette-CDRCMNb2.js → Vignette-DyScJQWj.js} +2 -2
  181. package/dist/core/{Voronoi-EWj3WFqv.js → Voronoi-DxoT7iRa.js} +3 -3
  182. package/dist/core/{Water-BdGrOEuE.js → Water-CE1rY4LR.js} +5 -5
  183. package/dist/core/{Watercolor-BGIcnGZu.js → Watercolor-Buk5FkKR.js} +2 -2
  184. package/dist/core/{WaveDistortion-BNlrOaur.js → WaveDistortion-Ca6y77xt.js} +5 -5
  185. package/dist/core/{WaveletNoise-Jv-694xX.js → WaveletNoise-Y7LdptK_.js} +3 -3
  186. package/dist/core/{Weave-HNS6xvOs.js → Weave-CTpPvAhK.js} +2 -2
  187. package/dist/core/{WebcamTexture-DVKxGpWI.js → WebcamTexture-85gdzpo_.js} +3 -2
  188. package/dist/core/{Wool-D7uM0JRs.js → Wool-DJJkx7S2.js} +2 -2
  189. package/dist/core/{WorleyNoise-DsDWmRCp.js → WorleyNoise-C_CHhfMF.js} +3 -3
  190. package/dist/core/{ZoomBlur-S2GfQojf.js → ZoomBlur-8tmVWx1n.js} +2 -2
  191. package/dist/core/{coords-0A7CojvN.js → coords-BkIjixe_.js} +717 -44
  192. package/dist/core/{glass-BjUqcmHP.js → glass-sOqjtPJD.js} +1 -1
  193. package/dist/core/gpu/composer.d.ts +7 -0
  194. package/dist/core/gpu/composer.d.ts.map +1 -1
  195. package/dist/core/gpu/index.d.ts +22 -3
  196. package/dist/core/gpu/index.d.ts.map +1 -1
  197. package/dist/core/gpu/kit/edges.d.ts +19 -1
  198. package/dist/core/gpu/kit/edges.d.ts.map +1 -1
  199. package/dist/core/gpu/kit/index.d.ts +1 -0
  200. package/dist/core/gpu/kit/index.d.ts.map +1 -1
  201. package/dist/core/gpu/kit/sampling.d.ts +34 -0
  202. package/dist/core/gpu/kit/sampling.d.ts.map +1 -0
  203. package/dist/core/gpu/kit/sdf.d.ts.map +1 -1
  204. package/dist/core/gpu/kit/uvTransform.d.ts +13 -3
  205. package/dist/core/gpu/kit/uvTransform.d.ts.map +1 -1
  206. package/dist/core/gpu/passManager.d.ts +5 -1
  207. package/dist/core/gpu/passManager.d.ts.map +1 -1
  208. package/dist/core/gpu/porters.d.ts +1 -0
  209. package/dist/core/gpu/porters.d.ts.map +1 -1
  210. package/dist/core/gpu/root.d.ts +26 -4
  211. package/dist/core/gpu/root.d.ts.map +1 -1
  212. package/dist/core/gpu/support.d.ts +119 -0
  213. package/dist/core/gpu/support.d.ts.map +1 -0
  214. package/dist/core/gpu/uniformStore.d.ts.map +1 -1
  215. package/dist/core/index.d.ts +3 -0
  216. package/dist/core/index.d.ts.map +1 -1
  217. package/dist/core/index.js +457 -358
  218. package/dist/core/{noiseColor-w3B94vmT.js → noiseColor-CY6QVFgB.js} +2 -2
  219. package/dist/core/{porters-B1jqpcE3.js → porters-Bl3WB9VW.js} +2 -2
  220. package/dist/core/presetRenderer.d.ts +13 -1
  221. package/dist/core/presetRenderer.d.ts.map +1 -1
  222. package/dist/core/registry.js +199 -198
  223. package/dist/core/shaderRegistry-CSTwovjI.js +425 -0
  224. package/dist/core/shaders/AngularBlur/index.js +5 -4
  225. package/dist/core/shaders/Arc/index.js +5 -4
  226. package/dist/core/shaders/Ascii/index.js +5 -4
  227. package/dist/core/shaders/Aurora/index.js +5 -4
  228. package/dist/core/shaders/BarShift/index.js +5 -4
  229. package/dist/core/shaders/BarnDoors/index.js +5 -4
  230. package/dist/core/shaders/Beam/index.js +5 -4
  231. package/dist/core/shaders/Bend/index.js +5 -4
  232. package/dist/core/shaders/Blob/index.js +5 -4
  233. package/dist/core/shaders/BlockDissolve/index.js +5 -4
  234. package/dist/core/shaders/BlockNoise/index.js +6 -5
  235. package/dist/core/shaders/BlueNoise/index.js +6 -5
  236. package/dist/core/shaders/Blur/index.js +5 -4
  237. package/dist/core/shaders/Boids/index.js +5 -4
  238. package/dist/core/shaders/BokehBlur/index.js +5 -4
  239. package/dist/core/shaders/BrickPattern/index.js +5 -4
  240. package/dist/core/shaders/BrightnessContrast/index.js +5 -4
  241. package/dist/core/shaders/BrushedMetal/index.js +7 -6
  242. package/dist/core/shaders/Bulge/index.js +5 -4
  243. package/dist/core/shaders/CRTScreen/index.js +5 -4
  244. package/dist/core/shaders/CarbonFiber/index.js +7 -6
  245. package/dist/core/shaders/Chalkboard/index.js +5 -4
  246. package/dist/core/shaders/ChannelBlur/index.js +5 -4
  247. package/dist/core/shaders/CheckerWipe/index.js +5 -4
  248. package/dist/core/shaders/Checkerboard/index.js +5 -4
  249. package/dist/core/shaders/Chevron/index.js +5 -4
  250. package/dist/core/shaders/ChromaFlow/index.js +5 -4
  251. package/dist/core/shaders/ChromaticAberration/index.js +5 -4
  252. package/dist/core/shaders/Circle/index.js +5 -4
  253. package/dist/core/shaders/ColorWheel/index.js +5 -4
  254. package/dist/core/shaders/CompressionArtifacts/index.js +5 -4
  255. package/dist/core/shaders/ConcentricSpin/index.js +5 -4
  256. package/dist/core/shaders/ConicGradient/index.js +5 -4
  257. package/dist/core/shaders/ContourLines/index.js +5 -4
  258. package/dist/core/shaders/CornerPin/index.js +5 -4
  259. package/dist/core/shaders/Crescent/index.js +5 -4
  260. package/dist/core/shaders/Cross/index.js +5 -4
  261. package/dist/core/shaders/Crystal/index.js +7 -6
  262. package/dist/core/shaders/CurlNoise/index.js +6 -5
  263. package/dist/core/shaders/CursorRipples/index.js +5 -4
  264. package/dist/core/shaders/CursorTrail/index.js +5 -4
  265. package/dist/core/shaders/DataMosh/index.js +5 -4
  266. package/dist/core/shaders/DiamondGradient/index.js +5 -4
  267. package/dist/core/shaders/DiamondWipe/index.js +5 -4
  268. package/dist/core/shaders/DiffuseBlur/index.js +5 -4
  269. package/dist/core/shaders/DisplacementMap/index.js +5 -4
  270. package/dist/core/shaders/Dither/index.js +5 -4
  271. package/dist/core/shaders/DotGrid/index.js +5 -4
  272. package/dist/core/shaders/DropShadow/index.js +5 -4
  273. package/dist/core/shaders/Duotone/index.js +5 -4
  274. package/dist/core/shaders/Ellipse/index.js +5 -4
  275. package/dist/core/shaders/Emboss/index.js +7 -6
  276. package/dist/core/shaders/Engraving/index.js +5 -4
  277. package/dist/core/shaders/ErosionNoise/index.js +6 -5
  278. package/dist/core/shaders/Exposure/index.js +5 -4
  279. package/dist/core/shaders/FallingLines/index.js +5 -4
  280. package/dist/core/shaders/FilmGrain/index.js +5 -4
  281. package/dist/core/shaders/FilmStock/index.js +5 -4
  282. package/dist/core/shaders/Flip/index.js +5 -4
  283. package/dist/core/shaders/FloatingParticles/index.js +5 -4
  284. package/dist/core/shaders/FlowField/index.js +5 -4
  285. package/dist/core/shaders/Flower/index.js +5 -4
  286. package/dist/core/shaders/FlowingGradient/index.js +5 -4
  287. package/dist/core/shaders/FlutedGlass/index.js +5 -4
  288. package/dist/core/shaders/Fog/index.js +5 -4
  289. package/dist/core/shaders/Form3D/index.js +5 -4
  290. package/dist/core/shaders/FractalNoise/index.js +5 -4
  291. package/dist/core/shaders/Frost/index.js +7 -6
  292. package/dist/core/shaders/GaborNoise/index.js +6 -5
  293. package/dist/core/shaders/Glass/index.js +7 -6
  294. package/dist/core/shaders/GlassTiles/index.d.ts.map +1 -1
  295. package/dist/core/shaders/GlassTiles/index.js +5 -4
  296. package/dist/core/shaders/Glitch/index.js +5 -4
  297. package/dist/core/shaders/Glow/index.js +5 -4
  298. package/dist/core/shaders/Godrays/index.js +5 -4
  299. package/dist/core/shaders/Goo/index.js +7 -6
  300. package/dist/core/shaders/GradientMap/index.js +5 -4
  301. package/dist/core/shaders/Grayscale/index.js +5 -4
  302. package/dist/core/shaders/Grid/index.js +5 -4
  303. package/dist/core/shaders/GridDistortion/index.js +5 -4
  304. package/dist/core/shaders/Group/index.js +5 -4
  305. package/dist/core/shaders/HTMLInCanvas/index.js +5 -4
  306. package/dist/core/shaders/Halftone/index.js +5 -4
  307. package/dist/core/shaders/Heart/index.js +5 -4
  308. package/dist/core/shaders/Heatmap/index.js +7 -6
  309. package/dist/core/shaders/HexGrid/index.js +5 -4
  310. package/dist/core/shaders/Hologram/index.js +7 -6
  311. package/dist/core/shaders/Holographic/index.js +7 -6
  312. package/dist/core/shaders/HueShift/index.js +5 -4
  313. package/dist/core/shaders/ImageTexture/index.js +5 -4
  314. package/dist/core/shaders/InkFlow/index.js +5 -4
  315. package/dist/core/shaders/Invert/index.js +5 -4
  316. package/dist/core/shaders/IrisWipe/index.js +5 -4
  317. package/dist/core/shaders/IsometricCubes/index.js +5 -4
  318. package/dist/core/shaders/Kaleidoscope/index.js +5 -4
  319. package/dist/core/shaders/KeyFrames/index.js +5 -4
  320. package/dist/core/shaders/LensFlare/index.js +5 -4
  321. package/dist/core/shaders/LightEdge/index.js +7 -6
  322. package/dist/core/shaders/LightLeak/index.js +5 -4
  323. package/dist/core/shaders/LinearBlur/index.js +5 -4
  324. package/dist/core/shaders/LinearGradient/index.js +5 -4
  325. package/dist/core/shaders/LinearWipe/index.js +5 -4
  326. package/dist/core/shaders/LiquidMetal/index.js +7 -6
  327. package/dist/core/shaders/Liquify/index.js +5 -4
  328. package/dist/core/shaders/MagneticFilings/index.js +5 -4
  329. package/dist/core/shaders/Marble/index.js +5 -4
  330. package/dist/core/shaders/Mirror/index.js +5 -4
  331. package/dist/core/shaders/MultiPointGradient/index.js +5 -4
  332. package/dist/core/shaders/Neon/index.js +6 -5
  333. package/dist/core/shaders/NoiseDissolve/index.js +5 -4
  334. package/dist/core/shaders/ObjectTracker/index.js +6 -5
  335. package/dist/core/shaders/PagePeel/index.js +5 -4
  336. package/dist/core/shaders/Paper/index.js +5 -4
  337. package/dist/core/shaders/Parallelogram/index.js +5 -4
  338. package/dist/core/shaders/ParticleField/index.js +5 -4
  339. package/dist/core/shaders/ParticleFlow/index.js +5 -4
  340. package/dist/core/shaders/Particles/index.js +6 -5
  341. package/dist/core/shaders/PerlinNoise/index.js +6 -5
  342. package/dist/core/shaders/Perspective/index.js +5 -4
  343. package/dist/core/shaders/PixelSort/index.js +5 -4
  344. package/dist/core/shaders/PixelThrow/index.js +5 -4
  345. package/dist/core/shaders/Pixelate/index.js +5 -4
  346. package/dist/core/shaders/Plasma/index.js +5 -4
  347. package/dist/core/shaders/Plastic/index.js +7 -6
  348. package/dist/core/shaders/PolarCoordinates/index.js +5 -4
  349. package/dist/core/shaders/Polygon/index.js +5 -4
  350. package/dist/core/shaders/Posterize/index.js +5 -4
  351. package/dist/core/shaders/Prism/index.js +5 -4
  352. package/dist/core/shaders/ProgressiveBlur/index.js +5 -4
  353. package/dist/core/shaders/RadialGradient/index.js +5 -4
  354. package/dist/core/shaders/RadialWipe/index.js +5 -4
  355. package/dist/core/shaders/RandomBars/index.js +5 -4
  356. package/dist/core/shaders/ReactionDiffusion/index.js +5 -4
  357. package/dist/core/shaders/RectangularCoordinates/index.js +5 -4
  358. package/dist/core/shaders/ReflectivePlane/index.js +5 -4
  359. package/dist/core/shaders/Repeater/index.js +5 -4
  360. package/dist/core/shaders/Ring/index.js +5 -4
  361. package/dist/core/shaders/RippleWipe/index.js +5 -4
  362. package/dist/core/shaders/Ripples/index.js +5 -4
  363. package/dist/core/shaders/RoundedRect/index.js +5 -4
  364. package/dist/core/shaders/Saturation/index.js +5 -4
  365. package/dist/core/shaders/Scratches/index.js +6 -5
  366. package/dist/core/shaders/Sharpness/index.js +5 -4
  367. package/dist/core/shaders/Shatter/index.js +5 -4
  368. package/dist/core/shaders/SimplexNoise/index.js +5 -4
  369. package/dist/core/shaders/SineWave/index.js +5 -4
  370. package/dist/core/shaders/SliceWipe/index.js +5 -4
  371. package/dist/core/shaders/Smoke/index.js +5 -4
  372. package/dist/core/shaders/SmokeFill/index.js +7 -6
  373. package/dist/core/shaders/SmokeFlow/index.js +5 -4
  374. package/dist/core/shaders/Solarize/index.js +5 -4
  375. package/dist/core/shaders/SolidColor/index.js +2 -2
  376. package/dist/core/shaders/Spherize/index.d.ts.map +1 -1
  377. package/dist/core/shaders/Spherize/index.js +5 -4
  378. package/dist/core/shaders/Spiral/index.js +5 -4
  379. package/dist/core/shaders/Star/index.js +5 -4
  380. package/dist/core/shaders/Stone/index.js +4 -3
  381. package/dist/core/shaders/Strands/index.js +5 -4
  382. package/dist/core/shaders/Stretch/index.js +5 -4
  383. package/dist/core/shaders/Stripes/index.js +5 -4
  384. package/dist/core/shaders/StudioBackground/index.js +5 -4
  385. package/dist/core/shaders/SunBurst/index.js +5 -4
  386. package/dist/core/shaders/Surface3D/index.js +5 -4
  387. package/dist/core/shaders/Swirl/index.js +5 -4
  388. package/dist/core/shaders/Teardrop/index.js +5 -4
  389. package/dist/core/shaders/Text/index.d.ts.map +1 -1
  390. package/dist/core/shaders/Text/index.js +6 -5
  391. package/dist/core/shaders/ThinFilm/index.js +6 -5
  392. package/dist/core/shaders/TiltShift/index.js +5 -4
  393. package/dist/core/shaders/TimeTrail/index.js +5 -4
  394. package/dist/core/shaders/Tint/index.js +5 -4
  395. package/dist/core/shaders/Trapezoid/index.js +5 -4
  396. package/dist/core/shaders/TriangularGrid/index.js +5 -4
  397. package/dist/core/shaders/Tritone/index.js +5 -4
  398. package/dist/core/shaders/Truchet/index.js +5 -4
  399. package/dist/core/shaders/Twirl/index.js +5 -4
  400. package/dist/core/shaders/VHS/index.js +5 -4
  401. package/dist/core/shaders/VenetianBlinds/index.js +5 -4
  402. package/dist/core/shaders/Vesica/index.js +5 -4
  403. package/dist/core/shaders/Vibrance/index.js +5 -4
  404. package/dist/core/shaders/VideoTexture/index.js +5 -4
  405. package/dist/core/shaders/Vignette/index.js +5 -4
  406. package/dist/core/shaders/Voronoi/index.js +5 -4
  407. package/dist/core/shaders/Water/index.js +7 -6
  408. package/dist/core/shaders/Watercolor/index.js +5 -4
  409. package/dist/core/shaders/WaveDistortion/index.js +5 -4
  410. package/dist/core/shaders/WaveletNoise/index.js +6 -5
  411. package/dist/core/shaders/Weave/index.js +5 -4
  412. package/dist/core/shaders/WebcamTexture/index.js +5 -4
  413. package/dist/core/shaders/Wool/index.js +4 -3
  414. package/dist/core/shaders/WorleyNoise/index.js +5 -4
  415. package/dist/core/shaders/ZoomBlur/index.js +5 -4
  416. package/dist/core/{shapeEffectBounds-DRyn6AvG.js → shapeEffectBounds-Cl58vRlg.js} +1 -1
  417. package/dist/core/support-6QRFK3xB.js +74 -0
  418. package/dist/core/telemetry/collector.d.ts.map +1 -1
  419. package/dist/core/telemetry/index.js +6 -5
  420. package/dist/core/utilities/boundingBox.d.ts +14 -0
  421. package/dist/core/utilities/boundingBox.d.ts.map +1 -1
  422. package/dist/core/utilities/transformations/index.js +1 -1
  423. package/dist/js/bundle.js +162 -162
  424. package/dist/js/createShader.d.ts.map +1 -1
  425. package/dist/js/createShader.js +43 -13
  426. package/dist/js/createSharedDevice.d.ts +11 -9
  427. package/dist/js/createSharedDevice.d.ts.map +1 -1
  428. package/dist/js/createSharedDevice.js +2 -1
  429. package/dist/js/index.d.ts +2 -0
  430. package/dist/js/index.d.ts.map +1 -1
  431. package/dist/js/index.js +2 -1
  432. package/dist/js/types.d.ts +40 -10
  433. package/dist/js/types.d.ts.map +1 -1
  434. package/dist/react/Shader.js +27 -11
  435. package/dist/react/bundle.js +159 -159
  436. package/dist/react/engine/Shader.d.ts +7 -0
  437. package/dist/react/engine/Shader.d.ts.map +1 -1
  438. package/dist/react/index.d.ts +2 -0
  439. package/dist/react/index.d.ts.map +1 -1
  440. package/dist/react/index.js +2 -1
  441. package/dist/solid/engine/Preview.js +1 -0
  442. package/dist/solid/engine/Shader.d.ts +7 -0
  443. package/dist/solid/engine/Shader.d.ts.map +1 -1
  444. package/dist/solid/engine/Shader.js +29 -10
  445. package/dist/solid/index.d.ts +2 -0
  446. package/dist/solid/index.d.ts.map +1 -1
  447. package/dist/solid/index.js +6 -1
  448. package/dist/svelte/engine/Shader.svelte.d.ts +7 -0
  449. package/dist/svelte/index.d.ts +2 -0
  450. package/dist/svelte/index.js +27 -11
  451. package/dist/svelte/source/engine/Shader.svelte +49 -13
  452. package/dist/svelte/source/index.js +2 -0
  453. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +41 -24
  454. package/dist/vue/engine/Shader.vue.d.ts +9 -1
  455. package/dist/vue/engine/Shader.vue.d.ts.map +1 -1
  456. package/dist/vue/index.d.ts +2 -0
  457. package/dist/vue/index.d.ts.map +1 -1
  458. package/dist/vue/index.js +2 -1
  459. package/package.json +1 -13
  460. package/dist/core/shaderRegistry-BrbiIqjD.js +0 -425
  461. package/dist/pixi/createShaderSprite.d.ts +0 -54
  462. package/dist/pixi/createShaderSprite.d.ts.map +0 -1
  463. package/dist/pixi/index.d.ts +0 -20
  464. package/dist/pixi/index.d.ts.map +0 -1
  465. package/dist/pixi/index.js +0 -153
  466. /package/dist/core/{fonts-BLmvxkGd.js → fonts-BtGjHq1w.js} +0 -0
  467. /package/dist/core/{noiseStylize-4za6Obes.js → noiseStylize-BsZQT7ig.js} +0 -0
  468. /package/dist/core/{transformations-P50Uo_Ju.js → transformations-t0d2-uSX.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"createShader.d.ts","sourceRoot":"","sources":["../src/createShader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,cAAc,CAAA;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAgC5D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,cAAc,CAAC,CAuXzB"}
1
+ {"version":3,"file":"createShader.d.ts","sourceRoot":"","sources":["../src/createShader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,cAAc,CAAA;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAgC5D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,cAAc,CAAC,CAgczB"}
@@ -1,4 +1,4 @@
1
- import { createGpuUniformsMap, resolveBoundingBox, rootPassthrough, shaderRendererGPU } from "../core/index.js";
1
+ import { createGpuUniformsMap, debugError, resolveBoundingBox, rootPassthrough, shaderRendererGPU } from "../core/index.js";
2
2
  import { getAllShaders } from "../core/registry.js";
3
3
  import { isExternalUser, startTelemetry } from "../core/telemetry/index.js";
4
4
  function isPropDriver(value) {
@@ -42,6 +42,25 @@ async function createShader(canvas, preset, options) {
42
42
  let current = null;
43
43
  let destroyed = false;
44
44
  let rebuilding = false;
45
+ const MAX_DEVICE_LOSS_REBUILDS = 3;
46
+ const DEVICE_LOSS_BURST_WINDOW_MS = 6e4;
47
+ let rebuildAttempts = 0;
48
+ let lastDeviceLossAt = 0;
49
+ let unavailable = null;
50
+ function notify(reason) {
51
+ try {
52
+ options?.onError?.(reason);
53
+ } catch (e) {
54
+ debugError("[createShader] onError callback threw:", e);
55
+ }
56
+ }
57
+ let reportedTerminal = false;
58
+ function goDown(reason) {
59
+ if (reportedTerminal) return;
60
+ reportedTerminal = true;
61
+ unavailable = reason;
62
+ notify(reason);
63
+ }
45
64
  function registerComponent(renderer, nodeEntryMap, component, parentId, renderOrder) {
46
65
  const componentDef = componentRegistry.get(component.type);
47
66
  if (!componentDef) {
@@ -94,6 +113,10 @@ async function createShader(canvas, preset, options) {
94
113
  const renderer = shaderRendererGPU();
95
114
  const nodeEntryMap = /* @__PURE__ */ new Map();
96
115
  if (options?.onReady) renderer.setOnReady(options.onReady);
116
+ renderer.setOnUnavailable((reason) => {
117
+ if (destroyed) return;
118
+ goDown(reason);
119
+ });
97
120
  await renderer.initialize({
98
121
  canvas,
99
122
  resizeTarget: canvas,
@@ -110,13 +133,19 @@ async function createShader(canvas, preset, options) {
110
133
  telemetryStartTimeout: null
111
134
  };
112
135
  renderer.setOnDeviceLost((reason) => {
113
- if (destroyed || rebuilding) return;
136
+ if (destroyed || rebuilding || unavailable) return;
114
137
  if (current !== null && current !== state) return;
115
138
  rebuilding = true;
116
- try {
117
- options?.onError?.(reason);
118
- } catch (e) {
119
- console.error("[createShader] onError callback threw:", e);
139
+ notify(reason);
140
+ const now = Date.now();
141
+ if (now - lastDeviceLossAt > DEVICE_LOSS_BURST_WINDOW_MS) rebuildAttempts = 0;
142
+ lastDeviceLossAt = now;
143
+ if (++rebuildAttempts > MAX_DEVICE_LOSS_REBUILDS) {
144
+ teardownState(state);
145
+ current = null;
146
+ rebuilding = false;
147
+ goDown("unrecoverable");
148
+ return;
120
149
  }
121
150
  (async () => {
122
151
  try {
@@ -130,10 +159,8 @@ async function createShader(canvas, preset, options) {
130
159
  }
131
160
  current = next;
132
161
  } catch (rebuildErr) {
133
- console.error("[createShader] rebuild after device loss failed:", rebuildErr);
134
- try {
135
- options?.onError?.("rebuild_failed");
136
- } catch {}
162
+ debugError("[createShader] rebuild after device loss failed:", rebuildErr);
163
+ goDown("rebuild_failed");
137
164
  } finally {
138
165
  rebuilding = false;
139
166
  }
@@ -145,13 +172,15 @@ async function createShader(canvas, preset, options) {
145
172
  registerComponent(renderer, nodeEntryMap, component, rootId, index);
146
173
  });
147
174
  if (isExternalUser()) {
175
+ const MAX_TELEMETRY_POLLS = 40;
176
+ let telemetryPolls = 0;
148
177
  const checkRendering = () => {
149
- if (destroyed || current !== state) {
178
+ if (destroyed || unavailable || current !== state || ++telemetryPolls > MAX_TELEMETRY_POLLS) {
150
179
  state.telemetryStartTimeout = null;
151
180
  return;
152
181
  }
153
182
  if (renderer.getPerformanceStats().fps > 0) {
154
- state.telemetryCollector = startTelemetry(renderer, "3.0.443", options?.disableTelemetry || false, false);
183
+ state.telemetryCollector = startTelemetry(renderer, "3.0.445", options?.disableTelemetry || false, false);
155
184
  if (state.telemetryCollector) state.telemetryCollector.start();
156
185
  state.telemetryStartTimeout = null;
157
186
  } else state.telemetryStartTimeout = setTimeout(checkRendering, 500);
@@ -249,7 +278,8 @@ async function createShader(canvas, preset, options) {
249
278
  resize,
250
279
  pause,
251
280
  resume,
252
- destroy
281
+ destroy,
282
+ getFailureReason: () => unavailable
253
283
  };
254
284
  }
255
285
  export { createShader };
@@ -1,14 +1,16 @@
1
1
  /**
2
- * Create a shared GPU device + adapter that can be passed to multiple
3
- * `createShader` calls via the `gpu` option. Sharing a device lets WebGPU's
4
- * pipeline cache, resource pools, and submission queue be reused across
5
- * shader instances — first-paint compile cost amortizes (the same shader's
6
- * pipeline is compiled once, not once per instance), submission overhead
7
- * drops, and the page stays under browser-imposed context limits.
2
+ * Create a GPU device + adapter you own, to pass to `createShader` via the `gpu`
3
+ * option.
8
4
  *
9
- * Recommended for pages that load many shader instances (e.g., a design
10
- * tool with multiple shader tiles). For a single shader instance there's
11
- * no benefit and you can skip this entirely.
5
+ * **You almost certainly don't need this.** Device sharing is automatic: every
6
+ * shader on a page already adopts one lazily-created device, so pipelines compile
7
+ * once for the page and survive component unmounts (which is what keeps SPA route
8
+ * changes fast). Calling this changes *who owns* the device, not whether sharing
9
+ * happens.
10
+ *
11
+ * Reach for it only when you need explicit control — interoperating with another
12
+ * WebGPU renderer that must share the same device, requesting a specific
13
+ * `powerPreference`, or managing the device's lifetime yourself.
12
14
  *
13
15
  * Returns `null` if WebGPU is unavailable on this device — in that case
14
16
  * callers should pass no `gpu` option and let each shader fall back to its
@@ -1 +1 @@
1
- {"version":3,"file":"createSharedDevice.d.ts","sourceRoot":"","sources":["../src/createSharedDevice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,CAAC,EAAE;IACR,gFAAgF;IAChF,eAAe,CAAC,EAAE,kBAAkB,CAAA;CACrC,GACA,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,GAAG,IAAI,CAAC,CA4B5D"}
1
+ {"version":3,"file":"createSharedDevice.d.ts","sourceRoot":"","sources":["../src/createSharedDevice.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,CAAC,EAAE;IACR,gFAAgF;IAChF,eAAe,CAAC,EAAE,kBAAkB,CAAA;CACrC,GACA,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,GAAG,IAAI,CAAC,CA+B5D"}
@@ -1,3 +1,4 @@
1
+ import { debugWarn } from "../core/index.js";
1
2
  async function createSharedDevice(options) {
2
3
  if (typeof navigator === "undefined" || !navigator.gpu) return null;
3
4
  try {
@@ -8,7 +9,7 @@ async function createSharedDevice(options) {
8
9
  adapter
9
10
  };
10
11
  } catch (err) {
11
- console.warn("[shaders] createSharedDevice failed; callers should fall back to per-instance device:", err);
12
+ debugWarn("[shaders] createSharedDevice failed; callers should fall back to per-instance device:", err);
12
13
  return null;
13
14
  }
14
15
  }
@@ -3,4 +3,6 @@ export { createPreview } from './createPreview';
3
3
  export { createSharedDevice } from './createSharedDevice';
4
4
  export type { ShaderInstance, ShaderOptions, PreviewOptions } from './types';
5
5
  export type { PresetConfig, ComponentConfig } from '../core';
6
+ export { isWebGPUSupported, getWebGPUSupport, setShadersDebug, isShadersDebug } from '../core';
7
+ export type { GpuFailureReason, WebGPUSupportInfo } from '../core';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC5E,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC5E,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAIjE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACnG,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA"}
package/dist/js/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { createShader } from "./createShader.js";
2
2
  import { createPreview } from "./createPreview.js";
3
3
  import { createSharedDevice } from "./createSharedDevice.js";
4
- export { createPreview, createShader, createSharedDevice };
4
+ import { getWebGPUSupport, isShadersDebug, isWebGPUSupported, setShadersDebug } from "../core/index.js";
5
+ export { createPreview, createShader, createSharedDevice, getWebGPUSupport, isShadersDebug, isWebGPUSupported, setShadersDebug };
@@ -7,17 +7,37 @@ export interface ShaderOptions {
7
7
  isPreview?: boolean;
8
8
  onReady?: () => void;
9
9
  /**
10
- * Fires when the underlying GPU device/context is lost e.g. Chrome
11
- * evicting a backgrounded tab's WebGPU device, an OS-level GPU reset,
12
- * driver crash, or `webglcontextlost` on the WebGL fallback path. By the
13
- * time this callback runs the instance has already started rebuilding
14
- * itself transparently against the same canvas and preset; the existing
15
- * `update / pause / resume / resize / destroy` references continue to work
16
- * once the rebuild completes. The callback is informational — surface a
17
- * toast, write a log, no action required.
10
+ * Fires when something goes wrong with the GPU. Two flavours:
18
11
  *
19
- * @param reason Best-effort string from the underlying API
20
- * (e.g. `'destroyed'`, `'webglcontextlost'`, GPU error message).
12
+ * **Recoverable** the device was lost (Chrome evicting a backgrounded tab's
13
+ * WebGPU device, an OS-level GPU reset, a driver crash). By the time this runs
14
+ * the instance has already started rebuilding itself transparently against the
15
+ * same canvas and preset; your existing `update / pause / resume / resize /
16
+ * destroy` references keep working once the rebuild completes. Informational —
17
+ * surface a toast, write a log, no action required. `reason` is a best-effort
18
+ * string from the underlying API.
19
+ *
20
+ * **Terminal** — the shader will never draw and has released everything. The
21
+ * canvas is left as-is (transparent, if it never rendered). This is the moment
22
+ * to swap in a static fallback. `reason` is one of:
23
+ *
24
+ * - `'unsupported'` — the browser has no WebGPU at all
25
+ * - `'no-adapter'` — WebGPU exists but no GPU adapter was granted
26
+ * - `'no-device'` — an adapter exists but the device request failed
27
+ * - `'init-failed'` — start-up threw for some other reason
28
+ * - `'device-lost'` — lost with no recovery possible
29
+ * - `'out-of-memory'` — the GPU refused an allocation
30
+ * - `'gpu-error'` — sustained device errors; the GPU is not usable
31
+ * - `'render-failed'` — repeated exceptions while composing or drawing
32
+ * - `'limit-exceeded'` — the composition needs more of some GPU resource than this device
33
+ * allows (today: more uniform bytes than a single binding permits).
34
+ * Unlike the others this is about the CONTENT — fewer layers would run
35
+ * - `'unrecoverable'` — too many device losses in a row; we stopped retrying
36
+ * - `'rebuild_failed'` — a device-loss rebuild itself failed
37
+ *
38
+ * A terminal reason is reported exactly once. Check {@link isWebGPUSupported} or
39
+ * `getWebGPUSupport()` before mounting if you'd rather not create the shader at
40
+ * all on an unsupported browser.
21
41
  */
22
42
  onError?: (reason: string) => void;
23
43
  /** When false, disables automatic ResizeObserver and IntersectionObserver.
@@ -93,6 +113,16 @@ export interface PreviewInstance extends ShaderInstance {
93
113
  setConfiguration(configuration: Record<string, unknown>): void;
94
114
  }
95
115
  export interface ShaderInstance {
116
+ /**
117
+ * Why the shader gave up, or `null` while it is healthy. Non-null means the canvas will
118
+ * never draw and every GPU resource has been released — `update / resize / pause / resume`
119
+ * become safe no-ops from that point on.
120
+ *
121
+ * The same value is delivered to {@link ShaderOptions.onError} the moment it happens; this
122
+ * is the pull-based equivalent, for code that runs later and just wants to ask (a fallback
123
+ * component mounting after the shader, a health check, a test).
124
+ */
125
+ getFailureReason(): string | null;
96
126
  update(componentId: string, props: Record<string, any>): void;
97
127
  /**
98
128
  * Sync the renderer to the canvas's current dimensions.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEjE,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAA;IACjC,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAA;IAChG,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;;kBAKc;IACd,GAAG,CAAC,EAAE;QACJ,MAAM,EAAE,SAAS,CAAA;QACjB,OAAO,EAAE,UAAU,CAAA;KACpB,CAAA;CACF;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,aAAa,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,iGAAiG;IACjG,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CAC/D;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAA;IAC7D;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7C,mFAAmF;IACnF,KAAK,IAAI,IAAI,CAAA;IACb,kDAAkD;IAClD,MAAM,IAAI,IAAI,CAAA;IACd,OAAO,IAAI,IAAI,CAAA;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEjE,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAA;IACjC,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAA;IAChG,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;;kBAKc;IACd,GAAG,CAAC,EAAE;QACJ,MAAM,EAAE,SAAS,CAAA;QACjB,OAAO,EAAE,UAAU,CAAA;KACpB,CAAA;CACF;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,aAAa,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,iGAAiG;IACjG,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CAC/D;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;;;;OAQG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAAA;IACjC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAA;IAC7D;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7C,mFAAmF;IACnF,KAAK,IAAI,IAAI,CAAA;IACb,kDAAkD;IAClD,MAAM,IAAI,IAAI,CAAA;IACd,OAAO,IAAI,IAAI,CAAA;CAChB"}
@@ -1,10 +1,10 @@
1
1
  import { createContext, useEffect, useId, useMemo, useRef } from "react";
2
- import { rootPassthrough, shaderRendererGPU } from "../core/index.js";
2
+ import { debugWarn, rootPassthrough, shaderRendererGPU } from "../core/index.js";
3
3
  import { setColorSpaceMode } from "../core/utilities/transformations/index.js";
4
4
  import { isExternalUser, startTelemetry } from "../core/telemetry/index.js";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  const ShaderContext = createContext(null);
7
- const Shader = ({ children, disableTelemetry = false, colorSpace = "p3-linear", toneMapping = "linear", isPreview = false, onReady, style = {}, className = "",...rest }) => {
7
+ const Shader = ({ children, disableTelemetry = false, colorSpace = "p3-linear", toneMapping = "linear", isPreview = false, onReady, onUnavailable, style = {}, className = "",...rest }) => {
8
8
  const containerRef = useRef(null);
9
9
  const canvasRef = useRef(null);
10
10
  const reactId = useId();
@@ -13,6 +13,9 @@ const Shader = ({ children, disableTelemetry = false, colorSpace = "p3-linear",
13
13
  if (rendererRef.current === null) rendererRef.current = shaderRendererGPU();
14
14
  const onReadyRef = useRef(onReady);
15
15
  onReadyRef.current = onReady;
16
+ const onUnavailableRef = useRef(onUnavailable);
17
+ onUnavailableRef.current = onUnavailable;
18
+ const gpuUnavailableRef = useRef(null);
16
19
  useEffect(() => {
17
20
  rendererRef.current.setOnReady(() => onReadyRef.current?.());
18
21
  return () => {
@@ -81,14 +84,16 @@ const Shader = ({ children, disableTelemetry = false, colorSpace = "p3-linear",
81
84
  const isCleanedUpRef = useRef(false);
82
85
  const wasVisibleRef = useRef(false);
83
86
  const visibilityObserverRef = useRef(null);
87
+ const MAX_TELEMETRY_POLLS = 40;
84
88
  const startTelemetryWhenReady = () => {
89
+ let polls = 0;
85
90
  const checkRendering = () => {
86
- if (isCleanedUpRef.current || !rendererRef.current) {
91
+ if (isCleanedUpRef.current || !rendererRef.current || gpuUnavailableRef.current || ++polls > MAX_TELEMETRY_POLLS) {
87
92
  telemetryStartTimeoutRef.current = null;
88
93
  return;
89
94
  }
90
95
  if (rendererRef.current.getPerformanceStats().fps > 0) {
91
- telemetryCollectorRef.current = startTelemetry(rendererRef.current, "3.0.443", disableTelemetry, isPreview);
96
+ telemetryCollectorRef.current = startTelemetry(rendererRef.current, "3.0.445", disableTelemetry, isPreview);
92
97
  if (telemetryCollectorRef.current) telemetryCollectorRef.current.start();
93
98
  telemetryStartTimeoutRef.current = null;
94
99
  } else telemetryStartTimeoutRef.current = window.setTimeout(checkRendering, 500);
@@ -97,24 +102,35 @@ const Shader = ({ children, disableTelemetry = false, colorSpace = "p3-linear",
97
102
  };
98
103
  const initializeRenderer = async () => {
99
104
  const canvas = canvasRef.current;
100
- if (!canvas || isInitializedRef.current || isInitializingRef.current) return;
105
+ if (!canvas || isInitializedRef.current || isInitializingRef.current || gpuUnavailableRef.current) return;
101
106
  isInitializingRef.current = true;
102
107
  try {
103
108
  const renderer = rendererRef.current;
109
+ renderer.setOnUnavailable((reason) => {
110
+ gpuUnavailableRef.current = reason;
111
+ try {
112
+ onUnavailableRef.current?.(reason);
113
+ } catch (err) {
114
+ debugWarn("[Shaders] onUnavailable callback threw:", err);
115
+ }
116
+ });
104
117
  if (!renderer.isInitialized()) await renderer.initialize({
105
118
  canvas,
106
119
  colorSpace,
107
120
  toneMapping
108
121
  });
122
+ if (renderer.getFailureReason()) {
123
+ isInitializingRef.current = false;
124
+ return;
125
+ }
109
126
  renderer.registerNode(rootId, rootPassthrough.fragment, null, null, {}, rootPassthrough);
110
127
  isInitializedRef.current = true;
111
128
  isInitializingRef.current = false;
112
129
  if (shouldSendTelemetryRef.current === null) shouldSendTelemetryRef.current = isExternalUser();
113
130
  if (shouldSendTelemetryRef.current && !telemetryCollectorRef.current) startTelemetryWhenReady();
114
131
  } catch (err) {
115
- console.error("[Shader] Initialization failed:", err);
132
+ debugWarn("[Shaders] renderer initialization failed:", err);
116
133
  isInitializingRef.current = false;
117
- throw err;
118
134
  }
119
135
  };
120
136
  const setupVisibilityObserver = () => {
@@ -129,7 +145,7 @@ const Shader = ({ children, disableTelemetry = false, colorSpace = "p3-linear",
129
145
  if (rendererRef.current.isInitialized()) {
130
146
  rendererRef.current.startAnimation();
131
147
  if (shouldSendTelemetryRef.current && !telemetryCollectorRef.current && !telemetryStartTimeoutRef.current) startTelemetryWhenReady();
132
- } else initializeRenderer().catch(console.error);
148
+ } else initializeRenderer();
133
149
  wasVisibleRef.current = true;
134
150
  } else if (!isCurrentlyVisible && wasVisibleRef.current) {
135
151
  rendererRef.current.stopAnimation();
@@ -144,7 +160,7 @@ const Shader = ({ children, disableTelemetry = false, colorSpace = "p3-linear",
144
160
  if (!container) return;
145
161
  const rect = container.getBoundingClientRect();
146
162
  if (rect.width > 0 && rect.height > 0) {
147
- initializeRenderer().catch(console.error);
163
+ initializeRenderer();
148
164
  wasVisibleRef.current = true;
149
165
  } else wasVisibleRef.current = false;
150
166
  setupVisibilityObserver();
@@ -183,7 +199,7 @@ const Shader = ({ children, disableTelemetry = false, colorSpace = "p3-linear",
183
199
  try {
184
200
  rendererRef.current.cleanup();
185
201
  isInitializedRef.current = false;
186
- initializeRenderer().catch(console.error);
202
+ initializeRenderer();
187
203
  } catch (err) {
188
204
  console.error("[Shader] Error updating colorSpace:", err);
189
205
  }
@@ -198,7 +214,7 @@ const Shader = ({ children, disableTelemetry = false, colorSpace = "p3-linear",
198
214
  if (rendererRef.current && isInitializedRef.current) try {
199
215
  rendererRef.current.cleanup();
200
216
  isInitializedRef.current = false;
201
- initializeRenderer().catch(console.error);
217
+ initializeRenderer();
202
218
  } catch (err) {
203
219
  console.error("[Shader] Error updating toneMapping:", err);
204
220
  }