shaders 3.0.443 → 3.0.444
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +2 -2
- package/dist/core/{AngularBlur-CJsRS1Ri.js → AngularBlur-D-tt4pvi.js} +2 -2
- package/dist/core/{Arc-CNesL3S9.js → Arc-DrBTn2ft.js} +2 -2
- package/dist/core/{Ascii-z7til0PQ.js → Ascii-cHzx_Cgc.js} +2 -2
- package/dist/core/{Aurora-BAuYUYGc.js → Aurora-15z76vsc.js} +3 -3
- package/dist/core/{BarShift-qVwbTMcq.js → BarShift-s7HgQwz5.js} +3 -3
- package/dist/core/{BarnDoors-DrOAeSqj.js → BarnDoors-CBzse00V.js} +2 -2
- package/dist/core/{Beam-BW6yblZw.js → Beam-DZgWUuTC.js} +2 -2
- package/dist/core/{Bend-B7PMQ3T5.js → Bend-CHTYK8SA.js} +2 -2
- package/dist/core/{Blob-CRJ5N0hK.js → Blob-A8bKkEG1.js} +3 -3
- package/dist/core/{BlockDissolve-D-6Wy66g.js → BlockDissolve-Bb4aDV5s.js} +2 -2
- package/dist/core/{BlockNoise-Ct9Fae_7.js → BlockNoise-BnnsS95j.js} +3 -3
- package/dist/core/{BlueNoise-Cu7rJuP0.js → BlueNoise-DTOarEL0.js} +2 -2
- package/dist/core/{Blur-BrdVVSPq.js → Blur-DEwHcGOu.js} +1 -1
- package/dist/core/{Boids-DIzUaLGM.js → Boids-BWJXVflR.js} +2 -2
- package/dist/core/{BokehBlur-yYb03spN.js → BokehBlur-pQJN6FFd.js} +2 -2
- package/dist/core/{BrickPattern-BL_MOS_A.js → BrickPattern-Kwmx3pdx.js} +3 -3
- package/dist/core/{BrightnessContrast-CiKimIcA.js → BrightnessContrast-CAkwN3s1.js} +1 -1
- package/dist/core/{BrushedMetal-dvYjizvg.js → BrushedMetal-B4qfaTCf.js} +5 -5
- package/dist/core/{Bulge-CogpoPKe.js → Bulge-CLBhicOs.js} +2 -2
- package/dist/core/{CRTScreen-X64EnHMB.js → CRTScreen-Cj2H2mXK.js} +1 -1
- package/dist/core/{CarbonFiber-CTy3P-Qk.js → CarbonFiber-zA6_ZDg8.js} +4 -4
- package/dist/core/{Chalkboard-CnHUOHtc.js → Chalkboard-DwkX3ZL3.js} +2 -2
- package/dist/core/{ChannelBlur-MwnpNLSZ.js → ChannelBlur-KHDU8WCn.js} +1 -1
- package/dist/core/{CheckerWipe-CCNc70ye.js → CheckerWipe-CNlqWp0y.js} +2 -2
- package/dist/core/{Checkerboard-C97ZiLyQ.js → Checkerboard-CvP8BKcu.js} +2 -2
- package/dist/core/{Chevron-ABT6D1wM.js → Chevron-BFmKhIws.js} +3 -3
- package/dist/core/{ChromaFlow-7tJQEFm9.js → ChromaFlow-C8I4PtcP.js} +2 -2
- package/dist/core/{ChromaticAberration-D7-fxyEd.js → ChromaticAberration-CGPfHEFI.js} +2 -2
- package/dist/core/{Circle-I0DIAypS.js → Circle-ChmepdP_.js} +2 -2
- package/dist/core/{ColorWheel-CEqzzrN-.js → ColorWheel-D5V4ozig.js} +3 -3
- package/dist/core/{CompressionArtifacts-C24nRoC3.js → CompressionArtifacts--GdHELg8.js} +1 -1
- package/dist/core/{ConcentricSpin-CAu-PGNH.js → ConcentricSpin-DIWQ80K5.js} +3 -3
- package/dist/core/{ConicGradient-n12K5TLj.js → ConicGradient-DjMQDAT6.js} +3 -3
- package/dist/core/{ContourLines-FOStIWDr.js → ContourLines-Pq1zDmlf.js} +2 -2
- package/dist/core/{CornerPin-DsUVMFcX.js → CornerPin-C-x2z8H5.js} +2 -2
- package/dist/core/{Crescent-9i_5WPA-.js → Crescent-C6COUHa5.js} +2 -2
- package/dist/core/{Cross-HiA69xGL.js → Cross-Cgw13Sga.js} +2 -2
- package/dist/core/{Crystal-BBjEm9m4.js → Crystal-RnN4Y5Tf.js} +4 -4
- package/dist/core/{CurlNoise-1jifziI0.js → CurlNoise-jaIscgOF.js} +3 -3
- package/dist/core/{CursorRipples-D4agAYHK.js → CursorRipples-Gv0B1S-h.js} +2 -2
- package/dist/core/{CursorTrail-C-FrY0e2.js → CursorTrail-BMHsUYwx.js} +3 -3
- package/dist/core/{DataMosh-DXcM1I4Y.js → DataMosh-CaqYFxYA.js} +1 -1
- package/dist/core/{DiamondGradient-CQ5jeKEc.js → DiamondGradient-D388xLbc.js} +3 -3
- package/dist/core/{DiamondWipe-B1EXgweH.js → DiamondWipe-BRXj3gon.js} +2 -2
- package/dist/core/{DiffuseBlur-CmD97dHb.js → DiffuseBlur-CM5Qy5JM.js} +2 -2
- package/dist/core/{DisplacementMap-JV_CNJfU.js → DisplacementMap-Cr1fauBv.js} +2 -2
- package/dist/core/{Dither-NJDWpGb3.js → Dither-CubXhMES.js} +2 -2
- package/dist/core/{DotGrid-B2w7RFcv.js → DotGrid-D6We1dqv.js} +3 -3
- package/dist/core/{DropShadow-CLWp-bon.js → DropShadow-C8v9KJgy.js} +2 -2
- package/dist/core/{Duotone-Be2jx-jZ.js → Duotone-BfVi04d4.js} +2 -2
- package/dist/core/{Ellipse-BR6qXidK.js → Ellipse-fTV0CAVg.js} +2 -2
- package/dist/core/{Emboss-C8ElxLo3.js → Emboss-BNhsz2v0.js} +4 -4
- package/dist/core/{Engraving-D67DM--1.js → Engraving-DYTr1YbV.js} +2 -2
- package/dist/core/{ErosionNoise-FeEMQOkR.js → ErosionNoise-CxsXwPPE.js} +2 -2
- package/dist/core/{Exposure-CZ1gfqpf.js → Exposure-DISAOzQ5.js} +1 -1
- package/dist/core/{FallingLines-ifuQ01oA.js → FallingLines-DBGk9U7l.js} +3 -3
- package/dist/core/{FilmGrain-p5sawa_f.js → FilmGrain-Ban-r5as.js} +1 -1
- package/dist/core/{FilmStock-BD5wv1TV.js → FilmStock-BlOwC5zb.js} +1 -1
- package/dist/core/{Flip-MKiLH9jJ.js → Flip-CAt9CFWn.js} +2 -2
- package/dist/core/{FloatingParticles-Bn8CmtwG.js → FloatingParticles-Cppgg6I0.js} +2 -2
- package/dist/core/{FlowField-BdFeRmif.js → FlowField-b0PcB7MV.js} +3 -3
- package/dist/core/{Flower-BwDBwcSk.js → Flower-iLK4UwZa.js} +2 -2
- package/dist/core/{FlowingGradient-RYOS36eB.js → FlowingGradient-CZc_z9cL.js} +3 -3
- package/dist/core/{FlutedGlass-Ong8W4Ih.js → FlutedGlass-DMl2A42x.js} +3 -3
- package/dist/core/{Fog-C-X8msRb.js → Fog-BBc52yrL.js} +2 -2
- package/dist/core/{Form3D-BZ_vaLWe.js → Form3D-BqMINp_g.js} +3 -3
- package/dist/core/{FractalNoise-BPj8RPkE.js → FractalNoise-BjGa9I7_.js} +3 -3
- package/dist/core/{Frost-DmxlFu63.js → Frost-ttMO1uGc.js} +5 -5
- package/dist/core/{GaborNoise-Boc8ieHd.js → GaborNoise-CSC24alr.js} +3 -3
- package/dist/core/{Glass-D5p21MIw.js → Glass-DHkb-2UB.js} +4 -4
- package/dist/core/{GlassTiles-BP4CzdI3.js → GlassTiles-CTSmg7gD.js} +1 -1
- package/dist/core/{Glitch-cJguD7jS.js → Glitch-O5FZxlBV.js} +1 -1
- package/dist/core/{Glow-BabfcnwS.js → Glow-Cj9SzOqq.js} +1 -1
- package/dist/core/{Godrays-BpiKSlNR.js → Godrays-XW1fNiSU.js} +3 -3
- package/dist/core/{Goo-BaQEtOyr.js → Goo-Bc43zAec.js} +5 -5
- package/dist/core/{GradientMap-BtKtW-4M.js → GradientMap-BxSv1OOf.js} +2 -2
- package/dist/core/{Grayscale-Bgwugyvv.js → Grayscale-CNM0GlQN.js} +1 -1
- package/dist/core/{Grid-5cEDkyWX.js → Grid-reIQAyFU.js} +2 -2
- package/dist/core/{GridDistortion-Byf4G720.js → GridDistortion-tJym6OIr.js} +2 -2
- package/dist/core/{Group-DUEQSUir.js → Group-8iAuPA0-.js} +1 -1
- package/dist/core/{HTMLInCanvas-uW1O3Z-R.js → HTMLInCanvas-CAHfLRAz.js} +1 -1
- package/dist/core/{Halftone-BiSLVvGF.js → Halftone-Dlk16PsH.js} +2 -2
- package/dist/core/{Heart-RAGeVEVH.js → Heart-C3Uas8c_.js} +2 -2
- package/dist/core/{Heatmap-Ds65scO7.js → Heatmap-CE7IB_4g.js} +5 -5
- package/dist/core/{HexGrid-H1N5Y1XD.js → HexGrid-BiXYpVNp.js} +2 -2
- package/dist/core/{Hologram-DpDfyeSz.js → Hologram-BjKBncw8.js} +5 -5
- package/dist/core/{Holographic-Ckubuqn8.js → Holographic-CCTmTYXb.js} +5 -5
- package/dist/core/{HueShift-C_a5UVHy.js → HueShift-CE5RgaBc.js} +1 -1
- package/dist/core/{ImageTexture-CM-dPJQ4.js → ImageTexture-BrjlwuWY.js} +1 -1
- package/dist/core/{InkFlow-CY7sCKpI.js → InkFlow-DS92HgM9.js} +2 -2
- package/dist/core/{Invert-DhHrtwHQ.js → Invert-e1Z9IfPo.js} +1 -1
- package/dist/core/{IrisWipe-BnOMUdEV.js → IrisWipe-CCK_EamC.js} +2 -2
- package/dist/core/{IsometricCubes-CXPz62PB.js → IsometricCubes-BA-cN4bC.js} +2 -2
- package/dist/core/{Kaleidoscope-CSgi0E5B.js → Kaleidoscope-Cin7yxd7.js} +2 -2
- package/dist/core/{KeyFrames-C3I4poq8.js → KeyFrames-D4-678xR.js} +2 -2
- package/dist/core/{LensFlare-DxvbKXgt.js → LensFlare-UNNiSfiz.js} +3 -3
- package/dist/core/{LightEdge-niXz_FAk.js → LightEdge-GUFdnqjh.js} +5 -5
- package/dist/core/{LightLeak-B7Pt1tt4.js → LightLeak-DWv0ec7B.js} +3 -3
- package/dist/core/{LinearBlur-CXNcduWQ.js → LinearBlur-DBKjOKVV.js} +2 -2
- package/dist/core/{LinearGradient-CYiaWIXd.js → LinearGradient--Vy79Fs_.js} +3 -3
- package/dist/core/{LinearWipe-gwLhEveK.js → LinearWipe-PZcYib77.js} +2 -2
- package/dist/core/{LiquidMetal-D0sgLjcd.js → LiquidMetal-cUxfJdju.js} +5 -5
- package/dist/core/{Liquify-h08a8S-C.js → Liquify-B1o-_MJZ.js} +2 -2
- package/dist/core/{MagneticFilings-BlNWPVwS.js → MagneticFilings-B1Qvnw6t.js} +2 -2
- package/dist/core/{Marble-bps2lOWc.js → Marble-CD5fqEce.js} +3 -3
- package/dist/core/{Mirror-8miSUAyZ.js → Mirror-QJoYnzu6.js} +2 -2
- package/dist/core/{MultiPointGradient-C-9_Q6CM.js → MultiPointGradient-CLRPS8u7.js} +2 -2
- package/dist/core/{Neon-RDh1tAjH.js → Neon-DAPbLlBN.js} +4 -4
- package/dist/core/{NoiseDissolve-DjlWGdUc.js → NoiseDissolve-jdMIvdYS.js} +2 -2
- package/dist/core/{ObjectTracker-DW4aEBRv.js → ObjectTracker-BD_l_g6R.js} +3 -3
- package/dist/core/{PagePeel-JsbScYi4.js → PagePeel-YyWAE0am.js} +1 -1
- package/dist/core/{Paper-BGTU0GOF.js → Paper-DOFhG3gq.js} +1 -1
- package/dist/core/{Parallelogram-RC3MxzlN.js → Parallelogram-CKlvs9a_.js} +2 -2
- package/dist/core/{ParticleField-XypD7Eru.js → ParticleField-R--x794f.js} +1 -1
- package/dist/core/{ParticleFlow-DBw7m9C6.js → ParticleFlow-DY8g2n2d.js} +2 -2
- package/dist/core/{Particles-CvpZvfe3.js → Particles-D6-MCj-7.js} +3 -3
- package/dist/core/{PerlinNoise-CHVaarmz.js → PerlinNoise-DKBJst5k.js} +3 -3
- package/dist/core/{Perspective-zyCZAb3_.js → Perspective-DH5aV7fh.js} +2 -2
- package/dist/core/{PixelSort-B-zefB9S.js → PixelSort-DRd4GE4_.js} +1 -1
- package/dist/core/{PixelThrow-BZ6erf3G.js → PixelThrow-CRizzpOr.js} +2 -2
- package/dist/core/{Pixelate-D1e7buDQ.js → Pixelate-DgPtCErp.js} +1 -1
- package/dist/core/{Plasma-CBrx8Xu-.js → Plasma-8zXLjhIr.js} +3 -3
- package/dist/core/{Plastic-CcS4iAJM.js → Plastic-Dv-N6_Nv.js} +5 -5
- package/dist/core/{PolarCoordinates-B9SuYLgF.js → PolarCoordinates-lw0yBeJq.js} +2 -2
- package/dist/core/{Polygon-N0l1KfIO.js → Polygon-DQxmxfqr.js} +2 -2
- package/dist/core/{Posterize-u2et79Pv.js → Posterize-C4qpmou-.js} +1 -1
- package/dist/core/{Prism-BnDsPBcD.js → Prism-C0qW3WgL.js} +3 -3
- package/dist/core/{ProgressiveBlur-D9FiTJQy.js → ProgressiveBlur-C_xtFzmP.js} +2 -2
- package/dist/core/{RadialGradient-C4oB78ya.js → RadialGradient-DetBcKps.js} +3 -3
- package/dist/core/{RadialWipe-Dzb7i6wy.js → RadialWipe-Cmv05uxE.js} +2 -2
- package/dist/core/{RandomBars-DO9j43mN.js → RandomBars-CrPfWF8l.js} +2 -2
- package/dist/core/{ReactionDiffusion-DG1NSPhM.js → ReactionDiffusion-Dc_uVKMg.js} +2 -2
- package/dist/core/{RectangularCoordinates-Ck1gXdGx.js → RectangularCoordinates-C1sbpWlI.js} +2 -2
- package/dist/core/{ReflectivePlane-DFQDgLYC.js → ReflectivePlane-DyTDDfvN.js} +2 -2
- package/dist/core/{Repeater-CT35_BhW.js → Repeater-CzvIt5Gw.js} +2 -2
- package/dist/core/{Ring-DywDgKDv.js → Ring-6gd4orX0.js} +2 -2
- package/dist/core/{RippleWipe-ePWlg-DT.js → RippleWipe-BU-dDvBK.js} +2 -2
- package/dist/core/{Ripples-fTSMeqiE.js → Ripples-D7Y__Ls8.js} +3 -3
- package/dist/core/{RoundedRect-B0lxuFfM.js → RoundedRect-DMzr6z4F.js} +2 -2
- package/dist/core/{Saturation-ClaD54dk.js → Saturation-BZ5ZmmKo.js} +1 -1
- package/dist/core/{Scratches-D8ZIBZ50.js → Scratches-wRRWI1-5.js} +3 -3
- package/dist/core/{Sharpness-CsnT4s1o.js → Sharpness-BQu_GeV6.js} +1 -1
- package/dist/core/{Shatter-D_V7GBel.js → Shatter-HTHPxq07.js} +2 -2
- package/dist/core/{SimplexNoise-tI2G3Wzn.js → SimplexNoise-arMv2IxX.js} +3 -3
- package/dist/core/{SineWave-BGsYyEFg.js → SineWave-crFYxXPS.js} +3 -3
- package/dist/core/{SliceWipe-s4pWdINK.js → SliceWipe-D-Rnm4ce.js} +1 -1
- package/dist/core/{Smoke-C3SLe_rD.js → Smoke-Cyjm_hFb.js} +3 -3
- package/dist/core/{SmokeFill-BuKZtbX8.js → SmokeFill-CMBAFeM8.js} +4 -4
- package/dist/core/{SmokeFlow-5fnVH2a9.js → SmokeFlow-DfytXLC4.js} +3 -3
- package/dist/core/{Solarize-TP85IPV7.js → Solarize-BNuZoWV5.js} +1 -1
- package/dist/core/{SolidColor-16e4q89i.js → SolidColor-DB8l6xRl.js} +1 -1
- package/dist/core/{Spherize-C4qsnql6.js → Spherize-LIfupaEj.js} +2 -2
- package/dist/core/{Spiral-rPHDFACm.js → Spiral-B-Kz6zOG.js} +3 -3
- package/dist/core/{Star-BDFhZWLo.js → Star-Bxi6VOuZ.js} +2 -2
- package/dist/core/{Stone-CCXo9IgA.js → Stone-CrdhdOWf.js} +2 -2
- package/dist/core/{Strands-DCzYUsCX.js → Strands-CgOVvjKk.js} +3 -3
- package/dist/core/{Stretch-CjhYXAth.js → Stretch-CWpqkWdT.js} +2 -2
- package/dist/core/{Stripes-CN2TFWGw.js → Stripes-DnmkVdJi.js} +3 -3
- package/dist/core/{StudioBackground-I_XxtKjr.js → StudioBackground-BR7HA0ot.js} +3 -3
- package/dist/core/{SunBurst-CGQkdsXl.js → SunBurst-2tbvTvoR.js} +3 -3
- package/dist/core/{Surface3D-CpCPTs0u.js → Surface3D-BDN9t6UU.js} +2 -2
- package/dist/core/{Swirl-BCnlG3G8.js → Swirl-BO63keY-.js} +3 -3
- package/dist/core/{Teardrop-DX-YZkNC.js → Teardrop-Cj9wbWNj.js} +2 -2
- package/dist/core/{Text-oI5d7_UD.js → Text-DDpqrXsw.js} +3 -3
- package/dist/core/{ThinFilm-CEYaV4nn.js → ThinFilm-Cfx6eANY.js} +4 -4
- package/dist/core/{TiltShift-C8GluqAm.js → TiltShift-DtDGS05n.js} +2 -2
- package/dist/core/{TimeTrail-CPiSo5Of.js → TimeTrail-CH7CMyxo.js} +2 -2
- package/dist/core/{Tint-NA7BO-Qk.js → Tint-RTSV6Aiu.js} +2 -2
- package/dist/core/{Trapezoid-BOGSQvW5.js → Trapezoid-B8YUl-8U.js} +2 -2
- package/dist/core/{TriangularGrid-Zx3I4CqA.js → TriangularGrid-B_P_Bn6J.js} +3 -3
- package/dist/core/{Tritone-Bl69W4Y4.js → Tritone-zbDA_LBO.js} +2 -2
- package/dist/core/{Truchet-RJI0-v6x.js → Truchet-QdRvWfkQ.js} +2 -2
- package/dist/core/{Twirl-CrIawDs2.js → Twirl-M1ylLxnB.js} +2 -2
- package/dist/core/{VHS-B12KbScc.js → VHS-BbpH5MH8.js} +1 -1
- package/dist/core/{VenetianBlinds-CGfPlhGd.js → VenetianBlinds-DyBouRcb.js} +2 -2
- package/dist/core/{Vesica-DekjxkHL.js → Vesica-DYkOtRW9.js} +2 -2
- package/dist/core/{Vibrance-DKKduAD8.js → Vibrance-DYCb_3Vb.js} +1 -1
- package/dist/core/{VideoTexture-1xg_a680.js → VideoTexture-B5QB_7wK.js} +1 -1
- package/dist/core/{Vignette-CDRCMNb2.js → Vignette-CWNEqMe7.js} +2 -2
- package/dist/core/{Voronoi-EWj3WFqv.js → Voronoi-DJIf5qyN.js} +3 -3
- package/dist/core/{Water-BdGrOEuE.js → Water-D7FpFPfD.js} +5 -5
- package/dist/core/{Watercolor-BGIcnGZu.js → Watercolor-B4bOV2pY.js} +2 -2
- package/dist/core/{WaveDistortion-BNlrOaur.js → WaveDistortion-C9K0iLOy.js} +3 -3
- package/dist/core/{WaveletNoise-Jv-694xX.js → WaveletNoise-MxVl5SGH.js} +3 -3
- package/dist/core/{Weave-HNS6xvOs.js → Weave-DMvmkoDF.js} +2 -2
- package/dist/core/{WebcamTexture-DVKxGpWI.js → WebcamTexture-ylP8AAV1.js} +3 -2
- package/dist/core/{Wool-D7uM0JRs.js → Wool-DKuYNXvU.js} +2 -2
- package/dist/core/{WorleyNoise-DsDWmRCp.js → WorleyNoise-C-8TphM9.js} +3 -3
- package/dist/core/{ZoomBlur-S2GfQojf.js → ZoomBlur-BxPekTQP.js} +2 -2
- package/dist/core/{coords-0A7CojvN.js → coords-CLqRuQwC.js} +8 -3
- package/dist/core/{glass-BjUqcmHP.js → glass-BLc74dQi.js} +1 -1
- package/dist/core/gpu/composer.d.ts.map +1 -1
- package/dist/core/gpu/index.d.ts +22 -3
- package/dist/core/gpu/index.d.ts.map +1 -1
- package/dist/core/gpu/kit/sdf.d.ts.map +1 -1
- package/dist/core/gpu/passManager.d.ts +5 -1
- package/dist/core/gpu/passManager.d.ts.map +1 -1
- package/dist/core/gpu/porters.d.ts +1 -0
- package/dist/core/gpu/porters.d.ts.map +1 -1
- package/dist/core/gpu/root.d.ts +26 -4
- package/dist/core/gpu/root.d.ts.map +1 -1
- package/dist/core/gpu/support.d.ts +119 -0
- package/dist/core/gpu/support.d.ts.map +1 -0
- package/dist/core/gpu/uniformStore.d.ts.map +1 -1
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +450 -316
- package/dist/core/{noiseColor-w3B94vmT.js → noiseColor-CFYtKwDd.js} +2 -2
- package/dist/core/{porters-B1jqpcE3.js → porters-u50QU6Yv.js} +2 -2
- package/dist/core/presetRenderer.d.ts +13 -1
- package/dist/core/presetRenderer.d.ts.map +1 -1
- package/dist/core/registry.js +199 -198
- package/dist/core/shaderRegistry-QNzuz_fH.js +425 -0
- package/dist/core/shaders/AngularBlur/index.js +5 -4
- package/dist/core/shaders/Arc/index.js +5 -4
- package/dist/core/shaders/Ascii/index.js +5 -4
- package/dist/core/shaders/Aurora/index.js +5 -4
- package/dist/core/shaders/BarShift/index.js +5 -4
- package/dist/core/shaders/BarnDoors/index.js +5 -4
- package/dist/core/shaders/Beam/index.js +5 -4
- package/dist/core/shaders/Bend/index.js +5 -4
- package/dist/core/shaders/Blob/index.js +5 -4
- package/dist/core/shaders/BlockDissolve/index.js +5 -4
- package/dist/core/shaders/BlockNoise/index.js +6 -5
- package/dist/core/shaders/BlueNoise/index.js +6 -5
- package/dist/core/shaders/Blur/index.js +5 -4
- package/dist/core/shaders/Boids/index.js +5 -4
- package/dist/core/shaders/BokehBlur/index.js +5 -4
- package/dist/core/shaders/BrickPattern/index.js +5 -4
- package/dist/core/shaders/BrightnessContrast/index.js +5 -4
- package/dist/core/shaders/BrushedMetal/index.js +7 -6
- package/dist/core/shaders/Bulge/index.js +5 -4
- package/dist/core/shaders/CRTScreen/index.js +5 -4
- package/dist/core/shaders/CarbonFiber/index.js +7 -6
- package/dist/core/shaders/Chalkboard/index.js +5 -4
- package/dist/core/shaders/ChannelBlur/index.js +5 -4
- package/dist/core/shaders/CheckerWipe/index.js +5 -4
- package/dist/core/shaders/Checkerboard/index.js +5 -4
- package/dist/core/shaders/Chevron/index.js +5 -4
- package/dist/core/shaders/ChromaFlow/index.js +5 -4
- package/dist/core/shaders/ChromaticAberration/index.js +5 -4
- package/dist/core/shaders/Circle/index.js +5 -4
- package/dist/core/shaders/ColorWheel/index.js +5 -4
- package/dist/core/shaders/CompressionArtifacts/index.js +5 -4
- package/dist/core/shaders/ConcentricSpin/index.js +5 -4
- package/dist/core/shaders/ConicGradient/index.js +5 -4
- package/dist/core/shaders/ContourLines/index.js +5 -4
- package/dist/core/shaders/CornerPin/index.js +5 -4
- package/dist/core/shaders/Crescent/index.js +5 -4
- package/dist/core/shaders/Cross/index.js +5 -4
- package/dist/core/shaders/Crystal/index.js +7 -6
- package/dist/core/shaders/CurlNoise/index.js +6 -5
- package/dist/core/shaders/CursorRipples/index.js +5 -4
- package/dist/core/shaders/CursorTrail/index.js +5 -4
- package/dist/core/shaders/DataMosh/index.js +5 -4
- package/dist/core/shaders/DiamondGradient/index.js +5 -4
- package/dist/core/shaders/DiamondWipe/index.js +5 -4
- package/dist/core/shaders/DiffuseBlur/index.js +5 -4
- package/dist/core/shaders/DisplacementMap/index.js +5 -4
- package/dist/core/shaders/Dither/index.js +5 -4
- package/dist/core/shaders/DotGrid/index.js +5 -4
- package/dist/core/shaders/DropShadow/index.js +5 -4
- package/dist/core/shaders/Duotone/index.js +5 -4
- package/dist/core/shaders/Ellipse/index.js +5 -4
- package/dist/core/shaders/Emboss/index.js +7 -6
- package/dist/core/shaders/Engraving/index.js +5 -4
- package/dist/core/shaders/ErosionNoise/index.js +6 -5
- package/dist/core/shaders/Exposure/index.js +5 -4
- package/dist/core/shaders/FallingLines/index.js +5 -4
- package/dist/core/shaders/FilmGrain/index.js +5 -4
- package/dist/core/shaders/FilmStock/index.js +5 -4
- package/dist/core/shaders/Flip/index.js +5 -4
- package/dist/core/shaders/FloatingParticles/index.js +5 -4
- package/dist/core/shaders/FlowField/index.js +5 -4
- package/dist/core/shaders/Flower/index.js +5 -4
- package/dist/core/shaders/FlowingGradient/index.js +5 -4
- package/dist/core/shaders/FlutedGlass/index.js +5 -4
- package/dist/core/shaders/Fog/index.js +5 -4
- package/dist/core/shaders/Form3D/index.js +5 -4
- package/dist/core/shaders/FractalNoise/index.js +5 -4
- package/dist/core/shaders/Frost/index.js +7 -6
- package/dist/core/shaders/GaborNoise/index.js +6 -5
- package/dist/core/shaders/Glass/index.js +7 -6
- package/dist/core/shaders/GlassTiles/index.js +5 -4
- package/dist/core/shaders/Glitch/index.js +5 -4
- package/dist/core/shaders/Glow/index.js +5 -4
- package/dist/core/shaders/Godrays/index.js +5 -4
- package/dist/core/shaders/Goo/index.js +7 -6
- package/dist/core/shaders/GradientMap/index.js +5 -4
- package/dist/core/shaders/Grayscale/index.js +5 -4
- package/dist/core/shaders/Grid/index.js +5 -4
- package/dist/core/shaders/GridDistortion/index.js +5 -4
- package/dist/core/shaders/Group/index.js +5 -4
- package/dist/core/shaders/HTMLInCanvas/index.js +5 -4
- package/dist/core/shaders/Halftone/index.js +5 -4
- package/dist/core/shaders/Heart/index.js +5 -4
- package/dist/core/shaders/Heatmap/index.js +7 -6
- package/dist/core/shaders/HexGrid/index.js +5 -4
- package/dist/core/shaders/Hologram/index.js +7 -6
- package/dist/core/shaders/Holographic/index.js +7 -6
- package/dist/core/shaders/HueShift/index.js +5 -4
- package/dist/core/shaders/ImageTexture/index.js +5 -4
- package/dist/core/shaders/InkFlow/index.js +5 -4
- package/dist/core/shaders/Invert/index.js +5 -4
- package/dist/core/shaders/IrisWipe/index.js +5 -4
- package/dist/core/shaders/IsometricCubes/index.js +5 -4
- package/dist/core/shaders/Kaleidoscope/index.js +5 -4
- package/dist/core/shaders/KeyFrames/index.js +5 -4
- package/dist/core/shaders/LensFlare/index.js +5 -4
- package/dist/core/shaders/LightEdge/index.js +7 -6
- package/dist/core/shaders/LightLeak/index.js +5 -4
- package/dist/core/shaders/LinearBlur/index.js +5 -4
- package/dist/core/shaders/LinearGradient/index.js +5 -4
- package/dist/core/shaders/LinearWipe/index.js +5 -4
- package/dist/core/shaders/LiquidMetal/index.js +7 -6
- package/dist/core/shaders/Liquify/index.js +5 -4
- package/dist/core/shaders/MagneticFilings/index.js +5 -4
- package/dist/core/shaders/Marble/index.js +5 -4
- package/dist/core/shaders/Mirror/index.js +5 -4
- package/dist/core/shaders/MultiPointGradient/index.js +5 -4
- package/dist/core/shaders/Neon/index.js +6 -5
- package/dist/core/shaders/NoiseDissolve/index.js +5 -4
- package/dist/core/shaders/ObjectTracker/index.js +6 -5
- package/dist/core/shaders/PagePeel/index.js +5 -4
- package/dist/core/shaders/Paper/index.js +5 -4
- package/dist/core/shaders/Parallelogram/index.js +5 -4
- package/dist/core/shaders/ParticleField/index.js +5 -4
- package/dist/core/shaders/ParticleFlow/index.js +5 -4
- package/dist/core/shaders/Particles/index.js +6 -5
- package/dist/core/shaders/PerlinNoise/index.js +6 -5
- package/dist/core/shaders/Perspective/index.js +5 -4
- package/dist/core/shaders/PixelSort/index.js +5 -4
- package/dist/core/shaders/PixelThrow/index.js +5 -4
- package/dist/core/shaders/Pixelate/index.js +5 -4
- package/dist/core/shaders/Plasma/index.js +5 -4
- package/dist/core/shaders/Plastic/index.js +7 -6
- package/dist/core/shaders/PolarCoordinates/index.js +5 -4
- package/dist/core/shaders/Polygon/index.js +5 -4
- package/dist/core/shaders/Posterize/index.js +5 -4
- package/dist/core/shaders/Prism/index.js +5 -4
- package/dist/core/shaders/ProgressiveBlur/index.js +5 -4
- package/dist/core/shaders/RadialGradient/index.js +5 -4
- package/dist/core/shaders/RadialWipe/index.js +5 -4
- package/dist/core/shaders/RandomBars/index.js +5 -4
- package/dist/core/shaders/ReactionDiffusion/index.js +5 -4
- package/dist/core/shaders/RectangularCoordinates/index.js +5 -4
- package/dist/core/shaders/ReflectivePlane/index.js +5 -4
- package/dist/core/shaders/Repeater/index.js +5 -4
- package/dist/core/shaders/Ring/index.js +5 -4
- package/dist/core/shaders/RippleWipe/index.js +5 -4
- package/dist/core/shaders/Ripples/index.js +5 -4
- package/dist/core/shaders/RoundedRect/index.js +5 -4
- package/dist/core/shaders/Saturation/index.js +5 -4
- package/dist/core/shaders/Scratches/index.js +6 -5
- package/dist/core/shaders/Sharpness/index.js +5 -4
- package/dist/core/shaders/Shatter/index.js +5 -4
- package/dist/core/shaders/SimplexNoise/index.js +5 -4
- package/dist/core/shaders/SineWave/index.js +5 -4
- package/dist/core/shaders/SliceWipe/index.js +5 -4
- package/dist/core/shaders/Smoke/index.js +5 -4
- package/dist/core/shaders/SmokeFill/index.js +7 -6
- package/dist/core/shaders/SmokeFlow/index.js +5 -4
- package/dist/core/shaders/Solarize/index.js +5 -4
- package/dist/core/shaders/SolidColor/index.js +2 -2
- package/dist/core/shaders/Spherize/index.js +5 -4
- package/dist/core/shaders/Spiral/index.js +5 -4
- package/dist/core/shaders/Star/index.js +5 -4
- package/dist/core/shaders/Stone/index.js +4 -3
- package/dist/core/shaders/Strands/index.js +5 -4
- package/dist/core/shaders/Stretch/index.js +5 -4
- package/dist/core/shaders/Stripes/index.js +5 -4
- package/dist/core/shaders/StudioBackground/index.js +5 -4
- package/dist/core/shaders/SunBurst/index.js +5 -4
- package/dist/core/shaders/Surface3D/index.js +5 -4
- package/dist/core/shaders/Swirl/index.js +5 -4
- package/dist/core/shaders/Teardrop/index.js +5 -4
- package/dist/core/shaders/Text/index.js +6 -5
- package/dist/core/shaders/ThinFilm/index.js +6 -5
- package/dist/core/shaders/TiltShift/index.js +5 -4
- package/dist/core/shaders/TimeTrail/index.js +5 -4
- package/dist/core/shaders/Tint/index.js +5 -4
- package/dist/core/shaders/Trapezoid/index.js +5 -4
- package/dist/core/shaders/TriangularGrid/index.js +5 -4
- package/dist/core/shaders/Tritone/index.js +5 -4
- package/dist/core/shaders/Truchet/index.js +5 -4
- package/dist/core/shaders/Twirl/index.js +5 -4
- package/dist/core/shaders/VHS/index.js +5 -4
- package/dist/core/shaders/VenetianBlinds/index.js +5 -4
- package/dist/core/shaders/Vesica/index.js +5 -4
- package/dist/core/shaders/Vibrance/index.js +5 -4
- package/dist/core/shaders/VideoTexture/index.js +5 -4
- package/dist/core/shaders/Vignette/index.js +5 -4
- package/dist/core/shaders/Voronoi/index.js +5 -4
- package/dist/core/shaders/Water/index.js +7 -6
- package/dist/core/shaders/Watercolor/index.js +5 -4
- package/dist/core/shaders/WaveDistortion/index.js +5 -4
- package/dist/core/shaders/WaveletNoise/index.js +6 -5
- package/dist/core/shaders/Weave/index.js +5 -4
- package/dist/core/shaders/WebcamTexture/index.js +5 -4
- package/dist/core/shaders/Wool/index.js +4 -3
- package/dist/core/shaders/WorleyNoise/index.js +5 -4
- package/dist/core/shaders/ZoomBlur/index.js +5 -4
- package/dist/core/{shapeEffectBounds-DRyn6AvG.js → shapeEffectBounds-DIjA_-15.js} +1 -1
- package/dist/core/support-6QRFK3xB.js +74 -0
- package/dist/core/telemetry/collector.d.ts.map +1 -1
- package/dist/core/telemetry/index.js +6 -5
- package/dist/core/utilities/transformations/index.js +1 -1
- package/dist/js/bundle.js +84 -84
- package/dist/js/createShader.d.ts.map +1 -1
- package/dist/js/createShader.js +43 -13
- package/dist/js/createSharedDevice.d.ts +11 -9
- package/dist/js/createSharedDevice.d.ts.map +1 -1
- package/dist/js/createSharedDevice.js +2 -1
- package/dist/js/index.d.ts +2 -0
- package/dist/js/index.d.ts.map +1 -1
- package/dist/js/index.js +2 -1
- package/dist/js/types.d.ts +40 -10
- package/dist/js/types.d.ts.map +1 -1
- package/dist/react/Shader.js +27 -11
- package/dist/react/bundle.js +79 -79
- package/dist/react/engine/Shader.d.ts +7 -0
- package/dist/react/engine/Shader.d.ts.map +1 -1
- package/dist/react/index.d.ts +2 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +2 -1
- package/dist/solid/engine/Preview.js +1 -0
- package/dist/solid/engine/Shader.d.ts +7 -0
- package/dist/solid/engine/Shader.d.ts.map +1 -1
- package/dist/solid/engine/Shader.js +29 -10
- package/dist/solid/index.d.ts +2 -0
- package/dist/solid/index.d.ts.map +1 -1
- package/dist/solid/index.js +6 -1
- package/dist/svelte/engine/Shader.svelte.d.ts +7 -0
- package/dist/svelte/index.d.ts +2 -0
- package/dist/svelte/index.js +27 -11
- package/dist/svelte/source/engine/Shader.svelte +49 -13
- package/dist/svelte/source/index.js +2 -0
- package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +41 -24
- package/dist/vue/engine/Shader.vue.d.ts +9 -1
- package/dist/vue/engine/Shader.vue.d.ts.map +1 -1
- package/dist/vue/index.d.ts +2 -0
- package/dist/vue/index.d.ts.map +1 -1
- package/dist/vue/index.js +2 -1
- package/package.json +1 -13
- package/dist/core/shaderRegistry-BrbiIqjD.js +0 -425
- package/dist/pixi/createShaderSprite.d.ts +0 -54
- package/dist/pixi/createShaderSprite.d.ts.map +0 -1
- package/dist/pixi/index.d.ts +0 -20
- package/dist/pixi/index.d.ts.map +0 -1
- package/dist/pixi/index.js +0 -153
- /package/dist/core/{fonts-BLmvxkGd.js → fonts-BtGjHq1w.js} +0 -0
- /package/dist/core/{noiseStylize-4za6Obes.js → noiseStylize-BsZQT7ig.js} +0 -0
- /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,
|
|
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"}
|
package/dist/js/createShader.js
CHANGED
|
@@ -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
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
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
|
-
|
|
134
|
-
|
|
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.
|
|
183
|
+
state.telemetryCollector = startTelemetry(renderer, "3.0.444", 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
|
|
3
|
-
*
|
|
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
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
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":"
|
|
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
|
-
|
|
12
|
+
debugWarn("[shaders] createSharedDevice failed; callers should fall back to per-instance device:", err);
|
|
12
13
|
return null;
|
|
13
14
|
}
|
|
14
15
|
}
|
package/dist/js/index.d.ts
CHANGED
|
@@ -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
|
package/dist/js/index.d.ts.map
CHANGED
|
@@ -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
|
-
|
|
4
|
+
import { getWebGPUSupport, isShadersDebug, isWebGPUSupported, setShadersDebug } from "../core/index.js";
|
|
5
|
+
export { createPreview, createShader, createSharedDevice, getWebGPUSupport, isShadersDebug, isWebGPUSupported, setShadersDebug };
|
package/dist/js/types.d.ts
CHANGED
|
@@ -7,17 +7,37 @@ export interface ShaderOptions {
|
|
|
7
7
|
isPreview?: boolean;
|
|
8
8
|
onReady?: () => void;
|
|
9
9
|
/**
|
|
10
|
-
* Fires when
|
|
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
|
-
*
|
|
20
|
-
*
|
|
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.
|
package/dist/js/types.d.ts.map
CHANGED
|
@@ -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
|
|
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"}
|
package/dist/react/Shader.js
CHANGED
|
@@ -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.
|
|
96
|
+
telemetryCollectorRef.current = startTelemetry(rendererRef.current, "3.0.444", 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
|
-
|
|
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()
|
|
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()
|
|
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()
|
|
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()
|
|
217
|
+
initializeRenderer();
|
|
202
218
|
} catch (err) {
|
|
203
219
|
console.error("[Shader] Error updating toneMapping:", err);
|
|
204
220
|
}
|