shaders 3.0.453 → 3.1.455
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-B0m-LKoD.js → AngularBlur-CIw_xeFr.js} +25 -31
- package/dist/core/Arc-Dh0gjBrJ.js +183 -0
- package/dist/core/{Ascii-BiFuRRQ1.js → Ascii-CUk527uY.js} +34 -46
- package/dist/core/{Aurora-B35I8qRz.js → Aurora-CTWNhlNr.js} +14 -15
- package/dist/core/{BarShift-C_waFkRO.js → BarShift-BrOamln6.js} +24 -122
- package/dist/core/BarnDoors-D_lVAMPJ.js +170 -0
- package/dist/core/{Beam-BPBmQMGD.js → Beam-CgpfMTUq.js} +45 -461
- package/dist/core/{Bend-Bq1Qlhq4.js → Bend-CRuu6NuH.js} +13 -57
- package/dist/core/{Blob-BtInePsq.js → Blob-1mhEIcv5.js} +3 -3
- package/dist/core/BlockDissolve-DwWPjla0.js +178 -0
- package/dist/core/{BlockNoise-BfDNfyBP.js → BlockNoise-BMt760_p.js} +36 -113
- package/dist/core/{BlueNoise-CNLIGPMW.js → BlueNoise-Cfo_HthN.js} +24 -46
- package/dist/core/Blur-Bc8evwsz.js +428 -0
- package/dist/core/{Boids-D51ZdvH0.js → Boids-CtvT1VsV.js} +105 -427
- package/dist/core/{BokehBlur-DO4V8nZ-.js → BokehBlur-CWQm00ut.js} +37 -214
- package/dist/core/{BrickPattern-D21Nqxcj.js → BrickPattern-DomddM0C.js} +89 -335
- package/dist/core/{BrightnessContrast-QxVeVMih.js → BrightnessContrast-Bs8AV0he.js} +16 -15
- package/dist/core/{BrushedMetal-Xq4jMVz1.js → BrushedMetal-BAgNgeo1.js} +342 -1001
- package/dist/core/{Bulge-CdCqTfrp.js → Bulge-CdhRTWSH.js} +13 -71
- package/dist/core/{CRTScreen-D7WSk5fJ.js → CRTScreen-BxnPxDw9.js} +1 -1
- package/dist/core/{CarbonFiber-Dg-XleHg.js → CarbonFiber-mK6eHIpy.js} +281 -935
- package/dist/core/{Chalkboard-B_YRavSR.js → Chalkboard-BizZEHlC.js} +2 -2
- package/dist/core/{ChannelBlur-BmEILWdn.js → ChannelBlur-Oz40DKPZ.js} +15 -39
- package/dist/core/{CheckerWipe-Dbt7TTDK.js → CheckerWipe-yv4dK6n5.js} +83 -211
- package/dist/core/Checkerboard-Ynfnt3oJ.js +158 -0
- package/dist/core/{Chevron-DsJK3THV.js → Chevron-CEwNP2vt.js} +46 -117
- package/dist/core/{ChromaFlow-Bj4rfeWl.js → ChromaFlow-BXw1jQkn.js} +3 -3
- package/dist/core/{ChromaticAberration-C2UtSgN3.js → ChromaticAberration-CWhYEGDU.js} +2 -2
- package/dist/core/{Chrome-CSrC5yk_.js → Chrome-DoPYr4Kd.js} +97 -351
- package/dist/core/Circle-DGvP0Svo.js +267 -0
- package/dist/core/{ColorWheel-C_YLOL93.js → ColorWheel-BCReEdLZ.js} +48 -63
- package/dist/core/{CompressionArtifacts-BXto-pLr.js → CompressionArtifacts-Cm0iOzys.js} +2 -2
- package/dist/core/{ConcentricSpin-1tArUXYX.js → ConcentricSpin-B3GHzoS1.js} +37 -146
- package/dist/core/{ConicGradient-Tw-pg593.js → ConicGradient-C3zzgyV4.js} +25 -143
- package/dist/core/{ContourLines-CBFm0hjl.js → ContourLines-DDzxvg9k.js} +5 -66
- package/dist/core/{CornerPin-BNgPHIHY.js → CornerPin-VFPI_Jzq.js} +9 -54
- package/dist/core/Crescent-DL6EeZZp.js +187 -0
- package/dist/core/Cross-DQIgZt-C.js +188 -0
- package/dist/core/{Crystal-DN2WgBrm.js → Crystal-B9DIgDD7.js} +81 -262
- package/dist/core/{CurlNoise-RsATuC8w.js → CurlNoise-D6kSV8PJ.js} +40 -98
- package/dist/core/{CursorRipples-DbtJtDDl.js → CursorRipples-C1hLNWzZ.js} +63 -60
- package/dist/core/{CursorTrail-yoPFtwk9.js → CursorTrail-CPW8orHG.js} +66 -52
- package/dist/core/{DataMosh-DabFQ-B5.js → DataMosh-CjVK_gxL.js} +23 -56
- package/dist/core/{DiamondGradient-DbaUt2tC.js → DiamondGradient-BkrLPdAd.js} +43 -186
- package/dist/core/{DiamondWipe-Jth0vS7V.js → DiamondWipe-Cscn7Dyy.js} +45 -205
- package/dist/core/{DiffuseBlur-BZxj-iAt.js → DiffuseBlur-DUBfHpUN.js} +8 -11
- package/dist/core/{DisplacementMap-31H7QPQl.js → DisplacementMap-B-cVoGbC.js} +4 -3
- package/dist/core/{Dither-BN-zSZ0l.js → Dither-B4lhnNLA.js} +9 -12
- package/dist/core/{DotGrid-BRDFAkBz.js → DotGrid-CJJXTOk6.js} +78 -355
- package/dist/core/{DropShadow-_lFvglPh.js → DropShadow-B4msUftn.js} +31 -32
- package/dist/core/{Duotone-BhxXqh0S.js → Duotone-DF3dn0kC.js} +11 -8
- package/dist/core/Ellipse-WuGsM7Gr.js +168 -0
- package/dist/core/{Emboss--yOZdnyf.js → Emboss-D5RYAc-U.js} +14 -35
- package/dist/core/{Engraving-B26NgnCE.js → Engraving-DNNHKvIr.js} +12 -12
- package/dist/core/{ErosionNoise-_uC5Hx2q.js → ErosionNoise-w1aTuwY4.js} +35 -98
- package/dist/core/{Exposure-BM3eE3ol.js → Exposure-BSsbosYN.js} +15 -11
- package/dist/core/{FallingLines-BuczyepF.js → FallingLines-C1YT49dj.js} +13 -14
- package/dist/core/{FilmGrain-Dyy76ena.js → FilmGrain-BeZQzxdU.js} +21 -15
- package/dist/core/{FilmStock-mi-H3Ul9.js → FilmStock-Bgn9OyQY.js} +9 -734
- package/dist/core/{Flip-rZzkYscj.js → Flip-DJuox9qR.js} +11 -25
- package/dist/core/{FloatingParticles-BbbTJldX.js → FloatingParticles-Ch5OJjCc.js} +128 -447
- package/dist/core/{FlowField-u0qYoqV2.js → FlowField-Cime_Fqy.js} +6 -5
- package/dist/core/Flower--1qeeCuA.js +187 -0
- package/dist/core/{FlowingGradient-_zyM9KQn.js → FlowingGradient-DL1e3OKu.js} +12 -17
- package/dist/core/{FlutedGlass-C9-K6UQ7.js → FlutedGlass-CqSVa4kd.js} +5 -4
- package/dist/core/Fog-DvOvVKbF.js +2261 -0
- package/dist/core/{Form3D-Dmvpcqp1.js → Form3D-CabM27VZ.js} +152 -838
- package/dist/core/{FractalNoise-C8uudMNt.js → FractalNoise-Bu8FbMYX.js} +57 -321
- package/dist/core/{Frost-DV2zJSAL.js → Frost-BnE3EI6s.js} +77 -170
- package/dist/core/{GaborNoise-Bty1hWmn.js → GaborNoise-BZFyQbDr.js} +36 -99
- package/dist/core/{Glass-CYmFGP1b.js → Glass-DPa3OWjZ.js} +15 -27
- package/dist/core/{GlassTiles-B3vyGos-.js → GlassTiles-B4Y8x78X.js} +3 -2
- package/dist/core/{Glitch-DcjdwJep.js → Glitch-nokyLk8Q.js} +1 -1
- package/dist/core/Glow-C3VfGUb6.js +198 -0
- package/dist/core/{Godrays-lPn_O_W-.js → Godrays-fglKeS0z.js} +37 -72
- package/dist/core/{Goo-DxEB8kMF.js → Goo-BPaUKk1S.js} +13 -42
- package/dist/core/{GradientMap-7G6EOwy8.js → GradientMap-DQ4IbzIx.js} +23 -17
- package/dist/core/{Grayscale-BJz0olll.js → Grayscale-Bpp1Q2KT.js} +9 -11
- package/dist/core/Grid-BneV9T3T.js +684 -0
- package/dist/core/{GridDistortion-CSBRousF.js → GridDistortion-CAKSKhII.js} +8 -53
- package/dist/core/{Group-BSg6a8Ro.js → Group-UvbIuzy-.js} +1 -1
- package/dist/core/{HTMLInCanvas-DnQ0ZY38.js → HTMLInCanvas-CMxSuq5H.js} +16 -27
- package/dist/core/{Halftone-B2C55h6_.js → Halftone-SiFx0wAg.js} +4 -3
- package/dist/core/Heart-DLQnxsbQ.js +144 -0
- package/dist/core/{Heatmap-BdExXQBU.js → Heatmap-Bp0wi8r1.js} +14 -31
- package/dist/core/{HexGrid-B6UygS6q.js → HexGrid-LGx240mZ.js} +82 -486
- package/dist/core/{Hologram-D_eqqb8P.js → Hologram-B-090nzV.js} +14 -48
- package/dist/core/{Holographic-Ctrsya3k.js → Holographic-CSIQUm1_.js} +90 -298
- package/dist/core/{HueShift-CFXxhPpm.js → HueShift-B7l4vcZP.js} +17 -14
- package/dist/core/ImageTexture-D41xKACO.js +58 -0
- package/dist/core/InkFlow-Bd4RXQmm.js +1159 -0
- package/dist/core/{Invert-Bya7lBpK.js → Invert-CEfJB0WN.js} +9 -11
- package/dist/core/IrisWipe-O6dc-Aq2.js +163 -0
- package/dist/core/{IsometricCubes-CC-l8cnR.js → IsometricCubes-BQFwe-5s.js} +106 -473
- package/dist/core/{Kaleidoscope-DhvQTJdp.js → Kaleidoscope-DQFV4-lX.js} +15 -71
- package/dist/core/{KeyFrames-ZTsc7rtN.js → KeyFrames-BjH6gHSf.js} +32 -67
- package/dist/core/{LensDistortion-KiZJXFKC.js → LensDistortion-BcodYk7_.js} +3 -3
- package/dist/core/{LensFlare-D5fr8RPA.js → LensFlare-B4F0dq7O.js} +106 -348
- package/dist/core/{LightEdge-D0NOWDh7.js → LightEdge-l2zPIeMQ.js} +14 -31
- package/dist/core/{LightLeak-DdaidQ1D.js → LightLeak-BSy19CB6.js} +49 -333
- package/dist/core/{Line-B5DIIWBz.js → Line-CRGYWOyW.js} +2 -2
- package/dist/core/{LinearBlur-CyQxSLS2.js → LinearBlur-DGfbbIWb.js} +20 -31
- package/dist/core/{LinearGradient-B8tyawJy.js → LinearGradient-DOWwm0bP.js} +59 -110
- package/dist/core/LinearWipe-0nTDgTcZ.js +162 -0
- package/dist/core/{LiquidMetal-vARkyRL2.js → LiquidMetal-BbyxqZoO.js} +90 -446
- package/dist/core/{Liquify-Djnk6ryT.js → Liquify-Bg2tEc64.js} +10 -54
- package/dist/core/{MagneticFilings-BfTe8-Jn.js → MagneticFilings-5NVqpsrW.js} +123 -416
- package/dist/core/{Marble-3s7VS-tT.js → Marble-CzoJcXvo.js} +14 -15
- package/dist/core/{Mirror-Ck4Hzdd8.js → Mirror-B_2eQT6d.js} +11 -67
- package/dist/core/{MultiPointGradient-CdzqMTN9.js → MultiPointGradient-NJZfFGVb.js} +27 -140
- package/dist/core/{Neon-B8iSfL5s.js → Neon-m8PtEGdE.js} +14 -33
- package/dist/core/{NoiseDissolve-Df70NgHI.js → NoiseDissolve-DxvqR71w.js} +21 -129
- package/dist/core/{ObjectTracker-CFpotAyg.js → ObjectTracker-DlVNN9LJ.js} +41 -51
- package/dist/core/{PagePeel-Bmc4hBhO.js → PagePeel-BZOvdHFV.js} +3 -2
- package/dist/core/{Paper-af7JgKOt.js → Paper-Bn3DETI2.js} +2 -2
- package/dist/core/Parallelogram-a6zB6mY9.js +187 -0
- package/dist/core/{ParticleField-FPUBkJmo.js → ParticleField-CUtlCqxz.js} +172 -385
- package/dist/core/{ParticleFlow-DfdDvN-j.js → ParticleFlow-Ck5Ta_Rj.js} +250 -2572
- package/dist/core/{Particles-DZaTzOZP.js → Particles-rnTAu4Mr.js} +366 -475
- package/dist/core/{PerlinNoise-DPaPG55C.js → PerlinNoise-BUbmE_JA.js} +36 -113
- package/dist/core/{Perspective-DBzb7DC9.js → Perspective-S94umCQn.js} +17 -71
- package/dist/core/{PixelSort-sqoLBmqR.js → PixelSort-CF0-TpU7.js} +2 -2
- package/dist/core/{PixelThrow-arRYRlCO.js → PixelThrow-2WPijuDY.js} +17 -652
- package/dist/core/{Pixelate-Ba_iNPwv.js → Pixelate-BLdO8qAT.js} +1 -1
- package/dist/core/Plasma-DOH9gxWt.js +355 -0
- package/dist/core/{Plastic-C-NBXCG-.js → Plastic-CQNoTl22.js} +86 -271
- package/dist/core/{PolarCoordinates-CjV_EFpN.js → PolarCoordinates-DZNOyHmN.js} +15 -72
- package/dist/core/Polygon-BM3xGxOC.js +231 -0
- package/dist/core/{Posterize-BUt2MAqY.js → Posterize-BJl7Irml.js} +51 -18
- package/dist/core/{Prism-BBSdqnRm.js → Prism-CaJyExNA.js} +3 -3
- package/dist/core/{ProgressiveBlur-CQhyaOwl.js → ProgressiveBlur-B1Ur87dm.js} +56 -368
- package/dist/core/{RadialGradient-BXLBHnCC.js → RadialGradient-C1Fb8TaL.js} +44 -185
- package/dist/core/RadialWipe-CA5xWWPN.js +222 -0
- package/dist/core/RandomBars-B7ZwitL3.js +238 -0
- package/dist/core/{ReactionDiffusion-r1qHYWoB.js → ReactionDiffusion--54drNkY.js} +403 -1270
- package/dist/core/{RectangularCoordinates-CFGiELUv.js → RectangularCoordinates-BEOFurXt.js} +14 -70
- package/dist/core/{ReflectivePlane-BbKUjtUs.js → ReflectivePlane-wERmyiKx.js} +12 -77
- package/dist/core/{Repeater-DZhhgwMr.js → Repeater-Cy8up7cj.js} +2 -2
- package/dist/core/{Ring-DFxV0XzX.js → Ring-Cogdtn-0.js} +19 -134
- package/dist/core/{RippleWipe-DFh-8SmT.js → RippleWipe-fJwyE4vj.js} +24 -273
- package/dist/core/{Ripples-BG24IcNH.js → Ripples-BSHfhVG1.js} +3 -3
- package/dist/core/RoundedRect-D3intNNI.js +188 -0
- package/dist/core/{Saturation-DKbtxVNf.js → Saturation-D42Bfc5P.js} +14 -12
- package/dist/core/{Scratches-C40D6A1_.js → Scratches-Ih3Kx_UW.js} +5 -5
- package/dist/core/{Sharpness-DygCiVsY.js → Sharpness-Dyh6312-.js} +11 -11
- package/dist/core/{Shatter-eVP3Mt9W.js → Shatter-Qc5aMkWj.js} +3 -4
- package/dist/core/{SimplexNoise-HorjLzId.js → SimplexNoise-E7ssgWPN.js} +37 -179
- package/dist/core/{SineWave-CTIhqhO-.js → SineWave-CnPtZLSs.js} +6 -5
- package/dist/core/{SliceWipe-D3yX3CAm.js → SliceWipe-Byb46V6I.js} +15 -25
- package/dist/core/Smoke-5x6IAk2_.js +1265 -0
- package/dist/core/SmokeFill-DOQpTlCv.js +3192 -0
- package/dist/core/SmokeFlow-B4fdM2M-.js +903 -0
- package/dist/core/{Solarize-wvgIpPSb.js → Solarize-BB0bXhP0.js} +15 -15
- package/dist/core/{SolidColor-CQ9bQ-k6.js → SolidColor-D-6N9JmI.js} +1 -1
- package/dist/core/{Spherize-N33ACzeM.js → Spherize-aWpru70e.js} +2 -2
- package/dist/core/{Spiral-NeLWfZ6k.js → Spiral-Dbm2j7mM.js} +5 -4
- package/dist/core/Star-XtB9FBhQ.js +187 -0
- package/dist/core/{Stone-mVzuC5SK.js → Stone-i7v3RIb9.js} +2 -2
- package/dist/core/{Strands-C19HsqO_.js → Strands-BFaZBnNo.js} +6 -5
- package/dist/core/{Stretch-CAGlZjVf.js → Stretch-BKg0gjm4.js} +15 -72
- package/dist/core/{Stripes-DH9wZV3F.js → Stripes-B_SkTR2m.js} +83 -378
- package/dist/core/{StudioBackground-DPsj_N10.js → StudioBackground-CUsUWJ2L.js} +14 -133
- package/dist/core/{SunBurst-D5p0QAnh.js → SunBurst-DiqSzz5A.js} +34 -52
- package/dist/core/{Surface3D-HSAAGomd.js → Surface3D-DxzfMHn2.js} +15 -21
- package/dist/core/{Swirl-C1lH2gAk.js → Swirl-DBxZ6Wud.js} +3 -3
- package/dist/core/Teardrop-CnhwMyQx.js +168 -0
- package/dist/core/{Text-DPjLa6Eh.js → Text-Cb6QJNWo.js} +51 -70
- package/dist/core/{ThinFilm-DhpK-SoR.js → ThinFilm-B7CTONK1.js} +28 -176
- package/dist/core/{TiltShift-e57KIilk.js → TiltShift-DqEFOoJG.js} +62 -368
- package/dist/core/{TimeTrail-CYofyeeE.js → TimeTrail-G_JamlY8.js} +28 -73
- package/dist/core/{Tint-DBM82OkZ.js → Tint-Dj1rSoJ0.js} +14 -21
- package/dist/core/{Trapezoid-DaIBhsop.js → Trapezoid-D2PMU9G3.js} +40 -160
- package/dist/core/{TriangularGrid-CBOVJOcR.js → TriangularGrid-C3DBCmaj.js} +69 -349
- package/dist/core/{Tritone-D6Dur2eo.js → Tritone-DfULv51I.js} +11 -8
- package/dist/core/{Truchet-sunCQd_E.js → Truchet-yjZm8xe3.js} +73 -172
- package/dist/core/{Twirl-D3-3HSuS.js → Twirl-DfRsql00.js} +11 -67
- package/dist/core/{VHS-DtyeGxi8.js → VHS-Z23X9XD6.js} +1 -1
- package/dist/core/VenetianBlinds-CCucT73e.js +188 -0
- package/dist/core/Vesica-BIGpXjWv.js +168 -0
- package/dist/core/{Vibrance-B8gBhQS7.js → Vibrance-CtlvCONz.js} +15 -11
- package/dist/core/VideoTexture-DW6bQduh.js +58 -0
- package/dist/core/{Vignette-yIXlpfCE.js → Vignette-Dz3pPnPR.js} +24 -21
- package/dist/core/Voronoi-5QA-0zme.js +363 -0
- package/dist/core/{Water-uLbQQrt-.js → Water-DlvNrnrU.js} +84 -269
- package/dist/core/{Watercolor-CcZ0fVEu.js → Watercolor-BWx4xdwk.js} +3 -3
- package/dist/core/{WaveDistortion-DasSsVxv.js → WaveDistortion-CRQzZDLP.js} +18 -66
- package/dist/core/{WaveletNoise-DpRWc5Qw.js → WaveletNoise-CZS67VBU.js} +36 -99
- package/dist/core/{Weave-CLGYIcmf.js → Weave-DpwAU5Rn.js} +77 -254
- package/dist/core/WebcamTexture-DauLQjCl.js +130 -0
- package/dist/core/{Wool-uy61uieK.js → Wool-CEaWGZB1.js} +2 -2
- package/dist/core/WorleyNoise-CjRMr7xP.js +558 -0
- package/dist/core/{ZoomBlur-OQP2jw3F.js → ZoomBlur-DgG9JA7a.js} +18 -29
- package/dist/core/aa-C8WSqiNB.js +1094 -0
- package/dist/core/{agents-BVhq_Z2T.js → agents-C_kohsYu.js} +1 -1
- package/dist/core/{bevel-BGAb1fb2.js → bevel-ogqjoZKV.js} +1 -1
- package/dist/core/{blur-cLcFzL4x.js → blur-CZuIxzX6.js} +1782 -3
- package/dist/core/canvasRaster-BB2bNhS7.js +80 -0
- package/dist/core/cells-CM9mfnTr.js +1042 -0
- package/dist/core/cellular-qYnxKdPx.js +1593 -0
- package/dist/core/constants-DoOzbl5b.js +9 -0
- package/dist/core/{sdf-B8rPE1PG.js → device-B0ZwBfOg.js} +107 -6
- package/dist/core/{edges-B7Yet3LV.js → edges-CD7gCAto.js} +665 -1
- package/dist/core/fields-CC0756V2.js +1311 -0
- package/dist/core/geom-90G-d_hc.js +1036 -0
- package/dist/core/{glass-CNFJB2On.js → glass-D8xs_kIG.js} +1 -1
- package/dist/core/gpu/compute.d.ts +80 -9
- package/dist/core/gpu/compute.d.ts.map +1 -1
- package/dist/core/gpu/contract.d.ts +22 -1
- package/dist/core/gpu/contract.d.ts.map +1 -1
- package/dist/core/gpu/index.d.ts.map +1 -1
- package/dist/core/gpu/kit/aa.d.ts +111 -0
- package/dist/core/gpu/kit/aa.d.ts.map +1 -0
- package/dist/core/gpu/kit/blur.d.ts +288 -9
- package/dist/core/gpu/kit/blur.d.ts.map +1 -1
- package/dist/core/gpu/kit/cells.d.ts +136 -0
- package/dist/core/gpu/kit/cells.d.ts.map +1 -0
- package/dist/core/gpu/kit/cellular.d.ts +102 -0
- package/dist/core/gpu/kit/cellular.d.ts.map +1 -0
- package/dist/core/gpu/kit/constants.d.ts +52 -0
- package/dist/core/gpu/kit/constants.d.ts.map +1 -0
- package/dist/core/gpu/kit/effects/index.d.ts +2 -3
- package/dist/core/gpu/kit/effects/index.d.ts.map +1 -1
- package/dist/core/gpu/kit/effects/raymarch3d.d.ts +17 -34
- package/dist/core/gpu/kit/effects/raymarch3d.d.ts.map +1 -1
- package/dist/core/gpu/kit/effects/thinFilm.d.ts +3 -1
- package/dist/core/gpu/kit/effects/thinFilm.d.ts.map +1 -1
- package/dist/core/gpu/kit/fields.d.ts +143 -0
- package/dist/core/gpu/kit/fields.d.ts.map +1 -0
- package/dist/core/gpu/kit/geom.d.ts +129 -0
- package/dist/core/gpu/kit/geom.d.ts.map +1 -0
- package/dist/core/gpu/kit/host/canvasRaster.d.ts +104 -0
- package/dist/core/gpu/kit/host/canvasRaster.d.ts.map +1 -0
- package/dist/core/gpu/kit/host/mediaLifecycle.d.ts +173 -0
- package/dist/core/gpu/kit/host/mediaLifecycle.d.ts.map +1 -0
- package/dist/core/gpu/kit/host/pointer.d.ts +155 -0
- package/dist/core/gpu/kit/host/pointer.d.ts.map +1 -0
- package/dist/core/gpu/kit/index.d.ts +10 -0
- package/dist/core/gpu/kit/index.d.ts.map +1 -1
- package/dist/core/gpu/kit/lightfields.d.ts +114 -0
- package/dist/core/gpu/kit/lightfields.d.ts.map +1 -0
- package/dist/core/gpu/kit/lighting.d.ts +115 -0
- package/dist/core/gpu/kit/lighting.d.ts.map +1 -0
- package/dist/core/gpu/kit/media.d.ts +44 -0
- package/dist/core/gpu/kit/media.d.ts.map +1 -1
- package/dist/core/gpu/kit/noiseColor.d.ts +19 -4
- package/dist/core/gpu/kit/noiseColor.d.ts.map +1 -1
- package/dist/core/gpu/kit/reveal.d.ts +75 -0
- package/dist/core/gpu/kit/reveal.d.ts.map +1 -0
- package/dist/core/gpu/kit/sampling.d.ts +43 -0
- package/dist/core/gpu/kit/sampling.d.ts.map +1 -1
- package/dist/core/gpu/kit/sdf.d.ts +23 -0
- package/dist/core/gpu/kit/sdf.d.ts.map +1 -1
- package/dist/core/gpu/kit/sdf3d.d.ts +54 -1
- package/dist/core/gpu/kit/sdf3d.d.ts.map +1 -1
- package/dist/core/gpu/kit/tone.d.ts +100 -0
- package/dist/core/gpu/kit/tone.d.ts.map +1 -0
- package/dist/core/gpu/porters.d.ts +11 -1
- package/dist/core/gpu/porters.d.ts.map +1 -1
- package/dist/core/gpu/scaffolds/agentSystem.d.ts +244 -0
- package/dist/core/gpu/scaffolds/agentSystem.d.ts.map +1 -0
- package/dist/core/gpu/scaffolds/feedbackSim.d.ts +102 -0
- package/dist/core/gpu/scaffolds/feedbackSim.d.ts.map +1 -0
- package/dist/core/gpu/scaffolds/fluids.d.ts +170 -0
- package/dist/core/gpu/scaffolds/fluids.d.ts.map +1 -0
- package/dist/core/gpu/scaffolds/lateBoundChild.d.ts +51 -0
- package/dist/core/gpu/scaffolds/lateBoundChild.d.ts.map +1 -0
- package/dist/core/gpu/scaffolds/pointwiseFilter.d.ts +77 -0
- package/dist/core/gpu/scaffolds/pointwiseFilter.d.ts.map +1 -0
- package/dist/core/gpu/scaffolds/rttFilter.d.ts +35 -0
- package/dist/core/gpu/scaffolds/rttFilter.d.ts.map +1 -0
- package/dist/core/gpu/scaffolds/sdfShape.d.ts +98 -0
- package/dist/core/gpu/scaffolds/sdfShape.d.ts.map +1 -0
- package/dist/core/gpu/scaffolds/shared.d.ts +16 -0
- package/dist/core/gpu/scaffolds/shared.d.ts.map +1 -0
- package/dist/core/gpu/scaffolds/simShared.d.ts +61 -0
- package/dist/core/gpu/scaffolds/simShared.d.ts.map +1 -0
- package/dist/core/gpu/scaffolds/uvRemapShader.d.ts +134 -0
- package/dist/core/gpu/scaffolds/uvRemapShader.d.ts.map +1 -0
- package/dist/core/index.js +230 -217
- package/dist/core/lightfields-ffHoLyJn.js +1550 -0
- package/dist/core/lighting-D3jc6qOc.js +1270 -0
- package/dist/core/{media-Y-WxQcQD.js → media-fQMXfvXd.js} +31 -2
- package/dist/core/mediaLifecycle-yHZ8w5aj.js +314 -0
- package/dist/core/{noise-B-PI7JUx.js → noise-Bd6IGS0W.js} +1 -1
- package/dist/core/{noiseColor-Cgx-FS2o.js → noiseColor-DRDY44sf.js} +2 -2
- package/dist/core/noiseColor-DYhX5Js1.js +28 -0
- package/dist/core/{noiseStylize-BN5zji1E.js → noiseStylize-CkeVSB9C.js} +2 -2
- package/dist/core/pointer-DGDGF-yO.js +88 -0
- package/dist/core/porters-DUtQounc.js +12220 -0
- package/dist/core/presetRenderer.d.ts.map +1 -1
- package/dist/core/propConfigs-k3hs8KYL.js +190 -0
- package/dist/core/registry.js +222 -212
- package/dist/core/reveal-DhktaT1C.js +1071 -0
- package/dist/core/{shapeEffectBounds-Svfd_R5a.js → sdf3d-CP87OlsQ.js} +18752 -18710
- package/dist/core/shaderRegistry-DLSuwWtO.js +431 -0
- package/dist/core/shaders/AngularBlur/index.d.ts +8 -4
- package/dist/core/shaders/AngularBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/AngularBlur/index.js +7 -5
- package/dist/core/shaders/Arc/index.d.ts +0 -65
- package/dist/core/shaders/Arc/index.d.ts.map +1 -1
- package/dist/core/shaders/Arc/index.js +6 -7
- package/dist/core/shaders/Ascii/index.d.ts.map +1 -1
- package/dist/core/shaders/Ascii/index.js +8 -5
- package/dist/core/shaders/Aurora/index.d.ts.map +1 -1
- package/dist/core/shaders/Aurora/index.js +9 -6
- package/dist/core/shaders/BarShift/index.d.ts +1 -7
- package/dist/core/shaders/BarShift/index.d.ts.map +1 -1
- package/dist/core/shaders/BarShift/index.js +8 -6
- package/dist/core/shaders/BarnDoors/index.d.ts.map +1 -1
- package/dist/core/shaders/BarnDoors/index.js +8 -5
- package/dist/core/shaders/Beam/index.d.ts.map +1 -1
- package/dist/core/shaders/Beam/index.js +9 -5
- package/dist/core/shaders/Bend/index.d.ts +0 -6
- package/dist/core/shaders/Bend/index.d.ts.map +1 -1
- package/dist/core/shaders/Bend/index.js +7 -5
- package/dist/core/shaders/Blob/index.js +6 -5
- package/dist/core/shaders/BlockDissolve/index.d.ts.map +1 -1
- package/dist/core/shaders/BlockDissolve/index.js +9 -6
- package/dist/core/shaders/BlockNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/BlockNoise/index.js +13 -8
- package/dist/core/shaders/BlueNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/BlueNoise/index.js +13 -8
- package/dist/core/shaders/Blur/index.d.ts +6 -6
- package/dist/core/shaders/Blur/index.d.ts.map +1 -1
- package/dist/core/shaders/Blur/index.js +7 -6
- package/dist/core/shaders/Boids/index.d.ts.map +1 -1
- package/dist/core/shaders/Boids/index.js +9 -8
- package/dist/core/shaders/BokehBlur/index.d.ts +16 -16
- package/dist/core/shaders/BokehBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/BokehBlur/index.js +8 -6
- package/dist/core/shaders/BrickPattern/index.d.ts.map +1 -1
- package/dist/core/shaders/BrickPattern/index.js +10 -5
- package/dist/core/shaders/BrightnessContrast/index.d.ts.map +1 -1
- package/dist/core/shaders/BrightnessContrast/index.js +6 -5
- package/dist/core/shaders/BrushedMetal/index.d.ts.map +1 -1
- package/dist/core/shaders/BrushedMetal/index.js +12 -12
- package/dist/core/shaders/Bulge/index.d.ts +2 -16
- package/dist/core/shaders/Bulge/index.d.ts.map +1 -1
- package/dist/core/shaders/Bulge/index.js +6 -5
- package/dist/core/shaders/CRTScreen/index.js +6 -5
- package/dist/core/shaders/CarbonFiber/index.d.ts.map +1 -1
- package/dist/core/shaders/CarbonFiber/index.js +12 -12
- package/dist/core/shaders/Chalkboard/index.js +6 -5
- package/dist/core/shaders/ChannelBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/ChannelBlur/index.js +7 -6
- package/dist/core/shaders/CheckerWipe/index.d.ts.map +1 -1
- package/dist/core/shaders/CheckerWipe/index.js +8 -5
- package/dist/core/shaders/Checkerboard/index.d.ts +0 -2
- package/dist/core/shaders/Checkerboard/index.d.ts.map +1 -1
- package/dist/core/shaders/Checkerboard/index.js +9 -6
- package/dist/core/shaders/Chevron/index.d.ts.map +1 -1
- package/dist/core/shaders/Chevron/index.js +8 -5
- package/dist/core/shaders/ChromaFlow/index.js +6 -6
- package/dist/core/shaders/ChromaticAberration/index.js +6 -5
- package/dist/core/shaders/Chrome/index.d.ts.map +1 -1
- package/dist/core/shaders/Chrome/index.js +12 -12
- package/dist/core/shaders/Circle/index.d.ts +0 -50
- package/dist/core/shaders/Circle/index.d.ts.map +1 -1
- package/dist/core/shaders/Circle/index.js +6 -7
- package/dist/core/shaders/ColorWheel/index.d.ts.map +1 -1
- package/dist/core/shaders/ColorWheel/index.js +8 -5
- package/dist/core/shaders/CompressionArtifacts/index.js +6 -5
- package/dist/core/shaders/ConcentricSpin/index.d.ts +3 -17
- package/dist/core/shaders/ConcentricSpin/index.d.ts.map +1 -1
- package/dist/core/shaders/ConcentricSpin/index.js +8 -6
- package/dist/core/shaders/ConicGradient/index.d.ts.map +1 -1
- package/dist/core/shaders/ConicGradient/index.js +10 -5
- package/dist/core/shaders/ContourLines/index.d.ts +1 -1
- package/dist/core/shaders/ContourLines/index.d.ts.map +1 -1
- package/dist/core/shaders/ContourLines/index.js +7 -5
- package/dist/core/shaders/CornerPin/index.d.ts +0 -6
- package/dist/core/shaders/CornerPin/index.d.ts.map +1 -1
- package/dist/core/shaders/CornerPin/index.js +6 -5
- package/dist/core/shaders/Crescent/index.d.ts +0 -71
- package/dist/core/shaders/Crescent/index.d.ts.map +1 -1
- package/dist/core/shaders/Crescent/index.js +6 -7
- package/dist/core/shaders/Cross/index.d.ts +0 -71
- package/dist/core/shaders/Cross/index.d.ts.map +1 -1
- package/dist/core/shaders/Cross/index.js +6 -7
- package/dist/core/shaders/Crystal/index.d.ts.map +1 -1
- package/dist/core/shaders/Crystal/index.js +11 -11
- package/dist/core/shaders/CurlNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/CurlNoise/index.js +13 -8
- package/dist/core/shaders/CursorRipples/index.d.ts.map +1 -1
- package/dist/core/shaders/CursorRipples/index.js +7 -5
- package/dist/core/shaders/CursorTrail/index.d.ts.map +1 -1
- package/dist/core/shaders/CursorTrail/index.js +7 -5
- package/dist/core/shaders/DataMosh/index.d.ts.map +1 -1
- package/dist/core/shaders/DataMosh/index.js +6 -5
- package/dist/core/shaders/DiamondGradient/index.d.ts.map +1 -1
- package/dist/core/shaders/DiamondGradient/index.js +10 -5
- package/dist/core/shaders/DiamondWipe/index.d.ts.map +1 -1
- package/dist/core/shaders/DiamondWipe/index.js +8 -5
- package/dist/core/shaders/DiffuseBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/DiffuseBlur/index.js +6 -5
- package/dist/core/shaders/DisplacementMap/index.d.ts.map +1 -1
- package/dist/core/shaders/DisplacementMap/index.js +7 -5
- package/dist/core/shaders/Dither/index.d.ts.map +1 -1
- package/dist/core/shaders/Dither/index.js +6 -5
- package/dist/core/shaders/DotGrid/index.d.ts +0 -1
- package/dist/core/shaders/DotGrid/index.d.ts.map +1 -1
- package/dist/core/shaders/DotGrid/index.js +11 -6
- package/dist/core/shaders/DropShadow/index.d.ts.map +1 -1
- package/dist/core/shaders/DropShadow/index.js +8 -5
- package/dist/core/shaders/Duotone/index.d.ts.map +1 -1
- package/dist/core/shaders/Duotone/index.js +6 -5
- package/dist/core/shaders/Ellipse/index.d.ts +0 -65
- package/dist/core/shaders/Ellipse/index.d.ts.map +1 -1
- package/dist/core/shaders/Ellipse/index.js +6 -7
- package/dist/core/shaders/Emboss/index.d.ts.map +1 -1
- package/dist/core/shaders/Emboss/index.js +8 -10
- package/dist/core/shaders/Engraving/index.d.ts.map +1 -1
- package/dist/core/shaders/Engraving/index.js +8 -6
- package/dist/core/shaders/ErosionNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/ErosionNoise/index.js +13 -8
- package/dist/core/shaders/Exposure/index.d.ts.map +1 -1
- package/dist/core/shaders/Exposure/index.js +6 -5
- package/dist/core/shaders/FallingLines/index.d.ts.map +1 -1
- package/dist/core/shaders/FallingLines/index.js +8 -5
- package/dist/core/shaders/FilmGrain/index.d.ts.map +1 -1
- package/dist/core/shaders/FilmGrain/index.js +6 -5
- package/dist/core/shaders/FilmStock/index.d.ts +9 -10
- package/dist/core/shaders/FilmStock/index.d.ts.map +1 -1
- package/dist/core/shaders/FilmStock/index.js +7 -6
- package/dist/core/shaders/Flip/index.d.ts.map +1 -1
- package/dist/core/shaders/Flip/index.js +6 -5
- package/dist/core/shaders/FloatingParticles/index.d.ts.map +1 -1
- package/dist/core/shaders/FloatingParticles/index.js +9 -8
- package/dist/core/shaders/FlowField/index.d.ts.map +1 -1
- package/dist/core/shaders/FlowField/index.js +8 -6
- package/dist/core/shaders/Flower/index.d.ts +0 -71
- package/dist/core/shaders/Flower/index.d.ts.map +1 -1
- package/dist/core/shaders/Flower/index.js +6 -7
- package/dist/core/shaders/FlowingGradient/index.d.ts.map +1 -1
- package/dist/core/shaders/FlowingGradient/index.js +8 -6
- package/dist/core/shaders/FlutedGlass/index.d.ts.map +1 -1
- package/dist/core/shaders/FlutedGlass/index.js +7 -5
- package/dist/core/shaders/Fog/index.d.ts +1 -9
- package/dist/core/shaders/Fog/index.d.ts.map +1 -1
- package/dist/core/shaders/Fog/index.js +8 -5
- package/dist/core/shaders/Form3D/index.d.ts.map +1 -1
- package/dist/core/shaders/Form3D/index.js +7 -5
- package/dist/core/shaders/FractalNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/FractalNoise/index.js +12 -7
- package/dist/core/shaders/Frost/index.d.ts.map +1 -1
- package/dist/core/shaders/Frost/index.js +11 -11
- package/dist/core/shaders/GaborNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/GaborNoise/index.js +13 -8
- package/dist/core/shaders/Glass/index.d.ts.map +1 -1
- package/dist/core/shaders/Glass/index.js +9 -11
- package/dist/core/shaders/GlassTiles/index.d.ts.map +1 -1
- package/dist/core/shaders/GlassTiles/index.js +7 -5
- package/dist/core/shaders/Glitch/index.js +6 -5
- package/dist/core/shaders/Glow/index.d.ts +22 -26
- package/dist/core/shaders/Glow/index.d.ts.map +1 -1
- package/dist/core/shaders/Glow/index.js +7 -6
- package/dist/core/shaders/Godrays/index.d.ts.map +1 -1
- package/dist/core/shaders/Godrays/index.js +9 -5
- package/dist/core/shaders/Goo/index.d.ts.map +1 -1
- package/dist/core/shaders/Goo/index.js +9 -10
- package/dist/core/shaders/GradientMap/index.d.ts.map +1 -1
- package/dist/core/shaders/GradientMap/index.js +7 -5
- package/dist/core/shaders/Grayscale/index.d.ts.map +1 -1
- package/dist/core/shaders/Grayscale/index.js +6 -5
- package/dist/core/shaders/Grid/index.d.ts +0 -1
- package/dist/core/shaders/Grid/index.d.ts.map +1 -1
- package/dist/core/shaders/Grid/index.js +11 -6
- package/dist/core/shaders/GridDistortion/index.d.ts +0 -6
- package/dist/core/shaders/GridDistortion/index.d.ts.map +1 -1
- package/dist/core/shaders/GridDistortion/index.js +6 -5
- package/dist/core/shaders/Group/index.js +6 -5
- package/dist/core/shaders/HTMLInCanvas/index.d.ts.map +1 -1
- package/dist/core/shaders/HTMLInCanvas/index.js +7 -5
- package/dist/core/shaders/Halftone/index.d.ts.map +1 -1
- package/dist/core/shaders/Halftone/index.js +7 -5
- package/dist/core/shaders/Heart/index.d.ts +0 -59
- package/dist/core/shaders/Heart/index.d.ts.map +1 -1
- package/dist/core/shaders/Heart/index.js +6 -7
- package/dist/core/shaders/Heatmap/index.d.ts.map +1 -1
- package/dist/core/shaders/Heatmap/index.js +10 -11
- package/dist/core/shaders/HexGrid/index.d.ts.map +1 -1
- package/dist/core/shaders/HexGrid/index.js +10 -5
- package/dist/core/shaders/Hologram/index.d.ts.map +1 -1
- package/dist/core/shaders/Hologram/index.js +10 -11
- package/dist/core/shaders/Holographic/index.d.ts.map +1 -1
- package/dist/core/shaders/Holographic/index.js +11 -11
- package/dist/core/shaders/HueShift/index.d.ts.map +1 -1
- package/dist/core/shaders/HueShift/index.js +7 -5
- package/dist/core/shaders/ImageTexture/index.d.ts +0 -6
- package/dist/core/shaders/ImageTexture/index.d.ts.map +1 -1
- package/dist/core/shaders/ImageTexture/index.js +6 -7
- package/dist/core/shaders/InkFlow/index.d.ts +1 -9
- package/dist/core/shaders/InkFlow/index.d.ts.map +1 -1
- package/dist/core/shaders/InkFlow/index.js +7 -5
- package/dist/core/shaders/Invert/index.d.ts.map +1 -1
- package/dist/core/shaders/Invert/index.js +6 -5
- package/dist/core/shaders/IrisWipe/index.d.ts.map +1 -1
- package/dist/core/shaders/IrisWipe/index.js +8 -5
- package/dist/core/shaders/IsometricCubes/index.d.ts.map +1 -1
- package/dist/core/shaders/IsometricCubes/index.js +10 -5
- package/dist/core/shaders/Kaleidoscope/index.d.ts +2 -16
- package/dist/core/shaders/Kaleidoscope/index.d.ts.map +1 -1
- package/dist/core/shaders/Kaleidoscope/index.js +7 -5
- package/dist/core/shaders/KeyFrames/index.d.ts.map +1 -1
- package/dist/core/shaders/KeyFrames/index.js +7 -5
- package/dist/core/shaders/LensDistortion/index.js +6 -6
- package/dist/core/shaders/LensFlare/index.d.ts.map +1 -1
- package/dist/core/shaders/LensFlare/index.js +10 -5
- package/dist/core/shaders/LightEdge/index.d.ts.map +1 -1
- package/dist/core/shaders/LightEdge/index.js +10 -11
- package/dist/core/shaders/LightLeak/index.d.ts.map +1 -1
- package/dist/core/shaders/LightLeak/index.js +10 -6
- package/dist/core/shaders/Line/index.js +6 -5
- package/dist/core/shaders/LinearBlur/index.d.ts +2 -1
- package/dist/core/shaders/LinearBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/LinearBlur/index.js +8 -5
- package/dist/core/shaders/LinearGradient/index.d.ts.map +1 -1
- package/dist/core/shaders/LinearGradient/index.js +8 -5
- package/dist/core/shaders/LinearWipe/index.d.ts.map +1 -1
- package/dist/core/shaders/LinearWipe/index.js +8 -5
- package/dist/core/shaders/LiquidMetal/index.d.ts.map +1 -1
- package/dist/core/shaders/LiquidMetal/index.js +12 -12
- package/dist/core/shaders/Liquify/index.d.ts +0 -6
- package/dist/core/shaders/Liquify/index.d.ts.map +1 -1
- package/dist/core/shaders/Liquify/index.js +6 -5
- package/dist/core/shaders/MagneticFilings/index.d.ts.map +1 -1
- package/dist/core/shaders/MagneticFilings/index.js +9 -8
- package/dist/core/shaders/Marble/index.d.ts.map +1 -1
- package/dist/core/shaders/Marble/index.js +9 -6
- package/dist/core/shaders/Mirror/index.d.ts +2 -16
- package/dist/core/shaders/Mirror/index.d.ts.map +1 -1
- package/dist/core/shaders/Mirror/index.js +7 -5
- package/dist/core/shaders/MultiPointGradient/index.d.ts.map +1 -1
- package/dist/core/shaders/MultiPointGradient/index.js +7 -5
- package/dist/core/shaders/Neon/index.d.ts.map +1 -1
- package/dist/core/shaders/Neon/index.js +6 -9
- package/dist/core/shaders/NoiseDissolve/index.d.ts.map +1 -1
- package/dist/core/shaders/NoiseDissolve/index.js +9 -6
- package/dist/core/shaders/ObjectTracker/index.d.ts.map +1 -1
- package/dist/core/shaders/ObjectTracker/index.js +9 -6
- package/dist/core/shaders/PagePeel/index.d.ts.map +1 -1
- package/dist/core/shaders/PagePeel/index.js +7 -5
- package/dist/core/shaders/Paper/index.js +7 -6
- package/dist/core/shaders/Parallelogram/index.d.ts +0 -71
- package/dist/core/shaders/Parallelogram/index.d.ts.map +1 -1
- package/dist/core/shaders/Parallelogram/index.js +6 -7
- package/dist/core/shaders/ParticleField/index.d.ts.map +1 -1
- package/dist/core/shaders/ParticleField/index.js +9 -8
- package/dist/core/shaders/ParticleFlow/index.d.ts +1 -6
- package/dist/core/shaders/ParticleFlow/index.d.ts.map +1 -1
- package/dist/core/shaders/ParticleFlow/index.js +9 -8
- package/dist/core/shaders/Particles/index.d.ts.map +1 -1
- package/dist/core/shaders/Particles/index.js +10 -11
- package/dist/core/shaders/PerlinNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/PerlinNoise/index.js +13 -8
- package/dist/core/shaders/Perspective/index.d.ts +0 -12
- package/dist/core/shaders/Perspective/index.d.ts.map +1 -1
- package/dist/core/shaders/Perspective/index.js +7 -5
- package/dist/core/shaders/PixelSort/index.js +6 -5
- package/dist/core/shaders/PixelThrow/index.d.ts +8 -9
- package/dist/core/shaders/PixelThrow/index.d.ts.map +1 -1
- package/dist/core/shaders/PixelThrow/index.js +6 -6
- package/dist/core/shaders/Pixelate/index.js +6 -5
- package/dist/core/shaders/Plasma/index.d.ts +2 -2
- package/dist/core/shaders/Plasma/index.d.ts.map +1 -1
- package/dist/core/shaders/Plasma/index.js +12 -6
- package/dist/core/shaders/Plastic/index.d.ts.map +1 -1
- package/dist/core/shaders/Plastic/index.js +11 -11
- package/dist/core/shaders/PolarCoordinates/index.d.ts +2 -16
- package/dist/core/shaders/PolarCoordinates/index.d.ts.map +1 -1
- package/dist/core/shaders/PolarCoordinates/index.js +7 -5
- package/dist/core/shaders/Polygon/index.d.ts +0 -71
- package/dist/core/shaders/Polygon/index.d.ts.map +1 -1
- package/dist/core/shaders/Polygon/index.js +6 -7
- package/dist/core/shaders/Posterize/index.d.ts.map +1 -1
- package/dist/core/shaders/Posterize/index.js +6 -5
- package/dist/core/shaders/Prism/index.d.ts +2 -1
- package/dist/core/shaders/Prism/index.d.ts.map +1 -1
- package/dist/core/shaders/Prism/index.js +6 -5
- package/dist/core/shaders/ProgressiveBlur/index.d.ts +16 -16
- package/dist/core/shaders/ProgressiveBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/ProgressiveBlur/index.js +8 -6
- package/dist/core/shaders/RadialGradient/index.d.ts.map +1 -1
- package/dist/core/shaders/RadialGradient/index.js +10 -5
- package/dist/core/shaders/RadialWipe/index.d.ts.map +1 -1
- package/dist/core/shaders/RadialWipe/index.js +8 -5
- package/dist/core/shaders/RandomBars/index.d.ts.map +1 -1
- package/dist/core/shaders/RandomBars/index.js +9 -6
- package/dist/core/shaders/ReactionDiffusion/index.d.ts.map +1 -1
- package/dist/core/shaders/ReactionDiffusion/index.js +8 -5
- package/dist/core/shaders/RectangularCoordinates/index.d.ts +2 -16
- package/dist/core/shaders/RectangularCoordinates/index.d.ts.map +1 -1
- package/dist/core/shaders/RectangularCoordinates/index.js +7 -5
- package/dist/core/shaders/ReflectivePlane/index.d.ts.map +1 -1
- package/dist/core/shaders/ReflectivePlane/index.js +7 -6
- package/dist/core/shaders/Repeater/index.js +6 -5
- package/dist/core/shaders/Ring/index.d.ts +0 -59
- package/dist/core/shaders/Ring/index.d.ts.map +1 -1
- package/dist/core/shaders/Ring/index.js +6 -7
- package/dist/core/shaders/RippleWipe/index.d.ts.map +1 -1
- package/dist/core/shaders/RippleWipe/index.js +8 -5
- package/dist/core/shaders/Ripples/index.js +6 -5
- package/dist/core/shaders/RoundedRect/index.d.ts +0 -71
- package/dist/core/shaders/RoundedRect/index.d.ts.map +1 -1
- package/dist/core/shaders/RoundedRect/index.js +6 -7
- package/dist/core/shaders/Saturation/index.d.ts.map +1 -1
- package/dist/core/shaders/Saturation/index.js +6 -5
- package/dist/core/shaders/Scratches/index.js +10 -8
- package/dist/core/shaders/Sharpness/index.d.ts.map +1 -1
- package/dist/core/shaders/Sharpness/index.js +6 -5
- package/dist/core/shaders/Shatter/index.js +6 -6
- package/dist/core/shaders/SimplexNoise/index.d.ts +0 -18
- package/dist/core/shaders/SimplexNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/SimplexNoise/index.js +13 -7
- package/dist/core/shaders/SineWave/index.d.ts.map +1 -1
- package/dist/core/shaders/SineWave/index.js +7 -5
- package/dist/core/shaders/SliceWipe/index.d.ts.map +1 -1
- package/dist/core/shaders/SliceWipe/index.js +7 -5
- package/dist/core/shaders/Smoke/index.d.ts +1 -9
- package/dist/core/shaders/Smoke/index.d.ts.map +1 -1
- package/dist/core/shaders/Smoke/index.js +7 -5
- package/dist/core/shaders/SmokeFill/index.d.ts +1 -9
- package/dist/core/shaders/SmokeFill/index.d.ts.map +1 -1
- package/dist/core/shaders/SmokeFill/index.js +9 -10
- package/dist/core/shaders/SmokeFlow/index.d.ts +1 -9
- package/dist/core/shaders/SmokeFlow/index.d.ts.map +1 -1
- package/dist/core/shaders/SmokeFlow/index.js +7 -5
- package/dist/core/shaders/Solarize/index.d.ts.map +1 -1
- package/dist/core/shaders/Solarize/index.js +6 -5
- package/dist/core/shaders/SolidColor/index.js +2 -2
- package/dist/core/shaders/Spherize/index.js +6 -5
- package/dist/core/shaders/Spiral/index.d.ts.map +1 -1
- package/dist/core/shaders/Spiral/index.js +7 -5
- package/dist/core/shaders/Star/index.d.ts +0 -71
- package/dist/core/shaders/Star/index.d.ts.map +1 -1
- package/dist/core/shaders/Star/index.js +6 -7
- package/dist/core/shaders/Stone/index.js +4 -4
- package/dist/core/shaders/Strands/index.d.ts.map +1 -1
- package/dist/core/shaders/Strands/index.js +7 -5
- package/dist/core/shaders/Stretch/index.d.ts +2 -16
- package/dist/core/shaders/Stretch/index.d.ts.map +1 -1
- package/dist/core/shaders/Stretch/index.js +7 -5
- package/dist/core/shaders/Stripes/index.d.ts +0 -1
- package/dist/core/shaders/Stripes/index.d.ts.map +1 -1
- package/dist/core/shaders/Stripes/index.js +10 -6
- package/dist/core/shaders/StudioBackground/index.d.ts.map +1 -1
- package/dist/core/shaders/StudioBackground/index.js +9 -5
- package/dist/core/shaders/SunBurst/index.d.ts.map +1 -1
- package/dist/core/shaders/SunBurst/index.js +9 -5
- package/dist/core/shaders/Surface3D/index.d.ts.map +1 -1
- package/dist/core/shaders/Surface3D/index.js +8 -7
- package/dist/core/shaders/Swirl/index.js +6 -5
- package/dist/core/shaders/Teardrop/index.d.ts +0 -65
- package/dist/core/shaders/Teardrop/index.d.ts.map +1 -1
- package/dist/core/shaders/Teardrop/index.js +6 -7
- package/dist/core/shaders/Text/index.d.ts.map +1 -1
- package/dist/core/shaders/Text/index.js +10 -6
- package/dist/core/shaders/ThinFilm/index.d.ts.map +1 -1
- package/dist/core/shaders/ThinFilm/index.js +8 -9
- package/dist/core/shaders/TiltShift/index.d.ts +16 -16
- package/dist/core/shaders/TiltShift/index.d.ts.map +1 -1
- package/dist/core/shaders/TiltShift/index.js +8 -6
- package/dist/core/shaders/TimeTrail/index.d.ts.map +1 -1
- package/dist/core/shaders/TimeTrail/index.js +6 -6
- package/dist/core/shaders/Tint/index.d.ts.map +1 -1
- package/dist/core/shaders/Tint/index.js +6 -5
- package/dist/core/shaders/Trapezoid/index.d.ts +0 -71
- package/dist/core/shaders/Trapezoid/index.d.ts.map +1 -1
- package/dist/core/shaders/Trapezoid/index.js +6 -7
- package/dist/core/shaders/TriangularGrid/index.d.ts.map +1 -1
- package/dist/core/shaders/TriangularGrid/index.js +10 -5
- package/dist/core/shaders/Tritone/index.d.ts.map +1 -1
- package/dist/core/shaders/Tritone/index.js +6 -5
- package/dist/core/shaders/Truchet/index.d.ts.map +1 -1
- package/dist/core/shaders/Truchet/index.js +10 -5
- package/dist/core/shaders/Twirl/index.d.ts +2 -16
- package/dist/core/shaders/Twirl/index.d.ts.map +1 -1
- package/dist/core/shaders/Twirl/index.js +6 -5
- package/dist/core/shaders/VHS/index.js +6 -5
- package/dist/core/shaders/VenetianBlinds/index.d.ts.map +1 -1
- package/dist/core/shaders/VenetianBlinds/index.js +8 -5
- package/dist/core/shaders/Vesica/index.d.ts +0 -65
- package/dist/core/shaders/Vesica/index.d.ts.map +1 -1
- package/dist/core/shaders/Vesica/index.js +6 -7
- package/dist/core/shaders/Vibrance/index.d.ts.map +1 -1
- package/dist/core/shaders/Vibrance/index.js +6 -5
- package/dist/core/shaders/VideoTexture/index.d.ts +0 -25
- package/dist/core/shaders/VideoTexture/index.d.ts.map +1 -1
- package/dist/core/shaders/VideoTexture/index.js +7 -7
- package/dist/core/shaders/Vignette/index.d.ts.map +1 -1
- package/dist/core/shaders/Vignette/index.js +6 -5
- package/dist/core/shaders/Voronoi/index.d.ts.map +1 -1
- package/dist/core/shaders/Voronoi/index.js +11 -5
- package/dist/core/shaders/Water/index.d.ts.map +1 -1
- package/dist/core/shaders/Water/index.js +11 -11
- package/dist/core/shaders/Watercolor/index.js +7 -6
- package/dist/core/shaders/WaveDistortion/index.d.ts +0 -6
- package/dist/core/shaders/WaveDistortion/index.d.ts.map +1 -1
- package/dist/core/shaders/WaveDistortion/index.js +7 -5
- package/dist/core/shaders/WaveletNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/WaveletNoise/index.js +13 -8
- package/dist/core/shaders/Weave/index.d.ts.map +1 -1
- package/dist/core/shaders/Weave/index.js +10 -5
- package/dist/core/shaders/WebcamTexture/index.d.ts +0 -6
- package/dist/core/shaders/WebcamTexture/index.d.ts.map +1 -1
- package/dist/core/shaders/WebcamTexture/index.js +8 -7
- package/dist/core/shaders/Wool/index.js +4 -4
- package/dist/core/shaders/WorleyNoise/index.d.ts +2 -2
- package/dist/core/shaders/WorleyNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/WorleyNoise/index.js +12 -5
- package/dist/core/shaders/ZoomBlur/index.d.ts +2 -1
- package/dist/core/shaders/ZoomBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/ZoomBlur/index.js +7 -5
- package/dist/core/tone-DPUvX6X0.js +705 -0
- package/dist/core/utilities/halfUvProps.d.ts +35 -0
- package/dist/core/utilities/halfUvProps.d.ts.map +1 -0
- package/dist/core/utilities/measure.d.ts.map +1 -1
- package/dist/core/utilities/propConfigs.d.ts +106 -0
- package/dist/core/utilities/propConfigs.d.ts.map +1 -0
- package/dist/core/utilities/transformations/index.js +1 -1
- package/dist/js/bundle.js +176 -176
- package/dist/js/createShader.js +1 -1
- package/dist/react/Shader.js +1 -1
- package/dist/react/bundle.js +176 -176
- package/dist/registry.js +99 -90
- package/dist/solid/engine/Shader.js +1 -1
- package/dist/svelte/index.js +1 -1
- package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
- package/package.json +1 -1
- package/dist/core/Arc-DhhcsMqr.js +0 -331
- package/dist/core/BarnDoors-Cnyfsla8.js +0 -447
- package/dist/core/BlockDissolve-i8V6gmZw.js +0 -365
- package/dist/core/Blur-B8NcZJdr.js +0 -701
- package/dist/core/Checkerboard-BnWdSZLM.js +0 -709
- package/dist/core/Circle-CJ4IbgBH.js +0 -358
- package/dist/core/Crescent-BKcpTzwd.js +0 -335
- package/dist/core/Cross-CDUSIOgx.js +0 -335
- package/dist/core/Ellipse-NdZQjjl7.js +0 -316
- package/dist/core/Flower--rN6c2HY.js +0 -335
- package/dist/core/Fog-2iNe3zZl.js +0 -5667
- package/dist/core/Glow-D_nSsYo1.js +0 -2051
- package/dist/core/Grid-D8ewrixy.js +0 -1346
- package/dist/core/Heart-0eDZ50ZK.js +0 -297
- package/dist/core/ImageTexture-B5oPuXeI.js +0 -183
- package/dist/core/InkFlow-C7l_qlaJ.js +0 -4983
- package/dist/core/IrisWipe-Dg9iiTjF.js +0 -418
- package/dist/core/LinearWipe-D5UkI1cK.js +0 -423
- package/dist/core/Parallelogram-D7bW1gMV.js +0 -335
- package/dist/core/Plasma-zC1y0At6.js +0 -715
- package/dist/core/Polygon-0kVtkdec.js +0 -379
- package/dist/core/RadialWipe-DfJ3dL7p.js +0 -528
- package/dist/core/RandomBars-B-EaAz9c.js +0 -490
- package/dist/core/RoundedRect-B2EDoIqT.js +0 -336
- package/dist/core/Smoke-CFr-A3JD.js +0 -5003
- package/dist/core/SmokeFill-DglhxF4x.js +0 -7118
- package/dist/core/SmokeFlow-CC1tfLRh.js +0 -4610
- package/dist/core/Star-DqkPHXlP.js +0 -335
- package/dist/core/Teardrop-b8XQR6NO.js +0 -316
- package/dist/core/VenetianBlinds-H8OVGxhT.js +0 -459
- package/dist/core/Vesica-C8MrL_up.js +0 -316
- package/dist/core/VideoTexture--U8aiyP1.js +0 -927
- package/dist/core/Voronoi-BW4RE3MQ.js +0 -935
- package/dist/core/WebcamTexture--GTVU-Bm.js +0 -220
- package/dist/core/WorleyNoise-i7i0azT8.js +0 -1667
- package/dist/core/compute-Ax-p6Ubc.js +0 -31
- package/dist/core/dataEncoding-CEmpiitu.js +0 -24
- package/dist/core/device-BODv_4aH.js +0 -10
- package/dist/core/gpu/kit/effects/prism.d.ts +0 -111
- package/dist/core/gpu/kit/effects/prism.d.ts.map +0 -1
- package/dist/core/naturalSize-BPCi_I-Z.js +0 -24
- package/dist/core/noiseColor-BQAO-Rjk.js +0 -103
- package/dist/core/porters-D_xmIPz2.js +0 -991
- package/dist/core/shaderRegistry-DFRVhoj2.js +0 -431
- /package/dist/core/{fonts-DxVn9e-I.js → fonts-ScBvKolx.js} +0 -0
- /package/dist/core/{transformations-C7gn_5rF.js → transformations-B-zNWNdd.js} +0 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { ComponentProps } from '../../types';
|
|
2
|
+
import { Expr, GpuFragmentParams, GpuShaderDefinition } from '../contract';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* A `'use gpu'` body fn plus the name hint it resolves under. The hint LANDS IN THE EMITTED WGSL,
|
|
6
|
+
* so it is part of every shader's snapshot — keep it equal to the exported fn's variable name.
|
|
7
|
+
*/
|
|
8
|
+
export interface FilterBody {
|
|
9
|
+
/** The `tgpu.fn`. Typed `unknown` to match `call`'s signature (no TgpuFn import needed here). */
|
|
10
|
+
fn: unknown;
|
|
11
|
+
hint: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A filter's identity (no-op) condition, driving both the `compileTimeWhen` recompose and the
|
|
15
|
+
* bypass. Declare the identity here rather than hand-rolling the `if` in a fragment: the scaffold
|
|
16
|
+
* applies the right bypass for its alpha convention and adds the map-driver guard below.
|
|
17
|
+
*
|
|
18
|
+
* MAP-DRIVER GUARD (why `props` is required): `propValues` carries a prop's BASE CPU value and is
|
|
19
|
+
* deliberately driver-unaware (`composer.ts propValuesFor` reads the handle mirror). A prop with a
|
|
20
|
+
* MAP driver varies per pixel around that base, so bypassing on the base value would make the map
|
|
21
|
+
* dead. The scaffold therefore refuses the bypass when any listed prop is map-driven
|
|
22
|
+
* (`getMapInfo(prop) !== null`).
|
|
23
|
+
*
|
|
24
|
+
* KNOWN GAP (needs a contract change — `planning/PRIMITIVES_PLAN.md` Phase 12): mouse/auto
|
|
25
|
+
* drivers are NOT detectable from a fragment builder. A prop whose base value is the identity but
|
|
26
|
+
* which is mouse/auto-driven still gets bypassed, so the driver appears dead until the base value
|
|
27
|
+
* changes. This predates the scaffold (Saturation/HueShift/Sharpness shipped with it); the fix is
|
|
28
|
+
* to expose driver presence on `GpuFragmentParams`, at which point this one method covers all
|
|
29
|
+
* consumers at once.
|
|
30
|
+
*/
|
|
31
|
+
export interface FilterIdentity {
|
|
32
|
+
/** Every prop `when` reads. A map driver on any of them disables the bypass. */
|
|
33
|
+
props: string[];
|
|
34
|
+
/** True when the filter is a provable no-op at these CPU values. */
|
|
35
|
+
when: (propValues: Record<string, unknown>) => boolean;
|
|
36
|
+
}
|
|
37
|
+
/** `GpuFragmentParams` narrowed to the post-guard state: the child is present. */
|
|
38
|
+
export interface FilterParams extends GpuFragmentParams {
|
|
39
|
+
childNode: Expr;
|
|
40
|
+
}
|
|
41
|
+
export interface PointwiseFilterConfig<T extends ComponentProps = ComponentProps> extends Omit<GpuShaderDefinition<T>, 'fragment' | 'requiresRTT' | 'requiresChild' | 'uvRemap'> {
|
|
42
|
+
/**
|
|
43
|
+
* The body fn, or a picker reading compile-time `propValues` when the shader has a body PAIR
|
|
44
|
+
* (Tint's plain/preserve-luminosity variants). Only the picked body emits into the WGSL, so the
|
|
45
|
+
* selecting prop MUST be `compileTime: true`.
|
|
46
|
+
*/
|
|
47
|
+
body: FilterBody | ((propValues: Record<string, unknown>) => FilterBody);
|
|
48
|
+
/**
|
|
49
|
+
* The body's arguments AFTER the child colour (which is always first). Gets the whole builder
|
|
50
|
+
* params so a filter can read `ctx` (Vignette's `ctx.uv`/`ctx.aspect`, FilmGrain's viewport)
|
|
51
|
+
* alongside `uniforms`.
|
|
52
|
+
*/
|
|
53
|
+
args?: (params: FilterParams) => Expr[];
|
|
54
|
+
/** Builder-level work on the body's RESULT — colour-space mixes, a palette branch, a tail call. */
|
|
55
|
+
compose?: (result: Expr, params: FilterParams) => Expr;
|
|
56
|
+
/** The no-op condition. Omit for a filter with no identity (Invert, Grayscale, Posterize). */
|
|
57
|
+
identity?: FilterIdentity;
|
|
58
|
+
/**
|
|
59
|
+
* Message for the missing-child `console.error`. Omit to fail SILENTLY (still returns `ZERO`) —
|
|
60
|
+
* preserve whichever each shader does today; these strings are user-facing.
|
|
61
|
+
*/
|
|
62
|
+
missingChildMessage?: string;
|
|
63
|
+
/**
|
|
64
|
+
* Per-composition side effects that are not part of the returned Expr — registering an
|
|
65
|
+
* `onBeforeRender` to drive an `extraFields` value (FilmGrain's grain clock). Runs after the
|
|
66
|
+
* guard and only on the non-identity path (nothing to drive when the filter is bypassed).
|
|
67
|
+
*/
|
|
68
|
+
setup?: (params: FilterParams) => void;
|
|
69
|
+
}
|
|
70
|
+
/** Build a complete pointwise colour-filter definition. See the module header for the recipe. */
|
|
71
|
+
export declare function definePointwiseFilter<T extends ComponentProps = ComponentProps>(config: PointwiseFilterConfig<T>): GpuShaderDefinition<T>;
|
|
72
|
+
/**
|
|
73
|
+
* Shared identity test for both filter scaffolds: the declared condition AND no map driver on any
|
|
74
|
+
* prop it reads (see {@link FilterIdentity}).
|
|
75
|
+
*/
|
|
76
|
+
export declare function isFilterIdentity(identity: FilterIdentity | undefined, params: GpuFragmentParams): boolean;
|
|
77
|
+
//# sourceMappingURL=pointwiseFilter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pointwiseFilter.d.ts","sourceRoot":"","sources":["../../../src/gpu/scaffolds/pointwiseFilter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAA;AAE/C,OAAO,KAAK,EAAC,IAAI,EAAE,iBAAiB,EAAE,mBAAmB,EAAC,MAAM,aAAa,CAAA;AAE7E;;;GAGG;AACH,MAAM,WAAW,UAAU;IACvB,iGAAiG;IACjG,EAAE,EAAE,OAAO,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,cAAc;IAC3B,gFAAgF;IAChF,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,oEAAoE;IACpE,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAA;CACzD;AAED,kFAAkF;AAClF,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACnD,SAAS,EAAE,IAAI,CAAA;CAClB;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,CAC5E,SAAQ,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,UAAU,GAAG,aAAa,GAAG,eAAe,GAAG,SAAS,CAAC;IAC9F;;;;OAIG;IACH,IAAI,EAAE,UAAU,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,UAAU,CAAC,CAAA;IACxE;;;;OAIG;IACH,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,EAAE,CAAA;IACvC,mGAAmG;IACnG,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;IACtD,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;CACzC;AAED,iGAAiG;AACjG,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC3E,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,GACjC,mBAAmB,CAAC,CAAC,CAAC,CAkBxB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,SAAS,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAMzG"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ComponentProps } from '../../types';
|
|
2
|
+
import { Expr, GpuFragmentParams, GpuShaderDefinition, KitTexture } from '../contract';
|
|
3
|
+
import { FilterIdentity } from './pointwiseFilter';
|
|
4
|
+
|
|
5
|
+
/** `GpuFragmentParams` plus the child's RTT — what an RTT filter's `build` hook works with. */
|
|
6
|
+
export interface RttFilterParams extends GpuFragmentParams {
|
|
7
|
+
childNode: Expr;
|
|
8
|
+
/** The composed child as a texture. PREMULTIPLIED — see the module header. */
|
|
9
|
+
texture: KitTexture;
|
|
10
|
+
/**
|
|
11
|
+
* Sample the child RTT and unpremultiply → STRAIGHT alpha. For a filter whose math must run on
|
|
12
|
+
* straight colour (a luminance threshold, a colour quantiser). A filter doing linear-in-RGB
|
|
13
|
+
* work (a convolution) should sample `texture` directly and stay premultiplied throughout.
|
|
14
|
+
*/
|
|
15
|
+
sampleStraight: (uv: Expr) => Expr;
|
|
16
|
+
}
|
|
17
|
+
export interface RttFilterConfig<T extends ComponentProps = ComponentProps> extends Omit<GpuShaderDefinition<T>, 'fragment' | 'requiresRTT' | 'requiresChild'> {
|
|
18
|
+
/** Build the filtered colour from the child RTT. Returns premultiplied unless `resultAlpha`. */
|
|
19
|
+
build: (params: RttFilterParams) => Expr;
|
|
20
|
+
/**
|
|
21
|
+
* The alpha convention of `build`'s return value. `'premultiplied'` (default) → the scaffold
|
|
22
|
+
* appends `blend.unpremultiplyAlpha`. `'straight'` → returned as-is, for a filter that already
|
|
23
|
+
* unpremultiplied its taps via `sampleStraight`.
|
|
24
|
+
*/
|
|
25
|
+
resultAlpha?: 'premultiplied' | 'straight';
|
|
26
|
+
/** The no-op condition. Bypasses to a centre sample, NOT to `childNode` — see the header. */
|
|
27
|
+
identity?: FilterIdentity;
|
|
28
|
+
/** Message for the missing-child `console.error`. Omit to fail silently (still returns `ZERO`). */
|
|
29
|
+
missingChildMessage?: string;
|
|
30
|
+
/** Per-composition side effects (an `onBeforeRender` driving an `extraFields` value). */
|
|
31
|
+
setup?: (params: RttFilterParams) => void;
|
|
32
|
+
}
|
|
33
|
+
/** Build a complete RTT filter definition. See the module header for the alpha contract. */
|
|
34
|
+
export declare function defineRttFilter<T extends ComponentProps = ComponentProps>(config: RttFilterConfig<T>): GpuShaderDefinition<T>;
|
|
35
|
+
//# sourceMappingURL=rttFilter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rttFilter.d.ts","sourceRoot":"","sources":["../../../src/gpu/scaffolds/rttFilter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAA;AAE/C,OAAO,KAAK,EAAC,IAAI,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,UAAU,EAAC,MAAM,aAAa,CAAA;AAEzF,OAAO,EAAmB,KAAK,cAAc,EAAC,MAAM,mBAAmB,CAAA;AAEvE,+FAA+F;AAC/F,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACtD,SAAS,EAAE,IAAI,CAAA;IACf,8EAA8E;IAC9E,OAAO,EAAE,UAAU,CAAA;IACnB;;;;OAIG;IACH,cAAc,EAAE,CAAC,EAAE,EAAE,IAAI,KAAK,IAAI,CAAA;CACrC;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,CACtE,SAAQ,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,UAAU,GAAG,aAAa,GAAG,eAAe,CAAC;IAClF,gGAAgG;IAChG,KAAK,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAA;IACxC;;;;OAIG;IACH,WAAW,CAAC,EAAE,eAAe,GAAG,UAAU,CAAA;IAC1C,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,mGAAmG;IACnG,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,yFAAyF;IACzF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAA;CAC5C;AAED,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EACrE,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,mBAAmB,CAAC,CAAC,CAAC,CAsBxB"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { GpuShaderDefinition } from '../contract';
|
|
2
|
+
import { BoundingBoxBindingType, BoundingBoxDeclaration, ComponentProps, PropConfig } from '../../types';
|
|
3
|
+
import { shapeStrokeProps } from '../../utilities/propConfigs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Any prop config, whatever the prop's value type. Shape props are heterogeneous by nature (a
|
|
7
|
+
* number, a `DimensionalValue`, a colour string), and the factory only ever moves them around, so
|
|
8
|
+
* the value type is deliberately unconstrained here — the shader's own `ComponentProps` interface is
|
|
9
|
+
* where the per-prop types are stated.
|
|
10
|
+
*/
|
|
11
|
+
type AnyPropConfig = PropConfig<any>;
|
|
12
|
+
/**
|
|
13
|
+
* How the shape's bounding box is declared.
|
|
14
|
+
*
|
|
15
|
+
* `size` is the declarative form thirteen shapes use: x/y bind `center`, width/height bind the
|
|
16
|
+
* named size props, and rotation binds `rotation` unless `rotatable: false`. `as` defaults to
|
|
17
|
+
* `'half-canvas-height'` (the prop is a half-extent); Circle passes `'canvas-height'` because its
|
|
18
|
+
* `radius` names the full visual size and the shader halves it internally.
|
|
19
|
+
*
|
|
20
|
+
* `custom` is the escape hatch for the two shapes whose box cannot be read off a single prop: Ring
|
|
21
|
+
* (outer edge = midline radius + half-band thickness) and Trapezoid (visual width = the WIDER of
|
|
22
|
+
* its two edges). Those pass a complete `BoundingBoxDeclaration` — `computeBounds` / `writeBounds`
|
|
23
|
+
* are per-shape geometry, not something a factory can infer.
|
|
24
|
+
*/
|
|
25
|
+
export type SdfShapeBounds = {
|
|
26
|
+
size: {
|
|
27
|
+
width: string;
|
|
28
|
+
height: string;
|
|
29
|
+
as?: BoundingBoxBindingType;
|
|
30
|
+
};
|
|
31
|
+
custom?: never;
|
|
32
|
+
} | {
|
|
33
|
+
custom: BoundingBoxDeclaration;
|
|
34
|
+
size?: never;
|
|
35
|
+
};
|
|
36
|
+
export interface SdfShapeShaderSpec {
|
|
37
|
+
name: string;
|
|
38
|
+
description: string;
|
|
39
|
+
/** Defaults to `'Shapes'`. */
|
|
40
|
+
category?: string;
|
|
41
|
+
/**
|
|
42
|
+
* The `'use gpu'` mask body fn, defined in the shader file (see the file header for the
|
|
43
|
+
* template and the argument-order contract). Returns a `sdf.ShapeMask`.
|
|
44
|
+
*/
|
|
45
|
+
shapeFn: unknown;
|
|
46
|
+
/**
|
|
47
|
+
* The `call` hint for `shapeFn` — must stay equal to the fn's emitted WGSL name (`'starShape'`),
|
|
48
|
+
* because that name appears in the WGSL snapshots.
|
|
49
|
+
*/
|
|
50
|
+
shapeFnName: string;
|
|
51
|
+
/**
|
|
52
|
+
* The uniform prop names `shapeFn` takes between `center` and `softness`, in BODY order —
|
|
53
|
+
* including `rotation` for a rotatable shape. This is a separate list from `shapeProps` because
|
|
54
|
+
* the two orders can differ (Trapezoid declares `bottomWidth, topWidth, height` but its body
|
|
55
|
+
* takes `topWidth, bottomWidth, height`).
|
|
56
|
+
*/
|
|
57
|
+
bodyArgs: string[];
|
|
58
|
+
/** The `color` prop's description ("Fill color of the star"). */
|
|
59
|
+
colorDescription: string;
|
|
60
|
+
/** The `center` prop's description ("Center position of the star"). */
|
|
61
|
+
centerDescription: string;
|
|
62
|
+
/** Circle labels its center prop 'Center Position'; the rest use the factory default. */
|
|
63
|
+
centerLabel?: string;
|
|
64
|
+
/** The 1–3 props that make this shape itself, in declaration order. */
|
|
65
|
+
shapeProps: Record<string, AnyPropConfig>;
|
|
66
|
+
/** `false` for the rotationally symmetric shapes (Circle, Ring): no rotation prop, no rotation box axis. */
|
|
67
|
+
rotatable?: boolean;
|
|
68
|
+
/** Cross explains the 45° case; everything else uses the default wording. */
|
|
69
|
+
rotationDescription?: string;
|
|
70
|
+
bounds: SdfShapeBounds;
|
|
71
|
+
/** Passed straight to `shapeStrokeProps` (Ring's wording + max, Circle's wording). */
|
|
72
|
+
stroke?: Parameters<typeof shapeStrokeProps>[0];
|
|
73
|
+
/** Circle's `colorSpace` description mentions soft edges. */
|
|
74
|
+
colorSpaceDescription?: string;
|
|
75
|
+
/**
|
|
76
|
+
* Prop configs that REPLACE a factory-built one, keyed by prop name. Spread last, so a replaced
|
|
77
|
+
* prop keeps its position in the key order. Circle uses this for its widened, map-driveable
|
|
78
|
+
* `softness` / `strokeThickness`.
|
|
79
|
+
*/
|
|
80
|
+
propOverrides?: Record<string, AnyPropConfig>;
|
|
81
|
+
/**
|
|
82
|
+
* Explicit prop key order, when the shader's current order is not the fleet-canonical one.
|
|
83
|
+
* Must list every prop exactly once — a mismatch throws, because a silently dropped prop would
|
|
84
|
+
* change the uniform struct.
|
|
85
|
+
*/
|
|
86
|
+
propOrder?: string[];
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Build a complete analytic-2D-shape shader definition from its shape props, its mask body fn and
|
|
90
|
+
* its box declaration.
|
|
91
|
+
*
|
|
92
|
+
* The emitted definition is byte-identical to the hand-written one for all fifteen migrated shapes
|
|
93
|
+
* (Gate A): same props in the same order, same `boundingBoxDeclaration`, and a fragment that emits
|
|
94
|
+
* the same `call` sequence.
|
|
95
|
+
*/
|
|
96
|
+
export declare function defineSdfShapeShader<T extends ComponentProps = ComponentProps>(spec: SdfShapeShaderSpec): GpuShaderDefinition<T>;
|
|
97
|
+
export {};
|
|
98
|
+
//# sourceMappingURL=sdfShape.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdfShape.d.ts","sourceRoot":"","sources":["../../../src/gpu/scaffolds/sdfShape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,OAAO,KAAK,EAA0B,mBAAmB,EAAC,MAAM,aAAa,CAAA;AAG7E,OAAO,KAAK,EACR,sBAAsB,EACtB,sBAAsB,EAEtB,cAAc,EACd,UAAU,EACb,MAAM,aAAa,CAAA;AAEpB,OAAO,EAIH,gBAAgB,EACnB,MAAM,6BAA6B,CAAA;AAEpC;;;;;GAKG;AAEH,KAAK,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;AAEpC;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GACpB;IAAC,IAAI,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,sBAAsB,CAAA;KAAC,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAC,GACpF;IAAC,MAAM,EAAE,sBAAsB,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAC,CAAA;AAEpD,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAA;IAElB,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,CAAA;IACxB,uEAAuE;IACvE,iBAAiB,EAAE,MAAM,CAAA;IACzB,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAEzC,4GAA4G;IAC5G,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B,MAAM,EAAE,cAAc,CAAA;IAEtB,sFAAsF;IACtF,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,6DAA6D;IAC7D,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC7C;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB;AAuDD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC1E,IAAI,EAAE,kBAAkB,GACzB,mBAAmB,CAAC,CAAC,CAAC,CA8CxB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { d } from '../kit';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The legacy sin-fract hash, mapping a float to [-1, 1].
|
|
5
|
+
*
|
|
6
|
+
* `fract(sin(x · 12.9898) · 43758.5453)` is the classic GLSL one-liner; the `(· − 0.5) · 2` tail
|
|
7
|
+
* re-centres it. BarShift (`barHash`) and ConcentricSpin (`csHash`) declared this byte-identically,
|
|
8
|
+
* which is what makes deduping it safe.
|
|
9
|
+
*
|
|
10
|
+
* TRAP: this is NOT `noise.hash11` and must not be swapped for it. The bit-exact integer hashes in
|
|
11
|
+
* `kit/noise.ts` produce a different sequence, so substituting one changes every consumer's look.
|
|
12
|
+
* Hash policy (PRIMITIVES.md, D-6) is that existing shaders keep this one and NEW shaders use
|
|
13
|
+
* `noise.hash*`.
|
|
14
|
+
*/
|
|
15
|
+
export declare const legacySinHash11: import('typegpu').TgpuFn<(x: d.F32) => d.F32>;
|
|
16
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/gpu/scaffolds/shared.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAO,CAAC,EAAM,MAAM,QAAQ,CAAA;AAEnC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,+CAG1B,CAAA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { d } from '../kit';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Plain Gaussian brush weight from a PRE-SQUARED distance and radius: `exp(-distSq / radiusSq)`.
|
|
5
|
+
*
|
|
6
|
+
* Peaks at 1 in the centre and never reaches zero — cells outside the nominal radius still receive
|
|
7
|
+
* ~37% and below. This is what the fluid splats shipped with before the edge-shifted form existed;
|
|
8
|
+
* it stays available because a few consumers deliberately want the long tail.
|
|
9
|
+
*
|
|
10
|
+
* `radiusSq` must already be guarded (`max(r*r, eps)`) by the caller — the grid-space consumers
|
|
11
|
+
* clamp to one cell (`max(r*r, 1.0)`), which is a different floor than a UV-space consumer wants.
|
|
12
|
+
*/
|
|
13
|
+
export declare const gaussianBrushSq: import('typegpu').TgpuFn<(distSq: d.F32, radiusSq: d.F32) => d.F32>;
|
|
14
|
+
/**
|
|
15
|
+
* Edge-shifted Gaussian brush weight: `(exp(-distSq/radiusSq) - e⁻¹) / (1 - e⁻¹)`, clamped to
|
|
16
|
+
* [0, 1].
|
|
17
|
+
*
|
|
18
|
+
* Still exactly 1 at the centre, but falls to exactly 0 at `distSq == radiusSq` and is clamped flat
|
|
19
|
+
* beyond it — no truncation step, no staircase. PixelThrow's CPU sim has had this since it shipped;
|
|
20
|
+
* D-8 propagates it to the GPU brush sites.
|
|
21
|
+
*/
|
|
22
|
+
export declare const gaussianBrushShiftedSq: import('typegpu').TgpuFn<(distSq: d.F32, radiusSq: d.F32) => d.F32>;
|
|
23
|
+
/** Vector form of {@link gaussianBrushSq} — takes the cell and brush centres. */
|
|
24
|
+
export declare const gaussianBrushRaw: import('typegpu').TgpuFn<(cellPos: d.Vec2f, center: d.Vec2f, radiusSq: d.F32) => d.F32>;
|
|
25
|
+
/** Vector form of {@link gaussianBrushShiftedSq} — takes the cell and brush centres. */
|
|
26
|
+
export declare const gaussianBrushShifted: import('typegpu').TgpuFn<(cellPos: d.Vec2f, center: d.Vec2f, radiusSq: d.F32) => d.F32>;
|
|
27
|
+
/**
|
|
28
|
+
* The edge-shifted brush at a given TRUNCATION RADIUS, expressed in sigmas.
|
|
29
|
+
*
|
|
30
|
+
* `radiusSq` is always σ² — the Gaussian's own scale. `cutoffSigmas` is how far out the CALLER stops
|
|
31
|
+
* evaluating, and it sets the edge constant to `exp(-cutoffSigmas²)` so the falloff reaches exactly
|
|
32
|
+
* zero there and nowhere else. Get it wrong and the brush changes width, not just its edge: passing
|
|
33
|
+
* a 3σ consumer the 1σ constant rescales the whole profile.
|
|
34
|
+
*
|
|
35
|
+
* Memoised per cutoff, and `$name`d per cutoff so two differently-truncated brushes in one tree do
|
|
36
|
+
* not collide on a WGSL identifier.
|
|
37
|
+
*/
|
|
38
|
+
export declare function gaussianBrushShiftedSqFn(cutoffSigmas?: number): import('typegpu').TgpuFn<(distSq: d.F32, radiusSq: d.F32) => d.F32>;
|
|
39
|
+
/** Vector form of {@link gaussianBrushShiftedSqFn} — takes the cell and brush centres. */
|
|
40
|
+
export declare function gaussianBrushShiftedFn(cutoffSigmas?: number): import('typegpu').TgpuFn<(cellPos: d.Vec2f, center: d.Vec2f, radiusSq: d.F32) => d.F32>;
|
|
41
|
+
/** Which falloff a consumer wants. `edgeShift` is the corrected form and the recommended default. */
|
|
42
|
+
export interface GaussianBrushOptions {
|
|
43
|
+
edgeShift: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Truncation radius in sigmas — where the caller stops evaluating the brush. Default 1 (the
|
|
46
|
+
* fluid/PixelThrow case: cut at the radius the Gaussian is scaled by). Ignored when
|
|
47
|
+
* `edgeShift` is false, since an unshifted brush has no edge constant.
|
|
48
|
+
*/
|
|
49
|
+
cutoffSigmas?: number;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Pick the squared-distance brush fn for an option record — the form the fluid splat kernels use,
|
|
53
|
+
* since they have already computed `dx`/`dy` for the spread/perpendicular maths and would otherwise
|
|
54
|
+
* subtract twice.
|
|
55
|
+
*
|
|
56
|
+
* Structural (C5): `edgeShift` is read at composition time, so it costs nothing on the GPU.
|
|
57
|
+
*/
|
|
58
|
+
export declare function gaussianBrushFnSq(opts: GaussianBrushOptions): import('typegpu').TgpuFn<(distSq: d.F32, radiusSq: d.F32) => d.F32>;
|
|
59
|
+
/** Pick the vector-form brush fn for an option record. See {@link gaussianBrushFnSq}. */
|
|
60
|
+
export declare function gaussianBrushFn(opts: GaussianBrushOptions): import('typegpu').TgpuFn<(cellPos: d.Vec2f, center: d.Vec2f, radiusSq: d.F32) => d.F32>;
|
|
61
|
+
//# sourceMappingURL=simShared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simShared.d.ts","sourceRoot":"","sources":["../../../src/gpu/scaffolds/simShared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAO,CAAC,EAAM,MAAM,QAAQ,CAAA;AAenC;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,qEAG1B,CAAA;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,qEAGjC,CAAA;AAEF,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,yFAI3B,CAAA;AAEF,wFAAwF;AACxF,eAAO,MAAM,oBAAoB,yFAI/B,CAAA;AAaF;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,GAAE,MAA8B,uEAYpF;AAED,0FAA0F;AAC1F,wBAAgB,sBAAsB,CAAC,YAAY,GAAE,MAA8B,2FAYlF;AAED,qGAAqG;AACrG,MAAM,WAAW,oBAAoB;IACjC,SAAS,EAAE,OAAO,CAAA;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,uEAE3D;AAED,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,IAAI,EAAE,oBAAoB,2FAEzD"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { Expr, GpuShaderDefinition, KitTexture, GpuStorageBuffer } from '../contract';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A map that also produces coverage. `coverage` is a 0..1 scalar Expr: it multiplies sampled ALPHA
|
|
5
|
+
* on the fragment path and the coverage MASK on the uvRemap path — the two spellings of the same
|
|
6
|
+
* thing. Return this form (rather than a bare `Expr`) when the coordinate and the coverage come out
|
|
7
|
+
* of one shared computation, which is the only reason the form exists.
|
|
8
|
+
*/
|
|
9
|
+
export interface UvMapResult {
|
|
10
|
+
uv: Expr;
|
|
11
|
+
coverage?: Expr;
|
|
12
|
+
}
|
|
13
|
+
/** What a `map` may return: just the coordinate, or the coordinate plus coverage. */
|
|
14
|
+
export type UvMapped = Expr | UvMapResult;
|
|
15
|
+
/**
|
|
16
|
+
* The parameters both hooks share. Deliberately the INTERSECTION of `GpuFragmentParams` and the
|
|
17
|
+
* `uvRemap` ctx, so a map factory written against it cannot accidentally reach for something only
|
|
18
|
+
* one hook has (`ctx.uv` differs between them — that is why the coordinate arrives as an argument
|
|
19
|
+
* to `map` rather than being read off the params).
|
|
20
|
+
*
|
|
21
|
+
* `props` + `uniforms` are exactly what `animatedTime(params)` needs, so an animated distortion
|
|
22
|
+
* calls it inside its factory and the accumulated-time Expr lands in both hooks.
|
|
23
|
+
*/
|
|
24
|
+
export interface UvRemapHookParams {
|
|
25
|
+
props: Expr;
|
|
26
|
+
uniforms: Record<string, Expr>;
|
|
27
|
+
propValues: Record<string, unknown>;
|
|
28
|
+
computeOutputs?: Record<string, KitTexture | GpuStorageBuffer>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The one definition that drives both hooks.
|
|
32
|
+
*
|
|
33
|
+
* `map` is a PURE coordinate function: given the incoming UV Expr and the aspect Expr, return the
|
|
34
|
+
* coordinate to look up. It must not sample the child (that is the scaffold's job) and must not
|
|
35
|
+
* depend on which hook is calling it — that independence is the whole point.
|
|
36
|
+
*/
|
|
37
|
+
export interface UvMap {
|
|
38
|
+
map: (uv: Expr, aspect: Expr) => UvMapped;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* A `UvMap`, or a factory that builds one from the hook params. Nearly every shader wants the
|
|
42
|
+
* factory form, because the map closes over `uniforms` / `propValues` / `computeOutputs`.
|
|
43
|
+
*/
|
|
44
|
+
export type UvMapSource = UvMap | ((params: UvRemapHookParams) => UvMap);
|
|
45
|
+
/**
|
|
46
|
+
* How the compile-time edge mode is chosen:
|
|
47
|
+
* - `'prop'` (default) — `(propValues.edges as number) ?? 0`, i.e. the shader declares an `edges`
|
|
48
|
+
* prop via `edgesPropConfig`. What 15 of the 17 distortions do.
|
|
49
|
+
* - a number — a FIXED mode baked at composition. SliceWipe hard-codes transparent (1) because
|
|
50
|
+
* the vacated strips must clip, not stretch; there is no user-facing choice.
|
|
51
|
+
* - `'none'` — no edge handling at all. Only legitimate when the map provably stays inside [0,1],
|
|
52
|
+
* which is true for exactly one shader: Flip maps [0,1] onto [0,1]. The fragment samples straight
|
|
53
|
+
* and `uvRemap` passes the mask through untouched.
|
|
54
|
+
*/
|
|
55
|
+
export type UvRemapEdgeSource = 'prop' | 'none' | number;
|
|
56
|
+
export interface UvRemapShaderOptions {
|
|
57
|
+
/** See {@link UvRemapEdgeSource}. Default `'prop'`. */
|
|
58
|
+
edges?: UvRemapEdgeSource;
|
|
59
|
+
/**
|
|
60
|
+
* Reconstruction filter for the fragment path.
|
|
61
|
+
* - `'catmullRom'` (default) — `edges.sampleRemappedExpr`, which picks the right 9-tap filter
|
|
62
|
+
* per edge mode. Correct for anything that can magnify content.
|
|
63
|
+
* - `'bilinear'` — a single tap through `edges.applyEdgeHandlingExpr`. For distortions that are
|
|
64
|
+
* deliberately blocky, already low-pass, or take many taps per pixel.
|
|
65
|
+
*/
|
|
66
|
+
resample?: 'catmullRom' | 'bilinear';
|
|
67
|
+
/**
|
|
68
|
+
* Message logged (once, on `console.error`) when the shader is composed with no child. Omit for
|
|
69
|
+
* the silent-`ZERO` behaviour — Perspective, CornerPin, GridDistortion and Liquify are silent
|
|
70
|
+
* today and this scaffold preserves that rather than normalising it, because the guard text is
|
|
71
|
+
* user-visible and normalising it is a separate decision.
|
|
72
|
+
*/
|
|
73
|
+
requireChildMessage?: string;
|
|
74
|
+
/**
|
|
75
|
+
* `uvRemap`-ONLY bail-out to the identity remap. Exists for the two compute-driven distortions
|
|
76
|
+
* (GridDistortion, Liquify): their displacement comes from their own compute texture, and when
|
|
77
|
+
* that texture is absent (GPU-free composition, or before the compute hook has run) `uvRemap`
|
|
78
|
+
* must return the incoming `{uv, mask}` verbatim.
|
|
79
|
+
*
|
|
80
|
+
* It is uvRemap-only because the fragment path handles the same condition differently and
|
|
81
|
+
* deliberately: it substitutes a zero-displacement `vec2f(0.0, 0.0)` INSIDE the map and still
|
|
82
|
+
* goes through the sample + edge path, so the RTT pass stays structurally identical whether or
|
|
83
|
+
* not the compute output exists. Do not "fix" the asymmetry — it is two correct answers to two
|
|
84
|
+
* different questions.
|
|
85
|
+
*/
|
|
86
|
+
uvRemapIdentityWhen?: (params: UvRemapHookParams) => boolean;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Lerp a map toward the identity by a runtime scalar: `mix(uv, map(uv), amount)`.
|
|
90
|
+
*
|
|
91
|
+
* PolarCoordinates and RectangularCoordinates both expose this as an `intensity` prop — 0 leaves
|
|
92
|
+
* the content alone, 1 is the full coordinate-system change. Note this blends COORDINATES, not
|
|
93
|
+
* colours, so intermediate values are a genuine partial warp rather than a cross-fade.
|
|
94
|
+
*/
|
|
95
|
+
export declare function lerpToIdentity(inner: UvMap, amount: (uv: Expr, aspect: Expr) => Expr): UvMap;
|
|
96
|
+
/**
|
|
97
|
+
* Pick between two maps by a HARD 0/1 selector: `mix(a(uv), b(uv), pick)`.
|
|
98
|
+
*
|
|
99
|
+
* This is the combinator that closes Mirror's fragment-vs-uvRemap divergence. Mirror's fragment
|
|
100
|
+
* used to sample the child TWICE — once at the original UV, once at the reflected UV — and mix the
|
|
101
|
+
* two COLOURS by `shouldMirror`; its `uvRemap` mixed the two COORDINATES. Both are correct, but
|
|
102
|
+
* only because `shouldMirror` is `step(0, signedDistance)`, an exact 0 or 1: at 0 the colour mix
|
|
103
|
+
* returns the first sample and the coordinate mix returns the first coordinate, and likewise at 1.
|
|
104
|
+
* For a hard selector the two forms are identical, and the coordinate form costs one sample instead
|
|
105
|
+
* of two.
|
|
106
|
+
*
|
|
107
|
+
* `pick` MUST be exactly 0 or 1. Hand it a smooth selector and the forms diverge for real: mixing
|
|
108
|
+
* coordinates half-way samples a point between the two lookups, which is not the average of the two
|
|
109
|
+
* colours.
|
|
110
|
+
*/
|
|
111
|
+
export declare function selectMap(a: (uv: Expr, aspect: Expr) => Expr, b: (uv: Expr, aspect: Expr) => Expr, pick: (uv: Expr, aspect: Expr) => Expr): UvMap;
|
|
112
|
+
/**
|
|
113
|
+
* Build the `fragment` + `uvRemap` pair for an RTT distortion from a single `UvMap`.
|
|
114
|
+
*
|
|
115
|
+
* Spread the result into the definition:
|
|
116
|
+
*
|
|
117
|
+
* export const componentDefinition: GpuShaderDefinition<ComponentProps> = {
|
|
118
|
+
* name: "Twirl",
|
|
119
|
+
* requiresRTT: true,
|
|
120
|
+
* requiresChild: true,
|
|
121
|
+
* props: {…, edges: edgesPropConfig('stretch', '…')},
|
|
122
|
+
* ...uvRemapShader(
|
|
123
|
+
* ({uniforms}) => ({
|
|
124
|
+
* map: (uv, aspect) => call(twirlUV, 'twirlUV', [uniforms.center, uniforms.intensity, uv, aspect]),
|
|
125
|
+
* }),
|
|
126
|
+
* {requireChildMessage: 'You must pass a child component into the Twirl shader.'},
|
|
127
|
+
* ),
|
|
128
|
+
* }
|
|
129
|
+
*
|
|
130
|
+
* The shader keeps its own `'use gpu'` mapping fn — that is the durable, resolve-tested artifact and
|
|
131
|
+
* the scaffold never touches it. What the scaffold owns is the plumbing around it.
|
|
132
|
+
*/
|
|
133
|
+
export declare function uvRemapShader(source: UvMapSource, opts?: UvRemapShaderOptions): Pick<GpuShaderDefinition, 'fragment' | 'uvRemap'>;
|
|
134
|
+
//# sourceMappingURL=uvRemapShader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uvRemapShader.d.ts","sourceRoot":"","sources":["../../../src/gpu/scaffolds/uvRemapShader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,KAAK,EAAC,IAAI,EAAqB,mBAAmB,EAAE,UAAU,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAA;AAQ3G;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,IAAI,CAAA;IACR,QAAQ,CAAC,EAAE,IAAI,CAAA;CAClB;AAED,qFAAqF;AACrF,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,WAAW,CAAA;AAEzC;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,IAAI,CAAA;IACX,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,gBAAgB,CAAC,CAAA;CACjE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,KAAK;IAClB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAA;CAC5C;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,iBAAiB,KAAK,KAAK,CAAC,CAAA;AAMxE;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAExD,MAAM,WAAW,oBAAoB;IACjC,uDAAuD;IACvD,KAAK,CAAC,EAAE,iBAAiB,CAAA;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;IACpC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B;;;;;;;;;;;OAWG;IACH,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAA;CAC/D;AAMD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,KAAK,IAAI,GAAG,KAAK,CAQ5F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CACrB,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,KAAK,IAAI,EACnC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,KAAK,IAAI,EACnC,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,KAAK,IAAI,GACvC,KAAK,CAEP;AAWD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CACzB,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE,oBAAyB,GAChC,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,SAAS,CAAC,CAiDnD"}
|