framefields 2.0.11 → 2.1.1
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/README.md +22 -5
- package/dist/audio/index.d.mts +4 -4
- package/dist/audio/index.mjs +13 -12
- package/dist/{audio-BHanw8Jb.d.mts → audio-CfBpzxn9.d.mts} +3 -3
- package/dist/{audio-BHanw8Jb.d.mts.map → audio-CfBpzxn9.d.mts.map} +1 -1
- package/dist/{audio-TAvPwzLR.mjs → audio-DJeVoE8b.mjs} +1 -1
- package/dist/{audio-TAvPwzLR.mjs.map → audio-DJeVoE8b.mjs.map} +1 -1
- package/dist/{audio-COOMNwL5.mjs → audio-GGuQ_JI0.mjs} +4 -4
- package/dist/{audio-COOMNwL5.mjs.map → audio-GGuQ_JI0.mjs.map} +1 -1
- package/dist/{chunk-GMkBE123.mjs → chunk-GBe2k3y8.mjs} +1 -4
- package/dist/{dist-C_hjvkdN.mjs → dist-0QGroRYZ.mjs} +1 -1
- package/dist/{dist-C_hjvkdN.mjs.map → dist-0QGroRYZ.mjs.map} +1 -1
- package/dist/{dist-BYqNNwsl.mjs → dist-BY0bIWgr.mjs} +10 -2
- package/dist/dist-BY0bIWgr.mjs.map +1 -0
- package/dist/{dist-BAVZdFEJ.mjs → dist-Bb8BoMiw.mjs} +76 -626
- package/dist/dist-Bb8BoMiw.mjs.map +1 -0
- package/dist/{dist-Cxi68OuY.mjs → dist-DkuDAIrG.mjs} +26862 -25638
- package/dist/dist-DkuDAIrG.mjs.map +1 -0
- package/dist/{dist-CbG3QxDw.mjs → dist-fjKpBYkc.mjs} +12 -27
- package/dist/dist-fjKpBYkc.mjs.map +1 -0
- package/dist/effects/index.d.mts +4 -4
- package/dist/effects/index.mjs +36 -34
- package/dist/{effects-DzbjFhyA.mjs → effects-D6wFg2FR.mjs} +3 -3
- package/dist/{effects-DzbjFhyA.mjs.map → effects-D6wFg2FR.mjs.map} +1 -1
- package/dist/fonts/index.d.mts +1 -1
- package/dist/fonts/index.mjs +3 -1
- package/dist/{fonts-C0W6TgJk.mjs → fonts-CZMYtbP7.mjs} +24 -11
- package/dist/fonts-CZMYtbP7.mjs.map +1 -0
- package/dist/gpu-DG3gI88-.mjs +215 -0
- package/dist/gpu-DG3gI88-.mjs.map +1 -0
- package/dist/{index-DRZu3ezy.d.mts → index--0vVZDPM.d.mts} +3 -3
- package/dist/{index-DRZu3ezy.d.mts.map → index--0vVZDPM.d.mts.map} +1 -1
- package/dist/{index-DnWsbbuZ.d.mts → index-BcA8rep0.d.mts} +7 -2
- package/dist/index-BcA8rep0.d.mts.map +1 -0
- package/dist/{index-DGJp1d30.d.mts → index-BzQc812z.d.mts} +3 -3
- package/dist/{index-DGJp1d30.d.mts.map → index-BzQc812z.d.mts.map} +1 -1
- package/dist/{index-DDEPvMww.d.mts → index-Cpkzy5XR.d.mts} +3452 -1675
- package/dist/index-Cpkzy5XR.d.mts.map +1 -0
- package/dist/{index-CDoTrMs1.d.mts → index-D__HdInU.d.mts} +8 -8
- package/dist/{index-CDoTrMs1.d.mts.map → index-D__HdInU.d.mts.map} +1 -1
- package/dist/{index-CYGpSVsf.d.mts → index-DpWia6iH.d.mts} +4 -11
- package/dist/index-DpWia6iH.d.mts.map +1 -0
- package/dist/{index-9B8CJowc.d.mts → index-Fciq8bcC.d.mts} +10 -2
- package/dist/index-Fciq8bcC.d.mts.map +1 -0
- package/dist/index.d.mts +29 -1842
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +79 -66
- package/dist/index.mjs.map +1 -1
- package/dist/preview/index.d.mts +2 -2
- package/dist/preview/index.mjs +12 -13
- package/dist/{preview-BV2C4Fk6.mjs → preview--rOXbBxl.mjs} +3 -4
- package/dist/preview--rOXbBxl.mjs.map +1 -0
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/chunk-2MZXSWVT.mjs +118 -0
- package/dist/preview-engine/{chunk-Y6HWYPKX.mjs → chunk-3GNP7TJH.mjs} +3 -3
- package/dist/preview-engine/chunk-3UPI4EPV.mjs +69 -0
- package/dist/preview-engine/{chunk-6JW37VJA.mjs → chunk-5AUB4Y3L.mjs} +3 -23
- package/dist/preview-engine/chunk-5DOD2NVY.mjs +26 -0
- package/dist/preview-engine/chunk-5FC7GOWW.mjs +474 -0
- package/dist/preview-engine/chunk-5W4AFQP7.mjs +97 -0
- package/dist/preview-engine/chunk-63SFBHEH.mjs +1 -0
- package/dist/preview-engine/{chunk-25IW7NYO.mjs → chunk-7EPDVSCL.mjs} +1 -1
- package/dist/preview-engine/chunk-7EPIRODI.mjs +91 -0
- package/dist/preview-engine/chunk-7J2FWGVD.mjs +1 -0
- package/dist/preview-engine/chunk-AXHB4J37.mjs +147 -0
- package/dist/preview-engine/chunk-AXQZX3TC.mjs +450 -0
- package/dist/preview-engine/chunk-B43Z3J7J.mjs +5 -0
- package/dist/preview-engine/chunk-BWJS6G7R.mjs +314 -0
- package/dist/preview-engine/{chunk-ECPP3UG6.mjs → chunk-E3HC4GRQ.mjs} +3 -23
- package/dist/preview-engine/{chunk-AEK5BO3J.mjs → chunk-E4RAFHZM.mjs} +1 -1
- package/dist/preview-engine/chunk-ENKKLU7B.mjs +22 -0
- package/dist/preview-engine/{chunk-IYVN2QEL.mjs → chunk-FLPSWDX4.mjs} +1 -1
- package/dist/preview-engine/{chunk-24DXIKXL.mjs → chunk-FPRXK2WD.mjs} +2 -2
- package/dist/preview-engine/chunk-FU7AIAMM.mjs +88 -0
- package/dist/preview-engine/{chunk-CBM7B7EW.mjs → chunk-GMGGDADT.mjs} +1 -1
- package/dist/preview-engine/chunk-GSFN4WCH.mjs +62 -0
- package/dist/preview-engine/chunk-IQC2I5A5.mjs +1 -0
- package/dist/preview-engine/chunk-IUPDOATX.mjs +114 -0
- package/dist/preview-engine/{chunk-GHMCGTJ2.mjs → chunk-J2R5R7YY.mjs} +3 -23
- package/dist/preview-engine/chunk-JAJOZG5P.mjs +1 -0
- package/dist/preview-engine/{chunk-XLFYM7KH.mjs → chunk-K773AOF3.mjs} +2 -2
- package/dist/preview-engine/{chunk-RJUAM52F.mjs → chunk-L3CHEZMZ.mjs} +3 -23
- package/dist/preview-engine/chunk-LBRVQ4GE.mjs +84 -0
- package/dist/preview-engine/chunk-LGVEFPOG.mjs +3 -0
- package/dist/preview-engine/{chunk-AMBSW6OA.mjs → chunk-NEE3KQTX.mjs} +2 -2
- package/dist/preview-engine/chunk-NPD6W3RP.mjs +1 -0
- package/dist/preview-engine/{chunk-V6VU46ZG.mjs → chunk-O2RNIQXT.mjs} +1 -1
- package/dist/preview-engine/{server-utils-2FAIV45N.mjs → chunk-OCX5AD23.mjs} +1 -1
- package/dist/preview-engine/chunk-OJ2PKBXE.mjs +40 -0
- package/dist/preview-engine/chunk-OKH2VU2U.mjs +97 -0
- package/dist/preview-engine/chunk-PAQNDZQB.mjs +83 -0
- package/dist/preview-engine/chunk-PEWYB6WP.mjs +43 -0
- package/dist/preview-engine/{chunk-MDDF2GCF.mjs → chunk-PFA427ZC.mjs} +3 -23
- package/dist/preview-engine/chunk-PL4IH5V4.mjs +89 -0
- package/dist/preview-engine/chunk-PNB3ERR3.mjs +1 -0
- package/dist/preview-engine/{chunk-PQD5UPHG.mjs → chunk-PR2BUYCL.mjs} +1 -1
- package/dist/preview-engine/{chunk-QYRDQMNB.mjs → chunk-PXT52LEH.mjs} +3 -23
- package/dist/preview-engine/{chunk-ZSIJB76A.mjs → chunk-Q2DPNVIA.mjs} +2 -2
- package/dist/preview-engine/chunk-Q4Z54DQ7.mjs +1 -0
- package/dist/preview-engine/{chunk-6256GQFP.mjs → chunk-QY7MHWZW.mjs} +1 -1
- package/dist/preview-engine/chunk-RQLMW6MA.mjs +4 -0
- package/dist/preview-engine/chunk-RSMO7NPN.mjs +1 -0
- package/dist/preview-engine/chunk-RW2F3XLQ.mjs +90 -0
- package/dist/preview-engine/chunk-SGPRLTNF.mjs +52 -0
- package/dist/preview-engine/{chunk-Y6FEU4TV.mjs → chunk-SZW5J72T.mjs} +3 -23
- package/dist/preview-engine/{chunk-LIHUEYI5.mjs → chunk-VO2R3DWV.mjs} +2 -2
- package/dist/preview-engine/{chunk-BJKH76OM.mjs → chunk-VXS5SIEC.mjs} +3 -23
- package/dist/preview-engine/chunk-WFGJXCZT.mjs +53 -0
- package/dist/preview-engine/chunk-WH5Q2NFN.mjs +32 -0
- package/dist/preview-engine/chunk-WSIURGP2.mjs +121 -0
- package/dist/preview-engine/{chunk-AWTH2WZO.mjs → chunk-WUKH7BD7.mjs} +1 -1
- package/dist/preview-engine/chunk-XC5WZNOY.mjs +1448 -0
- package/dist/preview-engine/chunk-YQZOGEPZ.mjs +186 -0
- package/dist/preview-engine/{chunk-D3TETPLI.mjs → chunk-ZH5MZQTZ.mjs} +1 -1
- package/dist/preview-engine/chunk-ZIIFTWDH.mjs +58 -0
- package/dist/preview-engine/{chunk-EQ4QZRXB.mjs → chunk-ZNL4W4DK.mjs} +2 -2
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/fonts.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +127 -130
- package/dist/preview-engine/player.mjs +6 -6
- package/dist/preview-engine/renderers-2H7YEUTD.mjs +1 -0
- package/dist/preview-engine/renderers-2P6KXWEZ.mjs +1 -0
- package/dist/preview-engine/renderers-2SVWAB42.mjs +1 -0
- package/dist/preview-engine/renderers-3RC5FDWX.mjs +1 -0
- package/dist/preview-engine/renderers-3T7Q4SPP.mjs +1 -0
- package/dist/preview-engine/renderers-4DV4REGM.mjs +1 -0
- package/dist/preview-engine/renderers-57WDL6XN.mjs +1 -0
- package/dist/preview-engine/renderers-6WH7NZCC.mjs +1 -0
- package/dist/preview-engine/renderers-7JTNJE7M.mjs +1 -0
- package/dist/preview-engine/renderers-7VJN5L3Z.mjs +1 -0
- package/dist/preview-engine/{renderers-WLH4HRUE.mjs → renderers-A7VH3ON5.mjs} +1 -1
- package/dist/preview-engine/renderers-CQXQHOW2.mjs +1 -0
- package/dist/preview-engine/{renderers-2US2NIUG.mjs → renderers-D2EJULOJ.mjs} +3 -23
- package/dist/preview-engine/renderers-DXHJAMZR.mjs +1 -0
- package/dist/preview-engine/{renderers-W5CVDJVH.mjs → renderers-F55XFVMP.mjs} +1 -1
- package/dist/preview-engine/renderers-FWGMNPYB.mjs +1 -0
- package/dist/preview-engine/renderers-HXFRTIJD.mjs +1 -0
- package/dist/preview-engine/renderers-IWQ3V6AJ.mjs +1 -0
- package/dist/preview-engine/renderers-IXGM55XK.mjs +1 -0
- package/dist/preview-engine/renderers-KVHUVWSN.mjs +1 -0
- package/dist/preview-engine/renderers-KZWGSKRF.mjs +1 -0
- package/dist/preview-engine/renderers-LVDUZZ75.mjs +1 -0
- package/dist/preview-engine/renderers-M7R2ZJUP.mjs +1 -0
- package/dist/preview-engine/renderers-NWHS7N2L.mjs +1 -0
- package/dist/preview-engine/{renderers-CAUWP4XH.mjs → renderers-O2DZPBOJ.mjs} +3 -23
- package/dist/preview-engine/renderers-OT7D3BUA.mjs +1 -0
- package/dist/preview-engine/renderers-P4S7GL64.mjs +104 -0
- package/dist/preview-engine/renderers-PMOO7DLX.mjs +1 -0
- package/dist/preview-engine/renderers-Q4OFCMXI.mjs +1 -0
- package/dist/preview-engine/renderers-QCCPCH73.mjs +1 -0
- package/dist/preview-engine/renderers-RJO6H4FC.mjs +1 -0
- package/dist/preview-engine/renderers-RRXFJRGI.mjs +1 -0
- package/dist/preview-engine/renderers-SCJ6OKTB.mjs +1 -0
- package/dist/preview-engine/renderers-T4JMJXWL.mjs +1 -0
- package/dist/preview-engine/renderers-TAWT3ZSS.mjs +1 -0
- package/dist/preview-engine/{renderers-JQHUBWLL.mjs → renderers-TFZST6WW.mjs} +3 -23
- package/dist/preview-engine/renderers-UHTO6BQA.mjs +1 -0
- package/dist/preview-engine/renderers-UPKB5OLS.mjs +100 -0
- package/dist/preview-engine/renderers-UPTJJE5F.mjs +1 -0
- package/dist/preview-engine/renderers-VLMQR3DW.mjs +1 -0
- package/dist/preview-engine/renderers-WVTTRCVI.mjs +1 -0
- package/dist/preview-engine/renderers-X5PUIPU5.mjs +1 -0
- package/dist/preview-engine/renderers-XCMVZ2XG.mjs +35 -0
- package/dist/preview-engine/renderers-XHTMRXC5.mjs +1 -0
- package/dist/preview-engine/renderers-YDCDY3BR.mjs +1 -0
- package/dist/preview-engine/renderers-YECY2YFT.mjs +1 -0
- package/dist/preview-engine/renderers-YJNQ4B7B.mjs +1 -0
- package/dist/preview-engine/renderers-YMN6QXK7.mjs +1 -0
- package/dist/preview-engine/renderers-YZEVPHPQ.mjs +228 -0
- package/dist/preview-engine/renderers-Z7YQUFAY.mjs +1 -0
- package/dist/preview-engine/renderers-ZANPE3OK.mjs +1 -0
- package/dist/preview-engine/renderers-ZJTRANIX.mjs +1 -0
- package/dist/preview-engine/signals.mjs +1 -1
- package/dist/preview-engine/skia-canvas-QBXAOGPB.mjs +1 -0
- package/dist/{program-BmNKgzja.mjs → program-Cc5AsBHz.mjs} +93 -2335
- package/dist/program-Cc5AsBHz.mjs.map +1 -0
- package/dist/renderer/index.d.mts +2 -2
- package/dist/renderer/index.mjs +3 -4
- package/dist/renderer-1VSi7Vum.mjs +5 -0
- package/dist/renderer-4BlpUHQT.mjs +5 -0
- package/dist/{renderer-Bv21DbWy.mjs → renderer-9L0p8IT3.mjs} +3 -1
- package/dist/renderer-AzSX2-mZ.mjs +5 -0
- package/dist/renderer-B-cxK24t.mjs +5 -0
- package/dist/{renderer-DxTs4Iyi.mjs → renderer-B1Zn91xt.mjs} +40 -142
- package/dist/renderer-B1Zn91xt.mjs.map +1 -0
- package/dist/renderer-B5d5oM_D.mjs +5 -0
- package/dist/renderer-B8BdNjaN.mjs +5 -0
- package/dist/{renderer-Bhdf90Zq.mjs → renderer-BI5rvAyo.mjs} +51 -163
- package/dist/renderer-BI5rvAyo.mjs.map +1 -0
- package/dist/renderer-BKEfeg-4.mjs +5 -0
- package/dist/{renderer-CI7sG_cv.mjs → renderer-BKf1qDwL.mjs} +83 -266
- package/dist/renderer-BKf1qDwL.mjs.map +1 -0
- package/dist/renderer-BLLOkeFB.mjs +5 -0
- package/dist/renderer-BSitV56h.mjs +268 -0
- package/dist/renderer-BSitV56h.mjs.map +1 -0
- package/dist/renderer-BTvov1NH.mjs +5 -0
- package/dist/renderer-BVun05IK.mjs +5 -0
- package/dist/{renderer-B2ieylQ3.mjs → renderer-BWVsBB3t.mjs} +56 -167
- package/dist/renderer-BWVsBB3t.mjs.map +1 -0
- package/dist/{renderer-ChdLYS-G.mjs → renderer-BXQQxeNC.mjs} +20 -87
- package/dist/renderer-BXQQxeNC.mjs.map +1 -0
- package/dist/renderer-B_3h5nhy.mjs +5 -0
- package/dist/renderer-BaZjoFYK.mjs +5 -0
- package/dist/{renderer-CfC_aiew.mjs → renderer-BaaOR3Ao.mjs} +57 -192
- package/dist/renderer-BaaOR3Ao.mjs.map +1 -0
- package/dist/{renderer-bZU_ndxf.mjs → renderer-BajIOuZH.mjs} +2 -2
- package/dist/{renderer-bZU_ndxf.mjs.map → renderer-BajIOuZH.mjs.map} +1 -1
- package/dist/{renderer-CWTpc4ff.mjs → renderer-Bb8T5eRX.mjs} +76 -210
- package/dist/renderer-Bb8T5eRX.mjs.map +1 -0
- package/dist/{renderer-D2nCGcjv.mjs → renderer-Bc6J0iVG.mjs} +3 -3
- package/dist/{renderer-D2nCGcjv.mjs.map → renderer-Bc6J0iVG.mjs.map} +1 -1
- package/dist/renderer-BcApaCVe.mjs +5 -0
- package/dist/{renderer-D_1oDOCP.mjs → renderer-Bg7647VN.mjs} +14 -69
- package/dist/renderer-Bg7647VN.mjs.map +1 -0
- package/dist/{renderer-ho_jXJ0H.mjs → renderer-BhKIZDsm.mjs} +23 -117
- package/dist/renderer-BhKIZDsm.mjs.map +1 -0
- package/dist/{renderer-dncoIVdd.mjs → renderer-BhhSyHKF.mjs} +3 -1
- package/dist/{renderer-CXn5HAnK.mjs → renderer-Br9BOkQs.mjs} +10 -16
- package/dist/renderer-Br9BOkQs.mjs.map +1 -0
- package/dist/{renderer-BTdOMMEx.d.mts → renderer-Bs_f_App.d.mts} +2 -2
- package/dist/{renderer-BTdOMMEx.d.mts.map → renderer-Bs_f_App.d.mts.map} +1 -1
- package/dist/{renderer-DZGtBUCx.mjs → renderer-BygIYH8s.mjs} +35 -185
- package/dist/renderer-BygIYH8s.mjs.map +1 -0
- package/dist/{renderer-Bv6q84TU.mjs → renderer-C--Dqe-3.mjs} +61 -208
- package/dist/renderer-C--Dqe-3.mjs.map +1 -0
- package/dist/renderer-C14mKYCw.mjs +5 -0
- package/dist/{renderer-CnXW28b9.mjs → renderer-C27RfwXN.mjs} +85 -279
- package/dist/renderer-C27RfwXN.mjs.map +1 -0
- package/dist/{renderer-Dy0utCl7.mjs → renderer-C5caYAA3.mjs} +10 -17
- package/dist/renderer-C5caYAA3.mjs.map +1 -0
- package/dist/{renderer-Bfgd4N0O.mjs → renderer-C5zpaQed.mjs} +9 -16
- package/dist/renderer-C5zpaQed.mjs.map +1 -0
- package/dist/{renderer-cgxO2xN6.mjs → renderer-C7UZLOYk.mjs} +10 -17
- package/dist/renderer-C7UZLOYk.mjs.map +1 -0
- package/dist/{renderer-BJ1aTkZf.mjs → renderer-C92mwhZz.mjs} +99 -282
- package/dist/renderer-C92mwhZz.mjs.map +1 -0
- package/dist/{renderer-CepMDQ06.mjs → renderer-CAJe9eLS.mjs} +19 -106
- package/dist/renderer-CAJe9eLS.mjs.map +1 -0
- package/dist/renderer-CFqhAXkH.mjs +5 -0
- package/dist/renderer-CK-spD4j.mjs +5 -0
- package/dist/renderer-CLLzQTIk.mjs +5 -0
- package/dist/{renderer-CtyD_Xju.mjs → renderer-CMsjnZ0G.mjs} +59 -194
- package/dist/renderer-CMsjnZ0G.mjs.map +1 -0
- package/dist/renderer-COwa6xlF.mjs +5 -0
- package/dist/renderer-CQPuuoVf.mjs +6 -0
- package/dist/renderer-CRd-cDqZ.mjs +5 -0
- package/dist/renderer-CTVnQAUm.mjs +5 -0
- package/dist/renderer-CbiEBSGx.mjs +5 -0
- package/dist/renderer-Cl7PruQ1.mjs +5 -0
- package/dist/renderer-CmuGGUDR.mjs +5 -0
- package/dist/renderer-CoGP4Mvf.mjs +148 -0
- package/dist/renderer-CoGP4Mvf.mjs.map +1 -0
- package/dist/renderer-CoNRrfqx.mjs +5 -0
- package/dist/{renderer-BREIjsUU.mjs → renderer-CrAqu3Rg.mjs} +14 -40
- package/dist/renderer-CrAqu3Rg.mjs.map +1 -0
- package/dist/renderer-CvIGa0mE.mjs +5 -0
- package/dist/renderer-CwMDPv0p.mjs +5 -0
- package/dist/{renderer-BIIWCg_J.mjs → renderer-CydWqyf0.mjs} +11 -18
- package/dist/renderer-CydWqyf0.mjs.map +1 -0
- package/dist/{renderer-bsWnRNpJ.mjs → renderer-CzBQgGD2.mjs} +29 -98
- package/dist/renderer-CzBQgGD2.mjs.map +1 -0
- package/dist/{renderer-CdciwwMI.mjs → renderer-D0aZNkQE.mjs} +161 -457
- package/dist/renderer-D0aZNkQE.mjs.map +1 -0
- package/dist/{renderer-B8UaFNqb.mjs → renderer-D2BRlqof.mjs} +62 -209
- package/dist/renderer-D2BRlqof.mjs.map +1 -0
- package/dist/{renderer-B8-kzZdP.mjs → renderer-D2FFvxsq.mjs} +41 -140
- package/dist/renderer-D2FFvxsq.mjs.map +1 -0
- package/dist/{renderer-Ctk2zzfy.mjs → renderer-D8-zNjyz.mjs} +57 -197
- package/dist/renderer-D8-zNjyz.mjs.map +1 -0
- package/dist/{renderer-DML9qpmS.mjs → renderer-DDqwds9R.mjs} +52 -202
- package/dist/renderer-DDqwds9R.mjs.map +1 -0
- package/dist/{renderer-BSaYG8aw.mjs → renderer-DGtBOdst.mjs} +3 -1
- package/dist/{renderer-CzPWB0Ss.mjs → renderer-DKqG9Lek.mjs} +13 -45
- package/dist/renderer-DKqG9Lek.mjs.map +1 -0
- package/dist/renderer-DOHbhGPu.mjs +5 -0
- package/dist/renderer-DOmA6IKc.mjs +5 -0
- package/dist/{renderer-DirxsOjq.mjs → renderer-DUhXH5Tz.mjs} +80 -258
- package/dist/renderer-DUhXH5Tz.mjs.map +1 -0
- package/dist/{renderer-kwmlLQOO.mjs → renderer-DVnVnS3c.mjs} +4 -4
- package/dist/{renderer-kwmlLQOO.mjs.map → renderer-DVnVnS3c.mjs.map} +1 -1
- package/dist/{renderer-CaaOKMSd.mjs → renderer-DWEvQ-hQ.mjs} +63 -190
- package/dist/renderer-DWEvQ-hQ.mjs.map +1 -0
- package/dist/renderer-DX2qEJTL.mjs +2173 -0
- package/dist/renderer-DX2qEJTL.mjs.map +1 -0
- package/dist/{renderer-1VuQTY1Z.mjs → renderer-DX8aBDqR.mjs} +236 -96
- package/dist/renderer-DX8aBDqR.mjs.map +1 -0
- package/dist/{renderer-DEJwPRkR.mjs → renderer-DYIPWN_B.mjs} +15 -51
- package/dist/renderer-DYIPWN_B.mjs.map +1 -0
- package/dist/{renderer-Djlb4TLO.mjs → renderer-DZD2G76E.mjs} +8 -15
- package/dist/renderer-DZD2G76E.mjs.map +1 -0
- package/dist/{renderer-WSGuj_V6.mjs → renderer-Da06_9FZ.mjs} +4 -3
- package/dist/{renderer-WSGuj_V6.mjs.map → renderer-Da06_9FZ.mjs.map} +1 -1
- package/dist/{renderer-BM05sB8m.mjs → renderer-DkyXqrQ6.mjs} +11 -74
- package/dist/renderer-DkyXqrQ6.mjs.map +1 -0
- package/dist/renderer-DmCWc4JL.mjs +5 -0
- package/dist/{renderer-BDbTWSpP.mjs → renderer-Dno-fujw.mjs} +58 -234
- package/dist/renderer-Dno-fujw.mjs.map +1 -0
- package/dist/{renderer-D2XD4QYk.mjs → renderer-DoYdfDEA.mjs} +34 -147
- package/dist/renderer-DoYdfDEA.mjs.map +1 -0
- package/dist/{renderer-_uvdg48N.mjs → renderer-DqjITuT-.mjs} +24 -93
- package/dist/renderer-DqjITuT-.mjs.map +1 -0
- package/dist/renderer-DuuOlYIG.mjs +3 -0
- package/dist/{renderer-DIgsilTw.mjs → renderer-Dy-DBU0X.mjs} +5 -4
- package/dist/{renderer-DIgsilTw.mjs.map → renderer-Dy-DBU0X.mjs.map} +1 -1
- package/dist/{renderer-CpkiHRhh.mjs → renderer-DyzNM721.mjs} +17 -99
- package/dist/renderer-DyzNM721.mjs.map +1 -0
- package/dist/{renderer-C_TPMHiH.mjs → renderer-DzrM1KMN.mjs} +81 -221
- package/dist/renderer-DzrM1KMN.mjs.map +1 -0
- package/dist/{renderer-Bc04fivZ.mjs → renderer-FHyZn0em.mjs} +99 -287
- package/dist/renderer-FHyZn0em.mjs.map +1 -0
- package/dist/renderer-GSFP7v2z.mjs +3 -0
- package/dist/{renderer-DpGc-N3G.mjs → renderer-NXdm6HLb.mjs} +24 -104
- package/dist/renderer-NXdm6HLb.mjs.map +1 -0
- package/dist/renderer-OLaYikwi.mjs +5 -0
- package/dist/renderer-Q75RC5Uz.mjs +5 -0
- package/dist/renderer-T0LJ4Po3.mjs +5 -0
- package/dist/renderer-VuXt1hfq.mjs +5 -0
- package/dist/{renderer-BfAWZziM.mjs → renderer-_1xGBbxn.mjs} +58 -225
- package/dist/renderer-_1xGBbxn.mjs.map +1 -0
- package/dist/{renderer-B1YMwl2B.mjs → renderer-c4AorKyw.mjs} +3 -1
- package/dist/renderer-hY_2WLt3.mjs +5 -0
- package/dist/{renderer-BhZZEyFX.mjs → renderer-mp1NN5zk.mjs} +4 -4
- package/dist/{renderer-BhZZEyFX.mjs.map → renderer-mp1NN5zk.mjs.map} +1 -1
- package/dist/{renderer-D7zvPHKn.mjs → renderer-qsg-JMuN.mjs} +18 -28
- package/dist/renderer-qsg-JMuN.mjs.map +1 -0
- package/dist/{renderer-vqkKWqa5.mjs → renderer-timEC0Gl.mjs} +23 -107
- package/dist/renderer-timEC0Gl.mjs.map +1 -0
- package/dist/renderer-y4EqE06a.mjs +5 -0
- package/dist/{renderers-CP8CFWDs-DwQTx8S7.mjs → renderers-CP8CFWDs-CMYe4kvZ.mjs} +4 -4
- package/dist/{renderers-CP8CFWDs-DwQTx8S7.mjs.map → renderers-CP8CFWDs-CMYe4kvZ.mjs.map} +1 -1
- package/dist/signals/index.d.mts +6 -6
- package/dist/signals/index.mjs +8 -8
- package/dist/{signals-Bv1OweKd.mjs → signals-DGRs6ddH.mjs} +4 -4
- package/dist/{signals-Bv1OweKd.mjs.map → signals-DGRs6ddH.mjs.map} +1 -1
- package/package.json +55 -55
- package/dist/client-CwRhflHE.mjs +0 -66
- package/dist/client-CwRhflHE.mjs.map +0 -1
- package/dist/dist-BAVZdFEJ.mjs.map +0 -1
- package/dist/dist-BYqNNwsl.mjs.map +0 -1
- package/dist/dist-CbG3QxDw.mjs.map +0 -1
- package/dist/dist-Cxi68OuY.mjs.map +0 -1
- package/dist/dist-cjs--lfMLs3U.mjs +0 -66
- package/dist/dist-cjs--lfMLs3U.mjs.map +0 -1
- package/dist/dist-cjs--pxyGFw2.mjs +0 -43
- package/dist/dist-cjs--pxyGFw2.mjs.map +0 -1
- package/dist/dist-cjs-3pon9kTt.mjs +0 -6
- package/dist/dist-cjs-BDpO-TH_.mjs +0 -51
- package/dist/dist-cjs-BDpO-TH_.mjs.map +0 -1
- package/dist/dist-cjs-BiKQozdJ.mjs +0 -64
- package/dist/dist-cjs-BiKQozdJ.mjs.map +0 -1
- package/dist/dist-cjs-BmyyWYWv.mjs +0 -153
- package/dist/dist-cjs-BmyyWYWv.mjs.map +0 -1
- package/dist/dist-cjs-CND_ghfH.mjs +0 -98
- package/dist/dist-cjs-CND_ghfH.mjs.map +0 -1
- package/dist/dist-cjs-CQwmMllY.mjs +0 -137
- package/dist/dist-cjs-CQwmMllY.mjs.map +0 -1
- package/dist/dist-cjs-CgFzrgj8.mjs +0 -85
- package/dist/dist-cjs-CgFzrgj8.mjs.map +0 -1
- package/dist/dist-cjs-CsU2sZoX.mjs +0 -323
- package/dist/dist-cjs-CsU2sZoX.mjs.map +0 -1
- package/dist/dist-cjs-DJ8fcQEe.mjs +0 -9069
- package/dist/dist-cjs-DJ8fcQEe.mjs.map +0 -1
- package/dist/dist-cjs-DT2jJlcK.mjs +0 -181
- package/dist/dist-cjs-DT2jJlcK.mjs.map +0 -1
- package/dist/dist-cjs-DjzmP0-x.mjs +0 -1091
- package/dist/dist-cjs-DjzmP0-x.mjs.map +0 -1
- package/dist/dist-cjs-DzjrlfbE.mjs +0 -437
- package/dist/dist-cjs-DzjrlfbE.mjs.map +0 -1
- package/dist/dist-cjs-M-8QOgS_.mjs +0 -209
- package/dist/dist-cjs-M-8QOgS_.mjs.map +0 -1
- package/dist/dist-cjs-TsA8LFXC.mjs +0 -48
- package/dist/dist-cjs-TsA8LFXC.mjs.map +0 -1
- package/dist/dist-cjs-agQl9T8M.mjs +0 -5015
- package/dist/dist-cjs-agQl9T8M.mjs.map +0 -1
- package/dist/event-streams-BaNGaLxh.mjs +0 -204
- package/dist/event-streams-BaNGaLxh.mjs.map +0 -1
- package/dist/fonts-C0W6TgJk.mjs.map +0 -1
- package/dist/index-9B8CJowc.d.mts.map +0 -1
- package/dist/index-CYGpSVsf.d.mts.map +0 -1
- package/dist/index-DDEPvMww.d.mts.map +0 -1
- package/dist/index-DnWsbbuZ.d.mts.map +0 -1
- package/dist/package-XpCRbTOA.mjs +0 -6
- package/dist/package-XpCRbTOA.mjs.map +0 -1
- package/dist/preview-BV2C4Fk6.mjs.map +0 -1
- package/dist/preview-engine/chunk-36YGYLKD.mjs +0 -58
- package/dist/preview-engine/chunk-7O24H4YT.mjs +0 -117
- package/dist/preview-engine/chunk-AUFSM5KI.mjs +0 -141
- package/dist/preview-engine/chunk-BHFI3Y4T.mjs +0 -1
- package/dist/preview-engine/chunk-BQ65MU6H.mjs +0 -138
- package/dist/preview-engine/chunk-BWDARDO6.mjs +0 -117
- package/dist/preview-engine/chunk-DLXQDDIN.mjs +0 -46
- package/dist/preview-engine/chunk-EJGLUZMW.mjs +0 -1
- package/dist/preview-engine/chunk-FE6RSVKZ.mjs +0 -73
- package/dist/preview-engine/chunk-FGHOHCFG.mjs +0 -110
- package/dist/preview-engine/chunk-HPIULG7P.mjs +0 -111
- package/dist/preview-engine/chunk-HRIKNYPF.mjs +0 -60
- package/dist/preview-engine/chunk-IMV5SBQV.mjs +0 -1
- package/dist/preview-engine/chunk-JPXQPP6J.mjs +0 -1
- package/dist/preview-engine/chunk-K52S5DJX.mjs +0 -109
- package/dist/preview-engine/chunk-L3IEJZ5S.mjs +0 -474
- package/dist/preview-engine/chunk-M7NMFDJ3.mjs +0 -3
- package/dist/preview-engine/chunk-MJM3NFEC.mjs +0 -315
- package/dist/preview-engine/chunk-NFAGEP43.mjs +0 -1448
- package/dist/preview-engine/chunk-NRHSNPZV.mjs +0 -182
- package/dist/preview-engine/chunk-OWOSYNMF.mjs +0 -104
- package/dist/preview-engine/chunk-Q66QQI6N.mjs +0 -8
- package/dist/preview-engine/chunk-QGBSLNFI.mjs +0 -52
- package/dist/preview-engine/chunk-QM3XFEJN.mjs +0 -63
- package/dist/preview-engine/chunk-R3ZH7YF3.mjs +0 -89
- package/dist/preview-engine/chunk-R6YNSBKL.mjs +0 -108
- package/dist/preview-engine/chunk-S4CSX6K5.mjs +0 -610
- package/dist/preview-engine/chunk-SNYAHQ25.mjs +0 -186
- package/dist/preview-engine/chunk-SRT2OCQW.mjs +0 -1
- package/dist/preview-engine/chunk-SUUUYXXT.mjs +0 -1
- package/dist/preview-engine/chunk-T6COGNOW.mjs +0 -134
- package/dist/preview-engine/chunk-XFYXT76H.mjs +0 -52
- package/dist/preview-engine/chunk-XUM42I4R.mjs +0 -1
- package/dist/preview-engine/chunk-YITWSOG4.mjs +0 -103
- package/dist/preview-engine/chunk-ZDCA6NVT.mjs +0 -82
- package/dist/preview-engine/chunk-ZNGOAGAI.mjs +0 -1
- package/dist/preview-engine/renderers-27Q5X3U6.mjs +0 -1
- package/dist/preview-engine/renderers-4AHH6BHF.mjs +0 -1
- package/dist/preview-engine/renderers-5BV6JGTU.mjs +0 -248
- package/dist/preview-engine/renderers-6PRVCTYV.mjs +0 -1
- package/dist/preview-engine/renderers-76PQY2SO.mjs +0 -1
- package/dist/preview-engine/renderers-7X2W6QWX.mjs +0 -1
- package/dist/preview-engine/renderers-B52QT6MT.mjs +0 -55
- package/dist/preview-engine/renderers-BE6RVJSE.mjs +0 -1
- package/dist/preview-engine/renderers-BMM2BH56.mjs +0 -1
- package/dist/preview-engine/renderers-CHOGQHVQ.mjs +0 -1
- package/dist/preview-engine/renderers-CRKRWR2Y.mjs +0 -1
- package/dist/preview-engine/renderers-DEYDSGJX.mjs +0 -1
- package/dist/preview-engine/renderers-DZTNRCR7.mjs +0 -1
- package/dist/preview-engine/renderers-ELO3KWTK.mjs +0 -1
- package/dist/preview-engine/renderers-EOJMPPAQ.mjs +0 -1
- package/dist/preview-engine/renderers-F2KJNDWA.mjs +0 -124
- package/dist/preview-engine/renderers-FCV4COVB.mjs +0 -1
- package/dist/preview-engine/renderers-G5KQISVL.mjs +0 -1
- package/dist/preview-engine/renderers-GJSUN5HU.mjs +0 -1
- package/dist/preview-engine/renderers-GMX2ZQDG.mjs +0 -1
- package/dist/preview-engine/renderers-GXCRINGC.mjs +0 -1
- package/dist/preview-engine/renderers-IHKORHMT.mjs +0 -1
- package/dist/preview-engine/renderers-JA4SLMG3.mjs +0 -1
- package/dist/preview-engine/renderers-JLN77CFZ.mjs +0 -1
- package/dist/preview-engine/renderers-KBFW7B5F.mjs +0 -1
- package/dist/preview-engine/renderers-LJRJMFCR.mjs +0 -1
- package/dist/preview-engine/renderers-LPAPZ5QS.mjs +0 -1
- package/dist/preview-engine/renderers-NQUDQEHY.mjs +0 -1
- package/dist/preview-engine/renderers-NS3AIJVG.mjs +0 -1
- package/dist/preview-engine/renderers-NSY2SDIE.mjs +0 -1
- package/dist/preview-engine/renderers-PW4OJWHF.mjs +0 -120
- package/dist/preview-engine/renderers-PWLWOZY4.mjs +0 -1
- package/dist/preview-engine/renderers-Q3MD34JN.mjs +0 -1
- package/dist/preview-engine/renderers-RXGNA2Q7.mjs +0 -1
- package/dist/preview-engine/renderers-TVTQ2R74.mjs +0 -1
- package/dist/preview-engine/renderers-VTTGFO55.mjs +0 -1
- package/dist/preview-engine/renderers-W3VVM5HB.mjs +0 -1
- package/dist/preview-engine/renderers-WG7QBD4D.mjs +0 -1
- package/dist/preview-engine/renderers-WLLJFZTF.mjs +0 -1
- package/dist/preview-engine/renderers-WN4SYFCU.mjs +0 -1
- package/dist/preview-engine/renderers-WSMLLSWX.mjs +0 -1
- package/dist/preview-engine/renderers-XFBSGTHU.mjs +0 -1
- package/dist/preview-engine/renderers-XFC6ZPO5.mjs +0 -1
- package/dist/preview-engine/renderers-XUHRY3XH.mjs +0 -1
- package/dist/preview-engine/renderers-YAOB5XU6.mjs +0 -1
- package/dist/preview-engine/renderers-YTB4FOHT.mjs +0 -1
- package/dist/preview-engine/renderers-ZIMBODX6.mjs +0 -1
- package/dist/program-BmNKgzja.mjs.map +0 -1
- package/dist/renderer-1VuQTY1Z.mjs.map +0 -1
- package/dist/renderer-6oMSare3.mjs +0 -3
- package/dist/renderer-B1ComPb2.mjs +0 -3
- package/dist/renderer-B2XzjK0z.mjs +0 -3
- package/dist/renderer-B2ieylQ3.mjs.map +0 -1
- package/dist/renderer-B8-kzZdP.mjs.map +0 -1
- package/dist/renderer-B8UaFNqb.mjs.map +0 -1
- package/dist/renderer-BDbTWSpP.mjs.map +0 -1
- package/dist/renderer-BIIWCg_J.mjs.map +0 -1
- package/dist/renderer-BJ1aTkZf.mjs.map +0 -1
- package/dist/renderer-BM05sB8m.mjs.map +0 -1
- package/dist/renderer-BQ5Bz5D0.mjs +0 -3
- package/dist/renderer-BREIjsUU.mjs.map +0 -1
- package/dist/renderer-BTu2EVhF.mjs +0 -3
- package/dist/renderer-BZcn_iBl.mjs +0 -3
- package/dist/renderer-Bc04fivZ.mjs.map +0 -1
- package/dist/renderer-BfAWZziM.mjs.map +0 -1
- package/dist/renderer-BfJSUjPN.mjs +0 -3
- package/dist/renderer-Bfgd4N0O.mjs.map +0 -1
- package/dist/renderer-Bhdf90Zq.mjs.map +0 -1
- package/dist/renderer-Bp6sDMa6.mjs +0 -3
- package/dist/renderer-Bt7_sb_Y.mjs +0 -3
- package/dist/renderer-Bv6q84TU.mjs.map +0 -1
- package/dist/renderer-C-H680_l.mjs +0 -3
- package/dist/renderer-C606ZPUn.mjs +0 -3
- package/dist/renderer-C9jyKn1i.mjs +0 -3
- package/dist/renderer-CDLrNgfo.mjs +0 -3
- package/dist/renderer-CERfcxgv.mjs +0 -3
- package/dist/renderer-CG5PzNkv.mjs +0 -3
- package/dist/renderer-CI7sG_cv.mjs.map +0 -1
- package/dist/renderer-CPoIMVdk.mjs +0 -3
- package/dist/renderer-CQdVj2JS.mjs +0 -3
- package/dist/renderer-CQiTodg9.mjs +0 -337
- package/dist/renderer-CQiTodg9.mjs.map +0 -1
- package/dist/renderer-CWTpc4ff.mjs.map +0 -1
- package/dist/renderer-CXn5HAnK.mjs.map +0 -1
- package/dist/renderer-CZgB5st8.mjs +0 -3
- package/dist/renderer-C_TPMHiH.mjs.map +0 -1
- package/dist/renderer-Ca7L1EOp.mjs +0 -3
- package/dist/renderer-CaaOKMSd.mjs.map +0 -1
- package/dist/renderer-CdciwwMI.mjs.map +0 -1
- package/dist/renderer-CepMDQ06.mjs.map +0 -1
- package/dist/renderer-CfC_aiew.mjs.map +0 -1
- package/dist/renderer-ChdLYS-G.mjs.map +0 -1
- package/dist/renderer-CkykdR_D.mjs +0 -3
- package/dist/renderer-Cl6GkeHx.mjs +0 -3
- package/dist/renderer-ClcjrFyo.mjs +0 -3
- package/dist/renderer-CnXW28b9.mjs.map +0 -1
- package/dist/renderer-CpkiHRhh.mjs.map +0 -1
- package/dist/renderer-CtVkU_GA.mjs +0 -44
- package/dist/renderer-CtVkU_GA.mjs.map +0 -1
- package/dist/renderer-Ctk2zzfy.mjs.map +0 -1
- package/dist/renderer-CtyD_Xju.mjs.map +0 -1
- package/dist/renderer-CySUP_wk.mjs +0 -3
- package/dist/renderer-CzPWB0Ss.mjs.map +0 -1
- package/dist/renderer-D2XD4QYk.mjs.map +0 -1
- package/dist/renderer-D2l_Odyg.mjs +0 -3
- package/dist/renderer-D7zvPHKn.mjs.map +0 -1
- package/dist/renderer-D9NnIx7o.mjs +0 -3
- package/dist/renderer-DCPCYySt.mjs +0 -3
- package/dist/renderer-DEJwPRkR.mjs.map +0 -1
- package/dist/renderer-DIkpJEOZ.mjs +0 -3
- package/dist/renderer-DML9qpmS.mjs.map +0 -1
- package/dist/renderer-DNSXPkf_.mjs +0 -3
- package/dist/renderer-DP-CvZ_Z.mjs +0 -3
- package/dist/renderer-DZGtBUCx.mjs.map +0 -1
- package/dist/renderer-D_1oDOCP.mjs.map +0 -1
- package/dist/renderer-DeXb8R6h.mjs +0 -3
- package/dist/renderer-DezO-ZaP.mjs +0 -4
- package/dist/renderer-DhXe04fC.mjs +0 -3
- package/dist/renderer-DirxsOjq.mjs.map +0 -1
- package/dist/renderer-Djlb4TLO.mjs.map +0 -1
- package/dist/renderer-DnH3SI7w.mjs +0 -3
- package/dist/renderer-DpGc-N3G.mjs.map +0 -1
- package/dist/renderer-Dpw4oi33.mjs +0 -3
- package/dist/renderer-DxTs4Iyi.mjs.map +0 -1
- package/dist/renderer-Dy0utCl7.mjs.map +0 -1
- package/dist/renderer-Md-ytU0v.mjs +0 -3
- package/dist/renderer-RKsXlF_0.mjs +0 -23900
- package/dist/renderer-RKsXlF_0.mjs.map +0 -1
- package/dist/renderer-U-bhWO9Q.mjs +0 -3
- package/dist/renderer-_uvdg48N.mjs.map +0 -1
- package/dist/renderer-bsWnRNpJ.mjs.map +0 -1
- package/dist/renderer-cgxO2xN6.mjs.map +0 -1
- package/dist/renderer-d5-F_48R.mjs +0 -3
- package/dist/renderer-ho_jXJ0H.mjs.map +0 -1
- package/dist/renderer-vqkKWqa5.mjs.map +0 -1
- package/dist/renderer-zA5okHds.mjs +0 -3
- package/dist/signin-Db08vl-g.mjs +0 -865
- package/dist/signin-Db08vl-g.mjs.map +0 -1
- package/dist/sso-oidc-CpLz_lIu.mjs +0 -1051
- package/dist/sso-oidc-CpLz_lIu.mjs.map +0 -1
- package/dist/sts-BQefGuml.mjs +0 -6
- package/dist/sts-Dgl0kH-t.mjs +0 -1395
- package/dist/sts-Dgl0kH-t.mjs.map +0 -1
- /package/dist/{renderer-C2n-EHxg.mjs → renderer-B-BcgA6d.mjs} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as z,d as x,e as Y,g as X,h as G,j as F,k as O,m as k}from"./chunk-ENKKLU7B.mjs";import{d as U}from"./chunk-6YJP57MZ.mjs";import{x as s,z as N}from"./chunk-63SFBHEH.mjs";import{a as W}from"./chunk-IQC2I5A5.mjs";import{e as S}from"./chunk-BVF64D6H.mjs";S();S();var ve=`
|
|
2
2
|
struct RefractionCausticsUniforms {
|
|
3
3
|
// vec4 0
|
|
4
4
|
_pad0 : f32,
|
|
@@ -69,27 +69,7 @@ struct RefractionCausticsUniforms {
|
|
|
69
69
|
@group(3) @binding(6) var lightPosXSigTex : texture_2d<f32>;
|
|
70
70
|
@group(3) @binding(7) var lightPosYSigTex : texture_2d<f32>;
|
|
71
71
|
@group(3) @binding(8) var sigSamp : sampler;
|
|
72
|
-
|
|
73
|
-
struct VSOut {
|
|
74
|
-
@builtin(position) pos : vec4<f32>,
|
|
75
|
-
@location(0) uv : vec2<f32>,
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
@vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
|
|
79
|
-
var pos = array<vec2<f32>, 4>(
|
|
80
|
-
vec2<f32>(-1.0, 1.0),
|
|
81
|
-
vec2<f32>(1.0, 1.0),
|
|
82
|
-
vec2<f32>(-1.0, -1.0),
|
|
83
|
-
vec2<f32>(1.0, -1.0)
|
|
84
|
-
);
|
|
85
|
-
var uv = array<vec2<f32>, 4>(
|
|
86
|
-
vec2<f32>(0.0, 0.0),
|
|
87
|
-
vec2<f32>(1.0, 0.0),
|
|
88
|
-
vec2<f32>(0.0, 1.0),
|
|
89
|
-
vec2<f32>(1.0, 1.0)
|
|
90
|
-
);
|
|
91
|
-
return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
|
|
92
|
-
}
|
|
72
|
+
${z}
|
|
93
73
|
|
|
94
74
|
fn sampleDepth(uv: vec2<f32>) -> f32 {
|
|
95
75
|
let clampedUV = clamp(uv, vec2<f32>(0.0), vec2<f32>(1.0));
|
|
@@ -364,4 +344,4 @@ fn spectralWavelength(t: f32) -> vec3<f32> {
|
|
|
364
344
|
|
|
365
345
|
return vec4<f32>(clamp(finalRGB, vec3<f32>(0.0), vec3<f32>(1.0)), finalAlpha);
|
|
366
346
|
}
|
|
367
|
-
`,
|
|
347
|
+
`,q=new WeakMap;function Se(a){let t=q.get(a);if(t)return t;let r=x(a,["uniform"]),o=x(a,["texture","sampler"]),n=x(a,["texture","sampler"]),u=Y(a,8);return t={uniformLayout:r,srcTextureLayout:o,depthTextureLayout:n,signalTextureLayout:u,pipelineCache:new Map},q.set(a,t),t}function xe(a,t){let r=Se(a),o=`refraction_caustics_${t}`,n=r.pipelineCache.get(o);if(!n){let u=a.createShaderModule({label:`refraction_caustics_${t}.wgsl`,code:ve});n=X(a,{label:`RefractionCausticsPipeline_${t}`,module:u,layouts:[r.uniformLayout,r.srcTextureLayout,r.depthTextureLayout,r.signalTextureLayout],format:t}),r.pipelineCache.set(o,n)}return{pipeline:n,uniformLayout:r.uniformLayout,srcTextureLayout:r.srcTextureLayout,depthTextureLayout:r.depthTextureLayout,signalTextureLayout:r.signalTextureLayout}}var j=async a=>{let{ctx:t,encoder:r,pass:o,targetTexture:n,targetWidth:u,targetHeight:E,props:l}=a,B=l.frame??0,A=l.fps||60,i=l.virtualMedia?.operation;if(i?.op!=="RefractionCaustics3D"||!i)return;let R=l.virtualMedia.children?.[0];if(!R)return;o.end();let p=u,f=E,{texture:d}=await G(a,R,{props:{...l,virtualMedia:R,containerWidth:p,containerHeight:f}});a.pass.end();let y=i.depthMedia,g,b=!1;y?({texture:g}=await G(a,y,{props:{...l,virtualMedia:y,containerWidth:p,containerHeight:f},exclude:[d]}),a.pass.end(),b=!0):(g=d,b=!1);let{pipeline:$,uniformLayout:K,srcTextureLayout:Q,depthTextureLayout:J,signalTextureLayout:Z}=xe(t.device,t.renderer.format),T=t.renderer.samplerCache.getSampler(t.device),{elapsedSeconds:H,durationSeconds:h}=O(l,B,A,4),ee=h>0?H%h/h:0,L=s(i,"ior",1.52,1,2.5),D=s(i,"dispersion",.04,0,.2),w=s(i,"refractionScale",.5,0,2),P=s(i,"causticBrightness",.6,0,2),te=s(i,"causticScale",1,.1,5),V=s(i,"fluidRipples",0,0,1),C=s(i,"roughness",0,0,1),I=s(i,"lightPosX",.5,0,1),_=s(i,"lightPosY",.2,0,1),ie=s(i,"specularIntensity",.8,0,2),ae=s(i,"depthScale",1,.1,5),re=s(i,"tintStrength",0,0,1),se=s(i,"rippleSpeed",1,0,5),c=(v,he)=>v.hasSignal&&v.sd?U.getOrCreate2DTextureView(t.device,r,v.sd.nodeId??he,H,h,v.sd,p,f,l.renderId,B,A):U.getDummy1x1TextureView(t.device),le=c(L,"refr_ior_sig"),ne=c(D,"refr_disp_sig"),ce=c(w,"refr_scale_sig"),oe=c(P,"refr_caust_sig"),ue=c(V,"refr_rip_sig"),pe=c(C,"refr_rough_sig"),fe=c(I,"refr_lightx_sig"),de=c(_,"refr_lighty_sig"),e=new Float32Array(36);e[0]=0,e[1]=L.value,e[2]=D.value,e[3]=w.value,e[4]=P.value,e[5]=te.value,e[6]=V.value,e[7]=se.value,e[8]=C.value,e[9]=ie.value,e[10]=I.value,e[11]=_.value,e[12]=re.value,e[13]=i.depthInvert?1:0,e[14]=ae.value,e[15]=b?1:0,e[16]=ee,e[17]=p/Math.max(1,f),e[18]=0,e[19]=0,e[20]=L.hasSignal?1:0,e[21]=D.hasSignal?1:0,e[22]=w.hasSignal?1:0,e[23]=P.hasSignal?1:0,e[24]=V.hasSignal?1:0,e[25]=C.hasSignal?1:0,e[26]=I.hasSignal?1:0,e[27]=_.hasSignal?1:0,e[28]=0,e[29]=0,e[30]=0,e[31]=0;let m=W(i.tintColor??"#ffffff");e[32]=m.r,e[33]=m.g,e[34]=m.b,e[35]=m.a;let ge=t.renderer.getTemporaryBuffer(e),M=t.renderer.getTemporaryTexture(p,f,[d,g,n,...l.excludeTextures||[]]);k(r,M.createView(),$,[t.device.createBindGroup({layout:K,entries:[{binding:0,resource:{buffer:ge}}]}),t.renderer.bindGroupCache.getBindGroup(t.device,Q,d,T),t.renderer.bindGroupCache.getBindGroup(t.device,J,g,T),t.device.createBindGroup({layout:Z,entries:[{binding:0,resource:le},{binding:1,resource:ne},{binding:2,resource:ce},{binding:3,resource:oe},{binding:4,resource:ue},{binding:5,resource:pe},{binding:6,resource:fe},{binding:7,resource:de},{binding:8,resource:T}]})]),F(a,M,i.opacity??1)};var Pe=N({WebGPURenderer:j});export{j as a,Pe as b};
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import{a as X,d as f,e as _,f as P,g as Y,h as D,j as U,k as V,m as B}from"./chunk-ENKKLU7B.mjs";import{d}from"./chunk-6YJP57MZ.mjs";import{z as R}from"./chunk-63SFBHEH.mjs";import{e as g}from"./chunk-BVF64D6H.mjs";g();g();var j=0,Q=500;function q(t,e,r){return Math.min(r,Math.max(e,t))}var z=`
|
|
2
|
+
struct DisplacementUniforms {
|
|
3
|
+
strengthX : f32,
|
|
4
|
+
strengthY : f32,
|
|
5
|
+
xChannel : f32, // 0=R, 1=G, 2=B, 3=A, 4=Luma
|
|
6
|
+
yChannel : f32, // 0=R, 1=G, 2=B, 3=A, 4=Luma
|
|
7
|
+
|
|
8
|
+
wrapMode : f32, // 0=Clamp, 1=Repeat, 2=Mirror
|
|
9
|
+
hasSignalX : f32,
|
|
10
|
+
hasSignalY : f32,
|
|
11
|
+
_pad : f32,
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
@group(0) @binding(0) var<uniform> u : DisplacementUniforms;
|
|
15
|
+
@group(1) @binding(0) var srcTex : texture_2d<f32>;
|
|
16
|
+
@group(1) @binding(1) var srcSamp : sampler;
|
|
17
|
+
@group(2) @binding(0) var mapTex : texture_2d<f32>;
|
|
18
|
+
@group(2) @binding(1) var mapSamp : sampler;
|
|
19
|
+
@group(3) @binding(0) var sigXTex : texture_2d<f32>;
|
|
20
|
+
@group(3) @binding(1) var sigYTex : texture_2d<f32>;
|
|
21
|
+
@group(3) @binding(2) var sigSamp : sampler;
|
|
22
|
+
${X}
|
|
23
|
+
|
|
24
|
+
fn extractChannel(color: vec4<f32>, channel: f32) -> f32 {
|
|
25
|
+
if (channel < 0.5) { return color.r; }
|
|
26
|
+
if (channel < 1.5) { return color.g; }
|
|
27
|
+
if (channel < 2.5) { return color.b; }
|
|
28
|
+
if (channel < 3.5) { return color.a; }
|
|
29
|
+
// Luminance
|
|
30
|
+
return dot(color.rgb, vec3<f32>(0.299, 0.587, 0.114));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
fn applyWrap(coord: f32, mode: f32) -> f32 {
|
|
34
|
+
if (mode < 0.5) {
|
|
35
|
+
// Clamp
|
|
36
|
+
return clamp(coord, 0.0, 1.0);
|
|
37
|
+
}
|
|
38
|
+
if (mode < 1.5) {
|
|
39
|
+
// Repeat
|
|
40
|
+
return fract(coord);
|
|
41
|
+
}
|
|
42
|
+
// Mirror
|
|
43
|
+
let t = fract(coord * 0.5) * 2.0;
|
|
44
|
+
if (t > 1.0) {
|
|
45
|
+
return 2.0 - t;
|
|
46
|
+
}
|
|
47
|
+
return t;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
51
|
+
let mapColor = textureSampleLevel(mapTex, mapSamp, in.uv, 0.0);
|
|
52
|
+
|
|
53
|
+
// Extract displacement values from chosen channels, centered around 0.5 and gated by alpha
|
|
54
|
+
// NOTE (P3, not changed here): this yields a max offset of strength/2 px at
|
|
55
|
+
// either extreme (peak-to-peak swing == strength). Confirm with design whether
|
|
56
|
+
// "strength in pixels" should mean peak amplitude instead \u2014 see review doc.
|
|
57
|
+
let dispX = (extractChannel(mapColor, u.xChannel) - 0.5) * mapColor.a;
|
|
58
|
+
let dispY = (extractChannel(mapColor, u.yChannel) - 0.5) * mapColor.a;
|
|
59
|
+
|
|
60
|
+
// Get strength, potentially from signal textures
|
|
61
|
+
var sX = u.strengthX;
|
|
62
|
+
var sY = u.strengthY;
|
|
63
|
+
if (u.hasSignalX > 0.5) {
|
|
64
|
+
sX = textureSampleLevel(sigXTex, sigSamp, in.uv, 0.0).r;
|
|
65
|
+
}
|
|
66
|
+
if (u.hasSignalY > 0.5) {
|
|
67
|
+
sY = textureSampleLevel(sigYTex, sigSamp, in.uv, 0.0).r;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Compute displacement in UV space (strength is in pixels, convert to UV)
|
|
71
|
+
let srcDims = vec2<f32>(textureDimensions(srcTex));
|
|
72
|
+
let offset = vec2<f32>(
|
|
73
|
+
dispX * sX / srcDims.x,
|
|
74
|
+
dispY * sY / srcDims.y,
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
let displaced = vec2<f32>(
|
|
78
|
+
applyWrap(in.uv.x + offset.x, u.wrapMode),
|
|
79
|
+
applyWrap(in.uv.y + offset.y, u.wrapMode),
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
return textureSampleLevel(srcTex, srcSamp, displaced, 0.0);
|
|
83
|
+
}
|
|
84
|
+
`,o=new Float32Array(8),J=P(t=>({uniformLayout:f(t,["uniform"]),srcTextureLayout:f(t,["texture","sampler"]),mapTextureLayout:f(t,["texture","sampler"]),signalTextureLayout:_(t,2),pipelineCache:new Map}));function Z(t,e){let r=J(t),u=`displacement_${e}`,s=r.pipelineCache.get(u);if(!s){let i=t.createShaderModule({label:`displacement_${e}.wgsl`,code:z});s=Y(t,{label:`DisplacementMapPipeline_${e}`,module:i,layouts:[r.uniformLayout,r.srcTextureLayout,r.mapTextureLayout,r.signalTextureLayout],format:e}),r.pipelineCache.set(u,s)}return{pipeline:s,uniformLayout:r.uniformLayout,srcTextureLayout:r.srcTextureLayout,mapTextureLayout:r.mapTextureLayout,signalTextureLayout:r.signalTextureLayout}}function A(t){switch(t){case"Green":return 1;case"Blue":return 2;case"Alpha":return 3;case"Luminance":return 4;default:return 0}}function ee(t){switch(t){case"Repeat":return 1;case"Mirror":return 2;default:return 0}}function N(t,e,r){let u=`${e}HandleId`,s=t[u],i=s?t.inputs?.[s]:null,c=!!(i?.connectionValid&&i.outputItem?.type==="Signal"),n=c?i?.outputItem?.data:null,a=r;return c?n&&typeof n=="object"&&"offset"in n&&(a=Number(n.offset??r)):i?.connectionValid&&i.outputItem?.type==="Number"?a=q(Number(i.outputItem.data??r),j,Q):a=Number(t[e]??r),{hasSignal:c,sd:n,value:a}}var W=async t=>{let{ctx:e,encoder:r,pass:u,targetTexture:s,targetWidth:i,targetHeight:c,props:n}=t,a=n.virtualMedia?.operation;if(a?.op!=="DisplacementMap"||!a)return;let x=n.virtualMedia.children?.[0],h=a.mapMedia;if(!x||!h)return;u.end();let y=i,T=c,v=n.frame??0,b=n.fps||30,l=N(a,"strengthX",50),p=N(a,"strengthY",50),{texture:m}=await D(t,x,{props:{...n,virtualMedia:x,renderId:`${n.renderId}-c0`}});t.pass.end();let{texture:C}=await D(t,h,{props:{...n,virtualMedia:h,renderId:`${n.renderId}-c1`,excludeTextures:[...n.excludeTextures||[],m]},exclude:[m]});t.pass.end();let{pipeline:E,uniformLayout:F,srcTextureLayout:O,mapTextureLayout:H,signalTextureLayout:$}=Z(e.device,e.renderer.format),L=e.renderer.samplerCache.getSampler(e.device),S,M,{elapsedSeconds:w,durationSeconds:G}=V(n,v,b);l.hasSignal&&l.sd?S=d.getOrCreate2DTextureView(e.device,r,l.sd.nodeId??"displace_sx_sig",w,G,l.sd,y,T,n.renderId,v,b):S=d.getDummy1x1TextureView(e.device),p.hasSignal&&p.sd?M=d.getOrCreate2DTextureView(e.device,r,p.sd.nodeId??"displace_sy_sig",w,G,p.sd,y,T,n.renderId,v,b):M=d.getDummy1x1TextureView(e.device),o[0]=l.value,o[1]=p.value,o[2]=A(a.xChannel),o[3]=A(a.yChannel),o[4]=ee(a.wrapMode),o[5]=l.hasSignal?1:0,o[6]=p.hasSignal?1:0,o[7]=0;let k=e.renderer.getTemporaryBuffer(o),I=e.renderer.getTemporaryTexture(y,T,[m,C,s,...n.excludeTextures||[]]);B(r,I.createView(),E,[e.device.createBindGroup({layout:F,entries:[{binding:0,resource:{buffer:k}}]}),e.renderer.bindGroupCache.getBindGroup(e.device,O,m,L),e.renderer.bindGroupCache.getBindGroup(e.device,H,C,L),e.device.createBindGroup({layout:$,entries:[{binding:0,resource:S},{binding:1,resource:M},{binding:2,resource:L}]})]),U(t,I,a.opacity??1)};var oe=R({WebGPURenderer:W});export{oe as a};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{a as E}from"./chunk-E4RAFHZM.mjs";import{b as R,e as x,r as A}from"./chunk-BWJS6G7R.mjs";import{m as P}from"./chunk-4GEWSUX5.mjs";import{o as g}from"./chunk-YAQFFQPG.mjs";import{d as m,e as F}from"./chunk-BVF64D6H.mjs";F();F();var I=65536,S=1953658213,$=1954115633,N=1330926671,k=1953784678;function U(r,t){if(r.length<12)throw new Error(`Invalid font binary for "${t}": File size (${r.length} bytes) is too small to be a valid TrueType or OpenType font.`);let e=(r[0]??0)<<24|(r[1]??0)<<16|(r[2]??0)<<8|(r[3]??0);if(e===I||e===S||e===$||e===k)return"truetype";if(e===N)return"opentype";let i=(e>>>0).toString(16).padStart(8,"0");throw new Error(`Invalid font format for "${t}": Expected a valid TrueType (.ttf) or OpenType (.otf) font binary. Found header tag: 0x${i}.`)}async function M(r){if(r instanceof Uint8Array)return{buffer:r};if(typeof r!="string")throw new TypeError(`Font source must be a file path string or Uint8Array, received: ${typeof r}`);let t=r;if(t.startsWith("http://")||t.startsWith("https://")){let s=await fetch(t);if(!s.ok)throw new Error(`Failed to download font from "${t}": HTTP ${s.status} ${s.statusText}`);let c=await s.arrayBuffer();return{buffer:new Uint8Array(c),filePath:t}}if(t.startsWith("file://"))try{t=new URL(t).pathname}catch{t=t.replace(/^file:\/\//,"")}let e=[t,g.resolve(m.cwd(),t),g.resolve(m.cwd(),"assets/fonts",t),g.resolve(m.cwd(),"assets/fonts",g.basename(t))],i=m.cwd();for(let s=0;s<5;s++){e.push(g.resolve(i,t)),e.push(g.resolve(i,"assets/fonts",g.basename(t)));let c=g.dirname(i);if(c===i)break;i=c}let a=null,f=null;for(let s of e)try{if((await P.stat(s)).isFile()){a=s,f=await P.readFile(s);break}}catch{}if(!a||!f)throw new Error(`Font file not found: "${r}". Checked candidate locations:
|
|
2
|
+
- ${e.join(`
|
|
3
|
+
- `)}`);return{buffer:new Uint8Array(f.buffer,f.byteOffset,f.byteLength),filePath:a}}var v=class r{static instance=null;fonts=new Map;constructor(){}static getInstance(){return r.instance||(r.instance=new r),r.instance}static async register(t,e){return r.getInstance().register(t,e)}static async registerEmojiFont(t){let{buffer:e,filePath:i}=await M(t);U(e,i??(typeof t=="string"?t:"Uint8Array")),x.setEmojiFont(e,i)}static measure(t,e){let i=e.fontSize??48,a=x.getFont(e.fontFamily,e.fontWeight,null);if(!a)throw new Error(`FontManager.measure: font "${e.fontFamily}" is not registered. Call \`await FontManager.register(...)\` first.`);let f=e.lineHeight!==void 0&&e.lineHeight<10?e.lineHeight*i:e.lineHeight??i*1.2,s=e.letterSpacing??0,{width:c,height:p,layout:y}=A.measure(t,a,i,s,f,e.width,void 0,e.direction),T=i/a.unitsPerEm,o=[],w=new Set,d=0;for(let n of y.glyphs){let l=n.textIndex;if(l===void 0){let u=t.indexOf(n.char,d);l=u>=0?u:d}if(w.has(l))continue;w.add(l),d=l+n.char.length;let h=n.clusterAdvance??n.cp.advanceWidth*(n.fontScale??T);o.push({char:n.char,index:l,x:n.clusterX??n.x,y:n.y,width:h+s,line:n.lineIndex,...n.rtl&&{rtl:!0}})}let b=n=>{if(n<=0||o.length===0){let u=o[0];return u?u.rtl?u.x+u.width-s:u.x:0}let l=o.filter(u=>u.index<n),h=l[l.length-1];return h?h.rtl?h.x:h.x+h.width-s:0};return{width:c,height:p,lines:y.linesCount,lineHeight:f,glyphs:o,caretX:b,widthOf:n=>b(n)-(o[0]?.x??0)}}static get(t){return r.getInstance().get(t)}static has(t){return r.getInstance().has(t)}static getAll(){return r.getInstance().getAll()}static getRegisteredFontPaths(){return r.getInstance().getRegisteredFontPaths()}static clear(){r.getInstance().clear()}async register(t,e){let i,a,f,s;if(typeof t=="object"&&t!==null)i=t.family,a=t.source,f=t.weight,s=t.style;else if(typeof t=="string"&&e!==void 0)i=t,a=e;else if(typeof t=="string")i=void 0,a=t;else throw new TypeError("Invalid arguments passed to FontManager.register");let{buffer:c,filePath:p}=await M(a),y=p??(typeof a=="string"?a:"Uint8Array"),T=U(c,y),o;try{let n=R(c);n&&"fonts"in n&&Array.isArray(n.fonts)&&n.fonts.length>0?o=n.fonts[0]:o=n}catch(n){let l=n instanceof Error?n.message:String(n);throw new Error(`Failed to parse TrueType/OpenType font binary for "${y}": ${l}`)}let w=o.familyName||o.postscriptName||g.parse(y).name,d=i?.trim()||w,b={family:d,source:a,filePath:p,format:T,postscriptName:o.postscriptName,unitsPerEm:o.unitsPerEm,weight:f,style:s};return this.fonts.set(d,b),p&&await E(d,p),x.setParsed(d,o),b}get(t){return this.fonts.get(t)}has(t){return this.fonts.has(t)}getAll(){return Array.from(this.fonts.values())}getRegisteredFontPaths(){let t=[];for(let e of this.fonts.values())e.filePath?t.push(e.filePath):typeof e.source=="string"&&t.push(e.source);return t}clear(){this.fonts.clear()}};export{v as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as h}from"./chunk-ZH5MZQTZ.mjs";import{c as i,d as c,y as t,z as g}from"./chunk-63SFBHEH.mjs";import{e as r}from"./chunk-BVF64D6H.mjs";r();r();var x=["frequency","gain","q"],v=()=>`
|
|
2
2
|
struct Uniforms {
|
|
3
3
|
sampleRate : f32,
|
|
4
4
|
numBands : f32,
|
|
@@ -188,4 +188,4 @@ fn main(@builtin(global_invocation_id) gid : vec3<u32>) {
|
|
|
188
188
|
state[offset + 3u] = y2;
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
|
-
`,
|
|
191
|
+
`,P=a=>a==="peak"?0:a==="lowShelf"?1:a==="highShelf"?2:a==="lowPass"?3:a==="highPass"?4:a==="notch"?5:0,m=async(a,o,l,f)=>{if(!f?.device)throw new Error("GPUDevice is required for WebGPU Parametric EQ.");let e=l.operation||{},u=c(e.type,"peak"),n={type:["lowShelf","highShelf","peak","lowPass","highPass","notch"].includes(u)?u:"peak",frequency:i(e.frequency,1e3),frequencyHandleId:typeof e.frequencyHandleId=="string"?e.frequencyHandleId:null,gain:i(e.gain,0),gainHandleId:typeof e.gainHandleId=="string"?e.gainHandleId:null,q:i(e.q,1),qHandleId:typeof e.qHandleId=="string"?e.qHandleId:null},A=t(e,"frequencyHandleId")?1:0,y=t(e,"gainHandleId")?1:0,_=t(e,"qHandleId")?1:0,s=a.length;if(s===0)return;let p=a[0].length;if(p===0)return;let b=e.id||"audio-parametric-eq",d=f.frame??0,q=f.fps??24,w=4+s*4;await h.process(f.device,b,a,o,l,d,q,v,()=>[o,1,n.frequency,n.gain,n.q,P(n.type),A,y,_,0,d,p,s,0,0,0],16,w,f?.renderId,!0,f?.elapsedMs,f?.durationMs,void 0,void 0,x)};var G=g({audioProcessor:m});export{G as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as u}from"./chunk-LKYN3BM2.mjs";import{e as f}from"./chunk-BVF64D6H.mjs";f();f();function b(n,e){let t=n.createTexture({size:[e.width,e.height],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return e.bitmap?n.queue.copyExternalImageToTexture({source:e.bitmap},{texture:t,premultipliedAlpha:!0},[e.width,e.height]):e.buffer&&n.queue.writeTexture({texture:t},e.buffer,{bytesPerRow:e.width*4},[e.width,e.height]),t}var w=class{cache=new Map;async load(e,t,l,s){let i=Math.max(1,Math.ceil(t)),a=Math.max(1,Math.ceil(l)),c=`${e}-${i}-${a}-${s}`,h=this.cache.get(c);return h||(h=(async()=>{let m;if(e.startsWith("http://")||e.startsWith("https://")||e.startsWith("data:")||!s){let r=await fetch(e);if(!r.ok)throw new Error(`Failed to fetch SVG: ${e}`);m=await r.text()}else{let r=e;if(r.startsWith("file://"))try{r=new URL(r).pathname}catch{r=r.replace(/^file:\/\//,"")}try{m=await(await import("./shims/fs-promises.mjs")).readFile(r,"utf-8")}catch{let o=await fetch(e);if(!o.ok)throw new Error(`Failed to fetch SVG: ${e}`);m=await o.text()}}if(s){let{renderAsync:r}=await import("./resvg-js-VMU4A77S.mjs"),o=await r(m,{fitTo:{mode:"width",value:i}});return{width:o.width,height:o.height,buffer:new Uint8Array(o.pixels)}}let p=new Blob([m],{type:"image/svg+xml"}),g=URL.createObjectURL(p),d=new Image;await new Promise((r,o)=>{d.onload=()=>r(),d.onerror=()=>o(new Error(`Failed to load SVG image: ${e}`)),d.src=g});let x=new OffscreenCanvas(i,a);x.getContext("2d").drawImage(d,0,0,i,a),URL.revokeObjectURL(g);let y=await createImageBitmap(x);return{width:i,height:a,bitmap:y}})(),this.cache.set(c,h),h.catch(()=>this.cache.delete(c))),h}},T=new w;async function E(n,e,t){let l=Math.max(1,Math.ceil(t.dstRect.width)),s=Math.max(1,Math.ceil(t.dstRect.height)),i=`${t.src}-${l}-${s}`,a=u.acquire(i);if(!a)try{let c=await T.load(t.src,l,s,t.isHeadless??!1);a=u.acquire(i),a||(a=b(n.device,c),u.set(i,a,n.device))}catch(c){console.error("Failed to load SVG texture:",c);return}n.renderer.drawTexture(e,a,t.dstRect,{opacity:t.opacity??1,transform:t.matrix}),u.release(i)}export{b as a,E as b};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as g}from"./chunk-
|
|
1
|
+
import{a as g}from"./chunk-ZH5MZQTZ.mjs";import{c as m,h as u,z as l}from"./chunk-63SFBHEH.mjs";import{e as t}from"./chunk-BVF64D6H.mjs";t();t();var x=["pan"],w=()=>`
|
|
2
2
|
struct Uniforms {
|
|
3
3
|
sampleRate : f32,
|
|
4
4
|
pan : f32,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as r,e}from"./chunk-BVF64D6H.mjs";var s=r((i,n)=>{e();var t=()=>new Proxy(function(){},{get:(u,o)=>o==="__esModule"?!0:o===Symbol.toPrimitive?()=>"":t(),apply:()=>t(),construct:()=>t()});n.exports=t()});export
|
|
1
|
+
import{a as r,e}from"./chunk-BVF64D6H.mjs";var s=r((i,n)=>{e();var t=()=>new Proxy(function(){},{get:(u,o)=>o==="__esModule"?!0:o===Symbol.toPrimitive?()=>"":t(),apply:()=>t(),construct:()=>t()});n.exports=t()});export{s as a};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import{a as C,d as G,g as O,h as V,m as A}from"./chunk-ENKKLU7B.mjs";import{z as I}from"./chunk-63SFBHEH.mjs";import{e as M}from"./chunk-BVF64D6H.mjs";M();M();var se=e=>e*e,ae=e=>e*(2-e),ue=e=>e<.5?2*e*e:-1+(4-2*e)*e,ce=e=>{let t=2*Math.PI/3;return e===0?0:e===1?1:2**(-10*e)*Math.sin((e*10-.75)*t)+1},le=(e,t)=>{switch(t){case"ease-in":return se(e);case"ease-out":return ae(e);case"ease-in-out":return ue(e);case"spring":return ce(e);default:return e}},T=(e,t,o,s,i)=>{let n=i*i,r=n*i;return .5*(2*t+(-e+o)*i+(2*e-5*t+4*o-s)*n+(-e+3*t-3*o+s)*r)};function E(e,t,o="spline"){if(e.length===0)return{x:50,y:50,scale:1};if(e.length===1){let n=e[0];return{x:n.x??50,y:n.y??50,scale:n.scale??1}}let s=0;for(let n=0;n<e.length;n++){let r=e[n],h=r.holdMs??0,m=r.durationMs??0;if(t<=s+h)return{x:r.x??50,y:r.y??50,scale:r.scale??1};if(s+=h,n<e.length-1&&m>0){if(t<=s+m){let f=(t-s)/m,a=le(Math.max(0,Math.min(1,f)),r.easing),u=e[n+1];if(o==="spline"){let b=e[n-1]??r,x=e[n+2]??u;return{x:T(b.x??50,r.x??50,u.x??50,x.x??50,a),y:T(b.y??50,r.y??50,u.y??50,x.y??50,a),scale:T(b.scale??1,r.scale??1,u.scale??1,x.scale??1,a)}}return{x:(r.x??50)+((u.x??50)-(r.x??50))*a,y:(r.y??50)+((u.y??50)-(r.y??50))*a,scale:(r.scale??1)+((u.scale??1)-(r.scale??1))*a}}s+=m}}let i=e[e.length-1];return{x:i.x??50,y:i.y??50,scale:i.scale??1}}function X(e,t,o,s){let i=100,n=100;if(s!=="input"){let p=s.split(":"),g=Number(p[0]),c=Number(p[1]);if(!Number.isNaN(g)&&!Number.isNaN(c)&&g>0&&c>0){let l=g/c,y=t/o;y>l?(n=100,i=l/y*100):(i=100,n=y/l*100)}}let r=i/100*t,h=n/100*o,m=Math.max(e.scale,1),f=r/m,a=h/m,u=e.x/100*t,b=e.y/100*o,x=f/2,B=a/2,P=Math.max(x,Math.min(t-x,u)),R=Math.max(B,Math.min(o-B,b));return{x:P-x,y:R-B,width:f,height:a}}var me=`
|
|
2
|
+
struct MotionBlurUniforms {
|
|
3
|
+
prev_origin : vec2<f32>,
|
|
4
|
+
prev_size : vec2<f32>,
|
|
5
|
+
curr_origin : vec2<f32>,
|
|
6
|
+
curr_size : vec2<f32>,
|
|
7
|
+
samples : f32,
|
|
8
|
+
blurSize : f32,
|
|
9
|
+
padding : vec2<f32>,
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
@group(0) @binding(0) var<uniform> u : MotionBlurUniforms;
|
|
13
|
+
@group(1) @binding(0) var tex : texture_2d<f32>;
|
|
14
|
+
@group(1) @binding(1) var samp : sampler;
|
|
15
|
+
${C}
|
|
16
|
+
|
|
17
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
18
|
+
let uv = in.uv;
|
|
19
|
+
let n = i32(u.samples);
|
|
20
|
+
|
|
21
|
+
if (n <= 1) {
|
|
22
|
+
let p_curr = u.curr_origin + uv * u.curr_size;
|
|
23
|
+
return textureSampleLevel(tex, samp, p_curr, 0.0);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var color = vec4<f32>(0.0);
|
|
27
|
+
for (var i = 0; i < n; i = i + 1) {
|
|
28
|
+
// Use blurSize to control the shutter interval width.
|
|
29
|
+
// t=1.0 is current frame, t=0.0 is previous frame.
|
|
30
|
+
let t = 1.0 + (f32(i) / f32(n - 1) - 0.5) * u.blurSize;
|
|
31
|
+
|
|
32
|
+
let origin = mix(u.prev_origin, u.curr_origin, t);
|
|
33
|
+
let size = mix(u.prev_size, u.curr_size, t);
|
|
34
|
+
let p_sample = origin + uv * size;
|
|
35
|
+
|
|
36
|
+
color += textureSampleLevel(tex, samp, p_sample, 0.0);
|
|
37
|
+
}
|
|
38
|
+
return color / f32(n);
|
|
39
|
+
}
|
|
40
|
+
`,Y=new WeakMap,d=new Float32Array(12);function de(e,t){let o=Y.get(e);if(!o){let s=G(e,["uniform"]),i=G(e,["texture","sampler"]),n=e.createShaderModule({label:"kenburns_motionblur.wgsl",code:me});o={motionBlurPipeline:O(e,{label:"MotionBlurPipeline",module:n,layouts:[s,i],format:t}),motionBlurUniformLayout:s,singleTextureLayout:i},Y.set(e,o)}return o}var j=async e=>{let{ctx:t,encoder:o,pass:s,targetView:i,targetTexture:n,targetWidth:r,targetHeight:h,props:m}=e,{virtualMedia:f,containerWidth:a,containerHeight:u,frame:b,fps:x,trimStartOverride:B,opacity:P=1,inheritedSeekOffset:R=0}=m,p=f.operation;if(p?.op!=="KenBurns")return;let g=f.children?.[0];if(!g)return;let c=p.originalWidth??g.metadata?.width??f.metadata?.width??a??r,l=p.originalHeight??g.metadata?.height??f.metadata?.height??u??h,y=p.keyframes??[],L=p.movementStyle??"spline",W=p.aspectRatio||"input",Q=((B??0)+R)*1e3,z=Math.max(1,x??30),$=1e3/z,N=Q+(b??0)/z*1e3,q=N-$,J=E(y,N,L),Z=E(y,q,L),v=X(J,c,l,W),w=X(Z,c,l,W),K=a??r,F=u??h,H={x:0,y:0,width:K,height:F};s.end();let{texture:U}=await V(e,g,{width:c,height:l,props:{...m,containerWidth:c,containerHeight:l}}),D=p.motionBlurSize??1.5,S=null;if(D>0){let{motionBlurPipeline:k,motionBlurUniformLayout:ee,singleTextureLayout:te}=de(t.device,t.renderer.format),re=t.renderer.samplerCache.getSampler(t.device);d[0]=w.x/c,d[1]=w.y/l,d[2]=w.width/c,d[3]=w.height/l,d[4]=v.x/c,d[5]=v.y/l,d[6]=v.width/c,d[7]=v.height/l,d[8]=12,d[9]=D;let ne=t.renderer.getTemporaryBuffer(d);S=t.renderer.getTemporaryTexture(K,F,[n,U,...m.excludeTextures||[]]);let oe=S.createView();A(o,oe,k,[t.device.createBindGroup({layout:ee,entries:[{binding:0,resource:{buffer:ne}}]}),t.renderer.bindGroupCache.getBindGroup(t.device,te,U,re)])}let _=t.renderer.beginFrame(o,i,{r:0,g:0,b:0,a:0},r,h,"load");S?t.renderer.drawTexture(_,S,H,{opacity:P}):t.renderer.drawTextureRegion(_,U,v,H,{opacity:P}),e.pass=_};var be=I({WebGPURenderer:j});export{be as a};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import{a as W,d as G,e as $,f as E,g as k,h as A,j,k as K,l as Q,m as q}from"./chunk-ENKKLU7B.mjs";import{v as H,z as B}from"./chunk-63SFBHEH.mjs";import{e as f}from"./chunk-BVF64D6H.mjs";f();f();var xe=`
|
|
2
|
+
struct VignetteUniforms {
|
|
3
|
+
strength : f32,
|
|
4
|
+
radius : f32,
|
|
5
|
+
softness : f32,
|
|
6
|
+
roundness : f32,
|
|
7
|
+
|
|
8
|
+
centerX : f32,
|
|
9
|
+
centerY : f32,
|
|
10
|
+
hasStrengthSig : f32,
|
|
11
|
+
hasRadiusSig : f32,
|
|
12
|
+
|
|
13
|
+
hasSoftnessSig : f32,
|
|
14
|
+
hasRoundnessSig: f32,
|
|
15
|
+
hasCenterXSig : f32,
|
|
16
|
+
hasCenterYSig : f32,
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
@group(0) @binding(0) var<uniform> u : VignetteUniforms;
|
|
20
|
+
@group(1) @binding(0) var tex : texture_2d<f32>;
|
|
21
|
+
@group(1) @binding(1) var samp : sampler;
|
|
22
|
+
|
|
23
|
+
@group(2) @binding(0) var strengthSigTex : texture_2d<f32>;
|
|
24
|
+
@group(2) @binding(1) var radiusSigTex : texture_2d<f32>;
|
|
25
|
+
@group(2) @binding(2) var softnessSigTex : texture_2d<f32>;
|
|
26
|
+
@group(2) @binding(3) var roundnessSigTex : texture_2d<f32>;
|
|
27
|
+
@group(2) @binding(4) var centerXSigTex : texture_2d<f32>;
|
|
28
|
+
@group(2) @binding(5) var centerYSigTex : texture_2d<f32>;
|
|
29
|
+
@group(2) @binding(6) var signalSamp : sampler;
|
|
30
|
+
${W}
|
|
31
|
+
|
|
32
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
33
|
+
let color = textureSampleLevel(tex, samp, in.uv, 0.0);
|
|
34
|
+
|
|
35
|
+
if (color.a < 1e-5) {
|
|
36
|
+
return color;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Resolve parameter overrides or dynamic signals
|
|
40
|
+
var strength = u.strength;
|
|
41
|
+
if (u.hasStrengthSig > 0.5) {
|
|
42
|
+
strength = textureSampleLevel(strengthSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
var radius = u.radius;
|
|
46
|
+
if (u.hasRadiusSig > 0.5) {
|
|
47
|
+
radius = textureSampleLevel(radiusSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
var softness = u.softness;
|
|
51
|
+
if (u.hasSoftnessSig > 0.5) {
|
|
52
|
+
softness = textureSampleLevel(softnessSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
var roundness = u.roundness;
|
|
56
|
+
if (u.hasRoundnessSig > 0.5) {
|
|
57
|
+
roundness = textureSampleLevel(roundnessSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
var centerX = u.centerX;
|
|
61
|
+
if (u.hasCenterXSig > 0.5) {
|
|
62
|
+
centerX = textureSampleLevel(centerXSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
var centerY = u.centerY;
|
|
66
|
+
if (u.hasCenterYSig > 0.5) {
|
|
67
|
+
centerY = textureSampleLevel(centerYSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
let center = vec2<f32>(centerX, centerY);
|
|
71
|
+
let dimensions = vec2<f32>(textureDimensions(tex));
|
|
72
|
+
let aspect = dimensions.x / dimensions.y;
|
|
73
|
+
let uvOffset = in.uv - center;
|
|
74
|
+
|
|
75
|
+
// Calculate aspect ratio corrected coordinate for circle
|
|
76
|
+
let correctedOffset = vec2<f32>(
|
|
77
|
+
uvOffset.x * mix(1.0, aspect, roundness),
|
|
78
|
+
uvOffset.y
|
|
79
|
+
);
|
|
80
|
+
let dist = length(correctedOffset);
|
|
81
|
+
|
|
82
|
+
// Calculate vignette edge falloff
|
|
83
|
+
let edge0 = radius;
|
|
84
|
+
let edge1 = max(0.0, radius - softness);
|
|
85
|
+
let vignetteFactor = smoothstep(edge0, edge1, dist);
|
|
86
|
+
|
|
87
|
+
// Blend based on strength
|
|
88
|
+
let intensity = strength / 100.0;
|
|
89
|
+
let finalVignette = mix(1.0, vignetteFactor, intensity);
|
|
90
|
+
|
|
91
|
+
// Unpremultiply, apply vignette, and repremultiply
|
|
92
|
+
let unpremult_rgb = color.rgb / color.a;
|
|
93
|
+
let final_rgb = unpremult_rgb * finalVignette;
|
|
94
|
+
|
|
95
|
+
return vec4<f32>(clamp(final_rgb, vec3<f32>(0.0), vec3<f32>(1.0)) * color.a, color.a);
|
|
96
|
+
}
|
|
97
|
+
`,n=new Float32Array(12),he=E(t=>({uniformLayout:G(t,["uniform"]),singleTextureLayout:G(t,["texture","sampler"]),signalTextureLayout:$(t,6),pipelineCache:new Map}));function be(t,e){let r=he(t),c=`vignette_${e}`,o=r.pipelineCache.get(c);if(!o){let m=t.createShaderModule({label:`vignette_${e}.wgsl`,code:xe});o=k(t,{label:`VignettePipeline_${e}`,module:m,layouts:[r.uniformLayout,r.singleTextureLayout,r.signalTextureLayout],format:e}),r.pipelineCache.set(c,o)}return{vignettePipeline:o,uniformLayout:r.uniformLayout,singleTextureLayout:r.singleTextureLayout,signalTextureLayout:r.signalTextureLayout}}var z=async t=>{let{ctx:e,encoder:r,pass:c,targetTexture:o,targetWidth:m,targetHeight:J,props:a}=t,S=a.frame??0,Z=a.compositionFrame??S,v=a.fps||30,i=a.virtualMedia?.operation;if(i?.op!=="Vignette"||!i)return;let P=a.virtualMedia.children?.[0];if(!P)return;c.end();let U=m,X=J,ee=i.inputs?Object.keys(i.inputs)[0]:"vignette_node",u=(d,l,V,w)=>{let me=`${d}HandleId`,M=i[me],s=M?i.inputs?.[M]:null,N=!!(s?.connectionValid&&(s.outputItem?.type==="Signal"||s.outputItem?.type==="Numeric")),_=N&&s?.outputItem?.data?s.outputItem.data:null,p=l,R=!1,F;if(N)_&&(p=Math.max(V,Math.min(w,Number(_.offset??0))),R=!0);else if(s?.connectionValid&&s.outputItem?.type==="Number")p=Math.max(V,Math.min(w,Number(s.outputItem.data??l)));else{let I=H(i[d],Z,v);I.gpuTextureView&&(F=I.gpuTextureView,R=!0);let Se=I.value,O=Number(Se??l);p=Math.max(V,Math.min(w,isNaN(O)?l:O))}return{val:p,hasStaticSig:R,sd:_,gpuTextureView:F}},x=u("strength",50,0,100),h=u("radius",1,.1,2),b=u("softness",.5,0,1),y=u("roundness",.5,0,1),T=u("centerX",.5,0,1),L=u("centerY",.5,0,1),{texture:Y}=await A(t,P);t.pass.end();let{vignettePipeline:te,uniformLayout:ne,singleTextureLayout:re,signalTextureLayout:ie}=be(e.device,e.renderer.format),C=e.renderer.samplerCache.getSampler(e.device),{elapsedSeconds:se,durationSeconds:ae}=K(a,S,v),oe={args:t,width:U,height:X,frame:S,fps:v,elapsedSeconds:se,durationSeconds:ae},g=(d,l)=>Q(oe,d,`${ee}_${l}`),ue=g(x,"strength_sig"),ge=g(h,"radius_sig"),le=g(b,"softness_sig"),ce=g(y,"roundness_sig"),de=g(T,"centerX_sig"),pe=g(L,"centerY_sig");n[0]=x.val,n[1]=h.val,n[2]=b.val,n[3]=y.val,n[4]=T.val,n[5]=L.val,n[6]=x.hasStaticSig?1:0,n[7]=h.hasStaticSig?1:0,n[8]=b.hasStaticSig?1:0,n[9]=y.hasStaticSig?1:0,n[10]=T.hasStaticSig?1:0,n[11]=L.hasStaticSig?1:0;let fe=e.renderer.getTemporaryBuffer(n),D=e.renderer.getTemporaryTexture(U,X,[Y,o,...a.excludeTextures||[]]);q(r,D.createView(),te,[e.device.createBindGroup({layout:ne,entries:[{binding:0,resource:{buffer:fe}}]}),e.renderer.bindGroupCache.getBindGroup(e.device,re,Y,C),e.device.createBindGroup({layout:ie,entries:[{binding:0,resource:ue},{binding:1,resource:ge},{binding:2,resource:le},{binding:3,resource:ce},{binding:4,resource:de},{binding:5,resource:pe},{binding:6,resource:C}]})]),j(t,D,i.opacity??1)};var Re=B({WebGPURenderer:z});export{Re as a};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import{a as U,c as T,d as L,g as v,h as A,i as C}from"./chunk-ENKKLU7B.mjs";import{z as x}from"./chunk-63SFBHEH.mjs";import{e as p}from"./chunk-BVF64D6H.mjs";p();p();var G=1024,_=`
|
|
2
|
+
struct LiquifyOpData {
|
|
3
|
+
opType : f32, // 0=Push, 1=Pull, 2=Bloat, 3=Pucker, 4=TwirlCW, 5=TwirlCCW
|
|
4
|
+
x : f32,
|
|
5
|
+
y : f32,
|
|
6
|
+
radius : f32,
|
|
7
|
+
strength : f32,
|
|
8
|
+
dx : f32,
|
|
9
|
+
dy : f32,
|
|
10
|
+
_pad : f32,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
struct LiquifyUniforms {
|
|
14
|
+
opCount : f32,
|
|
15
|
+
aspectRatio : f32,
|
|
16
|
+
opacity : f32,
|
|
17
|
+
_pad0 : f32,
|
|
18
|
+
ops : array<LiquifyOpData, 1024>,
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
@group(0) @binding(0) var<uniform> u : LiquifyUniforms;
|
|
22
|
+
@group(1) @binding(0) var tex : texture_2d<f32>;
|
|
23
|
+
@group(1) @binding(1) var samp : sampler;
|
|
24
|
+
${U}
|
|
25
|
+
|
|
26
|
+
const PI = 3.141592653589793;
|
|
27
|
+
|
|
28
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
29
|
+
var currentUV = in.uv;
|
|
30
|
+
let count = u32(u.opCount);
|
|
31
|
+
let aspect = u.aspectRatio;
|
|
32
|
+
|
|
33
|
+
for (var i = 0u; i < count && i < 1024u; i = i + 1u) {
|
|
34
|
+
let op = u.ops[i];
|
|
35
|
+
let center = vec2<f32>(op.x, op.y);
|
|
36
|
+
let delta = currentUV - center;
|
|
37
|
+
let deltaAspect = vec2<f32>(delta.x * aspect, delta.y);
|
|
38
|
+
let dist = length(deltaAspect);
|
|
39
|
+
|
|
40
|
+
if (dist < op.radius && op.radius > 0.0001) {
|
|
41
|
+
let t = dist / op.radius;
|
|
42
|
+
let falloff = (1.0 - t * t) * (1.0 - t * t);
|
|
43
|
+
let s = op.strength;
|
|
44
|
+
|
|
45
|
+
if (op.opType < 0.5) {
|
|
46
|
+
// 0 = Push
|
|
47
|
+
let shift = vec2<f32>(op.dx, op.dy) * s * falloff;
|
|
48
|
+
currentUV = currentUV - shift;
|
|
49
|
+
} else if (op.opType < 1.5) {
|
|
50
|
+
// 1 = Pull
|
|
51
|
+
let shift = vec2<f32>(op.dx, op.dy) * s * falloff;
|
|
52
|
+
currentUV = currentUV + shift;
|
|
53
|
+
} else if (op.opType < 2.5) {
|
|
54
|
+
// 2 = Bloat
|
|
55
|
+
let factor = 1.0 - s * falloff * 0.45;
|
|
56
|
+
currentUV = center + delta * factor;
|
|
57
|
+
} else if (op.opType < 3.5) {
|
|
58
|
+
// 3 = Pucker
|
|
59
|
+
let factor = 1.0 + s * falloff * 0.45;
|
|
60
|
+
currentUV = center + delta * factor;
|
|
61
|
+
} else if (op.opType < 4.5) {
|
|
62
|
+
// 4 = TwirlCW
|
|
63
|
+
let angle = -s * PI * falloff;
|
|
64
|
+
let cosA = cos(angle);
|
|
65
|
+
let sinA = sin(angle);
|
|
66
|
+
let rotated = vec2<f32>(delta.x * cosA - delta.y * sinA, delta.x * sinA + delta.y * cosA);
|
|
67
|
+
currentUV = center + rotated;
|
|
68
|
+
} else {
|
|
69
|
+
// 5 = TwirlCCW
|
|
70
|
+
let angle = s * PI * falloff;
|
|
71
|
+
let cosA = cos(angle);
|
|
72
|
+
let sinA = sin(angle);
|
|
73
|
+
let rotated = vec2<f32>(delta.x * cosA - delta.y * sinA, delta.x * sinA + delta.y * cosA);
|
|
74
|
+
currentUV = center + rotated;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
let clampedUV = clamp(currentUV, vec2<f32>(0.0), vec2<f32>(1.0));
|
|
80
|
+
let sampledColor = textureSampleLevel(tex, samp, clampedUV, 0.0);
|
|
81
|
+
return sampledColor;
|
|
82
|
+
}
|
|
83
|
+
`,q=new WeakMap;function O(i,t){let r=q.get(i);if(!r){let a=L(i,["uniform"],"LiquifyUniformLayout"),l=L(i,["texture","sampler"],"LiquifyTextureLayout");r={uniformLayout:a,singleTextureLayout:l,pipelineCache:new Map},q.set(i,r)}let s=t,u=r.pipelineCache.get(s);if(!u){let a=i.createShaderModule({label:"liquify.wgsl",code:_});u=v(i,{label:`LiquifyPipeline_${t}`,module:a,layouts:[r.uniformLayout,r.singleTextureLayout],format:t,blend:T}),r.pipelineCache.set(s,u)}return{liquifyPipeline:u,uniformLayout:r.uniformLayout,singleTextureLayout:r.singleTextureLayout}}var S={Push:0,Pull:1,Bloat:2,Pucker:3,TwirlCW:4,TwirlCCW:5},R=async i=>{let{ctx:t,pass:r,targetWidth:s,targetHeight:u,props:a}=i,l=a.virtualMedia?.operation;if(l?.op!=="Liquify"||!l)return;let d=a.virtualMedia.children?.[0];if(!d)return;r.end();let g=s,y=u,b=y>0?g/y:1,{texture:B}=await A(i,d,{props:{...a,virtualMedia:d,containerWidth:g,containerHeight:y}}),P=l.operations||[],h=Math.min(P.length,G),e=new Float32Array(4+G*8);e[0]=h,e[1]=b,e[2]=1,e[3]=0;for(let c=0;c<h;c++){let o=P[c];if(!o)continue;let n=4+c*8;e[n+0]=S[o.type]??2,e[n+1]=o.x,e[n+2]=o.y,e[n+3]=o.radius??.15,e[n+4]=o.strength??.5,e[n+5]=o.dx??0,e[n+6]=o.dy??0,e[n+7]=0}let W=t.renderer.getTemporaryBuffer(e),m=O(t.device,t.renderer.format),w=t.device.createBindGroup({layout:m.uniformLayout,entries:[{binding:0,resource:{buffer:W}}]}),V=t.renderer.samplerCache.getSampler(t.device),D=t.renderer.bindGroupCache.getBindGroup(t.device,m.singleTextureLayout,B,V),f=C(i);f.setPipeline(m.liquifyPipeline),f.setBindGroup(0,w),f.setBindGroup(1,D),f.draw(4,1,0,0)};var H=x({WebGPURenderer:R});export{R as a,H as b};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import{a as z,h as D}from"./chunk-ENKKLU7B.mjs";import{z as q}from"./chunk-63SFBHEH.mjs";import{e as W}from"./chunk-BVF64D6H.mjs";W();W();var A=`
|
|
2
|
+
struct MaskUniforms {
|
|
3
|
+
rect : vec4<f32>,
|
|
4
|
+
roundness : f32,
|
|
5
|
+
mode : f32,
|
|
6
|
+
numPoints : f32,
|
|
7
|
+
padding : f32,
|
|
8
|
+
points : array<vec2<f32>, 64>,
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
@group(0) @binding(0) var<uniform> u : MaskUniforms;
|
|
12
|
+
${z}
|
|
13
|
+
|
|
14
|
+
fn sdRoundedRect(p: vec2<f32>, b: vec2<f32>, r: f32) -> f32 {
|
|
15
|
+
let q = abs(p) - b + r;
|
|
16
|
+
return min(max(q.x, q.y), 0.0) + length(max(q, vec2<f32>(0.0))) - r;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
20
|
+
let p = in.pos.xy;
|
|
21
|
+
|
|
22
|
+
if (u.mode > 0.5) { // Path
|
|
23
|
+
var inside = false;
|
|
24
|
+
let count = u32(u.numPoints);
|
|
25
|
+
for (var i = 0u; i < count; i = i + 1u) {
|
|
26
|
+
let j = (i + 1u) % count;
|
|
27
|
+
let pi = u.points[i];
|
|
28
|
+
let pj = u.points[j];
|
|
29
|
+
if (((pi.y > p.y) != (pj.y > p.y)) &&
|
|
30
|
+
(p.x < (pj.x - pi.x) * (p.y - pi.y) / (pj.y - pi.y) + pi.x)) {
|
|
31
|
+
inside = !inside;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return select(vec4<f32>(0.0), vec4<f32>(1.0), inside);
|
|
35
|
+
} else { // RRect
|
|
36
|
+
let center = u.rect.xy + u.rect.zw * 0.5;
|
|
37
|
+
let size = u.rect.zw * 0.5;
|
|
38
|
+
let d = sdRoundedRect(p - center, size, u.roundness);
|
|
39
|
+
let alpha = 1.0 - smoothstep(0.0, 1.5, d);
|
|
40
|
+
return vec4<f32>(1.0, 1.0, 1.0, alpha);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
`,E=new WeakMap;function te(s,e){let i=E.get(s);return i||(i=s.createRenderPipeline({label:"CropMaskPipeline",layout:"auto",vertex:{module:s.createShaderModule({code:A}),entryPoint:"vs"},fragment:{module:s.createShaderModule({code:A}),entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}}),E.set(s,i)),i}var _=async s=>{let{ctx:e,props:i,targetTexture:P,targetView:U,targetWidth:k,targetHeight:v,encoder:l}=s,{virtualMedia:C,containerWidth:O,containerHeight:Q,opacity:H=1}=i,a=C?.operation;if(!a||a.op!=="Crop")return;let b=C.children?.[0];if(!b)return;let r=O??e.surface.width,n=Q??e.surface.height,d=a.mode==="rest",T=a.cropType==="path",p=a.pathPoints||[],F=Number(a.roundness)||0,m=Number(a.leftPercentage)||0,f=Number(a.topPercentage)||0,w=Math.max(.01,Number(a.widthPercentage)||100),R=Math.max(.01,Number(a.heightPercentage)||100);if(T&&p.length>0){let t=p.map(o=>o.x),u=p.map(o=>o.y);m=Math.min(...t),f=Math.min(...u),w=Math.max(.01,Math.max(...t)-m),R=Math.max(.01,Math.max(...u)-f)}let x=a.originalWidth??b.metadata?.width??i.containerWidth??k,g=a.originalHeight??b.metadata?.height??i.containerHeight??v,N={x:m/100*x,y:f/100*g,width:w/100*x,height:R/100*g},V={x:0,y:0,width:r,height:n};s.pass.end();let{texture:h}=await D(s,b,{width:x,height:g,props:{...i,containerWidth:x,containerHeight:g}});if(!(F>0||T||d)&&!d){let t=e.renderer.beginFrame(l,U,{r:0,g:0,b:0,a:0},k,v,"load");e.renderer.drawTextureRegion(t,h,N,V,{opacity:H}),s.pass=t;return}let y=h;if(d){if(x!==r||g!==n){let t=e.renderer.getTemporaryTexture(r,n,[h,P,...i.excludeTextures||[]]),u=t.createView(),o=e.renderer.beginFrame(l,u,{r:0,g:0,b:0,a:0},r,n,"clear");e.renderer.drawTexture(o,h,{x:0,y:0,width:r,height:n}),o.end(),y=t}}else{let t=e.renderer.getTemporaryTexture(r,n,[h,P,...i.excludeTextures||[]]),u=t.createView(),o=e.renderer.beginFrame(l,u,{r:0,g:0,b:0,a:0},r,n,"clear");e.renderer.drawTextureRegion(o,h,N,V),o.end(),y=t}let G=e.renderer.getTemporaryTexture(r,n,[y,P,...i.excludeTextures||[]]),X=G.createView(),M=e.renderer.beginFrame(l,X,{r:0,g:0,b:0,a:0},r,n,"clear"),j=te(e.device,e.renderer.format),c=new Float32Array(136),Y=d?m/100*r:0,$=d?f/100*n:0,S=d?w/100*r:r,B=d?R/100*n:n,I=F/100*(Math.min(S,B)/2);if(c[0]=Y,c[1]=$,c[2]=S,c[3]=B,c[4]=I,c[5]=T?1:0,c[6]=p.length,T)for(let t=0;t<Math.min(p.length,64);t++){let u=p[t].x/100*r,o=p[t].y/100*n;d||(u=(p[t].x-m)/w*r,o=(p[t].y-f)/R*n),c[8+t*2]=u,c[8+t*2+1]=o}let J=e.renderer.getTemporaryBuffer(c),K=e.device.createBindGroup({layout:j.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:J}}]});M.setPipeline(j),M.setBindGroup(0,K),M.draw(4),M.end();let Z=e.renderer.composite(l,y,G,d?"mask-out":"mask-in",[y,G,P,...i.excludeTextures||[]]),L=e.renderer.beginFrame(l,U,{r:0,g:0,b:0,a:0},k,v,"load");e.renderer.drawTexture(L,Z,{x:0,y:0,width:r,height:n},{opacity:H}),s.pass=L};var ce=q({WebGPURenderer:_});export{ce as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as P,d as y,e as F,f as N,g as k,h as C,j as H,k as D,m as O}from"./chunk-ENKKLU7B.mjs";import{d as x}from"./chunk-6YJP57MZ.mjs";import{z as G}from"./chunk-63SFBHEH.mjs";import{e as h}from"./chunk-BVF64D6H.mjs";h();h();function Y(e,t,r,u){if(e==null)return t;if(typeof e=="object"&&e!==null){if("get"in e&&typeof e.get=="function")try{let o=e.get({frame:r,fps:u,time:u>0?r/u:0,duration:0,durationMs:0,progress:0,deltaTime:u>0?1/u:0}),p=Number(o);if(Number.isFinite(p))return p}catch{}if("value"in e){let o=Number(e.value);if(Number.isFinite(o))return o}}else if(typeof e=="function")try{let o=e(r,u),p=Number(o);if(Number.isFinite(p))return p}catch{}let s=Number(e);return Number.isFinite(s)?s:t}function b(e,t,r,u,s,o=0,p=30){let i=`${t}HandleId`,d=e[i],a=d?e.inputs?.[d]:null,l=!!(a?.connectionValid&&a.outputItem?.type==="Signal"),n=l?a?.outputItem?.data:null,c=r;if(l)n&&typeof n=="object"&&"offset"in n&&(c=Number(n.offset??r));else if(a?.connectionValid&&a.outputItem?.type==="Number")c=Number(a.outputItem.data??r);else{let v=e[t]??e.signals?.[t];c=Y(v,r,o,p)}return c=Math.max(u,Math.min(s,c)),{hasSignal:l,sd:n,value:c}}var Z=`
|
|
2
2
|
struct ModulateUniforms {
|
|
3
3
|
hue : f32,
|
|
4
4
|
brightness : f32,
|
|
@@ -26,27 +26,7 @@ struct ModulateUniforms {
|
|
|
26
26
|
@group(2) @binding(4) var saturationTex : texture_2d<f32>;
|
|
27
27
|
@group(2) @binding(5) var sepiaTex : texture_2d<f32>;
|
|
28
28
|
@group(2) @binding(6) var sigSamp : sampler;
|
|
29
|
-
|
|
30
|
-
struct VSOut {
|
|
31
|
-
@builtin(position) pos : vec4<f32>,
|
|
32
|
-
@location(0) uv : vec2<f32>,
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
@vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
|
|
36
|
-
var pos = array<vec2<f32>, 4>(
|
|
37
|
-
vec2<f32>(-1.0, 1.0),
|
|
38
|
-
vec2<f32>(1.0, 1.0),
|
|
39
|
-
vec2<f32>(-1.0, -1.0),
|
|
40
|
-
vec2<f32>(1.0, -1.0)
|
|
41
|
-
);
|
|
42
|
-
var uv = array<vec2<f32>, 4>(
|
|
43
|
-
vec2<f32>(0.0, 0.0),
|
|
44
|
-
vec2<f32>(1.0, 0.0),
|
|
45
|
-
vec2<f32>(0.0, 1.0),
|
|
46
|
-
vec2<f32>(1.0, 1.0)
|
|
47
|
-
);
|
|
48
|
-
return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
|
|
49
|
-
}
|
|
29
|
+
${P}
|
|
50
30
|
|
|
51
31
|
fn apply_exposure(c: vec4<f32>, exposure: f32) -> vec4<f32> {
|
|
52
32
|
let scale = pow(2.0, exposure);
|
|
@@ -181,4 +161,4 @@ fn apply_sepia(c: vec4<f32>, s: f32) -> vec4<f32> {
|
|
|
181
161
|
|
|
182
162
|
return color;
|
|
183
163
|
}
|
|
184
|
-
`,
|
|
164
|
+
`,f=new Float32Array(12),ee=N(e=>({modulateUniformLayout:y(e,["uniform"]),singleTextureLayout:y(e,["texture","sampler"]),modulateSignalsLayout:F(e,6),pipelineCache:new Map}));function te(e,t){let r=ee(e),u=`modulate_${t}`,s=r.pipelineCache.get(u);if(!s){let o=e.createShaderModule({label:`modulate_static_${t}.wgsl`,code:Z});s=k(e,{label:`ModulatePipeline_static_${t}`,module:o,layouts:[r.modulateUniformLayout,r.singleTextureLayout,r.modulateSignalsLayout],format:t}),r.pipelineCache.set(u,s)}return{modulatePipeline:s,modulateUniformLayout:r.modulateUniformLayout,singleTextureLayout:r.singleTextureLayout,modulateSignalsLayout:r.modulateSignalsLayout}}var W=async e=>{let{ctx:t,encoder:r,pass:u,targetTexture:s,targetWidth:o,targetHeight:p,props:i}=e,d=i.frame??0,a=i.compositionFrame??d,l=i.fps||30,n=i.virtualMedia?.operation;if(n?.op!=="Modulate"||!n)return;let c=i.virtualMedia.children?.[0];if(!c)return;u.end();let v=b(n,"hue",0,0,360,a,l),S=b(n,"brightness",1,0,2,a,l),w=b(n,"contrast",1,0,2,a,l),_=b(n,"exposure",0,-2,2,a,l),T=b(n,"saturation",1,0,2,a,l),L=b(n,"sepia",0,0,1,a,l),R=o,V=p,{texture:I}=await C(e,c),{modulatePipeline:B,modulateUniformLayout:$,singleTextureLayout:E,modulateSignalsLayout:j}=te(t.device,t.renderer.format),A=t.renderer.samplerCache.getSampler(t.device),M=t.renderer.getTemporaryTexture(R,V,[I,s,...i.excludeTextures||[]]);f[0]=v.value,f[1]=S.value,f[2]=w.value,f[3]=_.value,f[4]=T.value,f[5]=L.value;let K=[{name:"hue",info:v,idx:6},{name:"brightness",info:S,idx:7},{name:"contrast",info:w,idx:8},{name:"exposure",info:_,idx:9},{name:"saturation",info:T,idx:10},{name:"sepia",info:L,idx:11}],m=[],{elapsedSeconds:Q,durationSeconds:q}=D(i,d,l);for(let g of K){let U=!!(g.info.hasSignal&&g.info.sd);if(f[g.idx]=U?1:0,U){let J=x.getOrCreate2DTextureView(t.device,r,g.info.sd.nodeId??`modulate_${g.name}_sig`,Q,q,g.info.sd,R,V,i.renderId,d,l);m.push(J)}else m.push(x.getDummy1x1TextureView(t.device))}let z=t.renderer.getTemporaryBuffer(f);O(r,M.createView(),B,[t.device.createBindGroup({layout:$,entries:[{binding:0,resource:{buffer:z}}]}),t.renderer.bindGroupCache.getBindGroup(t.device,E,I,A),t.device.createBindGroup({layout:j,entries:[{binding:0,resource:m[0]},{binding:1,resource:m[1]},{binding:2,resource:m[2]},{binding:3,resource:m[3]},{binding:4,resource:m[4]},{binding:5,resource:m[5]},{binding:6,resource:A}]})]),H(e,M,n.opacity??1)};var se=G({WebGPURenderer:W});export{se as a};
|