framefields 2.0.8 → 2.0.9
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/audio/index.d.mts +4 -4
- package/dist/audio/index.mjs +10 -10
- package/dist/{audio-a6pY05g2.d.mts → audio-BxA0sL9z.d.mts} +3 -3
- package/dist/{audio-a6pY05g2.d.mts.map → audio-BxA0sL9z.d.mts.map} +1 -1
- package/dist/{audio--hi7MiZt.mjs → audio-Dev4NGPa.mjs} +3 -3
- package/dist/{audio--hi7MiZt.mjs.map → audio-Dev4NGPa.mjs.map} +1 -1
- package/dist/{client-C74hb7fy.mjs → client-CwRhflHE.mjs} +1 -1
- package/dist/{client-C74hb7fy.mjs.map → client-CwRhflHE.mjs.map} +1 -1
- package/dist/{dist-ZVlYkuR4.mjs → dist-CoSg-CWr.mjs} +17 -8
- package/dist/dist-CoSg-CWr.mjs.map +1 -0
- package/dist/{dist-BQFap0wr.mjs → dist-DgfykO99.mjs} +53 -5
- package/dist/dist-DgfykO99.mjs.map +1 -0
- package/dist/{dist-cjs-qEJrwjGk.mjs → dist-cjs--lfMLs3U.mjs} +4 -4
- package/dist/{dist-cjs-qEJrwjGk.mjs.map → dist-cjs--lfMLs3U.mjs.map} +1 -1
- package/dist/{dist-cjs-x5cwlqA5.mjs → dist-cjs--pxyGFw2.mjs} +1 -1
- package/dist/{dist-cjs-x5cwlqA5.mjs.map → dist-cjs--pxyGFw2.mjs.map} +1 -1
- package/dist/dist-cjs-3pon9kTt.mjs +6 -0
- package/dist/{dist-cjs-Dzs5P3K0.mjs → dist-cjs-BDpO-TH_.mjs} +1 -1
- package/dist/{dist-cjs-Dzs5P3K0.mjs.map → dist-cjs-BDpO-TH_.mjs.map} +1 -1
- package/dist/{dist-cjs-lYvO8aDo.mjs → dist-cjs-BiKQozdJ.mjs} +3 -3
- package/dist/{dist-cjs-lYvO8aDo.mjs.map → dist-cjs-BiKQozdJ.mjs.map} +1 -1
- package/dist/{dist-cjs-BUwe2XhR.mjs → dist-cjs-BmyyWYWv.mjs} +2 -2
- package/dist/{dist-cjs-BUwe2XhR.mjs.map → dist-cjs-BmyyWYWv.mjs.map} +1 -1
- package/dist/{dist-cjs-DgxjcvBN.mjs → dist-cjs-CND_ghfH.mjs} +1 -1
- package/dist/{dist-cjs-DgxjcvBN.mjs.map → dist-cjs-CND_ghfH.mjs.map} +1 -1
- package/dist/{dist-cjs-BWgoUCXJ.mjs → dist-cjs-CQwmMllY.mjs} +6 -6
- package/dist/{dist-cjs-BWgoUCXJ.mjs.map → dist-cjs-CQwmMllY.mjs.map} +1 -1
- package/dist/{dist-cjs-B5EVqDFp.mjs → dist-cjs-CgFzrgj8.mjs} +1 -1
- package/dist/{dist-cjs-B5EVqDFp.mjs.map → dist-cjs-CgFzrgj8.mjs.map} +1 -1
- package/dist/{dist-cjs-ECMuIF57.mjs → dist-cjs-CsU2sZoX.mjs} +4 -4
- package/dist/{dist-cjs-ECMuIF57.mjs.map → dist-cjs-CsU2sZoX.mjs.map} +1 -1
- package/dist/{dist-cjs-BKmGCgtm.mjs → dist-cjs-DJ8fcQEe.mjs} +11 -11
- package/dist/{dist-cjs-BKmGCgtm.mjs.map → dist-cjs-DJ8fcQEe.mjs.map} +1 -1
- package/dist/{dist-cjs-D7kEM-Mj.mjs → dist-cjs-DT2jJlcK.mjs} +5 -5
- package/dist/{dist-cjs-D7kEM-Mj.mjs.map → dist-cjs-DT2jJlcK.mjs.map} +1 -1
- package/dist/{dist-cjs-BUc0_kg-.mjs → dist-cjs-DjzmP0-x.mjs} +13 -13
- package/dist/{dist-cjs-BUc0_kg-.mjs.map → dist-cjs-DjzmP0-x.mjs.map} +1 -1
- package/dist/{dist-cjs-BGJkdexX.mjs → dist-cjs-DzjrlfbE.mjs} +14 -14
- package/dist/{dist-cjs-BGJkdexX.mjs.map → dist-cjs-DzjrlfbE.mjs.map} +1 -1
- package/dist/{dist-cjs-Df7144zM.mjs → dist-cjs-M-8QOgS_.mjs} +2 -2
- package/dist/{dist-cjs-Df7144zM.mjs.map → dist-cjs-M-8QOgS_.mjs.map} +1 -1
- package/dist/{dist-cjs-DFUmy89O.mjs → dist-cjs-TsA8LFXC.mjs} +3 -3
- package/dist/{dist-cjs-DFUmy89O.mjs.map → dist-cjs-TsA8LFXC.mjs.map} +1 -1
- package/dist/{dist-cjs-DsMdld8l.mjs → dist-cjs-agQl9T8M.mjs} +6 -6
- package/dist/{dist-cjs-DsMdld8l.mjs.map → dist-cjs-agQl9T8M.mjs.map} +1 -1
- package/dist/effects/index.d.mts +5 -5
- package/dist/effects/index.mjs +27 -26
- package/dist/{effects-axfL_C3a.mjs → effects-hxRwxjyC.mjs} +27 -3
- package/dist/effects-hxRwxjyC.mjs.map +1 -0
- package/dist/{event-streams-D-APZ7Ke.mjs → event-streams-BaNGaLxh.mjs} +2 -2
- package/dist/{event-streams-D-APZ7Ke.mjs.map → event-streams-BaNGaLxh.mjs.map} +1 -1
- package/dist/fonts/index.d.mts +1 -1
- package/dist/fonts/index.mjs +1 -1
- package/dist/{fonts-Cy26mbrO.mjs → fonts-BznIea-I.mjs} +2 -2
- package/dist/{fonts-Cy26mbrO.mjs.map → fonts-BznIea-I.mjs.map} +1 -1
- package/dist/{index-BJUS4Nx6.d.mts → index-BXNNJVs8.d.mts} +2 -2
- package/dist/{index-BJUS4Nx6.d.mts.map → index-BXNNJVs8.d.mts.map} +1 -1
- package/dist/{index-CbzEM_o6.d.mts → index-CQcdKyxF.d.mts} +1 -1
- package/dist/{index-CbzEM_o6.d.mts.map → index-CQcdKyxF.d.mts.map} +1 -1
- package/dist/{index-BJx_Qxc_.d.mts → index-CvDVpaKn.d.mts} +69 -27
- package/dist/index-CvDVpaKn.d.mts.map +1 -0
- package/dist/{index-WIPHLy5m.d.mts → index-D1zaOwEU.d.mts} +1 -1
- package/dist/index-D1zaOwEU.d.mts.map +1 -0
- package/dist/{index-CZChQhXZ.d.mts → index-J9CIK_nu.d.mts} +4 -2
- package/dist/index-J9CIK_nu.d.mts.map +1 -0
- package/dist/{index-Bi2nRZ_g.d.mts → index-fo4E7A6C.d.mts} +3 -3
- package/dist/{index-Bi2nRZ_g.d.mts.map → index-fo4E7A6C.d.mts.map} +1 -1
- package/dist/{index-BLbUQolI.d.mts → index-oodg5k9K.d.mts} +3 -3
- package/dist/{index-BLbUQolI.d.mts.map → index-oodg5k9K.d.mts.map} +1 -1
- package/dist/index.d.mts +11 -10
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +43 -42
- package/dist/index.mjs.map +1 -1
- package/dist/{package-C58KmGKw.mjs → package-XpCRbTOA.mjs} +1 -1
- package/dist/{package-C58KmGKw.mjs.map → package-XpCRbTOA.mjs.map} +1 -1
- package/dist/preview/index.d.mts +2 -2
- package/dist/preview/index.mjs +11 -11
- package/dist/{preview-BUPB38Kk.mjs → preview-DZTbEON9.mjs} +2 -2
- package/dist/{preview-BUPB38Kk.mjs.map → preview-DZTbEON9.mjs.map} +1 -1
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/{chunk-3ROJ7JVY.mjs → chunk-25IW7NYO.mjs} +1 -1
- package/dist/preview-engine/chunk-36YGYLKD.mjs +58 -0
- package/dist/preview-engine/chunk-4VOHF3FF.mjs +1 -0
- package/dist/preview-engine/{chunk-TNZENER3.mjs → chunk-7DIAFPQP.mjs} +2 -2
- package/dist/preview-engine/{chunk-CXFEQ5PM.mjs → chunk-7O24H4YT.mjs} +2 -2
- package/dist/preview-engine/{chunk-BE3CEVJB.mjs → chunk-AUFSM5KI.mjs} +2 -2
- package/dist/preview-engine/chunk-AW7HNZKR.mjs +98 -0
- package/dist/preview-engine/chunk-BHFI3Y4T.mjs +1 -0
- package/dist/preview-engine/chunk-DLXQDDIN.mjs +46 -0
- package/dist/preview-engine/chunk-EJGLUZMW.mjs +1 -0
- package/dist/preview-engine/{chunk-XSMK5E2V.mjs → chunk-JAOXXYXG.mjs} +2 -2
- package/dist/preview-engine/{chunk-PO4VAAQC.mjs → chunk-K52S5DJX.mjs} +1 -1
- package/dist/preview-engine/{chunk-IGFT3XLN.mjs → chunk-MDDF2GCF.mjs} +2 -2
- package/dist/preview-engine/{chunk-JNEVSC4I.mjs → chunk-OF75EHTX.mjs} +1 -1
- package/dist/preview-engine/{chunk-POPVFC5P.mjs → chunk-S4CSX6K5.mjs} +10 -10
- package/dist/preview-engine/chunk-SNYAHQ25.mjs +186 -0
- package/dist/preview-engine/{chunk-MC7TZZLD.mjs → chunk-T6COGNOW.mjs} +2 -2
- package/dist/preview-engine/chunk-VVLM6LZ3.mjs +1 -0
- package/dist/preview-engine/chunk-XUM42I4R.mjs +1 -0
- package/dist/preview-engine/chunk-ZDCA6NVT.mjs +82 -0
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +13 -13
- package/dist/preview-engine/player.mjs +5 -5
- package/dist/preview-engine/{renderers-Q2ZDD5K2.mjs → renderers-2US2NIUG.mjs} +2 -2
- package/dist/preview-engine/{renderers-54AQK6RF.mjs → renderers-32PIFHPS.mjs} +1 -1
- package/dist/preview-engine/{renderers-O6HOYIPS.mjs → renderers-76PQY2SO.mjs} +1 -1
- package/dist/preview-engine/{renderers-PXGLEFZO.mjs → renderers-CI2GXWLP.mjs} +1 -1
- package/dist/preview-engine/{renderers-GC7EGB5Z.mjs → renderers-CRKRWR2Y.mjs} +1 -1
- package/dist/preview-engine/{renderers-47UITXLZ.mjs → renderers-EE2GFG7J.mjs} +1 -1
- package/dist/preview-engine/{renderers-E3JYRLSD.mjs → renderers-GJSUN5HU.mjs} +1 -1
- package/dist/preview-engine/{renderers-KCP4TFHG.mjs → renderers-IHKORHMT.mjs} +1 -1
- package/dist/preview-engine/renderers-LTNTQLWE.mjs +248 -0
- package/dist/preview-engine/{renderers-OBMTU3QY.mjs → renderers-NQUDQEHY.mjs} +1 -1
- package/dist/preview-engine/{renderers-QECJP22T.mjs → renderers-NSY2SDIE.mjs} +1 -1
- package/dist/preview-engine/{renderers-KS4HPV6Q.mjs → renderers-PWLWOZY4.mjs} +1 -1
- package/dist/preview-engine/{renderers-TUYQLKHJ.mjs → renderers-W5CVDJVH.mjs} +1 -1
- package/dist/preview-engine/{renderers-N5UPJY73.mjs → renderers-WLLJFZTF.mjs} +1 -1
- package/dist/preview-engine/renderers-WN4SYFCU.mjs +1 -0
- package/dist/preview-engine/{renderers-TG62LZTF.mjs → renderers-XFBSGTHU.mjs} +1 -1
- package/dist/preview-engine/signals.mjs +1 -1
- package/dist/{program-Jt07Tx1J.mjs → program-C797QMRL.mjs} +2 -2
- package/dist/{program-Jt07Tx1J.mjs.map → program-C797QMRL.mjs.map} +1 -1
- package/dist/renderer/index.d.mts +2 -2
- package/dist/renderer/index.mjs +3 -3
- package/dist/{renderer-BkOXe6o6.mjs → renderer--vY6O19V.mjs} +2 -2
- package/dist/{renderer-BkOXe6o6.mjs.map → renderer--vY6O19V.mjs.map} +1 -1
- package/dist/{renderer-Bal8734U.d.mts → renderer-2NQWaZd7.d.mts} +2 -2
- package/dist/{renderer-Bal8734U.d.mts.map → renderer-2NQWaZd7.d.mts.map} +1 -1
- package/dist/renderer-3uTfN95I.mjs +3 -0
- package/dist/{renderer-D49-PYDo.mjs → renderer-5jfDUKd4.mjs} +2 -2
- package/dist/{renderer-D49-PYDo.mjs.map → renderer-5jfDUKd4.mjs.map} +1 -1
- package/dist/{renderer-C5RhNQdr.mjs → renderer-6PqlYQjC.mjs} +10 -9
- package/dist/{renderer-C5RhNQdr.mjs.map → renderer-6PqlYQjC.mjs.map} +1 -1
- package/dist/{renderer-CceiI6P7.mjs → renderer-9QCHY8Kh.mjs} +18 -4
- package/dist/renderer-9QCHY8Kh.mjs.map +1 -0
- package/dist/{renderer-o4wOvjEC.mjs → renderer-B1UeU7lX.mjs} +21 -18
- package/dist/renderer-B1UeU7lX.mjs.map +1 -0
- package/dist/{renderer-DDd3cjaz.mjs → renderer-B4ecTNR7.mjs} +18 -11
- package/dist/renderer-B4ecTNR7.mjs.map +1 -0
- package/dist/renderer-B5GslTP-.mjs +3 -0
- package/dist/{renderer-DXyaswab.mjs → renderer-B8gTyU3w.mjs} +18 -17
- package/dist/renderer-B8gTyU3w.mjs.map +1 -0
- package/dist/{renderer-CIQYTiT9.mjs → renderer-BE4Ns0nw.mjs} +2 -2
- package/dist/{renderer-CIQYTiT9.mjs.map → renderer-BE4Ns0nw.mjs.map} +1 -1
- package/dist/{renderer-BDLnExoP.mjs → renderer-BM05sB8m.mjs} +8 -7
- package/dist/renderer-BM05sB8m.mjs.map +1 -0
- package/dist/{renderer-DxBUppHf.mjs → renderer-BTYncYDf.mjs} +74 -63
- package/dist/{renderer-DxBUppHf.mjs.map → renderer-BTYncYDf.mjs.map} +1 -1
- package/dist/renderer-BUIWeIKQ.mjs +3 -0
- package/dist/{renderer-0uccAKQe.mjs → renderer-BXaK02qA.mjs} +2 -2
- package/dist/{renderer-0uccAKQe.mjs.map → renderer-BXaK02qA.mjs.map} +1 -1
- package/dist/renderer-B_LfC88A.mjs +3 -0
- package/dist/renderer-B_zmicsE.mjs +3 -0
- package/dist/{renderer-DrgNyCSx.mjs → renderer-BcPpcKDI.mjs} +2 -2
- package/dist/{renderer-DrgNyCSx.mjs.map → renderer-BcPpcKDI.mjs.map} +1 -1
- package/dist/{renderer-C-Bv9nVB.mjs → renderer-BgqjWI7K.mjs} +2 -2
- package/dist/{renderer-C-Bv9nVB.mjs.map → renderer-BgqjWI7K.mjs.map} +1 -1
- package/dist/{renderer-BPbNLPcz.mjs → renderer-BpJgfBQ8.mjs} +2 -2
- package/dist/{renderer-BPbNLPcz.mjs.map → renderer-BpJgfBQ8.mjs.map} +1 -1
- package/dist/renderer-BtNxtXkR.mjs +3 -0
- package/dist/{renderer-D5xelwpw.mjs → renderer-BwmZUkvd.mjs} +2 -2
- package/dist/{renderer-D5xelwpw.mjs.map → renderer-BwmZUkvd.mjs.map} +1 -1
- package/dist/{renderer-DIfk6m2O.mjs → renderer-C-PfbkPu.mjs} +2 -2
- package/dist/{renderer-DIfk6m2O.mjs.map → renderer-C-PfbkPu.mjs.map} +1 -1
- package/dist/renderer-C-sZSHtf.mjs +3 -0
- package/dist/renderer-C1zifktw.mjs +3 -0
- package/dist/{renderer-U0LJuM9D.mjs → renderer-C2gnWTQZ.mjs} +2 -2
- package/dist/{renderer-U0LJuM9D.mjs.map → renderer-C2gnWTQZ.mjs.map} +1 -1
- package/dist/{renderer-BdSHGzHj.mjs → renderer-CB8hMQgm.mjs} +1 -1
- package/dist/renderer-CCt2XTSM.mjs +3 -0
- package/dist/{renderer-BjROyv5F.mjs → renderer-CKJb_Lky.mjs} +2 -2
- package/dist/{renderer-BjROyv5F.mjs.map → renderer-CKJb_Lky.mjs.map} +1 -1
- package/dist/renderer-CMXcaArD.mjs +3 -0
- package/dist/{renderer-CIMjMFGm.mjs → renderer-CV8diddR.mjs} +2 -2
- package/dist/{renderer-CIMjMFGm.mjs.map → renderer-CV8diddR.mjs.map} +1 -1
- package/dist/renderer-CW9D5zCP.mjs +3 -0
- package/dist/{renderer-Dgg6pQGI.mjs → renderer-CckJJHbM.mjs} +2 -2
- package/dist/{renderer-Dgg6pQGI.mjs.map → renderer-CckJJHbM.mjs.map} +1 -1
- package/dist/{renderer-DFKsLrUs.mjs → renderer-CepMDQ06.mjs} +1 -1
- package/dist/{renderer-DFKsLrUs.mjs.map → renderer-CepMDQ06.mjs.map} +1 -1
- package/dist/renderer-CjY77sB_.mjs +3 -0
- package/dist/{renderer-DVQp5fLG.mjs → renderer-CpUbDJAV.mjs} +5 -4
- package/dist/{renderer-DVQp5fLG.mjs.map → renderer-CpUbDJAV.mjs.map} +1 -1
- package/dist/{renderer-zwxwjWqa.mjs → renderer-CrVAvP92.mjs} +2 -2
- package/dist/{renderer-zwxwjWqa.mjs.map → renderer-CrVAvP92.mjs.map} +1 -1
- package/dist/{renderer-CboM4tba.mjs → renderer-CuqhAB4i.mjs} +11 -5
- package/dist/renderer-CuqhAB4i.mjs.map +1 -0
- package/dist/{renderer-CmIySXSN.mjs → renderer-CxQ5v4fJ.mjs} +11 -5
- package/dist/renderer-CxQ5v4fJ.mjs.map +1 -0
- package/dist/renderer-D1R7vBUl.mjs +3 -0
- package/dist/{renderer-DabG62XS.mjs → renderer-D2XD4QYk.mjs} +1 -1
- package/dist/{renderer-DabG62XS.mjs.map → renderer-D2XD4QYk.mjs.map} +1 -1
- package/dist/{renderer-Bv-ljXHc.mjs → renderer-D3uNI10l.mjs} +2 -2
- package/dist/{renderer-Bv-ljXHc.mjs.map → renderer-D3uNI10l.mjs.map} +1 -1
- package/dist/renderer-D5yawxtJ.mjs +3 -0
- package/dist/{renderer-Bq3Geqe3.mjs → renderer-D6Gi_h4K.mjs} +1 -1
- package/dist/{renderer-DjI45OYC.mjs → renderer-D7zvPHKn.mjs} +1 -1
- package/dist/{renderer-DjI45OYC.mjs.map → renderer-D7zvPHKn.mjs.map} +1 -1
- package/dist/renderer-D9NnIx7o.mjs +3 -0
- package/dist/{renderer-D5GsF1LT.mjs → renderer-DAFyJ4dv.mjs} +2 -2
- package/dist/{renderer-D5GsF1LT.mjs.map → renderer-DAFyJ4dv.mjs.map} +1 -1
- package/dist/renderer-DC8jr1Ay.mjs +3 -0
- package/dist/{renderer-CXJxK7HP.mjs → renderer-DCK73tcD.mjs} +17 -4
- package/dist/renderer-DCK73tcD.mjs.map +1 -0
- package/dist/renderer-DCv-Abvn.mjs +4 -0
- package/dist/{renderer-B80s47yo.mjs → renderer-DEJwPRkR.mjs} +1 -1
- package/dist/{renderer-B80s47yo.mjs.map → renderer-DEJwPRkR.mjs.map} +1 -1
- package/dist/renderer-DPLFhzaV.mjs +3 -0
- package/dist/{renderer-B6Q5e9CU.mjs → renderer-DPpgBTlK.mjs} +2 -2
- package/dist/{renderer-B6Q5e9CU.mjs.map → renderer-DPpgBTlK.mjs.map} +1 -1
- package/dist/{renderer-DP-xNaYX.mjs → renderer-DRpE3ZW4.mjs} +2 -2
- package/dist/{renderer-DP-xNaYX.mjs.map → renderer-DRpE3ZW4.mjs.map} +1 -1
- package/dist/renderer-DVsF2FDr.mjs +3 -0
- package/dist/{renderer-VPK8JnSw.mjs → renderer-DX38J6mK.mjs} +7 -6
- package/dist/{renderer-VPK8JnSw.mjs.map → renderer-DX38J6mK.mjs.map} +1 -1
- package/dist/{renderer-CIvaRnP_.mjs → renderer-D_1oDOCP.mjs} +1 -1
- package/dist/{renderer-CIvaRnP_.mjs.map → renderer-D_1oDOCP.mjs.map} +1 -1
- package/dist/renderer-DetDm3ep.mjs +3 -0
- package/dist/{renderer-BENX0vRC.mjs → renderer-DgSO5OO0.mjs} +1 -1
- package/dist/renderer-DhMhJh_G.mjs +3 -0
- package/dist/renderer-DhQld4Qt.mjs +3 -0
- package/dist/renderer-Dn3rc3ah.mjs +3 -0
- package/dist/{renderer-DP948J9X.mjs → renderer-Dn8v2o9L.mjs} +18 -4
- package/dist/renderer-Dn8v2o9L.mjs.map +1 -0
- package/dist/{renderer-BQZniXw0.mjs → renderer-DnF3aXPX.mjs} +2 -2
- package/dist/{renderer-BQZniXw0.mjs.map → renderer-DnF3aXPX.mjs.map} +1 -1
- package/dist/renderer-Dw9LxE2f.mjs +3 -0
- package/dist/{renderer-CXZe0lfI.mjs → renderer-EmG34sT2.mjs} +2 -2
- package/dist/{renderer-CXZe0lfI.mjs.map → renderer-EmG34sT2.mjs.map} +1 -1
- package/dist/renderer-HvrQZw5E.mjs +3 -0
- package/dist/renderer-QdJE56ts.mjs +3 -0
- package/dist/{renderer-h-HOoLwD.mjs → renderer-_bygZSKk.mjs} +1 -1
- package/dist/{renderer-h-HOoLwD.mjs.map → renderer-_bygZSKk.mjs.map} +1 -1
- package/dist/{renderer-BD6Jkc8j.mjs → renderer-b6sZN90h.mjs} +4 -3
- package/dist/{renderer-BD6Jkc8j.mjs.map → renderer-b6sZN90h.mjs.map} +1 -1
- package/dist/renderer-d5-F_48R.mjs +3 -0
- package/dist/renderer-euGyUN2O.mjs +3 -0
- package/dist/{renderer-Bu0xOP_v.mjs → renderer-gT0ADXMW.mjs} +2 -2
- package/dist/{renderer-Bu0xOP_v.mjs.map → renderer-gT0ADXMW.mjs.map} +1 -1
- package/dist/{renderer-DbaSgadp.mjs → renderer-lq4n1hSS.mjs} +2 -2
- package/dist/{renderer-DbaSgadp.mjs.map → renderer-lq4n1hSS.mjs.map} +1 -1
- package/dist/renderer-p3SmBFP9.mjs +3 -0
- package/dist/renderer-xp_J0ln7.mjs +263 -0
- package/dist/renderer-xp_J0ln7.mjs.map +1 -0
- package/dist/{renderer-BTFPC3UJ.mjs → renderer-zvtpCnqy.mjs} +1 -1
- package/dist/{renderers-CP8CFWDs-BQBjaV9O.mjs → renderers-CP8CFWDs-Ciap7y_j.mjs} +2 -2
- package/dist/{renderers-CP8CFWDs-BQBjaV9O.mjs.map → renderers-CP8CFWDs-Ciap7y_j.mjs.map} +1 -1
- package/dist/signals/index.d.mts +5 -5
- package/dist/signals/index.mjs +4 -4
- package/dist/{signin-CZj4Oc5s.mjs → signin-Db08vl-g.mjs} +9 -9
- package/dist/{signin-CZj4Oc5s.mjs.map → signin-Db08vl-g.mjs.map} +1 -1
- package/dist/{sso-oidc-C0_31ThY.mjs → sso-oidc-CpLz_lIu.mjs} +9 -9
- package/dist/{sso-oidc-C0_31ThY.mjs.map → sso-oidc-CpLz_lIu.mjs.map} +1 -1
- package/dist/{sts-DD4ggEXC.mjs → sts-BQefGuml.mjs} +2 -2
- package/dist/{sts-nXw8RDJI.mjs → sts-Dgl0kH-t.mjs} +9 -9
- package/dist/{sts-nXw8RDJI.mjs.map → sts-Dgl0kH-t.mjs.map} +1 -1
- package/package.json +55 -54
- package/dist/dist-BQFap0wr.mjs.map +0 -1
- package/dist/dist-ZVlYkuR4.mjs.map +0 -1
- package/dist/dist-cjs-CmZEMtO6.mjs +0 -6
- package/dist/effects-axfL_C3a.mjs.map +0 -1
- package/dist/index-BJx_Qxc_.d.mts.map +0 -1
- package/dist/index-CZChQhXZ.d.mts.map +0 -1
- package/dist/index-WIPHLy5m.d.mts.map +0 -1
- package/dist/preview-engine/chunk-2XXICKQV.mjs +0 -82
- package/dist/preview-engine/chunk-66NVL4BN.mjs +0 -58
- package/dist/preview-engine/chunk-7MJVROKR.mjs +0 -98
- package/dist/preview-engine/chunk-7NVDTELW.mjs +0 -1
- package/dist/preview-engine/chunk-DMWSTYFF.mjs +0 -1
- package/dist/preview-engine/chunk-FKZ4XXPE.mjs +0 -1
- package/dist/preview-engine/chunk-JQ4WY6BZ.mjs +0 -186
- package/dist/preview-engine/chunk-S3P3MJYU.mjs +0 -1
- package/dist/preview-engine/renderers-MZBR3MSR.mjs +0 -248
- package/dist/renderer-1mNREW16.mjs +0 -3
- package/dist/renderer-4tKI3p9c.mjs +0 -3
- package/dist/renderer-B3XeKN-e.mjs +0 -3
- package/dist/renderer-B7_6SHd8.mjs +0 -3
- package/dist/renderer-BDLnExoP.mjs.map +0 -1
- package/dist/renderer-BENF6Wts.mjs +0 -3
- package/dist/renderer-BMovYRoR.mjs +0 -3
- package/dist/renderer-BPiLdwI1.mjs +0 -3
- package/dist/renderer-BdyMrzUX.mjs +0 -3
- package/dist/renderer-BfpdekRn.mjs +0 -3
- package/dist/renderer-BfvBHHNr.mjs +0 -3
- package/dist/renderer-BtdnLjKZ.mjs +0 -3
- package/dist/renderer-C0q5UUY7.mjs +0 -3
- package/dist/renderer-CXJxK7HP.mjs.map +0 -1
- package/dist/renderer-CboM4tba.mjs.map +0 -1
- package/dist/renderer-CceiI6P7.mjs.map +0 -1
- package/dist/renderer-Cg-rJgwM.mjs +0 -3
- package/dist/renderer-CkgQArsi.mjs +0 -3
- package/dist/renderer-CmIySXSN.mjs.map +0 -1
- package/dist/renderer-CnO9KcmP.mjs +0 -3
- package/dist/renderer-Cnp5JCwi.mjs +0 -3
- package/dist/renderer-CwiCQzjW.mjs +0 -4
- package/dist/renderer-D2LCMZ0l.mjs +0 -3
- package/dist/renderer-D6bWQtr-.mjs +0 -3
- package/dist/renderer-DBGy4qIh.mjs +0 -3
- package/dist/renderer-DBRnvHBV.mjs +0 -3
- package/dist/renderer-DDd3cjaz.mjs.map +0 -1
- package/dist/renderer-DJgrcu3v.mjs +0 -3
- package/dist/renderer-DP948J9X.mjs.map +0 -1
- package/dist/renderer-DTpBOlDA.mjs +0 -3
- package/dist/renderer-DWwIX4Mr.mjs +0 -3
- package/dist/renderer-DXyaswab.mjs.map +0 -1
- package/dist/renderer-DfnacE0H.mjs +0 -3
- package/dist/renderer-RA8pee2T.mjs +0 -3
- package/dist/renderer-eH4u4-2c.mjs +0 -3
- package/dist/renderer-eWOqFUz9.mjs +0 -3
- package/dist/renderer-o4wOvjEC.mjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as
|
|
1
|
+
import{t as B}from"./chunk-ZNGOAGAI.mjs";import{d as G}from"./chunk-6YJP57MZ.mjs";import{e as T}from"./chunk-BVF64D6H.mjs";T();T();function J(t,e,r,a){if(t==null)return e;if(typeof t=="object"&&t!==null){if("get"in t&&typeof t.get=="function")try{let o=t.get({frame:r,fps:a,time:a>0?r/a:0,duration:0,durationMs:0,progress:0,deltaTime:a>0?1/a:0}),l=Number(o);if(Number.isFinite(l))return l}catch{}if("value"in t){let o=Number(t.value);if(Number.isFinite(o))return o}}else if(typeof t=="function")try{let o=t(r,a),l=Number(o);if(Number.isFinite(l))return l}catch{}let i=Number(t);return Number.isFinite(i)?i:e}function y(t,e,r,a,i,o=0,l=30){let x=`${e}HandleId`,n=t[x],c=n?t.inputs?.[n]:null,m=!!(c?.connectionValid&&c.outputItem?.type==="Signal"),s=m?c?.outputItem?.data:null,u=r;if(m)s&&typeof s=="object"&&"offset"in s&&(u=Number(s.offset??r));else if(c?.connectionValid&&c.outputItem?.type==="Number")u=Number(c.outputItem.data??r);else{let p=t[e]??t.signals?.[e];u=J(p,r,o,l)}return u=Math.max(a,Math.min(i,u)),{hasSignal:m,sd:s,value:u}}var Q=`
|
|
2
2
|
struct ModulateUniforms {
|
|
3
3
|
hue : f32,
|
|
4
4
|
brightness : f32,
|
|
@@ -181,4 +181,4 @@ fn apply_sepia(c: vec4<f32>, s: f32) -> vec4<f32> {
|
|
|
181
181
|
|
|
182
182
|
return color;
|
|
183
183
|
}
|
|
184
|
-
`,
|
|
184
|
+
`,E=new WeakMap,f=new Float32Array(12);function X(t){let e=E.get(t);if(e)return e;let r=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),a=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),i=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:5,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:6,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]});return e={modulateUniformLayout:r,singleTextureLayout:a,modulateSignalsLayout:i,pipelineCache:new Map},E.set(t,e),e}function Y(t,e){let r=X(t),a=`modulate_${e}`,i=r.pipelineCache.get(a);if(!i){let o=t.createShaderModule({label:`modulate_static_${e}.wgsl`,code:Q});i=t.createRenderPipeline({label:`ModulatePipeline_static_${e}`,layout:t.createPipelineLayout({bindGroupLayouts:[r.modulateUniformLayout,r.singleTextureLayout,r.modulateSignalsLayout]}),vertex:{module:o,entryPoint:"vs"},fragment:{module:o,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}}),r.pipelineCache.set(a,i)}return{modulatePipeline:i,modulateUniformLayout:r.modulateUniformLayout,singleTextureLayout:r.singleTextureLayout,modulateSignalsLayout:r.modulateSignalsLayout}}var k=async t=>{let{ctx:e,encoder:r,pass:a,targetView:i,targetTexture:o,targetWidth:l,targetHeight:x,props:n,drawChild:c}=t,m=n.frame??0,s=n.compositionFrame??m,u=n.fps||30,p=n.virtualMedia?.operation;if(p?.op!=="Modulate"||!p)return;let w=n.virtualMedia.children?.[0];if(!w)return;a.end();let M=y(p,"hue",0,0,360,s,u),R=y(p,"brightness",1,0,2,s,u),_=y(p,"contrast",1,0,2,s,u),P=y(p,"exposure",0,-2,2,s,u),L=y(p,"saturation",1,0,2,s,u),V=y(p,"sepia",0,0,1,s,u),g=l,b=x,S=e.renderer.getTemporaryTexture(g,b,[...n.excludeTextures||[],o]),A=S.createView();e.renderer.beginFrame(r,A,{r:0,g:0,b:0,a:0},g,b,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:g,height:b}),e.renderer.pushIdentity(),await c(w,{...n,virtualMedia:w},A,S,g,b),e.renderer.popTransform(),e.renderer.popScissor();let{modulatePipeline:D,modulateUniformLayout:O,singleTextureLayout:C,modulateSignalsLayout:H}=Y(e.device,e.renderer.format),U=e.renderer.samplerCache.getSampler(e.device),I=e.renderer.getTemporaryTexture(g,b,[S,o,...n.excludeTextures||[]]);f[0]=M.value,f[1]=R.value,f[2]=_.value,f[3]=P.value,f[4]=L.value,f[5]=V.value;let W=[{name:"hue",info:M,idx:6},{name:"brightness",info:R,idx:7},{name:"contrast",info:_,idx:8},{name:"exposure",info:P,idx:9},{name:"saturation",info:L,idx:10},{name:"sepia",info:V,idx:11}],d=[],$=n.elapsedMs!==void 0?n.elapsedMs/1e3:m/u,j=n.virtualMedia?.metadata?.durationMs?n.virtualMedia.metadata.durationMs/1e3:n.durationMs!==void 0?n.durationMs/1e3:0;for(let h of W){let N=!!(h.info.hasSignal&&h.info.sd);if(f[h.idx]=N?1:0,N){let q=G.getOrCreate2DTextureView(e.device,r,h.info.sd.nodeId??`modulate_${h.name}_sig`,$,j,h.info.sd,g,b,n.renderId,m,u);d.push(q)}else d.push(G.getDummy1x1TextureView(e.device))}let K=e.renderer.getTemporaryBuffer(f),v=r.beginRenderPass({colorAttachments:[{view:I.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});v.setPipeline(D),v.setBindGroup(0,e.device.createBindGroup({layout:O,entries:[{binding:0,resource:{buffer:K}}]})),v.setBindGroup(1,e.renderer.bindGroupCache.getBindGroup(e.device,C,S,U)),v.setBindGroup(2,e.device.createBindGroup({layout:H,entries:[{binding:0,resource:d[0]},{binding:1,resource:d[1]},{binding:2,resource:d[2]},{binding:3,resource:d[3]},{binding:4,resource:d[4]},{binding:5,resource:d[5]},{binding:6,resource:U}]})),v.draw(4),v.end();let F=e.renderer.beginFrame(r,i,{r:0,g:0,b:0,a:0},l,x,"load");e.renderer.drawTexture(F,I,{x:0,y:0,width:l,height:x},{opacity:p.opacity??1}),t.pass=F};var ue=B({WebGPURenderer:k});export{ue as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as Z}from"./chunk-LKYN3BM2.mjs";import{a as mt}from"./chunk-JPXQPP6J.mjs";import{a as B}from"./chunk-CNSHAFEA.mjs";import{a as pt,b as K,d as dt,e as L}from"./chunk-
|
|
1
|
+
import{a as Z}from"./chunk-LKYN3BM2.mjs";import{a as mt}from"./chunk-JPXQPP6J.mjs";import{a as B}from"./chunk-CNSHAFEA.mjs";import{a as pt,b as K,d as dt,e as L}from"./chunk-36YGYLKD.mjs";import{a as ct,b as ht}from"./chunk-VWLR2AZR.mjs";import{d as R,f as G,g as M,i as ft}from"./chunk-ZJFAGIOM.mjs";import{d as lt}from"./chunk-HYBAPT6I.mjs";import{e as g}from"./chunk-BVF64D6H.mjs";g();var $=class{constructor(t,e){this.url=t;this.isHeadless=e}url;isHeadless;input=null;initPromise=null;iterator=null;iteratorStartTimestamp=-1;currentFetchId=0;fetchLock=Promise.resolve();destroyed=!1;async init(){if(!this.input)return this.initPromise?this.initPromise:(this.destroyed=!1,this.initPromise=(async()=>{try{let t=await L.acquire(this.url);this.destroyed?L.release(this.url):this.input=t}catch(t){throw this.initPromise=null,t}})(),this.initPromise)}destroy(){this.destroyed=!0,this.iterator?.return(),this.input&&(L.release(this.url),this.input=null),this.initPromise=null,this.onDestroy()}},J=class extends ${canvasSink=null;videoSampleSink=null;currentFrame=null;nextFrame=null;currentSample=null;nextSample=null;headlessQueue=[];isDecoding=!1;decodeBuffer=null;nextRequest=null;pushHeadlessQueue(t){let e=this.headlessQueue.findIndex(r=>r.timestamp>t.timestamp);e===-1?this.headlessQueue.push(t):this.headlessQueue.splice(e,0,t)}async fillHeadlessQueue(t){if(this.iterator)for(;this.headlessQueue.length<2;){let e=await this.iterator.next();if(this.currentFetchId!==t){e.value?.close?.();return}if(e.done||!e.value)break;this.pushHeadlessQueue(e.value)}}async closeIterator(t){if(t)try{await t.return()}catch{}}resetSinks(){let t=this.iterator;if(this.iterator=null,t)try{t.return()}catch{}this.canvasSink=null,this.videoSampleSink=null,this.currentFrame=null,this.nextFrame=null,this.currentSample?.close(),this.currentSample=null,this.nextSample?.close(),this.nextSample=null;for(let e of this.headlessQueue)try{e.close()}catch{}this.headlessQueue=[],this.decodeBuffer=null,this.iteratorStartTimestamp=-1}onDestroy(){this.resetSinks()}async startIterator(t,e){if(!this.canvasSink)return;let r=Math.max(0,Number.isFinite(t)?t:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==e||this.destroyed)return;this.iterator=this.canvasSink.canvases(r);let n=await this.iterator.next();if(this.currentFetchId!==e||this.destroyed)return;this.currentFrame=n.value??null;let s=await this.iterator.next();this.currentFetchId!==e||this.destroyed||(this.nextFrame=s.value??null,this.iteratorStartTimestamp=r)}async startIteratorHeadless(t,e){if(!this.videoSampleSink)return;let r=Math.max(0,Number.isFinite(t)?t:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==e||this.destroyed)return;for(let s of this.headlessQueue)s.close();this.headlessQueue=[];let n=Math.max(0,r-.1);this.iterator=this.videoSampleSink.samples(n),await this.fillHeadlessQueue(e),!(this.currentFetchId!==e||this.destroyed)&&(this.iteratorStartTimestamp=r)}async getFrame(t){if(await this.init(),this.destroyed||!this.input)return null;let e=Math.max(0,Number.isFinite(t)?t:0);return this.isDecoding?(this.nextRequest&&this.nextRequest.resolve(null),new Promise((r,i)=>{this.nextRequest={timestampSec:e,resolve:r,reject:i}})):this.executeDecode(e)}async executeDecode(t){this.isDecoding=!0;try{return await this.performDecode(t)}finally{if(this.isDecoding=!1,this.nextRequest){let e=this.nextRequest;this.nextRequest=null,this.executeDecode(e.timestampSec).then(e.resolve).catch(e.reject)}}}async performDecodeHeadless(t,e){if(!this.videoSampleSink){if(this.destroyed||!this.input)return null;let h=await this.input.getPrimaryVideoTrack();if(!h)return null;this.videoSampleSink=new pt(h)}let r=1e-4;if((!this.iterator||t<this.iteratorStartTimestamp-r||this.headlessQueue.length>0&&t<this.headlessQueue[0].timestamp-.01||this.headlessQueue.length>0&&t-this.headlessQueue[0].timestamp>1)&&(await this.startIteratorHeadless(t,e),this.currentFetchId!==e||this.destroyed||!this.input))return null;for(;;){if(await this.fillHeadlessQueue(e),this.currentFetchId!==e||this.destroyed||!this.input)return null;if(this.headlessQueue.length>=2&&this.headlessQueue[1].timestamp<=t+r){this.headlessQueue.shift()?.close();continue}break}let s=this.headlessQueue[0];if(!s)return null;let a=s.displayWidth,o=s.displayHeight,l=a*o*4,c=this.decodeBuffer;return(!c||c.length!==l)&&(c=new Uint8Array(l),this.decodeBuffer=c),await s.copyTo(c,{format:"RGBA"}),this.currentFetchId!==e||this.destroyed||!this.input?null:{width:a,height:o,buffer:c}}async performDecodeInternal(t){this.currentFetchId++;let e=this.currentFetchId;if(this.isHeadless)return this.performDecodeHeadless(t,e);if(!this.canvasSink){if(this.destroyed||!this.input)return null;let a=await this.input.getPrimaryVideoTrack();if(!a)return null;this.canvasSink=new K(a,{poolSize:3,alpha:!0})}let r=1e-4;if((!this.iterator||t<this.iteratorStartTimestamp-r||this.currentFrame&&t<this.currentFrame.timestamp-.01||this.currentFrame&&t-this.currentFrame.timestamp>1)&&(await this.startIterator(t,e),this.currentFetchId!==e||this.destroyed||!this.input))return null;for(;this.nextFrame&&this.nextFrame.timestamp<=t+r;)if(this.currentFrame=this.nextFrame,this.nextFrame=null,this.iterator){let a=await this.iterator.next();if(this.currentFetchId!==e||this.destroyed||!this.input)return null;this.nextFrame=a.value??null}if(!this.currentFrame)return null;let s=this.currentFrame.canvas;return{width:s.width,height:s.height,canvas:s}}async performDecode(t){let e=Math.max(0,Number.isFinite(t)?t:0);try{return await this.performDecodeInternal(e)}catch(r){let i=r;if(i?.name==="InputDisposedError"||i?.message?.includes("disposed")||this.destroyed||!this.input)return null;this.resetSinks();try{if(!this.isHeadless&&this.input&&!this.destroyed){let n=await this.input.getPrimaryVideoTrack();if(n&&!this.destroyed)return this.canvasSink=new K(n,{poolSize:3,alpha:!0,decoderOptions:{hardwareAcceleration:"prefer-software"}}),await this.performDecodeInternal(e)}}catch{}throw r}}},tt=class extends ${audioSink=null;onDestroy(){this.audioSink=null}async startIterator(t,e){this.audioSink&&(this.iterator?.return(),this.iterator=this.audioSink.buffers(t),this.iteratorStartTimestamp=t)}async*getBuffers(t){try{if(await this.init(),this.destroyed||!this.input)return;if(!this.audioSink){let i=await this.input.getPrimaryAudioTrack();if(!i)return;this.audioSink=new dt(i)}(!this.iterator||Math.abs(t-this.iteratorStartTimestamp)>.05)&&(this.currentFetchId++,await this.startIterator(t,this.currentFetchId));let r=this.currentFetchId;if(!this.iterator)return;for await(let i of this.iterator){if(this.currentFetchId!==r||this.destroyed||!this.input)break;this.iteratorStartTimestamp=i.timestamp+i.duration,yield i}}catch(e){let r=e;if(r?.name==="InputDisposedError"||r?.message?.includes("disposed")||this.destroyed||!this.input)return;throw e}finally{let e=this.currentFetchId;this.currentFetchId===e&&(this.iterator=null)}}},et=class{videoDecoders=new Map;audioDecoders=new Map;lastAccessed=new Map;touchKey(t){this.lastAccessed.set(t,Date.now())}destroy(){for(let t of this.videoDecoders.values())try{t.destroy()}catch{}this.videoDecoders.clear();for(let t of this.audioDecoders.values())try{t.destroy()}catch{}this.audioDecoders.clear(),this.lastAccessed.clear()}prune(t=3e5){let e=Date.now();for(let[r,i]of this.lastAccessed.entries())if(e-i>t){let n=this.videoDecoders.get(r);n&&(n.destroy(),this.videoDecoders.delete(r));let s=this.audioDecoders.get(r);s&&(s.destroy(),this.audioDecoders.delete(r)),this.lastAccessed.delete(r)}}getVideo(t,e,r){let i=`${t}-${e}-${r??"default"}`,n=this.videoDecoders.get(i);return n||(n=new J(t,e),this.videoDecoders.set(i,n)),this.touchKey(i),this.prune(),n}getAudio(t,e){let r=`${t}-${e??"default"}`,i=this.audioDecoders.get(r);return i||(i=new tt(t,!1),this.audioDecoders.set(r,i)),this.touchKey(r),this.prune(),i}clearNode(t){for(let[e,r]of this.videoDecoders)e.includes(t)&&(r.destroy(),this.videoDecoders.delete(e),this.lastAccessed.delete(e));for(let[e,r]of this.audioDecoders)e.includes(t)&&(r.destroy(),this.audioDecoders.delete(e),this.lastAccessed.delete(e))}},Vt=new et;g();g();var yt=`
|
|
2
2
|
struct CompositeUniforms {
|
|
3
3
|
blendMode : u32,
|
|
4
4
|
padding1 : u32,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as ue}from"./chunk-XOEEGC4Z.mjs";import{b as oe,c as ce}from"./chunk-IYVN2QEL.mjs";import{a as f}from"./chunk-NQZKBFC6.mjs";import{t as le}from"./chunk-ZNGOAGAI.mjs";import{d as X}from"./chunk-6YJP57MZ.mjs";import{e as P}from"./chunk-BVF64D6H.mjs";P();P();P();var Q=100,Te=ue().field("blurType",f.enum(["Gaussian","Box","Median","Motion","Bilateral","Edge-preserving","Radial","Zoom"]).default("Gaussian"),{bindable:!1,label:"Blur Type"}).field("strength",f.number().min(0).max(Q).default(5),{bindable:!0,dataTypes:["Number","Signal"],label:"Strength Signal",description:"The intensity of the blur. 0 = no blur. Can be modulated by a static number or a dynamic signal."}).field("angle",f.number().int().min(0).max(360).default(0),{bindable:!1,signal:!0,label:"Angle",description:"Direction of a Motion blur, in degrees."}).field("sigmaColor",f.number().min(.01).max(1).default(.1),{bindable:!0,dataTypes:["Number","Signal"],label:"Color Sigma Signal",description:"Sigma value for color space in Bilateral / Edge-preserving blurs. Can be modulated by a static number or a dynamic signal."}).field("centerX",f.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center X Signal",description:"The X coordinate of the blur center (0.0 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("centerY",f.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center Y Signal",description:"The Y coordinate of the blur center (0.0 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("partialBlur",f.boolean().default(!1),{bindable:!1,signal:!0,label:"Partial Blur",description:"Blurs only a specific circular area around center point."}).field("radius",f.number().min(.01).max(1).default(.3),{bindable:!0,dataTypes:["Number","Signal"],label:"Partial Radius Signal",description:"Radius of the partial blur region (0.01 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("radiusY",f.number().min(0).max(1).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Partial Radius Y Signal",description:"Vertical radius of the partial blur region (0 to 1.0). 0 reuses the horizontal radius."}).field("shape",f.enum(["ellipse","circle","rect"]).default("circle"),{bindable:!1,label:"Partial Shape",description:"Shape of the partial blur region."}).build(),Ie=Te.schema,De=f.union([oe,ce]);var b=`
|
|
2
2
|
struct BlurUniforms {
|
|
3
3
|
dirX : f32,
|
|
4
4
|
dirY : f32,
|
|
@@ -74,7 +74,7 @@ fn applyPartialBlur(blurred: vec4<f32>, uv: vec2<f32>, dimensions: vec2<f32>) ->
|
|
|
74
74
|
}
|
|
75
75
|
return mix(orig, blurred, mask);
|
|
76
76
|
}
|
|
77
|
-
`,
|
|
77
|
+
`,Pe=`
|
|
78
78
|
${b}
|
|
79
79
|
|
|
80
80
|
struct VSOut {
|
|
@@ -131,7 +131,7 @@ struct VSOut {
|
|
|
131
131
|
let blurred = color / totalWeight;
|
|
132
132
|
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
133
133
|
}
|
|
134
|
-
`,
|
|
134
|
+
`,Re=`
|
|
135
135
|
${b}
|
|
136
136
|
|
|
137
137
|
struct VSOut {
|
|
@@ -183,7 +183,7 @@ struct VSOut {
|
|
|
183
183
|
let blurred = color / count;
|
|
184
184
|
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
185
185
|
}
|
|
186
|
-
`,
|
|
186
|
+
`,Le=`
|
|
187
187
|
${b}
|
|
188
188
|
|
|
189
189
|
struct VSOut {
|
|
@@ -259,7 +259,7 @@ struct Val {
|
|
|
259
259
|
let medianIdx = count / 2;
|
|
260
260
|
return applyPartialBlur(values[medianIdx].color, in.uv, dimensions);
|
|
261
261
|
}
|
|
262
|
-
`,
|
|
262
|
+
`,Ve=`
|
|
263
263
|
${b}
|
|
264
264
|
|
|
265
265
|
struct VSOut {
|
|
@@ -314,7 +314,7 @@ struct VSOut {
|
|
|
314
314
|
let blurred = color / f32(numSamples);
|
|
315
315
|
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
316
316
|
}
|
|
317
|
-
`,
|
|
317
|
+
`,Ge=`
|
|
318
318
|
${b}
|
|
319
319
|
|
|
320
320
|
struct VSOut {
|
|
@@ -384,7 +384,7 @@ struct VSOut {
|
|
|
384
384
|
}
|
|
385
385
|
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
386
386
|
}
|
|
387
|
-
`,
|
|
387
|
+
`,we=`
|
|
388
388
|
${b}
|
|
389
389
|
|
|
390
390
|
struct VSOut {
|
|
@@ -481,7 +481,7 @@ struct VSOut {
|
|
|
481
481
|
let blurred = vec4<f32>(finalCol, centerCol.a);
|
|
482
482
|
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
483
483
|
}
|
|
484
|
-
`,
|
|
484
|
+
`,Ce=`
|
|
485
485
|
${b}
|
|
486
486
|
|
|
487
487
|
struct VSOut {
|
|
@@ -547,7 +547,7 @@ struct VSOut {
|
|
|
547
547
|
let blurred = color / 24.0;
|
|
548
548
|
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
549
549
|
}
|
|
550
|
-
`,
|
|
550
|
+
`,_e=`
|
|
551
551
|
${b}
|
|
552
552
|
|
|
553
553
|
struct VSOut {
|
|
@@ -607,4 +607,4 @@ struct VSOut {
|
|
|
607
607
|
let blurred = color / 24.0;
|
|
608
608
|
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
609
609
|
}
|
|
610
|
-
`,
|
|
610
|
+
`,de=new WeakMap;function Ye(u){let e=de.get(u);if(e)return e;let i=u.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),o=u.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}}]}),y=u.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:5,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]});return e={blurUniformLayout:i,singleTextureLayout:o,signalTextureLayout:y,pipelineCache:new Map},de.set(u,e),e}function Ue(u,e,i){let o=Ye(u),y=`blur_${i}_${e}`,p=o.pipelineCache.get(y);if(!p){let c=Pe;i==="Box"?c=Re:i==="Median"?c=Le:i==="Motion"?c=Ve:i==="Bilateral"?c=Ge:i==="Edge-preserving"?c=we:i==="Radial"?c=Ce:i==="Zoom"&&(c=_e);let B=u.createShaderModule({label:`blur_${i}_${e}.wgsl`,code:c});p=u.createRenderPipeline({label:`BlurPipeline_${i}_${e}`,layout:u.createPipelineLayout({bindGroupLayouts:[o.blurUniformLayout,o.singleTextureLayout,o.signalTextureLayout]}),vertex:{module:B,entryPoint:"vs"},fragment:{module:B,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}}),o.pipelineCache.set(y,p)}return{blurPipeline:p,blurUniformLayout:o.blurUniformLayout,singleTextureLayout:o.singleTextureLayout,signalTextureLayout:o.signalTextureLayout}}var ve=async u=>{let{ctx:e,encoder:i,pass:o,targetView:y,targetTexture:p,targetWidth:c,targetHeight:B,props:n,drawChild:ge}=u,I=n.frame??0,ee=n.compositionFrame??I,R=n.fps||30,l=n.virtualMedia?.operation;if(l?.op!=="Blur"||!l)return;let D=n.virtualMedia.children?.[0];if(!D)return;o.end();let t=new Float32Array(16),m=c,S=B,pe=n.containerWidth??e.surface.width/(typeof window<"u"?window.devicePixelRatio:1),A=m/pe,me=l.inputs?Object.keys(l.inputs)[0]:"blur_node",T=(r,s,v,w,g=!1)=>{let Be=`${r}HandleId`,ie=l[Be],x=ie?l.inputs?.[ie]:null,ne=!!(x?.connectionValid&&(x.outputItem?.type==="Signal"||x.outputItem?.type==="Numeric")),Z=ne&&x?.outputItem?.data?x.outputItem.data:null,h=s,K=!1,ae;if(ne){if(Z){let a=Number(Z.offset??0);h=Math.max(v,Math.min(w,a)),g&&(h*=A),K=!0}}else if(x?.connectionValid&&x.outputItem?.type==="Number"){let a=Number(x.outputItem.data??s);h=Math.max(v,Math.min(w,a)),g&&(h*=A)}else{let a=l[r];if(a!=null)if(typeof a=="object"){if("get"in a&&typeof a.get=="function")a=a.get({frame:ee,fps:R});else if("value"in a){let J=a;J.gpuBinding?.textureView&&(ae=J.gpuBinding.textureView,K=!0),a=J.value}}else typeof a=="function"&&(a=a(ee,R));let se=Number(a??s);h=Math.max(v,Math.min(w,isNaN(se)?s:se)),g&&(h*=A)}return{val:h,hasStaticSig:K,sd:Z,gpuTextureView:ae}},C=T("strength",5,0,Q,!0),_=T("sigmaColor",.1,.01,1,!1),Y=T("centerX",.5,0,1,!1),U=T("centerY",.5,0,1,!1),O=T("radius",.3,.001,1,!1),Se=T("radiusY",0,0,1,!1),d=e.renderer.getTemporaryTexture(m,S,[...n.excludeTextures||[],p]),te=d.createView();e.renderer.beginFrame(i,te,{r:0,g:0,b:0,a:0},m,S,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:m,height:S}),e.renderer.pushIdentity(),await ge(D,{...n,virtualMedia:D},te,d,m,S),e.renderer.popTransform(),e.renderer.popScissor();let L=l.blurType??"Gaussian",xe=L==="Gaussian"||L==="Box"||L==="Median"||L==="Bilateral",{blurPipeline:N,blurUniformLayout:E,singleTextureLayout:be,signalTextureLayout:k}=Ue(e.device,e.renderer.format,L),M=e.renderer.samplerCache.getSampler(e.device),he=n.elapsedMs!==void 0?n.elapsedMs/1e3:I/R,ye=n.virtualMedia?.metadata?.durationMs?n.virtualMedia.metadata.durationMs/1e3:n.durationMs!==void 0?n.durationMs/1e3:0;for(let r of[C,_,Y,U,O])r.hasStaticSig&&r.sd&&await X.ensureAudioSourcesExtracted(e.device,r.sd,R,n.renderId);let V=(r,s)=>r.gpuTextureView?r.gpuTextureView:r.hasStaticSig&&r.sd?X.getOrCreate2DTextureView(e.device,i,r.sd.nodeId??`${me}_${s}`,he,ye,r.sd,m,S,n.renderId,I,R):X.getDummy1x1TextureView(e.device),W=V(C,"strength_sig"),F=V(_,"sigmacolor_sig"),j=V(Y,"centerx_sig"),$=V(U,"centery_sig"),z=V(O,"radius_sig"),H=(r,s)=>e.device.createBindGroup({layout:be,entries:[{binding:0,resource:r.createView()},{binding:1,resource:M},{binding:2,resource:s.createView()}]}),q=!!(l.partialBlur&&l.partialBlur!=="false"&&l.partialBlur!==0);t[2]=C.val,t[3]=Number(l.angle??0),t[4]=_.val,t[5]=Y.val,t[6]=U.val,t[7]=O.val,t[8]=q?1:0,t[9]=C.hasStaticSig?1:0,t[10]=_.hasStaticSig?1:0,t[11]=Y.hasStaticSig?1:0,t[12]=U.hasStaticSig?1:0,t[13]=O.hasStaticSig?1:0,t[14]=Se.val,t[15]=l.shape==="rect"?1:0;let G;if(xe){let r=e.renderer.getTemporaryTexture(m,S,[d,p,...n.excludeTextures||[]]);G=e.renderer.getTemporaryTexture(m,S,[d,r,p,...n.excludeTextures||[]]),t[0]=1,t[1]=0,t[8]=0;let s=e.renderer.getTemporaryBuffer(t),v=i.beginRenderPass({colorAttachments:[{view:r.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});v.setPipeline(N),v.setBindGroup(0,e.device.createBindGroup({layout:E,entries:[{binding:0,resource:{buffer:s}}]})),v.setBindGroup(1,H(d,d)),v.setBindGroup(2,e.device.createBindGroup({layout:k,entries:[{binding:0,resource:W},{binding:1,resource:F},{binding:2,resource:j},{binding:3,resource:$},{binding:4,resource:z},{binding:5,resource:M}]})),v.draw(4),v.end(),t[0]=0,t[1]=1,t[8]=q?1:0;let w=e.renderer.getTemporaryBuffer(t),g=i.beginRenderPass({colorAttachments:[{view:G.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});g.setPipeline(N),g.setBindGroup(0,e.device.createBindGroup({layout:E,entries:[{binding:0,resource:{buffer:w}}]})),g.setBindGroup(1,H(r,d)),g.setBindGroup(2,e.device.createBindGroup({layout:k,entries:[{binding:0,resource:W},{binding:1,resource:F},{binding:2,resource:j},{binding:3,resource:$},{binding:4,resource:z},{binding:5,resource:M}]})),g.draw(4),g.end()}else{G=e.renderer.getTemporaryTexture(m,S,[d,p,...n.excludeTextures||[]]),t[0]=0,t[1]=0,t[8]=q?1:0;let r=e.renderer.getTemporaryBuffer(t),s=i.beginRenderPass({colorAttachments:[{view:G.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});s.setPipeline(N),s.setBindGroup(0,e.device.createBindGroup({layout:E,entries:[{binding:0,resource:{buffer:r}}]})),s.setBindGroup(1,H(d,d)),s.setBindGroup(2,e.device.createBindGroup({layout:k,entries:[{binding:0,resource:W},{binding:1,resource:F},{binding:2,resource:j},{binding:3,resource:$},{binding:4,resource:z},{binding:5,resource:M}]})),s.draw(4),s.end()}let re=e.renderer.beginFrame(i,y,{r:0,g:0,b:0,a:0},c,B,"load");e.renderer.drawTexture(re,G,{x:0,y:0,width:c,height:B},{opacity:l.opacity??1}),u.pass=re};var ze=le({WebGPURenderer:ve});export{ze as a};
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import{a as Q}from"./chunk-XOEEGC4Z.mjs";import{b as Z,c as ee}from"./chunk-IYVN2QEL.mjs";import{a as n}from"./chunk-NQZKBFC6.mjs";import{t as K}from"./chunk-ZNGOAGAI.mjs";import{d as J}from"./chunk-6YJP57MZ.mjs";import{e as b}from"./chunk-BVF64D6H.mjs";b();b();b();b();var R=500,I=100,d=4096,Ge=n.object({id:n.string().default("patch"),centerX:n.number().min(0).max(1).default(.5),centerY:n.number().min(0).max(1).default(.5),offsetX:n.number().min(-d).max(d).default(50),offsetY:n.number().min(-d).max(d).default(0),radius:n.number().min(1).max(R).default(25),sourceRadius:n.number().min(1).max(R).default(25),feather:n.number().min(0).max(I).default(50),opacity:n.number().min(0).max(1).default(1),mode:n.enum(["Clone","SeamlessHeal","TextureTransfer"]).default("SeamlessHeal")}),Ce=Q().field("patches",n.array(Ge).optional(),{label:"Patches",description:"List of patch healing operations applied sequentially."}).field("centerX",n.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center X Signal",description:"Horizontal normalized position of destination patch (0.0 to 1.0)."}).field("centerY",n.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center Y Signal",description:"Vertical normalized position of destination patch (0.0 to 1.0)."}).field("offsetX",n.number().min(-d).max(d).default(50),{bindable:!0,dataTypes:["Number","Signal"],label:"Source Offset X Signal",description:"Horizontal pixel distance from destination to sample source patch."}).field("offsetY",n.number().min(-d).max(d).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Source Offset Y Signal",description:"Vertical pixel distance from destination to sample source patch."}).field("radius",n.number().min(1).max(R).default(25),{bindable:!0,dataTypes:["Number","Signal"],label:"Target Radius Signal",description:"Radius of the destination circular patch in pixels (used when no explicit Mask input is connected)."}).field("sourceRadius",n.number().min(1).max(R).default(25),{bindable:!0,dataTypes:["Number","Signal"],label:"Source Radius Signal",description:"Radius of the source sample circular patch in pixels."}).field("feather",n.number().min(0).max(I).default(50),{bindable:!0,dataTypes:["Number","Signal"],label:"Feather Signal",description:"Softness edge falloff percentage (0\u2013100%)."}).field("opacity",n.number().min(0).max(1).default(1),{bindable:!0,dataTypes:["Number","Signal"],label:"Opacity Signal",description:"Blending opacity of the healed patch (0.0\u20131.0)."}).field("mode",n.enum(["Clone","SeamlessHeal","TextureTransfer"]).default("SeamlessHeal"),{label:"Healing Mode",description:"Healing algorithm: Clone (direct stamp), SeamlessHeal (Poisson color/lighting blend), TextureTransfer (luminance structure matching)."}).build(),_e=Ce.schema;function te(r){if(r?.patches&&r.patches.length>0)return r.patches.map((s,P)=>({id:s.id||`patch-${P+1}`,centerX:s.centerX??.5,centerY:s.centerY??.5,offsetX:s.offsetX??50,offsetY:s.offsetY??0,radius:s.radius??25,sourceRadius:s.sourceRadius??s.radius??25,feather:s.feather??50,opacity:s.opacity??1,mode:s.mode??"SeamlessHeal"}));let e=r?.radius??25;return[{id:"patch-1",centerX:r?.centerX??.5,centerY:r?.centerY??.5,offsetX:r?.offsetX??50,offsetY:r?.offsetY??0,radius:e,sourceRadius:r?.sourceRadius??e,feather:r?.feather??50,opacity:r?.opacity??1,mode:r?.mode??"SeamlessHeal"}]}var Fe=n.union([Z,ee]);var Me=`
|
|
2
|
+
struct VertexOutput {
|
|
3
|
+
@builtin(position) position : vec4<f32>,
|
|
4
|
+
@location(0) uv : vec2<f32>,
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
@vertex
|
|
8
|
+
fn vs_main(@builtin(vertex_index) vertexIndex : u32) -> VertexOutput {
|
|
9
|
+
var pos = array<vec2<f32>, 4>(
|
|
10
|
+
vec2<f32>(-1.0, 1.0),
|
|
11
|
+
vec2<f32>( 1.0, 1.0),
|
|
12
|
+
vec2<f32>(-1.0, -1.0),
|
|
13
|
+
vec2<f32>( 1.0, -1.0)
|
|
14
|
+
);
|
|
15
|
+
var uvs = array<vec2<f32>, 4>(
|
|
16
|
+
vec2<f32>(0.0, 0.0),
|
|
17
|
+
vec2<f32>(1.0, 0.0),
|
|
18
|
+
vec2<f32>(0.0, 1.0),
|
|
19
|
+
vec2<f32>(1.0, 1.0)
|
|
20
|
+
);
|
|
21
|
+
var output : VertexOutput;
|
|
22
|
+
output.position = vec4<f32>(pos[vertexIndex], 0.0, 1.0);
|
|
23
|
+
output.uv = uvs[vertexIndex];
|
|
24
|
+
return output;
|
|
25
|
+
}
|
|
26
|
+
`,Xe=`
|
|
27
|
+
struct PatchHealUniforms {
|
|
28
|
+
offsetX : f32,
|
|
29
|
+
offsetY : f32,
|
|
30
|
+
centerX : f32,
|
|
31
|
+
centerY : f32,
|
|
32
|
+
|
|
33
|
+
radius : f32,
|
|
34
|
+
sourceRadius : f32,
|
|
35
|
+
feather : f32,
|
|
36
|
+
opacity : f32,
|
|
37
|
+
|
|
38
|
+
mode : f32,
|
|
39
|
+
hasMask : f32,
|
|
40
|
+
hasOffsetXSig : f32,
|
|
41
|
+
hasOffsetYSig : f32,
|
|
42
|
+
|
|
43
|
+
hasCenterXSig : f32,
|
|
44
|
+
hasCenterYSig : f32,
|
|
45
|
+
hasRadiusSig : f32,
|
|
46
|
+
hasSourceRadSig : f32,
|
|
47
|
+
|
|
48
|
+
hasFeatherSig : f32,
|
|
49
|
+
hasOpacitySig : f32,
|
|
50
|
+
pad0 : f32,
|
|
51
|
+
pad1 : f32,
|
|
52
|
+
};
|
|
53
|
+
`,He=`
|
|
54
|
+
${Xe}
|
|
55
|
+
|
|
56
|
+
@group(0) @binding(0) var<uniform> u : PatchHealUniforms;
|
|
57
|
+
|
|
58
|
+
@group(1) @binding(0) var srcTex : texture_2d<f32>;
|
|
59
|
+
@group(1) @binding(1) var maskTex : texture_2d<f32>;
|
|
60
|
+
@group(1) @binding(2) var samp : sampler;
|
|
61
|
+
|
|
62
|
+
@group(2) @binding(0) var offsetXSigTex : texture_2d<f32>;
|
|
63
|
+
@group(2) @binding(1) var offsetYSigTex : texture_2d<f32>;
|
|
64
|
+
@group(2) @binding(2) var centerXSigTex : texture_2d<f32>;
|
|
65
|
+
@group(2) @binding(3) var centerYSigTex : texture_2d<f32>;
|
|
66
|
+
@group(2) @binding(4) var radiusSigTex : texture_2d<f32>;
|
|
67
|
+
@group(2) @binding(5) var sourceRadSigTex : texture_2d<f32>;
|
|
68
|
+
@group(2) @binding(6) var featherSigTex : texture_2d<f32>;
|
|
69
|
+
@group(2) @binding(7) var opacitySigTex : texture_2d<f32>;
|
|
70
|
+
@group(2) @binding(8) var signalSamp : sampler;
|
|
71
|
+
|
|
72
|
+
fn getLuminance(c : vec3<f32>) -> f32 {
|
|
73
|
+
return dot(c, vec3<f32>(0.2126, 0.7152, 0.0722));
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
fn sampleBoxBlur(tex : texture_2d<f32>, smp : sampler, centerUv : vec2<f32>, blurPx : f32, dims : vec2<f32>) -> vec4<f32> {
|
|
77
|
+
let texel = 1.0 / dims;
|
|
78
|
+
let stepSize = max(1.0, blurPx / 3.0);
|
|
79
|
+
var accum = vec4<f32>(0.0);
|
|
80
|
+
var count = 0.0;
|
|
81
|
+
|
|
82
|
+
for (var y = -2; y <= 2; y++) {
|
|
83
|
+
for (var x = -2; x <= 2; x++) {
|
|
84
|
+
let offset = vec2<f32>(f32(x) * stepSize, f32(y) * stepSize) * texel;
|
|
85
|
+
let sampleUv = clamp(centerUv + offset, vec2<f32>(0.0), vec2<f32>(1.0));
|
|
86
|
+
accum += textureSampleLevel(tex, smp, sampleUv, 0.0);
|
|
87
|
+
count += 1.0;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return accum / count;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@fragment
|
|
94
|
+
fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
|
|
95
|
+
let dimensions = vec2<f32>(textureDimensions(srcTex));
|
|
96
|
+
|
|
97
|
+
var offsetX = u.offsetX;
|
|
98
|
+
if (u.hasOffsetXSig > 0.5) {
|
|
99
|
+
offsetX = textureSampleLevel(offsetXSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
100
|
+
}
|
|
101
|
+
var offsetY = u.offsetY;
|
|
102
|
+
if (u.hasOffsetYSig > 0.5) {
|
|
103
|
+
offsetY = textureSampleLevel(offsetYSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
104
|
+
}
|
|
105
|
+
var centerX = u.centerX;
|
|
106
|
+
if (u.hasCenterXSig > 0.5) {
|
|
107
|
+
centerX = textureSampleLevel(centerXSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
108
|
+
}
|
|
109
|
+
var centerY = u.centerY;
|
|
110
|
+
if (u.hasCenterYSig > 0.5) {
|
|
111
|
+
centerY = textureSampleLevel(centerYSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
112
|
+
}
|
|
113
|
+
var radius = u.radius;
|
|
114
|
+
if (u.hasRadiusSig > 0.5) {
|
|
115
|
+
radius = textureSampleLevel(radiusSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
116
|
+
}
|
|
117
|
+
var sourceRadius = u.sourceRadius;
|
|
118
|
+
if (u.hasSourceRadSig > 0.5) {
|
|
119
|
+
sourceRadius = textureSampleLevel(sourceRadSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
120
|
+
}
|
|
121
|
+
var feather = u.feather;
|
|
122
|
+
if (u.hasFeatherSig > 0.5) {
|
|
123
|
+
feather = textureSampleLevel(featherSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
124
|
+
}
|
|
125
|
+
var opacity = u.opacity;
|
|
126
|
+
if (u.hasOpacitySig > 0.5) {
|
|
127
|
+
opacity = textureSampleLevel(opacitySigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
let dstCol = textureSampleLevel(srcTex, samp, in.uv, 0.0);
|
|
131
|
+
|
|
132
|
+
// Calculate mask weight (either from explicit mask or procedural circular patch)
|
|
133
|
+
var maskWeight = 0.0;
|
|
134
|
+
let targetCenterUV = vec2<f32>(centerX, centerY);
|
|
135
|
+
|
|
136
|
+
if (u.hasMask > 0.5) {
|
|
137
|
+
let maskCol = textureSampleLevel(maskTex, samp, in.uv, 0.0);
|
|
138
|
+
maskWeight = max(maskCol.a, max(maskCol.r, max(maskCol.g, maskCol.b)));
|
|
139
|
+
} else {
|
|
140
|
+
let distPx = length((in.uv - targetCenterUV) * dimensions);
|
|
141
|
+
let innerRadius = radius * max(0.0, 1.0 - feather / 100.0);
|
|
142
|
+
maskWeight = 1.0 - smoothstep(innerRadius, max(innerRadius + 0.001, radius), distPx);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
let blendWeight = clamp(maskWeight * opacity, 0.0, 1.0);
|
|
146
|
+
if (blendWeight < 1e-4) {
|
|
147
|
+
return dstCol;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// Compute source sample coordinate (scaling from sourceRadius to target radius if different)
|
|
151
|
+
let sourceCenterUV = targetCenterUV + vec2<f32>(offsetX, offsetY) / dimensions;
|
|
152
|
+
let srcScale = max(1.0, sourceRadius) / max(1.0, radius);
|
|
153
|
+
let uvFromTargetCenter = in.uv - targetCenterUV;
|
|
154
|
+
let srcUV = clamp(sourceCenterUV + uvFromTargetCenter * srcScale, vec2<f32>(0.0), vec2<f32>(1.0));
|
|
155
|
+
let srcCol = textureSampleLevel(srcTex, samp, srcUV, 0.0);
|
|
156
|
+
|
|
157
|
+
var healedCol = srcCol;
|
|
158
|
+
|
|
159
|
+
if (u.mode > 0.5 && u.mode < 1.5) {
|
|
160
|
+
// Mode 1: Seamless Heal (Poisson gradient / local illumination matching)
|
|
161
|
+
let blurRadius = max(4.0, radius * 0.4);
|
|
162
|
+
let srcBlur = sampleBoxBlur(srcTex, samp, srcUV, blurRadius, dimensions);
|
|
163
|
+
let dstBlur = sampleBoxBlur(srcTex, samp, in.uv, blurRadius, dimensions);
|
|
164
|
+
|
|
165
|
+
let srcDetail = srcCol.rgb - srcBlur.rgb;
|
|
166
|
+
let healedRgb = dstBlur.rgb + srcDetail;
|
|
167
|
+
let clampedRgb = clamp(healedRgb, vec3<f32>(0.0), vec3<f32>(srcCol.a));
|
|
168
|
+
healedCol = vec4<f32>(clampedRgb, srcCol.a);
|
|
169
|
+
} else if (u.mode >= 1.5) {
|
|
170
|
+
// Mode 2: Texture Transfer (Luminance structure matching)
|
|
171
|
+
let blurRadius = max(4.0, radius * 0.4);
|
|
172
|
+
let srcBlur = sampleBoxBlur(srcTex, samp, srcUV, blurRadius, dimensions);
|
|
173
|
+
|
|
174
|
+
let lumaSrc = getLuminance(srcCol.rgb);
|
|
175
|
+
let lumaSrcBlur = getLuminance(srcBlur.rgb);
|
|
176
|
+
let lumaDelta = lumaSrc - lumaSrcBlur;
|
|
177
|
+
|
|
178
|
+
let healedRgb = dstCol.rgb + vec3<f32>(lumaDelta);
|
|
179
|
+
let clampedRgb = clamp(healedRgb, vec3<f32>(0.0), vec3<f32>(dstCol.a));
|
|
180
|
+
healedCol = vec4<f32>(clampedRgb, dstCol.a);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
return mix(dstCol, healedCol, blendWeight);
|
|
184
|
+
}
|
|
185
|
+
`,ae=new WeakMap;function Ue(r,e){let s=ae.get(r);if(s)return s;let P=r.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),U=r.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),v=r.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:5,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:6,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:7,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:8,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),L=r.createShaderModule({code:`${Me}
|
|
186
|
+
${He}`}),N=r.createPipelineLayout({bindGroupLayouts:[P,U,v]}),i=r.createRenderPipeline({layout:N,vertex:{module:L,entryPoint:"vs_main"},fragment:{module:L,entryPoint:"fs_main",targets:[{format:e,blend:{color:{srcFactor:"one",dstFactor:"zero",operation:"add"},alpha:{srcFactor:"one",dstFactor:"zero",operation:"add"}}}]},primitive:{topology:"triangle-strip"}});return s={uniformLayout:P,textureLayout:U,signalTextureLayout:v,pipeline:i},ae.set(r,s),s}var re=async r=>{let{ctx:e,encoder:s,pass:P,targetView:U,targetTexture:v,targetWidth:L,targetHeight:N,props:i,drawChild:W}=r,p=i.virtualMedia?.operation;if(p?.op!=="PatchHeal"||!p)return;let k=i.virtualMedia?.children?.[0];if(!k)return;P.end();let l=L,c=N,B=i.frame??0,z=i.compositionFrame??B,Y=i.fps||30,ie=p.inputs?Object.keys(p.inputs)[0]:"patch_heal_node",V=J,h=e.renderer.getTemporaryTexture(l,c,[...i.excludeTextures||[],v]),_=h.createView();e.renderer.beginFrame(s,_,{r:0,g:0,b:0,a:0},l,c,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:l,height:c}),e.renderer.pushIdentity(),await W(k,{...i,virtualMedia:k,renderId:`${i.renderId}-src`,excludeTextures:[...i.excludeTextures||[],h]},_,h,l,c),e.renderer.popTransform(),e.renderer.popScissor();let m=null;if(p.maskMedia){m=e.renderer.getTemporaryTexture(l,c,[...i.excludeTextures||[],v,h]);let g=m.createView();e.renderer.beginFrame(s,g,{r:0,g:0,b:0,a:0},l,c,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:l,height:c}),e.renderer.pushIdentity(),await W(p.maskMedia,{...i,virtualMedia:p.maskMedia,renderId:`${i.renderId}-mask`,excludeTextures:[...i.excludeTextures||[],h,m]},g,m,l,c),e.renderer.popTransform(),e.renderer.popScissor()}let{pipeline:se,uniformLayout:ne,textureLayout:oe,signalTextureLayout:ue}=Ue(e.device,e.renderer.format),$=e.renderer.samplerCache.getSampler(e.device),le=i.elapsedMs!==void 0?i.elapsedMs/1e3:B/Y,ce=i.virtualMedia?.metadata?.durationMs?i.virtualMedia.metadata.durationMs/1e3:i.durationMs!==void 0?i.durationMs/1e3:0,A=te(p),S=(g,t,f,y)=>{let H=`${g}HandleId`,G=p[H],u=G?p.inputs?.[G]:null,C=!!(u?.connectionValid&&(u.outputItem?.type==="Signal"||u.outputItem?.type==="Numeric")),T=C&&u?.outputItem?.data?u.outputItem.data:null,x=t,M=!1;if(C)T&&(x=Math.max(f,Math.min(y,Number(T.offset??0))),M=!0);else if(u?.connectionValid&&u.outputItem?.type==="Number"){let a=typeof u.outputItem.data=="number"?u.outputItem.data:u.outputItem.data?.value??t;x=Math.max(f,Math.min(y,Number(a)))}else{let a=t;a!=null&&(typeof a=="object"?"get"in a&&typeof a.get=="function"?a=a.get({frame:z,fps:Y}):"value"in a&&(a=a.value):typeof a=="function"&&(a=a(z,Y)));let F=Number(a??t);x=Math.max(f,Math.min(y,isNaN(F)?t:F))}return{val:x,hasStaticSig:M,sd:T}},de=m?m.createView():_,E=h,D=e.renderer.getTemporaryTexture(l,c,[h,...m?[m]:[],v,...i.excludeTextures||[]]),fe=A.length>1?e.renderer.getTemporaryTexture(l,c,[h,D,...m?[m]:[],v,...i.excludeTextures||[]]):D;for(let g=0;g<A.length;g++){let t=A[g],f=g===0,y=f?S("centerX",t.centerX,0,1):{val:t.centerX,hasStaticSig:!1,sd:null},H=f?S("centerY",t.centerY,0,1):{val:t.centerY,hasStaticSig:!1,sd:null},G=f?S("offsetX",t.offsetX,-d,d):{val:t.offsetX,hasStaticSig:!1,sd:null},u=f?S("offsetY",t.offsetY,-d,d):{val:t.offsetY,hasStaticSig:!1,sd:null},C=f?S("radius",t.radius,1,R):{val:t.radius,hasStaticSig:!1,sd:null},T=f?S("sourceRadius",t.sourceRadius??t.radius,1,R):{val:t.sourceRadius??t.radius,hasStaticSig:!1,sd:null},x=f?S("feather",t.feather,0,I):{val:t.feather,hasStaticSig:!1,sd:null},M=f?S("opacity",t.opacity,0,1):{val:t.opacity,hasStaticSig:!1,sd:null},a=(w,Pe)=>w.hasStaticSig&&w.sd&&V?V.getOrCreate2DTextureView(e.device,s,w.sd.nodeId??`${ie}_${Pe}`,le,ce,w.sd,l,c,i.renderId,B,Y):V?V.getDummy1x1TextureView(e.device):_,F=a(G,"offsetX_sig"),me=a(u,"offsetY_sig"),pe=a(y,"centerX_sig"),ge=a(H,"centerY_sig"),he=a(C,"radius_sig"),Se=a(T,"sourceRadius_sig"),xe=a(x,"feather_sig"),be=a(M,"opacity_sig"),ve=t.mode==="Clone"?0:t.mode==="TextureTransfer"?2:1,o=new Float32Array(20);o[0]=G.val,o[1]=u.val,o[2]=y.val,o[3]=H.val,o[4]=C.val,o[5]=T.val,o[6]=x.val,o[7]=M.val,o[8]=ve,o[9]=m?1:0,o[10]=G.hasStaticSig?1:0,o[11]=u.hasStaticSig?1:0,o[12]=y.hasStaticSig?1:0,o[13]=H.hasStaticSig?1:0,o[14]=C.hasStaticSig?1:0,o[15]=T.hasStaticSig?1:0,o[16]=x.hasStaticSig?1:0,o[17]=M.hasStaticSig?1:0,o[18]=0,o[19]=0;let ye=e.renderer.getTemporaryBuffer(o),q=g%2===0?D:fe,Te=e.device.createBindGroup({layout:oe,entries:[{binding:0,resource:E.createView()},{binding:1,resource:de},{binding:2,resource:$}]}),Re=e.device.createBindGroup({layout:ue,entries:[{binding:0,resource:F},{binding:1,resource:me},{binding:2,resource:pe},{binding:3,resource:ge},{binding:4,resource:he},{binding:5,resource:Se},{binding:6,resource:xe},{binding:7,resource:be},{binding:8,resource:$}]}),X=s.beginRenderPass({colorAttachments:[{view:q.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});X.setPipeline(se),X.setBindGroup(0,e.device.createBindGroup({layout:ne,entries:[{binding:0,resource:{buffer:ye}}]})),X.setBindGroup(1,Te),X.setBindGroup(2,Re),X.draw(4),X.end(),E=q}let j=e.renderer.beginFrame(s,U,{r:0,g:0,b:0,a:0},l,c,"load");e.renderer.drawTexture(j,E,{x:0,y:0,width:l,height:c},{opacity:1}),r.pass=j};var $e=K({WebGPURenderer:re});export{re as a,$e as b};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{d as V}from"./chunk-6YJP57MZ.mjs";import{e as
|
|
1
|
+
import{d as V}from"./chunk-6YJP57MZ.mjs";import{e as w}from"./chunk-BVF64D6H.mjs";w();w();var O=new WeakMap,ce=`
|
|
2
2
|
struct ColorBalanceUniforms {
|
|
3
3
|
shadows : vec4<f32>,
|
|
4
4
|
midtones : vec4<f32>,
|
|
@@ -131,4 +131,4 @@ fn set_luminance(c: vec3<f32>, l: f32) -> vec3<f32> {
|
|
|
131
131
|
|
|
132
132
|
return vec4<f32>(adjustedRgb * alpha, alpha);
|
|
133
133
|
}
|
|
134
|
-
`;function
|
|
134
|
+
`;function he(r,t){let s=O.get(r);if(s)return s;let S=r.createBindGroupLayout({label:"ColorBalanceUniformLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),v=r.createBindGroupLayout({label:"ColorBalanceTextureLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),f=r.createBindGroupLayout({label:"ColorBalanceSignalTextureLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:5,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:6,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:7,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:8,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:9,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),c=r.createShaderModule({label:"ColorBalanceShaderModule",code:ce});return s={pipeline:r.createRenderPipeline({label:"ColorBalancePipeline",layout:r.createPipelineLayout({bindGroupLayouts:[S,v,f]}),vertex:{module:c,entryPoint:"vs"},fragment:{module:c,entryPoint:"fs",targets:[{format:t}]},primitive:{topology:"triangle-strip"}}),uniformLayout:S,textureLayout:v,signalTextureLayout:f},O.set(r,s),s}var e=new Float32Array(24),k=async r=>{let{ctx:t,encoder:s,pass:S,targetView:v,targetTexture:f,targetWidth:c,targetHeight:y,props:n,drawChild:W}=r,i=n.virtualMedia?.operation;if(i?.op!=="ColorBalance"||!n.virtualMedia?.children?.[0])return;S.end();let G=n.frame??0,H=n.compositionFrame??G,b=n.fps||30,F=n.virtualMedia.children[0],h=c,m=y,j=n.virtualMedia?.metadata?.id||(i.inputs?Object.keys(i.inputs)[0]:null)||n.renderId||"colorbalance_node",o=(a,g,I=-100,D=100)=>{if(a&&i.inputs?.[a]?.connectionValid){let u=i.inputs[a].outputItem;if(u?.type==="Number"){let ge=typeof u.data=="number"?u.data:u.data?.value??g;return{val:Math.max(I,Math.min(D,ge)),hasStaticSig:!1,sd:null}}if(u?.type==="Signal"&&u.data)return{val:g,hasStaticSig:!0,sd:u.data}}return{val:Math.max(I,Math.min(D,g)),hasStaticSig:!1,sd:null}},l=a=>{a!=null&&(typeof a=="object"&&a!==null?"get"in a&&typeof a.get=="function"?a=a.get({frame:H,fps:b}):"value"in a&&(a=a.value):typeof a=="function"&&(a=a(H,b)));let g=Number(a??0);return isNaN(g)?0:g},B=o(i.shadows_cyanRedHandleId,l(i.shadows?.cyanRed)),R=o(i.shadows_magentaGreenHandleId,l(i.shadows?.magentaGreen)),T=o(i.shadows_yellowBlueHandleId,l(i.shadows?.yellowBlue)),M=o(i.midtones_cyanRedHandleId,l(i.midtones?.cyanRed)),_=o(i.midtones_magentaGreenHandleId,l(i.midtones?.magentaGreen)),C=o(i.midtones_yellowBlueHandleId,l(i.midtones?.yellowBlue)),L=o(i.highlights_cyanRedHandleId,l(i.highlights?.cyanRed)),P=o(i.highlights_magentaGreenHandleId,l(i.highlights?.magentaGreen)),U=o(i.highlights_yellowBlueHandleId,l(i.highlights?.yellowBlue)),x=t.renderer.getTemporaryTexture(h,m,[...n.excludeTextures||[],f]),N=x.createView();t.renderer.beginFrame(s,N,{r:0,g:0,b:0,a:0},h,m,"clear").end(),t.renderer.pushScissor({x:0,y:0,width:h,height:m}),t.renderer.pushIdentity(),await W(F,{...n,virtualMedia:F},N,x,h,m),t.renderer.popTransform(),t.renderer.popScissor();let{pipeline:$,uniformLayout:q,textureLayout:z,signalTextureLayout:J}=he(t.device,t.renderer.format),A=t.renderer.samplerCache.getSampler(t.device),K=n.elapsedMs!==void 0?n.elapsedMs/1e3:G/b,Q=n.virtualMedia?.metadata?.durationMs?n.virtualMedia.metadata.durationMs/1e3:n.durationMs!==void 0?n.durationMs/1e3:0,d=(a,g)=>a.hasStaticSig&&a.sd?V.getOrCreate2DTextureView(t.device,s,a.sd.nodeId??`${j}_${g}`,K,Q,a.sd,h,m,n.renderId,G,b):V.getDummy1x1TextureView(t.device),X=d(B,"shadows_cyanRed_sig"),Z=d(R,"shadows_magentaGreen_sig"),ee=d(T,"shadows_yellowBlue_sig"),ie=d(M,"midtones_cyanRed_sig"),ae=d(_,"midtones_magentaGreen_sig"),te=d(C,"midtones_yellowBlue_sig"),ne=d(L,"highlights_cyanRed_sig"),re=d(P,"highlights_magentaGreen_sig"),se=d(U,"highlights_yellowBlue_sig"),oe=i.preserveLuminosity===!1?0:1;e[0]=B.val/100,e[1]=R.val/100,e[2]=T.val/100,e[3]=0,e[4]=M.val/100,e[5]=_.val/100,e[6]=C.val/100,e[7]=0,e[8]=L.val/100,e[9]=P.val/100,e[10]=U.val/100,e[11]=0,e[12]=oe,e[13]=B.hasStaticSig?1:0,e[14]=R.hasStaticSig?1:0,e[15]=T.hasStaticSig?1:0,e[16]=M.hasStaticSig?1:0,e[17]=_.hasStaticSig?1:0,e[18]=C.hasStaticSig?1:0,e[19]=L.hasStaticSig?1:0,e[20]=P.hasStaticSig?1:0,e[21]=U.hasStaticSig?1:0,e[22]=0,e[23]=0;let le=t.renderer.getTemporaryBuffer(e),Y=t.renderer.getTemporaryTexture(h,m,[x,f,...n.excludeTextures||[]]),de=t.device.createBindGroup({layout:J,entries:[{binding:0,resource:X},{binding:1,resource:Z},{binding:2,resource:ee},{binding:3,resource:ie},{binding:4,resource:ae},{binding:5,resource:te},{binding:6,resource:ne},{binding:7,resource:re},{binding:8,resource:se},{binding:9,resource:A}]}),p=s.beginRenderPass({colorAttachments:[{view:Y.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});p.setPipeline($),p.setBindGroup(0,t.device.createBindGroup({layout:q,entries:[{binding:0,resource:{buffer:le}}]})),p.setBindGroup(1,t.renderer.bindGroupCache.getBindGroup(t.device,z,x,A)),p.setBindGroup(2,de),p.draw(4),p.end();let E=t.renderer.beginFrame(s,v,{r:0,g:0,b:0,a:0},c,y,"load");t.renderer.drawTexture(E,Y,{x:0,y:0,width:c,height:y},{opacity:n.opacity??1}),r.pass=E};var ye={WebGPURenderer:k};export{k as a,ye as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as t}from"./chunk-AW7HNZKR.mjs";import{a as $}from"./chunk-25IW7NYO.mjs";import{h as j}from"./chunk-ZNGOAGAI.mjs";import{d,e as c}from"./chunk-BVF64D6H.mjs";c();c();c();c();c();c();function _(r){return typeof d<"u"?d.env?.[r]:void 0}function J(){let r=_("FRAMEFIELDS_STRICT_PROPS");return r==="1"||r==="true"}function Ee(){return J()||_("NODE_ENV")!=="production"}var Z=new Set;function K(r){if(J())throw new Error(r);Z.has(r)||(Z.add(r),console.warn(`[framefields] ${r}`))}function U(r){if(typeof r!="object"||r===null||Array.isArray(r)||j(r))return!1;let e=Object.getPrototypeOf(r);return e===Object.prototype||e===null}function we(r,e){let n=Array.from({length:e.length+1},(l,i)=>i);for(let l=1;l<=r.length;l++){let i=n[0];n[0]=l;for(let s=1;s<=e.length;s++){let u=n[s];n[s]=Math.min(n[s]+1,n[s-1]+1,i+(r[l-1]===e[s-1]?0:1)),i=u}}return n[e.length]}function ve(r,e){let n,l=Number.POSITIVE_INFINITY,i=r.toLowerCase();for(let u of e){let p=u.toLowerCase(),m=p.includes(i)||i.includes(p)?1:we(i,p);m<l&&(l=m,n=u)}return n&&l<=Math.max(2,Math.ceil(r.length/2))?` Did you mean "${n}"?`:` Known props: ${e.join(", ")}.`}function Me(r,e,n){if(typeof e=="number"){let{min:l,max:i}=n,s=l!==void 0&&e<l,u=i!==void 0&&e>i;if(s||u||Number.isNaN(e)){let p=l!==void 0&&i!==void 0?`${l} to ${i}`:l!==void 0?`\u2265 ${l}`:`\u2264 ${i}`;K(Number.isNaN(e)?`${r} is NaN`:`${r} = ${e} is outside ${p}`)}return}n.enum&&(typeof e=="string"||typeof e=="boolean")&&!n.enum.includes(e)&&K(`${r} = ${JSON.stringify(e)} is not one of ${n.enum.map(l=>JSON.stringify(l)).join(", ")}`)}function Q(r,e,n){let l=Object.keys(n);for(let[i,s]of Object.entries(e)){if(s===void 0)continue;let u=n[i];if(!u){K(`${r}: unknown prop "${i}".${ve(i,l)}`);continue}j(s)||typeof s=="function"||(u.props&&U(s)?Q(`${r}.${i}`,s,u.props):Me(`${r}.${i}`,s,u))}}function Re(r){return typeof r=="object"&&r!==null?structuredClone(r):r}function o(r,e,n,l){let i=n;Ee()&&Q(r,i,l);let s={};for(let[u,p]of Object.entries(e))s[u]=Re(p);for(let[u,p]of Object.entries(i)){if(p===void 0)continue;let m=s[u];s[u]=U(m)&&U(p)?{...m,...Object.fromEntries(Object.entries(p).filter(([,Ce])=>Ce!==void 0))}:p}return s}c();var a={AudioCompressor:{threshold:{min:-60,max:0},ratio:{min:1,max:100},attack:{min:1e-4,max:1},release:{min:.01,max:5},knee:{min:0,max:24},makeupGain:{min:0,max:24}},AudioDelay:{delayTime:{min:.001,max:5},feedback:{min:0,max:.95},wet:{min:0,max:1},dry:{min:0,max:1},pingPong:{}},AudioFade:{fadeInDuration:{min:0,max:60},fadeOutDuration:{min:0,max:60},fadeInCurve:{enum:["linear","exponential","scurve"]},fadeOutCurve:{enum:["linear","exponential","scurve"]}},AudioNoiseGate:{threshold:{min:-120,max:0},attack:{min:1e-4,max:1},hold:{min:.001,max:5},release:{min:.01,max:5},range:{min:-120,max:0}},AudioParametricEq:{type:{enum:["lowShelf","highShelf","peak","lowPass","highPass","notch"]},frequency:{min:20,max:2e4},gain:{min:-24,max:24},q:{min:.01,max:10}},AudioReverb:{roomSize:{min:0,max:.98},damping:{min:0,max:1},wet:{min:0,max:1},dry:{min:0,max:1},width:{min:0,max:1}},Blur:{blurType:{enum:["Gaussian","Box","Median","Motion","Bilateral","Edge-preserving","Radial","Zoom"]},strength:{min:0,max:100},angle:{min:0,max:360},sigmaColor:{min:.01,max:1},centerX:{min:0,max:1},centerY:{min:0,max:1},partialBlur:{},radius:{min:.01,max:1},radiusY:{min:0,max:1},shape:{enum:["ellipse","circle","rect"]}},CameraParallax3D:{motionPreset:{enum:["Custom","DollyZoom","Orbit","FlyThrough","HandheldShake","RackFocus"]},panX:{min:-1,max:1},panY:{min:-1,max:1},dollyZ:{min:-1,max:1},fov:{min:15,max:120},parallaxAmount:{min:0,max:2},dofAperture:{min:0,max:1},focusPlane:{min:0,max:1},edgeDilation:{min:0,max:1},depthInvert:{}},ChannelMerger:{colorSpace:{enum:["RGBA","HSLA","CMYK","LAB"]},defaultChannel4:{min:0,max:1}},ChannelSplitter:{colorSpace:{enum:["RGBA","HSLA","CMYK","LAB"]}},ColorBalance:{shadows:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},midtones:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},highlights:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},preserveLuminosity:{}},ColorKey:{keyColor:{},similarity:{min:0,max:1},smoothness:{min:0,max:1},spillSuppression:{min:0,max:1},colorSpace:{enum:["YUV","RGB"]},spillSuppressionType:{enum:["Desaturate","Neutralize","None"]}},CornerPin:{points:{}},DisplacementMap:{strengthX:{min:0,max:500},strengthY:{min:0,max:500},xChannel:{enum:["Red","Green","Blue","Alpha","Luminance"]},yChannel:{enum:["Red","Green","Blue","Alpha","Luminance"]},wrapMode:{enum:["Clamp","Repeat","Mirror"]}},ExtractLUT:{strategy:{enum:["deterministic","statistical"]},samplePoints:{min:10,max:500}},Flip:{horizontal:{},vertical:{},diagonal:{},mode:{enum:["horizontal","vertical","both","diagonal","antiDiagonal","custom"]},symmetry:{enum:["none","leftToRight","rightToLeft","topToBottom","bottomToTop","quadrant"]}},KenBurns:{keyframes:{},motionBlurSize:{min:0,max:10},movementStyle:{enum:["spline","direct"]},aspectRatio:{enum:["input","16:9","9:16","21:9","9:21","1:1","4:3","3:2","2:3","4:5","5:4"]}},LayerStyle:{dropShadow:{props:{enabled:{},color:{},opacity:{min:0,max:1},angle:{min:0,max:360},distance:{min:0,max:500},spread:{min:0,max:100},size:{min:0,max:250},blendMode:{}}},innerShadow:{props:{enabled:{},color:{},opacity:{min:0,max:1},angle:{min:0,max:360},distance:{min:0,max:500},choke:{min:0,max:100},size:{min:0,max:250},blendMode:{}}},outerGlow:{props:{enabled:{},color:{},opacity:{min:0,max:1},size:{min:0,max:250},spread:{min:0,max:100},blendMode:{}}},innerGlow:{props:{enabled:{},color:{},opacity:{min:0,max:1},size:{min:0,max:250},spread:{min:0,max:100},blendMode:{}}},stroke:{props:{enabled:{},size:{min:0,max:100},position:{enum:["inside","center","outside"]},color:{},opacity:{min:0,max:1},blendMode:{}}},bevelEmboss:{props:{enabled:{},style:{enum:["InnerBevel","OuterBevel","Emboss","PillowEmboss"]},technique:{enum:["Smooth","ChiselHard","ChiselSoft"]},depth:{min:1,max:1e3},direction:{enum:["Up","Down"]},size:{min:0,max:250},soften:{min:0,max:50},angle:{min:0,max:360},altitude:{min:0,max:90},highlightColor:{},highlightOpacity:{min:0,max:1},shadowColor:{},shadowOpacity:{min:0,max:1}}},colorOverlay:{props:{enabled:{},color:{},opacity:{min:0,max:1},blendMode:{}}},dropShadowAngleHandleId:{},dropShadowDistanceHandleId:{},dropShadowSpreadHandleId:{},dropShadowSizeHandleId:{},dropShadowOpacityHandleId:{},innerShadowAngleHandleId:{},innerShadowDistanceHandleId:{},innerShadowChokeHandleId:{},innerShadowSizeHandleId:{},innerShadowOpacityHandleId:{},outerGlowSizeHandleId:{},outerGlowSpreadHandleId:{},outerGlowOpacityHandleId:{},innerGlowSizeHandleId:{},innerGlowSpreadHandleId:{},innerGlowOpacityHandleId:{},strokeSizeHandleId:{},strokeOpacityHandleId:{},bevelEmbossDepthHandleId:{},bevelEmbossSizeHandleId:{},bevelEmbossSoftenHandleId:{},bevelEmbossAngleHandleId:{},bevelEmbossAltitudeHandleId:{},bevelEmbossHighlightOpacityHandleId:{},bevelEmbossShadowOpacityHandleId:{},colorOverlayOpacityHandleId:{}},Liquify:{operations:{}},MaskMath:{operation:{enum:["Union","Intersect","Subtract","Difference","Invert","Dilate","Erode","Choke","Feather"]},radius:{min:0,max:200},threshold:{min:0,max:1},clampMin:{min:0,max:1},clampMax:{min:0,max:1},channelA:{enum:["Alpha","Luminance","Red","Green","Blue"]},channelB:{enum:["Alpha","Luminance","Red","Green","Blue"]},binarize:{},invertResult:{},outputFormat:{enum:["WhiteWithAlpha","GrayscaleRGB","AlphaOnly","PassthroughRGB"]}},MeshWarp:{cols:{min:2,max:12},rows:{min:2,max:12},points:{}},NoiseGenerator:{noiseType:{enum:["Perlin","Simplex","Voronoi"]},outputType:{enum:["Image","Video"]},width:{min:16,max:4096},height:{min:16,max:4096},scale:{min:.1,max:100},octaves:{min:1,max:8},persistence:{min:0,max:1},lacunarity:{min:1,max:4},speed:{min:0,max:10},colorStart:{},colorEnd:{},durationMs:{min:1,max:6e4},fps:{min:1,max:120}},Paint:{width:{min:1,max:16384},height:{min:1,max:16384},maintainAspect:{},aspectRatio:{},backgroundColor:{},strokes:{}},PatchHeal:{patches:{},centerX:{min:0,max:1},centerY:{min:0,max:1},offsetX:{min:-4096,max:4096},offsetY:{min:-4096,max:4096},radius:{min:1,max:500},sourceRadius:{min:1,max:500},feather:{min:0,max:100},opacity:{min:0,max:1},mode:{enum:["Clone","SeamlessHeal","TextureTransfer"]}},ProceduralVFX:{effectType:{enum:["Smoke","Fire","Rain","Sparks","Snow","Dust","Lightning","Magic","LensFlare","Embers","EnergyBeam"]},outputType:{enum:["Image","Video"]},width:{min:16,max:4096},height:{min:16,max:4096},density:{min:0,max:1},scale:{min:.001,max:10},speed:{min:0,max:10},intensity:{min:0,max:1},seed:{min:0,max:1e6},colorStart:{},colorEnd:{},durationMs:{min:100,max:1e5},fps:{min:1,max:120}},RefineEdge:{decontaminateAmount:{min:0,max:1},radius:{min:.5,max:50},smooth:{min:0,max:100},feather:{min:0,max:50},shiftEdge:{min:-100,max:100},matteChannel:{enum:["Alpha","Luminance","Red","Green","Blue"]},outputMode:{enum:["Composite","MatteOnly","DecontaminatedRGB"]}},RefractionCaustics3D:{ior:{min:1,max:2.5},dispersion:{min:0,max:.2},refractionScale:{min:0,max:2},causticBrightness:{min:0,max:2},causticScale:{min:.1,max:5},fluidRipples:{min:0,max:1},rippleSpeed:{min:0,max:5},roughness:{min:0,max:1},specularIntensity:{min:0,max:2},lightPosX:{min:0,max:1},lightPosY:{min:0,max:1},tintColor:{},tintStrength:{min:0,max:1},depthInvert:{},depthScale:{min:.1,max:5}},ResizerScaler:{aspectRatioPreset:{enum:["9:16","16:9","1:1","4:5","21:9","custom"]},resolutionPreset:{enum:["4k","1080p","720p","480p","custom"]},targetWidth:{min:1,max:8192},targetHeight:{min:1,max:8192},fitMode:{enum:["cover","contain","stretch","manual"]},zoom:{min:1,max:1e3},offsetX:{min:-8192,max:8192},offsetY:{min:-8192,max:8192},backgroundMode:{enum:["solid","blurred","gradient","transparent"]},backgroundColor:{},backgroundColor2:{},blurRadius:{min:0,max:100},backgroundBrightness:{min:0,max:1},anchorX:{enum:["left","center","right"]},anchorY:{enum:["top","center","bottom"]}},Rotate:{angle:{},fit:{enum:["cover","contain","fill"]},scale:{min:.01,max:20}},StereoPanning:{pan:{min:-1,max:1}},Vignette:{strength:{min:0,max:100},radius:{min:.1,max:2},softness:{min:0,max:1},roundness:{min:0,max:1},centerX:{min:0,max:1},centerY:{min:0,max:1}}};var Ae={threshold:-24,ratio:4,attack:.003,release:.25,knee:6,makeupGain:0},b=class extends t{op="AudioCompressor";constructor(e={}){super(o("AudioCompressor",Ae,e,a.AudioCompressor))}},ke={delayTime:.25,feedback:.4,wet:.3,dry:1,pingPong:!1},f=class extends t{op="AudioDelay";constructor(e={}){super(o("AudioDelay",ke,e,a.AudioDelay))}},De={fadeInDuration:0,fadeOutDuration:0,fadeInCurve:"linear",fadeOutCurve:"linear"},h=class extends t{op="AudioFade";constructor(e={}){super(o("AudioFade",De,e,a.AudioFade))}},Be={threshold:-40,attack:.005,hold:.05,release:.1,range:-80},P=class extends t{op="AudioNoiseGate";constructor(e={}){super(o("AudioNoiseGate",Be,e,a.AudioNoiseGate))}},Ie={type:"peak",frequency:1e3,gain:0,q:1},y=class extends t{op="AudioParametricEq";constructor(e={}){super(o("AudioParametricEq",Ie,e,a.AudioParametricEq))}},Te={roomSize:.5,damping:.5,wet:.3,dry:1,width:1},g=class extends t{op="AudioReverb";constructor(e={}){super(o("AudioReverb",Te,e,a.AudioReverb))}},He={blurType:"Gaussian",strength:5,angle:0,sigmaColor:.1,centerX:.5,centerY:.5,partialBlur:!1,radius:.3,radiusY:0,shape:"circle"},N=class extends t{op="Blur";constructor(e={}){super(o("Blur",He,e,a.Blur))}},Le={motionPreset:"DollyZoom",panX:0,panY:0,dollyZ:0,fov:50,parallaxAmount:.6,dofAperture:.3,focusPlane:.4,edgeDilation:.5,depthInvert:!1},x=class extends t{op="CameraParallax3D";constructor(e={}){super(o("CameraParallax3D",Le,e,a.CameraParallax3D))}},Ge={colorSpace:"RGBA",defaultChannel4:1},S=class extends t{op="ChannelMerger";constructor(e={}){super(o("ChannelMerger",Ge,e,a.ChannelMerger))}},Oe={colorSpace:"RGBA"},C=class extends t{op="ChannelSplitter";constructor(e={}){super(o("ChannelSplitter",Oe,e,a.ChannelSplitter))}},ze={shadows:{cyanRed:0,magentaGreen:0,yellowBlue:0},midtones:{cyanRed:0,magentaGreen:0,yellowBlue:0},highlights:{cyanRed:0,magentaGreen:0,yellowBlue:0},preserveLuminosity:!0},E=class extends t{op="ColorBalance";constructor(e={}){super(o("ColorBalance",ze,e,a.ColorBalance))}},Fe={keyColor:"#00ff00",similarity:.4,smoothness:.1,spillSuppression:.2,colorSpace:"YUV",spillSuppressionType:"Desaturate"},w=class extends t{op="ColorKey";constructor(e={}){super(o("ColorKey",Fe,e,a.ColorKey))}},Ve={},v=class extends t{op="CornerPin";constructor(e={}){super(o("CornerPin",Ve,e,a.CornerPin))}},Ye={strengthX:50,strengthY:50,xChannel:"Red",yChannel:"Green",wrapMode:"Clamp"},M=class extends t{op="DisplacementMap";constructor(e={}){super(o("DisplacementMap",Ye,e,a.DisplacementMap))}},Xe={strategy:"deterministic",samplePoints:150},R=class extends t{op="ExtractLUT";constructor(e={}){super(o("ExtractLUT",Xe,e,a.ExtractLUT))}},qe={horizontal:!0,vertical:!1,diagonal:!1,mode:"horizontal",symmetry:"none"},A=class extends t{op="Flip";constructor(e={}){super(o("Flip",qe,e,a.Flip))}},We={keyframes:[],motionBlurSize:1.5,movementStyle:"spline",aspectRatio:"input"},k=class extends t{op="KenBurns";constructor(e={}){super(o("KenBurns",We,e,a.KenBurns))}},Ne={dropShadow:{enabled:!1,color:"#000000",opacity:.75,angle:120,distance:10,spread:0,size:10,blendMode:"multiply"},innerShadow:{enabled:!1,color:"#000000",opacity:.75,angle:120,distance:5,choke:0,size:5,blendMode:"multiply"},outerGlow:{enabled:!1,color:"#ffffff",opacity:.75,size:15,spread:0,blendMode:"screen"},innerGlow:{enabled:!1,color:"#ffffff",opacity:.75,size:15,spread:0,blendMode:"screen"},stroke:{enabled:!1,size:2,position:"outside",color:"#ffffff",opacity:1,blendMode:"normal"},bevelEmboss:{enabled:!1,style:"InnerBevel",technique:"Smooth",depth:100,direction:"Up",size:5,soften:0,angle:120,altitude:30,highlightColor:"#ffffff",highlightOpacity:.75,shadowColor:"#000000",shadowOpacity:.75},colorOverlay:{enabled:!1,color:"#ff0000",opacity:1,blendMode:"normal"}},D=class extends t{op="LayerStyle";constructor(e={}){super(o("LayerStyle",Ne,e,a.LayerStyle))}},je={operations:[]},B=class extends t{op="Liquify";constructor(e={}){super(o("Liquify",je,e,a.Liquify))}},Ke={operation:"Union",radius:0,threshold:.5,clampMin:0,clampMax:1,channelA:"Alpha",channelB:"Alpha",binarize:!1,invertResult:!1,outputFormat:"WhiteWithAlpha"},I=class extends t{op="MaskMath";constructor(e={}){super(o("MaskMath",Ke,e,a.MaskMath))}},Ue={cols:3,rows:3},T=class extends t{op="MeshWarp";constructor(e={}){super(o("MeshWarp",Ue,e,a.MeshWarp))}},$e={noiseType:"Perlin",outputType:"Image",width:512,height:512,scale:10,octaves:4,persistence:.5,lacunarity:2,speed:1,colorStart:"#000000",colorEnd:"#ffffff",durationMs:5e3,fps:30},H=class extends t{op="NoiseGenerator";constructor(e={}){super(o("NoiseGenerator",$e,e,a.NoiseGenerator))}},Ze={width:1080,height:1080,maintainAspect:!0,backgroundColor:"#ffffff"},L=class extends t{op="Paint";constructor(e={}){super(o("Paint",Ze,e,a.Paint))}},_e={centerX:.5,centerY:.5,offsetX:50,offsetY:0,radius:25,sourceRadius:25,feather:50,opacity:1,mode:"SeamlessHeal"},G=class extends t{op="PatchHeal";constructor(e={}){super(o("PatchHeal",_e,e,a.PatchHeal))}},Je={effectType:"Smoke",outputType:"Video",width:1080,height:1080,density:.6,scale:.01,speed:1,intensity:.8,seed:1234,colorStart:"#ffffff",colorEnd:"#ff5500",durationMs:5e3,fps:30},O=class extends t{op="ProceduralVFX";constructor(e={}){super(o("ProceduralVFX",Je,e,a.ProceduralVFX))}},Qe={decontaminateAmount:.7,radius:2,smooth:5,feather:.5,shiftEdge:0,matteChannel:"Alpha",outputMode:"Composite"},z=class extends t{op="RefineEdge";constructor(e={}){super(o("RefineEdge",Qe,e,a.RefineEdge))}},er={ior:1.52,dispersion:.04,refractionScale:.5,causticBrightness:.6,causticScale:1,fluidRipples:0,rippleSpeed:1,roughness:0,specularIntensity:.8,lightPosX:.5,lightPosY:.2,tintColor:"#ffffff",tintStrength:0,depthInvert:!1,depthScale:1},F=class extends t{op="RefractionCaustics3D";constructor(e={}){super(o("RefractionCaustics3D",er,e,a.RefractionCaustics3D))}},rr={aspectRatioPreset:"16:9",resolutionPreset:"1080p",targetWidth:1920,targetHeight:1080,fitMode:"contain",zoom:100,offsetX:0,offsetY:0,backgroundMode:"solid",backgroundColor:"#000000FF",backgroundColor2:"#000000FF",blurRadius:40,backgroundBrightness:.6,anchorX:"center",anchorY:"center"},V=class extends t{op="ResizerScaler";constructor(e={}){super(o("ResizerScaler",rr,e,a.ResizerScaler))}},tr={angle:90,fit:"cover",scale:1},Y=class extends t{op="Rotate";constructor(e={}){super(o("Rotate",tr,e,a.Rotate))}},nr={pan:0},X=class extends t{op="StereoPanning";constructor(e={}){super(o("StereoPanning",nr,e,a.StereoPanning))}},ar={strength:50,radius:1,softness:.5,roundness:.5,centerX:.5,centerY:.5},q=class extends t{op="Vignette";constructor(e={}){super(o("Vignette",ar,e,a.Vignette))}};function or(r){return{partialBlur:!0,centerX:r.center.x,centerY:r.center.y,radius:r.bounds.width.multiply(.55),radiusY:r.bounds.height.multiply(.55),shape:"ellipse",strength:r.active.multiply(25)}}var W=class extends N{constructor(e={}){let{track:n,...l}=e;super(n?{...or(n),...lr(l)}:l)}};function lr(r){return Object.fromEntries(Object.entries(r).filter(([,e])=>e!==void 0))}c();var ir={audioCompressor:r=>new b(r),audioDelay:r=>new f(r),audioFade:r=>new h(r),audioNoiseGate:r=>new P(r),audioParametricEq:r=>new y(r),audioReverb:r=>new g(r),blur:r=>new W(r),cameraParallax3D:r=>new x(r),channelMerger:r=>new S(r),channelSplitter:r=>new C(r),colorBalance:r=>new E(r),colorKey:r=>new w(r),cornerPin:r=>new v(r),displacementMap:r=>new M(r),extractLUT:r=>new R(r),flip:r=>new A(r),kenBurns:r=>new k(r),layerStyle:r=>new D(r),liquify:r=>new B(r),maskMath:r=>new I(r),meshWarp:r=>new T(r),noiseGenerator:r=>new H(r),paint:r=>new L(r),patchHeal:r=>new G(r),proceduralVFX:r=>new O(r),refineEdge:r=>new z(r),refractionCaustics3D:r=>new F(r),resizerScaler:r=>new V(r),rotate:r=>new Y(r),stereoPanning:r=>new X(r),vignette:r=>new q(r)};var ee=class extends t{op="Levels";constructor(e={}){let n={inBlack:0,inWhite:1,outBlack:0,outWhite:1};super({master:e.master??{...n},red:e.red??{...n},green:e.green??{...n},blue:e.blue??{...n},...e})}},re=class extends t{op="FilmGrain";constructor(e={}){super({strength:e.strength??15,size:e.size??1.5,monochrome:e.monochrome??!0,animated:e.animated??!0,speed:e.speed??50,shadows:e.shadows??.2,midtones:e.midtones??1,highlights:e.highlights??.2,...e})}},te=class extends t{op;constructor(e,n={}){super(n),this.op=e}},ne=class extends t{op="AudioSignalExtractor";constructor(e={}){super({extractionMode:e.extractionMode??"rms_envelope",attackMs:e.attackMs??10,releaseMs:e.releaseMs??120,sensitivity:e.sensitivity??1,noiseFloorDb:e.noiseFloorDb??-48,dynamicRangeDb:e.dynamicRangeDb??48,autoRange:e.autoRange??!0,smoothing:e.smoothing??.15,curve:e.curve??"linear",beatThreshold:e.beatThreshold??.08,beatDecayMs:e.beatDecayMs??80,previewMode:e.previewMode??"envelope",nodeId:e.nodeId??"audio_extractor",...e})}async extract(e,n={}){return $.extract(e,{extractionMode:this.extractionMode,attackMs:this.attackMs,releaseMs:this.releaseMs,sensitivity:this.sensitivity,noiseFloorDb:this.noiseFloorDb,dynamicRangeDb:this.dynamicRangeDb,smoothing:this.smoothing,curve:this.curve,beatThreshold:this.beatThreshold,beatDecayMs:this.beatDecayMs,previewMode:this.previewMode,...n})}},ae=class extends t{op="Curves";constructor(e={}){super({...e,curveType:e.curveType??"rgb",master:e.master??[{x:0,y:0},{x:1,y:1}],red:e.red??[{x:0,y:0},{x:1,y:1}],green:e.green??[{x:0,y:0},{x:1,y:1}],blue:e.blue??[{x:0,y:0},{x:1,y:1}],hueVsHue:e.hueVsHue??[{x:0,y:.5},{x:1,y:.5}],hueVsSat:e.hueVsSat??[{x:0,y:1},{x:1,y:1}],lumVsSat:e.lumVsSat??[{x:0,y:1},{x:1,y:1}],satVsSat:e.satVsSat??[{x:0,y:1},{x:1,y:1}]})}},oe=class extends t{op="SelectiveColor";constructor(e={}){let n={cyan:0,magenta:0,yellow:0,black:0};super({...e,method:e.method??"Relative",reds:{...n,...e.reds},yellows:{...n,...e.yellows},greens:{...n,...e.greens},cyans:{...n,...e.cyans},blues:{...n,...e.blues},magentas:{...n,...e.magentas},whites:{...n,...e.whites},neutrals:{...n,...e.neutrals},blacks:{...n,...e.blacks}})}},le=class extends t{op="GradientMap";constructor(e={}){let n=[{position:0,color:"#000000"},{position:1,color:"#ffffff"}];super({...e,stops:e.stops??n,smooth:e.smooth??!0,dither:e.dither??!0,opacity:e.opacity??1})}},ie=class extends t{op="ShadowsHighlights";constructor(e={}){super({...e,shadowAmount:e.shadowAmount??0,shadowTonalWidth:e.shadowTonalWidth??50,shadowRadius:e.shadowRadius??30,highlightAmount:e.highlightAmount??0,highlightTonalWidth:e.highlightTonalWidth??50,highlightRadius:e.highlightRadius??30,colorCorrection:e.colorCorrection??0,midtoneContrast:e.midtoneContrast??0})}},se=class extends t{op="ApplyLUT";constructor(e={}){super({...e,lutUrl:e.lutUrl??"",intensity:e.intensity??1})}},ue=class extends t{op="UnsharpMask";constructor(e={}){super({...e,amount:e.amount??100,radius:e.radius??1.5,threshold:e.threshold??3})}},ce=class extends t{op="HighPass";constructor(e={}){super({...e,radius:e.radius??3,contrastBoost:e.contrastBoost??1,monochrome:e.monochrome??!0})}},pe=class extends t{op="HalftoneScreen";constructor(e={}){super({...e,mode:e.mode??"Monochrome",dotShape:e.dotShape??"Circle",frequency:e.frequency??30,angle:e.angle??45,contrast:e.contrast??1,dotColor:e.dotColor??"#000000",paperColor:e.paperColor??"#ffffff",smooth:e.smooth??!0,invert:e.invert??!1,cyanAngle:e.cyanAngle??15,magentaAngle:e.magentaAngle??75,yellowAngle:e.yellowAngle??0,blackAngle:e.blackAngle??45,opacity:e.opacity??1})}},de=class extends t{op="TileOffset";constructor(e={}){super({...e,offsetX:e.offsetX??0,offsetY:e.offsetY??0,wrap:e.wrap??!0,edgeMode:e.edgeMode??"wrap"})}},me=class extends t{op="MotionBlur";constructor(e={}){super({...e,shutterAngle:e.shutterAngle??180,samples:e.samples??16,maxVelocity:e.maxVelocity??64,shutterCurve:e.shutterCurve??"gaussian",depthAware:e.depthAware??!0})}},be=class extends t{op="SSAO";constructor(e={}){super({...e,radius:e.radius??45,bias:e.bias??.025,intensity:e.intensity??1.5,kernelSamples:e.kernelSamples??16,blurRadius:e.blurRadius??4})}},fe=class extends t{op="PBRGlass";constructor(e={}){super({...e,ior:e.ior??1.49,roughness:e.roughness??.15,transmission:e.transmission??.92,dispersion:e.dispersion??.015,fresnelPower:e.fresnelPower??5,tintColor:e.tintColor??"#ffffff"})}},he=class extends t{op="DepthOfField";constructor(e={}){super({...e,focusDistance:e.focusDistance??500,focalLength:e.focalLength??50,aperture:e.aperture??2.8,maxBlur:e.maxBlur??16,quality:e.quality??"high"})}},Pe=class extends t{op="Crop";constructor(e={}){super({cropType:e.cropType??"rect",leftPercentage:e.leftPercentage??0,topPercentage:e.topPercentage??0,widthPercentage:e.widthPercentage??100,heightPercentage:e.heightPercentage??100,roundness:e.roundness??0,...e})}},ye=class extends t{op="Vision";constructor(e={}){super({enableDetection:e.enableDetection!==!1,enableSegmentation:e.enableSegmentation===!0,enablePose:e.enablePose===!0,enableMatte:e.enableMatte===!0,confidence:e.confidence??.3,variant:e.variant??"s",mode:e.mode??"passthrough",matteSource:e.matteSource??"instance",...e})}},ge=class extends t{op="Relight3D";constructor(e={}){super({lightType:e.lightType??"Point",intensity:e.intensity??1,lightPosX:e.lightPosX??.5,lightPosY:e.lightPosY??.5,lightPosZ:e.lightPosZ??.3,lightRadius:e.lightRadius??.8,spotConeAngle:e.spotConeAngle??45,specularRoughness:e.specularRoughness??.35,specularStrength:e.specularStrength??.7,metallic:e.metallic??0,ambientIntensity:e.ambientIntensity??.4,volumetricDensity:e.volumetricDensity??.2,depthScale:e.depthScale??1,depthInvert:e.depthInvert??!1,lightColor:e.lightColor??"#ffffff",ambientColor:e.ambientColor??"#ffffff",normalMap:e.normalMap,...e})}},xe=class extends t{op="TemporalDeflicker";constructor(e={}){super({blendWeight:e.blendWeight??.35,disocclusionThreshold:e.disocclusionThreshold??.15,maxMotionPixels:e.maxMotionPixels??64,scale:e.scale??.5,windowSize:e.windowSize??2,...e})}},Se=class extends t{op="Modulate";constructor(e={}){super({hue:e.hue??0,brightness:e.brightness??1,contrast:e.contrast??1,exposure:e.exposure??0,saturation:e.saturation??1,sepia:e.sepia??0,...e})}};export{a,b,f as c,h as d,P as e,y as f,g,x as h,S as i,C as j,E as k,w as l,v as m,M as n,R as o,A as p,k as q,D as r,B as s,I as t,T as u,H as v,L as w,G as x,O as y,z,F as A,V as B,Y as C,X as D,q as E,W as F,ir as G,ee as H,re as I,te as J,ne as K,ae as L,oe as M,le as N,ie as O,se as P,ue as Q,ce as R,pe as S,de as T,me as U,be as V,fe as W,he as X,Pe as Y,ye as Z,ge as _,xe as $,Se as aa};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as D}from"./chunk-N4LHIPHZ.mjs";import{t as P}from"./chunk-ZNGOAGAI.mjs";import{e as g}from"./chunk-BVF64D6H.mjs";g();g();function C(e,n,r,i){if(e==null)return n;if(typeof e=="number")return Number.isFinite(e)?e:n;if(typeof e=="object"&&e!==null){if("get"in e&&typeof e.get=="function")try{let c=e.get({frame:r,fps:i,time:i>0?r/i:0,duration:0,durationMs:0,progress:0,deltaTime:i>0?1/i:0}),a=Number(c);if(Number.isFinite(a))return a}catch{}if("value"in e){let c=Number(e.value);if(Number.isFinite(c))return c}}if(typeof e=="function")try{let c=Number(e({frame:r,fps:i,time:i>0?r/i:0}));if(Number.isFinite(c))return c}catch{}let u=Number(e);return Number.isFinite(u)?u:n}function b(e,n,r,i,u,c,a){let h=`${n}HandleId`,o=e[h],l=o?e.inputs?.[o]:null,t;if(l?.connectionValid&&l.outputItem){let s=l.outputItem.data;t=s&&typeof s=="object"&&"offset"in s?s.offset:l.outputItem.data}else t=e[n];let p=C(t,r,c,a);return Math.max(i,Math.min(u,p))}var M=new Map;function O(e,n){let r=M.get(n);return r||(r=new D(e),M.set(n,r)),r}var I=async e=>{let{ctx:n,encoder:r,pass:i,targetView:u,targetTexture:c,targetWidth:a,targetHeight:h,props:o,drawChild:l}=e,t=o.virtualMedia?.operation;if(!t||t.op!=="TemporalDeflicker"&&t.op!=="Deflicker")return;let p=o.virtualMedia?.children?.[0];if(!p)return;i.end();let s=a,d=h,k=o.frame??0,m=o.compositionFrame??k,f=o.fps||30,w=n.renderer.getTemporaryTexture(s,d,[...o.excludeTextures||[],c]),x=w.createView();n.renderer.beginFrame(r,x,{r:0,g:0,b:0,a:0},s,d,"clear").end(),n.renderer.pushScissor({x:0,y:0,width:s,height:d}),n.renderer.pushIdentity(),await l(p,{...o,virtualMedia:p,containerWidth:s,containerHeight:d},x,w,s,d),n.renderer.popTransform(),n.renderer.popScissor(),e.pass.end();let W=b(t,"blendWeight",.35,0,1,m,f),N=b(t,"disocclusionThreshold",.15,.01,1,m,f),R=b(t,"maxMotionPixels",64,1,256,m,f),F=b(t,"scale",.5,.1,1,m,f),G=Math.round(b(t,"windowSize",2,1,5,m,f)),H=o.virtualMedia?.metadata?.id||t.id||`deflicker_${o.renderId??"global"}`,T=O(n.device,H);k===0&&T.reset();let S=T.execute(w,{blendWeight:W,disocclusionThreshold:N,maxMotionPixels:R,scale:F,windowSize:G},r),y=n.renderer.beginFrame(r,u,{r:0,g:0,b:0,a:0},s,d,"load"),U=typeof t.opacity=="number"?t.opacity:1;n.renderer.drawTexture(y,S,{x:0,y:0,width:s,height:d},{opacity:U}),e.pass=y};var A=P({WebGPURenderer:I});export{A as a};
|