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
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import{a as Y}from"./chunk-XOEEGC4Z.mjs";import{b as $,c as K}from"./chunk-FLPSWDX4.mjs";import{a as c}from"./chunk-NQZKBFC6.mjs";import{a as H,d as M,e as W,g as F,h as O,j as X,k as z,l as E,m as R}from"./chunk-ENKKLU7B.mjs";import{w as V,z as B}from"./chunk-63SFBHEH.mjs";import{e as n}from"./chunk-BVF64D6H.mjs";n();n();n();var L=50,_=500,G=255,pe=Y().field("amount",c.number().min(0).max(_).default(100),{bindable:!0,dataTypes:["Number","Signal"],label:"Amount Signal",description:"Sharpening intensity percentage (0\u2013500%)."}).field("radius",c.number().min(.1).max(L).default(1.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Radius Signal",description:"The Gaussian blur radius in pixels used to detect edge contrast."}).field("threshold",c.number().int().min(0).max(G).default(3),{bindable:!0,dataTypes:["Number","Signal"],label:"Threshold Signal",description:"Minimum tonal level difference (0\u2013255) required before sharpening is applied to avoid amplifying noise."}).build(),he=pe.schema,Se=c.union([$,K]);var ce=`
|
|
2
|
+
struct UnsharpMaskUniforms {
|
|
3
|
+
dirX : f32,
|
|
4
|
+
dirY : f32,
|
|
5
|
+
radius : f32,
|
|
6
|
+
amount : f32,
|
|
7
|
+
|
|
8
|
+
threshold : f32,
|
|
9
|
+
hasRadiusSig : f32,
|
|
10
|
+
hasAmountSig : f32,
|
|
11
|
+
hasThresholdSig: f32,
|
|
12
|
+
|
|
13
|
+
isSecondPass : f32,
|
|
14
|
+
_pad0 : f32,
|
|
15
|
+
_pad1 : f32,
|
|
16
|
+
_pad2 : f32,
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
@group(0) @binding(0) var<uniform> u : UnsharpMaskUniforms;
|
|
20
|
+
@group(1) @binding(0) var tex : texture_2d<f32>;
|
|
21
|
+
@group(1) @binding(1) var samp : sampler;
|
|
22
|
+
@group(1) @binding(2) var origTex : texture_2d<f32>;
|
|
23
|
+
|
|
24
|
+
@group(2) @binding(0) var radiusSigTex : texture_2d<f32>;
|
|
25
|
+
@group(2) @binding(1) var amountSigTex : texture_2d<f32>;
|
|
26
|
+
@group(2) @binding(2) var thresholdSigTex : texture_2d<f32>;
|
|
27
|
+
@group(2) @binding(3) var signalSamp : sampler;
|
|
28
|
+
${H}
|
|
29
|
+
|
|
30
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
31
|
+
let dimensions = vec2<f32>(textureDimensions(tex));
|
|
32
|
+
var radius = u.radius;
|
|
33
|
+
if (u.hasRadiusSig > 0.5) {
|
|
34
|
+
radius = textureSampleLevel(radiusSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
35
|
+
}
|
|
36
|
+
var amount = u.amount;
|
|
37
|
+
if (u.hasAmountSig > 0.5) {
|
|
38
|
+
amount = textureSampleLevel(amountSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
39
|
+
}
|
|
40
|
+
var threshold = u.threshold;
|
|
41
|
+
if (u.hasThresholdSig > 0.5) {
|
|
42
|
+
threshold = textureSampleLevel(thresholdSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
let origCol = textureSampleLevel(origTex, samp, in.uv, 0.0);
|
|
46
|
+
if (radius <= 0.0 || amount <= 0.0) {
|
|
47
|
+
if (u.isSecondPass > 0.5) {
|
|
48
|
+
return origCol;
|
|
49
|
+
}
|
|
50
|
+
return textureSampleLevel(tex, samp, in.uv, 0.0);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
let texelSize = 1.0 / dimensions;
|
|
54
|
+
let spatial_sigma = radius;
|
|
55
|
+
let stepScale = max(1.0, spatial_sigma / 20.0);
|
|
56
|
+
let effectiveSigma = spatial_sigma / stepScale;
|
|
57
|
+
let sampleRadius = min(i32(ceil(3.0 * effectiveSigma)), 64);
|
|
58
|
+
let direction = vec2<f32>(u.dirX, u.dirY);
|
|
59
|
+
|
|
60
|
+
var blurred = vec4<f32>(0.0);
|
|
61
|
+
var totalWeight = 0.0;
|
|
62
|
+
|
|
63
|
+
for (var i = -sampleRadius; i <= sampleRadius; i++) {
|
|
64
|
+
let offset = vec2<f32>(f32(i) * stepScale) * direction * texelSize;
|
|
65
|
+
let x = f32(i) * stepScale;
|
|
66
|
+
let weight = exp(-0.5 * (x / spatial_sigma) * (x / spatial_sigma));
|
|
67
|
+
blurred += textureSampleLevel(tex, samp, in.uv + offset, 0.0) * weight;
|
|
68
|
+
totalWeight += weight;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
let blurResult = blurred / max(totalWeight, 1e-5);
|
|
72
|
+
|
|
73
|
+
if (u.isSecondPass <= 0.5) {
|
|
74
|
+
// Pass 1: Intermediate horizontal blur
|
|
75
|
+
return blurResult;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Pass 2: Vertical blur complete -> Calculate Precision Unsharp Mask
|
|
79
|
+
if (origCol.a < 1e-5) {
|
|
80
|
+
return vec4<f32>(0.0, 0.0, 0.0, 0.0);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
let delta = origCol.rgb - blurResult.rgb;
|
|
84
|
+
let lumaDiff = abs(dot(delta, vec3<f32>(0.2126, 0.7152, 0.0722)));
|
|
85
|
+
let threshNorm = (max(0.0, threshold) / 255.0) * origCol.a;
|
|
86
|
+
|
|
87
|
+
var factor = 1.0;
|
|
88
|
+
if (threshold > 0.0) {
|
|
89
|
+
let ramp = (2.0 / 255.0) * origCol.a;
|
|
90
|
+
factor = smoothstep(threshNorm, threshNorm + ramp, lumaDiff);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
let sharpRgb = origCol.rgb + (amount / 100.0) * delta * factor;
|
|
94
|
+
let clampedRgb = clamp(sharpRgb, vec3<f32>(0.0), vec3<f32>(origCol.a));
|
|
95
|
+
return vec4<f32>(clampedRgb, origCol.a);
|
|
96
|
+
}
|
|
97
|
+
`,q=new WeakMap,e=new Float32Array(12);function me(a,r){let s=q.get(a);if(s)return s;let m=M(a,["uniform"]),o=M(a,["texture","sampler","texture"]),g=W(a,3),f=a.createShaderModule({code:ce}),i=a.createPipelineLayout({bindGroupLayouts:[m,o,g]}),t=F(a,{module:f,layouts:i,format:r}),u={uniformLayout:m,textureLayout:o,signalTextureLayout:g,pipeline:t};return q.set(a,u),u}var Q=async a=>{let{ctx:r,encoder:s,pass:m,targetTexture:o,targetWidth:g,targetHeight:f,props:i}=a,t=i.virtualMedia?.operation;if(t?.op!=="UnsharpMask"||!t)return;let u=i.virtualMedia.children?.[0];if(!u)return;m.end();let P=i.frame??0,k=i.fps||30,h=g,S=f,J=t.inputs?Object.keys(t.inputs)[0]:"unsharpmask_node",x=(d,p,le=0,de=1e3)=>V(t.inputs,d,p,le,de),b=x(t.amountHandleId,Number(t.amount??100),0,_),v=x(t.radiusHandleId,Number(t.radius??1.5),.1,L),U=x(t.thresholdHandleId,Number(t.threshold??3),0,G),{texture:l}=await O(a,u),{pipeline:I,uniformLayout:w,textureLayout:Z,signalTextureLayout:ee}=me(r.device,r.renderer.format),A=r.renderer.samplerCache.getSampler(r.device),{elapsedSeconds:re,durationSeconds:te}=z(i,P,k),ae={args:a,width:h,height:S,frame:P,fps:k,elapsedSeconds:re,durationSeconds:te},y=(d,p)=>E(ae,d,`${J}_${p}`),ie=y(v,"radius_sig"),ne=y(b,"amount_sig"),se=y(U,"threshold_sig"),D=(d,p)=>r.device.createBindGroup({layout:Z,entries:[{binding:0,resource:d.createView()},{binding:1,resource:A},{binding:2,resource:p.createView()}]});e[2]=v.val,e[3]=b.val,e[4]=U.val,e[5]=v.hasStaticSig?1:0,e[6]=b.hasStaticSig?1:0,e[7]=U.hasStaticSig?1:0,e[8]=0,e[9]=0,e[10]=0,e[11]=0;let T=r.renderer.getTemporaryTexture(h,S,[l,o,...i.excludeTextures||[]]),N=r.renderer.getTemporaryTexture(h,S,[l,T,o,...i.excludeTextures||[]]),C=r.device.createBindGroup({layout:ee,entries:[{binding:0,resource:ie},{binding:1,resource:ne},{binding:2,resource:se},{binding:3,resource:A}]});e[0]=1,e[1]=0,e[8]=0;let oe=r.renderer.getTemporaryBuffer(e);R(s,T.createView(),I,[r.device.createBindGroup({layout:w,entries:[{binding:0,resource:{buffer:oe}}]}),D(l,l),C]),e[0]=0,e[1]=1,e[8]=1;let ue=r.renderer.getTemporaryBuffer(e);R(s,N.createView(),I,[r.device.createBindGroup({layout:w,entries:[{binding:0,resource:{buffer:ue}}]}),D(T,l),C]),X(a,N,t.opacity??1)};var _e=B({WebGPURenderer:Q});export{_e as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as f}from"./chunk-BVF64D6H.mjs";f();f();f();function y(n){return n===null||typeof n!="object"?n:v(n)||"peek"in n&&typeof n.peek=="function"?n.peek():"value"in n?n.value:n}function V(n,e){let t=y(n);return typeof t=="number"&&!Number.isNaN(t)?t:e}function C(n,e){let t=y(n);return typeof t=="string"?t:e}function U(n,e){let t=y(n);return typeof t=="boolean"?t:e}function E(n,e){if(typeof e=="number")return V(n,e);if(typeof e=="string")return C(n,e);if(typeof e=="boolean")return U(n,e);let t=y(n);return t??e}var c=null;function B(n){c!==null&&(n.add(c),c.deps.add(n))}function v(n){return n!==null&&typeof n=="object"&&"get"in n&&typeof n.get=="function"&&"value"in n}var P=class{_value;_subscribers=new Set;constructor(e){this._value=e}get value(){return this.get()}set value(e){this.set(e)}get(){return c!==null&&(this._subscribers.add(c),c.deps.add(this._subscribers)),this._value}peek(){return this._value}set(e){Object.is(this._value,e)||(this._value=e,this.notifySubscribers())}update(e){this.set(e(this._value))}notifySubscribers(){if(this._subscribers.size===0)return;let e=Array.from(this._subscribers);for(let t of e)t.markDirty()}valueOf(){return this.get()}[Symbol.toPrimitive](e){return e==="number"?Number(this.get()):e==="string"?String(this.get()):this.get()}},T=class{_fn;_value;_dirty=!0;_evaluating=!1;deps=new Set;_subscribers=new Set;constructor(e){this._fn=e}get value(){return this.get()}get(){return c!==null&&c!==this&&(this._subscribers.add(c),c.deps.add(this._subscribers)),this._dirty&&this.compute(),this._value}peek(){return this._dirty&&this.compute(),this._value}markDirty(){if(this._dirty)return;this._dirty=!0;let e=Array.from(this._subscribers);for(let t of e)t.markDirty()}compute(){if(this._evaluating)throw new Error("Cyclic dependency detected in computed signal");for(let t of this.deps)t.delete(this);this.deps.clear();let e=c;c=this,this._evaluating=!0;try{this._value=this._fn(),this._dirty=!1}finally{this._evaluating=!1,c=e}}valueOf(){return this.get()}[Symbol.toPrimitive](e){return e==="number"?Number(this.get()):e==="string"?String(this.get()):this.get()}},w=class{gpuBinding;fps;_samples;_cachedFrame=-1;_cachedValue=0;_seekedFrame=-1;_subscribers=new Set;constructor(e,t=24,r){this._samples=e,this.fps=t,this.gpuBinding=r,e.length>0&&(this._cachedValue=e[0])}get value(){return this.get()}get(e){c!==null&&(this._subscribers.add(c),c.deps.add(this._subscribers)),h.get();let t=e?.frame??(this._seekedFrame>=0?this._seekedFrame:h.value);if(this._cachedFrame===t)return this._cachedValue;if(this._cachedFrame=t,!this._samples||this._samples.length===0)return this._cachedValue=0,0;let r=e?.fps??this.fps,s=r!==this.fps&&r>0?t/r*this.fps:t,a=Math.max(0,Math.min(this._samples.length-1,Math.round(s)));return this._cachedValue=Number(this._samples[a])||0,this._cachedValue}peek(){return this._cachedValue}seekFrame(e){if(this._seekedFrame=e,this._cachedFrame=e,!this._samples||this._samples.length===0)this._cachedValue=0;else{let t=Math.max(0,Math.min(this._samples.length-1,Math.round(e)));this._cachedValue=Number(this._samples[t])||0}for(let t of this._subscribers)t.markDirty()}valueOf(){return this.get()}[Symbol.toPrimitive](e){return e==="number"?Number(this.get()):e==="string"?String(this.get()):this.get()}};function x(n){return new P(n)}function W(n){return new T(n)}function L(n,e=24,t){return new w(n,e,t)}var h=x(0),O=x(0),F=x(0);function z(n,e=24,t){h.set(n);let r=e>0?n/e:0;if(O.set(r),t&&t>0){let s=t/1e3;F.set(Math.max(0,Math.min(1,r/s)))}else F.set(0)}var k=class{gpuBinding;_config;constructor(e){this._config={type:"sine",frequency:1,amplitude:1,offset:0,phase:0,...e},this.gpuBinding=e.gpuBinding}get value(){return this.get()}get(e){h.get();let t=e?.frame??h.value,r=e?.fps??24,s=e?.time??(r>0?t/r:0);if(this._config.fn)return this._config.fn(e??{frame:t,fps:r,time:s,duration:0,durationMs:0,progress:0,deltaTime:r>0?1/r:0});let a=this._config.frequency??1,i=this._config.amplitude??1,u=this._config.offset??0,o=this._config.phase??0;switch(this._config.type??"sine"){case"sine":return u+i*Math.sin(2*Math.PI*a*s+o);case"triangle":return u+i*(2*Math.abs(2*(s*a+o/(2*Math.PI)-Math.floor(s*a+o/(2*Math.PI)+.5)))-1);case"sawtooth":return u+i*(2*(s*a+o/(2*Math.PI)-Math.floor(s*a+o/(2*Math.PI)+.5)));case"square":return u+(Math.sin(2*Math.PI*a*s+o)>=0?i:-i);case"bounce":{let l=s*a%1,g=Math.abs(Math.sin(Math.PI*l));return u+i*g}default:return u+i*Math.sin(2*Math.PI*a*s+o)}}peek(){return this.get()}valueOf(){return this.get()}[Symbol.toPrimitive](e){return e==="number"?Number(this.get()):e==="string"?String(this.get()):this.get()}};function A(n){return new k(n)}function D(n,e){let t=e.min,r=e.max,s=e.amplitude??1,a=e.offset??0;t!==void 0&&r!==void 0?(a=(t+r)/2,s=(r-t)/2):t!==void 0?a=t+s:r!==void 0&&(a=r-s);let i=e.period,u=e.frequency,o=e.phase??0;return A({type:"custom",fn:d=>{let l;if(i!==void 0&&i>0)l=2*Math.PI*d.frame/i+o;else{let g=u??1;l=2*Math.PI*g*d.time+o}return a+s*n(l)}})}function $(n={}){return D(Math.sin,n)}function q(n={}){return D(Math.cos,n)}var Q={state:x,computed:W,builder:A,fromArray:L,programmatic:M,frame:h,time:O,progress:F,sine:$,cosine:q};var S=class n{gpuBinding;label;_evaluator;_samples;_fps;_durationFrames;_cachedFrame=-1;_cachedValue=0;_seekedFrame=-1;_subscribers=new Set;_children=new Set;get fps(){return this._fps}constructor(e,t={}){if(this._fps=t.fps??24,this._durationFrames=t.durationFrames,this.gpuBinding=t.gpuBinding,this.label=t.label,typeof e=="number"){let r=e;this._evaluator=()=>r,this._cachedValue=r}else if(typeof e=="function")this._evaluator=e;else if(v(e))this._evaluator=r=>Number(e.get(r))||0;else{let r=e;this._samples=r instanceof Float32Array?r:new Float32Array(Array.from(r)),this._durationFrames=this._samples.length,this._cachedValue=this._samples.length>0?this._samples[0]:0,this._evaluator=s=>{if(!this._samples||this._samples.length===0)return 0;let a=s.fps??this._fps,i=a!==this._fps&&a>0?s.frame/a*this._fps:s.frame,u=Math.max(0,Math.min(this._samples.length-1,Math.round(i)));return this._samples[u]}}}get value(){return this.get()}get(e){B(this._subscribers),h.get();let t=e?.frame??(this._seekedFrame>=0?this._seekedFrame:h.value);if(this._cachedFrame===t)return this._cachedValue;let r=e?.fps??this._fps,s=e?.time??(r>0?t/r:0),a=e?.duration??this._durationFrames??100,i=e?.durationMs??a/r*1e3,u=a>0?t/a:0,o=e?.deltaTime??(r>0?1/r:.0416),d={frame:t,fps:r,time:s,duration:a,durationMs:i,progress:u,deltaTime:o};return this._cachedFrame=t,this._cachedValue=this._evaluator(d),this._cachedValue}peek(){return this._cachedValue}registerChild(e){this._children.add(e)}_derive(e,t,r){let s=new n(e,{fps:this._fps,durationFrames:this._durationFrames,...t});return this._children.add(s),r instanceof n&&r.registerChild(s),s}seekFrame(e){this._seekedFrame=e,this._cachedFrame=-1;for(let t of this._subscribers)t.markDirty();for(let t of this._children)t.seekFrame(e)}invalidate(){this._cachedFrame=-1;for(let e of this._subscribers)e.markDirty();for(let e of this._children)e.invalidate()}valueOf(){return this.get()}[Symbol.toPrimitive](e){return e==="number"?Number(this.get()):e==="string"?String(this.get()):this.get()}smooth(e){let t=Math.max(1,Math.round(e));return t<=1?this:this._derive(r=>{let s=0,a=0,i=Math.max(0,r.frame-t+1);for(let u=i;u<=r.frame;u++)s+=this.get({...r,frame:u,time:u/r.fps}),a++;return a>0?s/a:0},{label:`${this.label??"sig"}_smoothed(${t})`})}remap(e,t,r,s,a=!1){let i=t-e,u=s-r;return this._derive(o=>{let d=this.get(o),l=i!==0?(d-e)/i:0,g=r+l*u;if(a){let m=Math.min(r,s),p=Math.max(r,s);return Math.max(m,Math.min(p,g))}return g},{label:`${this.label??"sig"}_remap`})}clamp(e,t){let r=Math.min(e,t),s=Math.max(e,t);return this._derive(a=>Math.max(r,Math.min(s,this.get(a))),{label:`${this.label??"sig"}_clamped`})}gate(e,t={}){let r=t.mode??"gate",s=Math.max(1,t.debounceFrames??2),a=Math.max(1,t.holdFrames??4),i=!!t.invert;return this._derive(u=>{let o=u.frame,d=0;if(r==="gate")d=this.get(u)>=e?1:0;else if(r==="trigger"){let l=-1/0,g=Math.max(0,o-120);for(let m=g;m<=o;m++){let p=this.get({...u,frame:m,time:m/u.fps}),b=m>0?this.get({...u,frame:m-1,time:(m-1)/u.fps}):0;p>=e&&b<e&&m-l>=s&&(l=m)}d=o>=l&&o<l+a?1:0}else if(r==="toggle"){let l=0,g=-1/0;for(let m=0;m<=o;m++){let p=this.get({...u,frame:m,time:m/u.fps}),b=m>0?this.get({...u,frame:m-1,time:(m-1)/u.fps}):0;p>=e&&b<e&&m-g>=s&&(l++,g=m)}d=l%2===1?1:0}return i?1-d:d},{label:`${this.label??"sig"}_gate(${e})`})}velocity(e=1){let t=Math.max(1,Math.round(e));return this._derive(r=>{let s=this.get(r),a=Math.max(0,r.frame-t),i=this.get({...r,frame:a,time:a/r.fps}),u=t/r.fps;return u>0?(s-i)/u:s-i},{label:`${this.label??"sig"}_velocity`})}delay(e){let t=Math.max(0,Math.round(e));return this._derive(r=>{let s=Math.max(0,r.frame-t);return this.get({...r,frame:s,time:s/r.fps})},{label:`${this.label??"sig"}_delay(${t})`})}spring(e=150,t=12){return this._derive(r=>{let s=r.frame;if(s<=0)return this.get(r);let a=this.get({...r,frame:0,time:0}),i=0,u=1/Math.max(1,r.fps);for(let o=1;o<=s;o++){let d=this.get({...r,frame:o,time:o/r.fps}),l=a-d,g=-e*l-t*i;i+=g*u,a+=i*u}return a},{label:`${this.label??"sig"}_spring`})}add(e){return typeof e=="number"?this._derive(t=>this.get(t)+e):this._derive(t=>this.get(t)+(Number(e.get(t))||0),void 0,e)}subtract(e){return typeof e=="number"?this._derive(t=>this.get(t)-e):this._derive(t=>this.get(t)-(Number(e.get(t))||0),void 0,e)}multiply(e){return typeof e=="number"?this._derive(t=>this.get(t)*e):this._derive(t=>this.get(t)*(Number(e.get(t))||0),void 0,e)}invert(){return this._derive(e=>1-this.get(e),{label:`${this.label??"sig"}_inverted`})}pow(e){return this._derive(t=>this.get(t)**e)}map(e){return this._derive(t=>e(this.get(t),t))}toFrameArray(e,t){let r=Math.max(1,e),s=t??this._fps,a=new Float32Array(r);for(let i=0;i<r;i++)a[i]=this.get({frame:i,fps:s,time:i/s,duration:r,durationMs:r/s*1e3,progress:i/r,deltaTime:1/s});return a}};function M(n,e){return new S(n,e)}f();f();function se(n,e=[{x:0,y:0},{x:1,y:0},{x:0,y:1},{x:1,y:1}]){let t=[],r=[];for(let i=0;i<4;i++){let u=n[i]?.x??0,o=n[i]?.y??0,d=e[i]?.x??0,l=e[i]?.y??0;t.push([u,o,1,0,0,0,-u*d,-o*d]),r.push(d),t.push([0,0,0,u,o,1,-u*l,-o*l]),r.push(l)}let s=8;for(let i=0;i<s;i++){let u=i,o=Math.abs(t[i][i]);for(let m=i+1;m<s;m++)Math.abs(t[m][i])>o&&(o=Math.abs(t[m][i]),u=m);let d=t[i];t[i]=t[u],t[u]=d;let l=r[i];r[i]=r[u],r[u]=l;let g=t[i][i];Math.abs(g)<1e-12&&(t[i][i]=g<0?-1e-12:1e-12);for(let m=i+1;m<s;m++){let p=t[m][i]/t[i][i];for(let b=i;b<s;b++)t[m][b]-=p*t[i][b];r[m]-=p*r[i]}}let a=new Array(8).fill(0);for(let i=s-1;i>=0;i--){let u=r[i];for(let o=i+1;o<s;o++)u-=t[i][o]*a[o];a[i]=u/t[i][i]}return[a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],1]}function oe(n,e,t,r){if(n==null)return e;if(typeof n=="number")return Number.isFinite(n)?n:e;if(typeof n=="object"&&n!==null){if("get"in n&&typeof n.get=="function")try{let a=n.get({frame:t,fps:r,time:r>0?t/r:0,duration:0,durationMs:0,progress:0,deltaTime:r>0?1/r:0}),i=Number(a);if(Number.isFinite(i))return i}catch{}if("value"in n){let a=Number(n.value);if(Number.isFinite(a))return a}}if(typeof n=="function")try{let a=Number(n({frame:t,fps:r,time:r>0?t/r:0}));if(Number.isFinite(a))return a}catch{}let s=Number(n);return Number.isFinite(s)?s:e}function me(n,e,t){if(n==null)return{value:n};if(typeof n=="function")return{value:n(e,t)};if(typeof n!="object")return{value:n};let r=n;if(typeof r.get=="function")return{value:r.get({frame:e,fps:t})};if("value"in r){let s=n;return{value:s.value,gpuTextureView:s.gpuBinding?.textureView}}return{value:n}}function le(n,e,t,r,s){let a=u=>Math.max(r,Math.min(s,u)),i=e?n?.[e]:void 0;if(i?.connectionValid){let u=i.outputItem;if(u?.type==="Number"){let o=typeof u.data=="number"?u.data:u.data?.value??t;return{val:a(o),hasStaticSig:!1,sd:null,handleId:e}}if(u?.type==="Signal"&&u.data)return{val:t,hasStaticSig:!0,sd:u.data,handleId:e}}return{val:a(t),hasStaticSig:!1,sd:null,handleId:e}}function de(n,e,t,r=Number.NEGATIVE_INFINITY,s=Number.POSITIVE_INFINITY){let a=p=>Math.max(r,Math.min(s,p)),i=n,u=i[`${e}HandleId`],o=u?n.inputs?.[u]:null,d=o?.connectionValid?o.outputItem?.type:void 0,l=d==="Signal"||d==="Numeric",g=l&&o?.outputItem?.data?o.outputItem.data:null,m=t;if(l)g&&(m=a(Number(g.offset??t)));else{let p=d==="Number"?o?.outputItem?.data:i[e];m=a(Number(p??t))}return{hasSignal:l,sd:g,value:m}}function ge(n,e){let t=n[e];if(typeof t!="string"||!t)return!1;let r=n.inputs?.[t];return!!(r?.connectionValid&&r.outputItem&&(r.outputItem.type==="Signal"||r.outputItem.type==="Number"))}function ce(n){return Object.freeze(n)}var N=Symbol.for("framefields.webgpuRegistry"),I=class{renderers=new Map;register(e,t){this.renderers.set(e,t)}get(e){return this.renderers.get(e)}has(e){return this.renderers.has(e)}},H=(()=>{let n=globalThis;return n[N]||(n[N]=new I),n[N]})();function pe(n,e){H.register(n,e)}var R=class{processors=new Map;register(e,t){this.processors.set(e,t)}get(e){return this.processors.get(e)||null}},G=Symbol.for("framefields.audioRegistry"),fe=(()=>{let n=globalThis;return n[G]||(n[G]=new R),n[G]})();export{S as a,M as b,V as c,C as d,U as e,E as f,B as g,v as h,x as i,W as j,L as k,h as l,O as m,F as n,z as o,A as p,$ as q,q as r,Q as s,se as t,oe as u,me as v,le as w,de as x,ge as y,ce as z,H as A,pe as B,fe as C};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b}from"./chunk-CYY366IE.mjs";import{a as l}from"./chunk-
|
|
1
|
+
import{b}from"./chunk-CYY366IE.mjs";import{a as l}from"./chunk-PNB3ERR3.mjs";import{a as g}from"./chunk-6YJP57MZ.mjs";import{k as n}from"./chunk-63SFBHEH.mjs";import{e as c}from"./chunk-BVF64D6H.mjs";c();var S={async extractFromChannels(a,u,r={}){let x=await b(),t=r.fps??24,p=r.targetWidth??512,e=await g.extractFeatures(x,a,u,t,r,p),i=e.channelSamples??{primary:new Float32Array(e.numFrames),beat:new Float32Array(e.numFrames),bass:new Float32Array(e.numFrames),energy:new Float32Array(e.numFrames)},y={nodeId:"audio_primary",channel:"primary",textureView:e.textureView,texture:e.texture,buffer:e.primaryBuffer,stats:e.stats.primary},w={nodeId:"audio_beat",channel:"beat",textureView:e.textureView,texture:e.texture,buffer:e.beatBuffer,stats:e.stats.beat},B={nodeId:"audio_bass",channel:"bass",textureView:e.textureView,texture:e.texture,buffer:e.bassBuffer,stats:e.stats.bass},F={nodeId:"audio_energy",channel:"energy",textureView:e.textureView,texture:e.texture,buffer:e.energyBuffer,stats:e.stats.energy},o=n(i.primary,t,y),m=n(i.beat,t,w),d=n(i.bass,t,B),f=n(i.energy,t,F);return{primary:o,beat:m,bass:d,energy:f,durationSec:e.durationSec,numFrames:e.numFrames,sampleRate:u,textureView:e.textureView,texture:e.texture,primaryBuffer:e.primaryBuffer,beatBuffer:e.beatBuffer,bassBuffer:e.bassBuffer,energyBuffer:e.energyBuffer,seekFrame(s){o.seekFrame?.(s),m.seekFrame?.(s),d.seekFrame?.(s),f.seekFrame?.(s)}}},async extract(a,u={}){let r=await l(a);if(!r||r.channels.length===0)throw new Error(`Failed to decode audio source for feature extraction: ${a}`);return S.extractFromChannels(r.channels,r.sampleRate,u)}};export{S as a};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import{a as w,d as m,g as y,h as b,j as v,m as x}from"./chunk-ENKKLU7B.mjs";import{z as g}from"./chunk-63SFBHEH.mjs";import{e as s}from"./chunk-BVF64D6H.mjs";s();s();var j=new WeakMap,P=`
|
|
2
|
+
struct SelectiveColorUniforms {
|
|
3
|
+
reds : vec4<f32>,
|
|
4
|
+
yellows : vec4<f32>,
|
|
5
|
+
greens : vec4<f32>,
|
|
6
|
+
cyans : vec4<f32>,
|
|
7
|
+
blues : vec4<f32>,
|
|
8
|
+
magentas : vec4<f32>,
|
|
9
|
+
whites : vec4<f32>,
|
|
10
|
+
neutrals : vec4<f32>,
|
|
11
|
+
blacks : vec4<f32>,
|
|
12
|
+
method : f32,
|
|
13
|
+
pad0 : f32,
|
|
14
|
+
pad1 : f32,
|
|
15
|
+
pad2 : f32,
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
@group(0) @binding(0) var<uniform> u : SelectiveColorUniforms;
|
|
19
|
+
@group(1) @binding(0) var tex : texture_2d<f32>;
|
|
20
|
+
@group(1) @binding(1) var samp : sampler;
|
|
21
|
+
${w}
|
|
22
|
+
|
|
23
|
+
fn calcAdjustment(cmy: vec3<f32>, adj: vec4<f32>, weight: f32, isAbsolute: bool) -> vec3<f32> {
|
|
24
|
+
if (weight <= 0.00001) {
|
|
25
|
+
return vec3<f32>(0.0);
|
|
26
|
+
}
|
|
27
|
+
let adjC = adj.x;
|
|
28
|
+
let adjM = adj.y;
|
|
29
|
+
let adjY = adj.z;
|
|
30
|
+
let adjK = adj.w;
|
|
31
|
+
|
|
32
|
+
if (isAbsolute) {
|
|
33
|
+
let cDelta = adjC + adjK * (1.0 + adjC);
|
|
34
|
+
let mDelta = adjM + adjK * (1.0 + adjM);
|
|
35
|
+
let yDelta = adjY + adjK * (1.0 + adjY);
|
|
36
|
+
return vec3<f32>(cDelta, mDelta, yDelta) * weight;
|
|
37
|
+
} else {
|
|
38
|
+
let cDelta = ((1.0 + adjK) * (1.0 + adjC) - 1.0) * cmy.x;
|
|
39
|
+
let mDelta = ((1.0 + adjK) * (1.0 + adjM) - 1.0) * cmy.y;
|
|
40
|
+
let yDelta = ((1.0 + adjK) * (1.0 + adjY) - 1.0) * cmy.z;
|
|
41
|
+
return vec3<f32>(cDelta, mDelta, yDelta) * weight;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
46
|
+
let color = textureSampleLevel(tex, samp, in.uv, 0.0);
|
|
47
|
+
if (color.a <= 0.00001) {
|
|
48
|
+
return color;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
let rgb = clamp(color.rgb / max(color.a, 0.00001), vec3<f32>(0.0), vec3<f32>(1.0));
|
|
52
|
+
let r = rgb.r;
|
|
53
|
+
let g = rgb.g;
|
|
54
|
+
let b = rgb.b;
|
|
55
|
+
|
|
56
|
+
let maxVal = max(r, max(g, b));
|
|
57
|
+
let minVal = min(r, min(g, b));
|
|
58
|
+
|
|
59
|
+
// Chromatic weights
|
|
60
|
+
let wRed = max(0.0, r - max(g, b));
|
|
61
|
+
let wYellow = max(0.0, min(r, g) - b);
|
|
62
|
+
let wGreen = max(0.0, g - max(r, b));
|
|
63
|
+
let wCyan = max(0.0, min(g, b) - r);
|
|
64
|
+
let wBlue = max(0.0, b - max(r, g));
|
|
65
|
+
let wMagenta = max(0.0, min(r, b) - g);
|
|
66
|
+
|
|
67
|
+
// Achromatic weights (Whites, Blacks, and true Midtone Neutrals)
|
|
68
|
+
let wWhite = max(0.0, (minVal - 0.5) * 2.0);
|
|
69
|
+
let wBlack = max(0.0, (0.5 - maxVal) * 2.0);
|
|
70
|
+
let wNeutral = max(0.0, 1.0 - (wRed + wYellow + wGreen + wCyan + wBlue + wMagenta + wWhite + wBlack));
|
|
71
|
+
|
|
72
|
+
let cmy = vec3<f32>(1.0 - r, 1.0 - g, 1.0 - b);
|
|
73
|
+
let isAbs = u.method > 0.5;
|
|
74
|
+
|
|
75
|
+
var totalDelta = vec3<f32>(0.0);
|
|
76
|
+
totalDelta += calcAdjustment(cmy, u.reds, wRed, isAbs);
|
|
77
|
+
totalDelta += calcAdjustment(cmy, u.yellows, wYellow, isAbs);
|
|
78
|
+
totalDelta += calcAdjustment(cmy, u.greens, wGreen, isAbs);
|
|
79
|
+
totalDelta += calcAdjustment(cmy, u.cyans, wCyan, isAbs);
|
|
80
|
+
totalDelta += calcAdjustment(cmy, u.blues, wBlue, isAbs);
|
|
81
|
+
totalDelta += calcAdjustment(cmy, u.magentas, wMagenta, isAbs);
|
|
82
|
+
totalDelta += calcAdjustment(cmy, u.whites, wWhite, isAbs);
|
|
83
|
+
totalDelta += calcAdjustment(cmy, u.neutrals, wNeutral, isAbs);
|
|
84
|
+
totalDelta += calcAdjustment(cmy, u.blacks, wBlack, isAbs);
|
|
85
|
+
|
|
86
|
+
let finalCMY = clamp(cmy + totalDelta, vec3<f32>(0.0), vec3<f32>(1.0));
|
|
87
|
+
let finalRGB = vec3<f32>(1.0 - finalCMY.x, 1.0 - finalCMY.y, 1.0 - finalCMY.z);
|
|
88
|
+
|
|
89
|
+
return vec4<f32>(finalRGB * color.a, color.a);
|
|
90
|
+
}
|
|
91
|
+
`;function U(t,e){let l=j.get(t);if(!l){let n=m(t,["uniform"]),i=m(t,["texture","sampler"]),u=t.createShaderModule({label:"selective-color.wgsl",code:P});l={pipeline:y(t,{label:"SelectiveColorPipeline",module:u,layouts:[n,i],format:e}),uniformLayout:n,textureLayout:i},j.set(t,l)}return l}function o(t,e,l){t[e+0]=(l?.cyan??0)/100,t[e+1]=(l?.magenta??0)/100,t[e+2]=(l?.yellow??0)/100,t[e+3]=(l?.black??0)/100}var a=new Float32Array(40),h=async t=>{let{ctx:e,encoder:l,pass:n,targetTexture:i,targetWidth:u,targetHeight:d,props:c}=t,r=c.virtualMedia?.operation;if(r?.op!=="SelectiveColor"||!c.virtualMedia?.children?.[0])return;n.end();let C=c.virtualMedia.children[0],A=u,D=d,{texture:f}=await b(t,C);o(a,0,r.reds),o(a,4,r.yellows),o(a,8,r.greens),o(a,12,r.cyans),o(a,16,r.blues),o(a,20,r.magentas),o(a,24,r.whites),o(a,28,r.neutrals),o(a,32,r.blacks),a[36]=r.method==="Absolute"?1:0,a[37]=0,a[38]=0,a[39]=0;let{pipeline:G,uniformLayout:S,textureLayout:R}=U(e.device,e.renderer.format),M=e.renderer.samplerCache.getSampler(e.device),B=e.renderer.getTemporaryBuffer(a),p=e.renderer.getTemporaryTexture(A,D,[f,i,...c.excludeTextures||[]]);x(l,p.createView(),G,[e.device.createBindGroup({layout:S,entries:[{binding:0,resource:{buffer:B}}]}),e.renderer.bindGroupCache.getBindGroup(e.device,R,f,M)]),v(t,p,c.opacity??1)};var V=g({WebGPURenderer:h});export{V as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{z as r}from"./chunk-63SFBHEH.mjs";import{e}from"./chunk-BVF64D6H.mjs";e();var o=r({});export{o as a};
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import{a as C,d as R,g as B,h as w,j as H,m as L}from"./chunk-ENKKLU7B.mjs";import{z as E}from"./chunk-63SFBHEH.mjs";import{e as v}from"./chunk-BVF64D6H.mjs";v();v();v();function U(n){let t=[...n].sort((e,c)=>e.x-c.x),s=[];for(let e of t)(s.length===0||Math.abs(e.x-s[s.length-1].x)>1e-6)&&s.push(e);let r=s.length;if(r===0)return e=>e;if(r===1)return()=>s[0].y;let i=new Float32Array(r-1),o=new Float32Array(r-1),u=new Float32Array(r-1);for(let e=0;e<r-1;e++)i[e]=s[e+1].x-s[e].x,o[e]=s[e+1].y-s[e].y,u[e]=o[e]/i[e];let a=new Float32Array(r);a[0]=u[0];for(let e=1;e<r-1;e++)a[e]=(u[e-1]+u[e])/2;a[r-1]=u[r-2];for(let e=0;e<r-1;e++){let c=u[e];if(Math.abs(c)<1e-9)a[e]=0,a[e+1]=0;else{let d=a[e]/c,l=a[e+1]/c,h=d*d,g=l*l;if(h+g>9){let p=3/Math.sqrt(h+g);a[e]=p*d*c,a[e+1]=p*l*c}}}return e=>{if(e<=s[0].x)return s[0].y;if(e>=s[r-1].x)return s[r-1].y;let c=0,d=r-2,l=0;for(;c<=d;){let x=c+d>>1;if(e>=s[x].x&&e<=s[x+1].x){l=x;break}e<s[x].x?d=x-1:c=x+1}let h=i[l],g=(e-s[l].x)/h,p=g*g,m=p*g,f=2*m-3*p+1,_=m-2*p+g,b=-2*m+3*p,P=m-p,G=s[l].y*f+h*a[l]*_+s[l+1].y*b+h*a[l+1]*P;return Math.max(0,Math.min(1,G))}}v();var Y=`
|
|
2
|
+
@group(0) @binding(0) var t_src: texture_2d<f32>;
|
|
3
|
+
@group(0) @binding(1) var<storage, read_write> bins_r: array<atomic<u32>, 256>;
|
|
4
|
+
@group(0) @binding(2) var<storage, read_write> bins_g: array<atomic<u32>, 256>;
|
|
5
|
+
@group(0) @binding(3) var<storage, read_write> bins_b: array<atomic<u32>, 256>;
|
|
6
|
+
@group(0) @binding(4) var<storage, read_write> bins_luma: array<atomic<u32>, 256>;
|
|
7
|
+
|
|
8
|
+
@compute @workgroup_size(8, 8)
|
|
9
|
+
fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
|
|
10
|
+
let dims = textureDimensions(t_src, 0);
|
|
11
|
+
if (gid.x >= dims.x || gid.y >= dims.y) { return; }
|
|
12
|
+
|
|
13
|
+
let color = textureLoad(t_src, vec2<u32>(gid.x, gid.y), 0);
|
|
14
|
+
let a = color.a;
|
|
15
|
+
if (a < 1e-5) { return; }
|
|
16
|
+
|
|
17
|
+
let rgb = color.rgb / a;
|
|
18
|
+
|
|
19
|
+
let ri = u32(clamp(rgb.r * 255.0, 0.0, 255.0));
|
|
20
|
+
let gi = u32(clamp(rgb.g * 255.0, 0.0, 255.0));
|
|
21
|
+
let bi = u32(clamp(rgb.b * 255.0, 0.0, 255.0));
|
|
22
|
+
let luma = 0.2126 * rgb.r + 0.7152 * rgb.g + 0.0722 * rgb.b;
|
|
23
|
+
let lumai = u32(clamp(luma * 255.0, 0.0, 255.0));
|
|
24
|
+
|
|
25
|
+
atomicAdd(&bins_r[ri], 1u);
|
|
26
|
+
atomicAdd(&bins_g[gi], 1u);
|
|
27
|
+
atomicAdd(&bins_b[bi], 1u);
|
|
28
|
+
atomicAdd(&bins_luma[lumai], 1u);
|
|
29
|
+
}
|
|
30
|
+
`,D=new WeakMap;function $(n){let t=D.get(n);if(!t){let s=n.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.COMPUTE,texture:{sampleType:"float",viewDimension:"2d"}},{binding:1,visibility:GPUShaderStage.COMPUTE,buffer:{type:"storage"}},{binding:2,visibility:GPUShaderStage.COMPUTE,buffer:{type:"storage"}},{binding:3,visibility:GPUShaderStage.COMPUTE,buffer:{type:"storage"}},{binding:4,visibility:GPUShaderStage.COMPUTE,buffer:{type:"storage"}}]}),r=n.createShaderModule({label:"histogram.wgsl",code:Y});t={pipeline:n.createComputePipeline({label:"HistogramPipeline",layout:n.createPipelineLayout({bindGroupLayouts:[s]}),compute:{module:r,entryPoint:"main"}}),bindGroupLayout:s},D.set(n,t)}return t}var N=new Map,M=new Set;function O(n,t,s,r){if(!N.get(r)||M.has(r))return;M.add(r);let{pipeline:o,bindGroupLayout:u}=$(n),a=()=>n.createBuffer({size:1024,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST}),e=a(),c=a(),d=a(),l=a();t.clearBuffer(e),t.clearBuffer(c),t.clearBuffer(d),t.clearBuffer(l);let h=n.createBindGroup({layout:u,entries:[{binding:0,resource:s.createView()},{binding:1,resource:{buffer:e}},{binding:2,resource:{buffer:c}},{binding:3,resource:{buffer:d}},{binding:4,resource:{buffer:l}}]}),g=t.beginComputePass({label:"histogram-pass"});g.setPipeline(o),g.setBindGroup(0,h),g.dispatchWorkgroups(Math.ceil(s.width/8),Math.ceil(s.height/8)),g.end();let p=()=>n.createBuffer({size:1024,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),m=p(),f=p(),_=p(),b=p();t.copyBufferToBuffer(e,0,m,0,1024),t.copyBufferToBuffer(c,0,f,0,1024),t.copyBufferToBuffer(d,0,_,0,1024),t.copyBufferToBuffer(l,0,b,0,1024),n.queue.onSubmittedWorkDone().then(()=>Promise.all([m.mapAsync(GPUMapMode.READ),f.mapAsync(GPUMapMode.READ),_.mapAsync(GPUMapMode.READ),b.mapAsync(GPUMapMode.READ)])).then(()=>{let P=new Uint32Array(m.getMappedRange().slice(0)),G=new Uint32Array(f.getMappedRange().slice(0)),x=new Uint32Array(_.getMappedRange().slice(0)),T=new Uint32Array(b.getMappedRange().slice(0));m.unmap(),f.unmap(),_.unmap(),b.unmap(),m.destroy(),f.destroy(),_.destroy(),b.destroy(),e.destroy(),c.destroy(),d.destroy(),l.destroy(),M.delete(r);let S=N.get(r);S&&S({r:P,g:G,b:x,luma:T})}).catch(()=>{m.destroy(),f.destroy(),_.destroy(),b.destroy(),e.destroy(),c.destroy(),d.destroy(),l.destroy(),M.delete(r)})}var y=1024,F="rgba8unorm",j=y*4,J=`
|
|
31
|
+
${C}
|
|
32
|
+
|
|
33
|
+
@group(0) @binding(0) var t_lut : texture_2d<f32>;
|
|
34
|
+
@group(0) @binding(1) var s_lut : sampler;
|
|
35
|
+
|
|
36
|
+
@group(1) @binding(0) var t_src : texture_2d<f32>;
|
|
37
|
+
@group(1) @binding(1) var s_src : sampler;
|
|
38
|
+
|
|
39
|
+
@fragment fn fs(in: VSOut) -> @location(0) vec4<f32> {
|
|
40
|
+
let src = textureSampleLevel(t_src, s_src, in.uv, 0.0);
|
|
41
|
+
if (src.a < 1e-5) { return src; }
|
|
42
|
+
|
|
43
|
+
let rgb = src.rgb / src.a;
|
|
44
|
+
|
|
45
|
+
let N = f32(${y});
|
|
46
|
+
let uv_r = (rgb.r * (N - 1.0) + 0.5) / N;
|
|
47
|
+
let uv_g = (rgb.g * (N - 1.0) + 0.5) / N;
|
|
48
|
+
let uv_b = (rgb.b * (N - 1.0) + 0.5) / N;
|
|
49
|
+
|
|
50
|
+
let r_graded = textureSampleLevel(t_lut, s_lut, vec2<f32>(uv_r, 0.5), 0.0).r;
|
|
51
|
+
let g_graded = textureSampleLevel(t_lut, s_lut, vec2<f32>(uv_g, 0.5), 0.0).g;
|
|
52
|
+
let b_graded = textureSampleLevel(t_lut, s_lut, vec2<f32>(uv_b, 0.5), 0.0).b;
|
|
53
|
+
|
|
54
|
+
let graded = vec3<f32>(r_graded, g_graded, b_graded);
|
|
55
|
+
return vec4<f32>(graded * src.a, src.a);
|
|
56
|
+
}
|
|
57
|
+
`,K=`
|
|
58
|
+
struct Uniforms {
|
|
59
|
+
mode: u32,
|
|
60
|
+
pad0: u32,
|
|
61
|
+
pad1: u32,
|
|
62
|
+
pad2: u32,
|
|
63
|
+
};
|
|
64
|
+
@group(0) @binding(0) var<uniform> u : Uniforms;
|
|
65
|
+
@group(0) @binding(1) var t_lut : texture_2d<f32>;
|
|
66
|
+
@group(0) @binding(2) var s_lut : sampler;
|
|
67
|
+
|
|
68
|
+
@group(1) @binding(0) var t_src : texture_2d<f32>;
|
|
69
|
+
@group(1) @binding(1) var s_src : sampler;
|
|
70
|
+
|
|
71
|
+
${C}
|
|
72
|
+
|
|
73
|
+
fn rgb_to_hsl(rgb: vec3<f32>) -> vec3<f32> {
|
|
74
|
+
let r = rgb.r; let g = rgb.g; let b = rgb.b;
|
|
75
|
+
let cmax = max(r, max(g, b));
|
|
76
|
+
let cmin = min(r, min(g, b));
|
|
77
|
+
let delta = cmax - cmin;
|
|
78
|
+
|
|
79
|
+
var h = 0.0;
|
|
80
|
+
var s = 0.0;
|
|
81
|
+
let l = (cmax + cmin) * 0.5;
|
|
82
|
+
|
|
83
|
+
if (delta > 1e-5) {
|
|
84
|
+
s = delta / (1.0 - abs(2.0 * l - 1.0));
|
|
85
|
+
if (cmax == r) {
|
|
86
|
+
h = ((g - b) / delta) % 6.0;
|
|
87
|
+
} else if (cmax == g) {
|
|
88
|
+
h = (b - r) / delta + 2.0;
|
|
89
|
+
} else {
|
|
90
|
+
h = (r - g) / delta + 4.0;
|
|
91
|
+
}
|
|
92
|
+
h = h / 6.0;
|
|
93
|
+
if (h < 0.0) { h = h + 1.0; }
|
|
94
|
+
}
|
|
95
|
+
return vec3<f32>(h, s, l);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
fn hsl_to_rgb(hsl: vec3<f32>) -> vec3<f32> {
|
|
99
|
+
let h = hsl.x; let s = hsl.y; let l = hsl.z;
|
|
100
|
+
let c = (1.0 - abs(2.0 * l - 1.0)) * s;
|
|
101
|
+
let x = c * (1.0 - abs((h * 6.0) % 2.0 - 1.0));
|
|
102
|
+
let m = l - c * 0.5;
|
|
103
|
+
|
|
104
|
+
var rgb = vec3<f32>(0.0);
|
|
105
|
+
let hi = u32(h * 6.0) % 6u;
|
|
106
|
+
if (hi == 0u) { rgb = vec3<f32>(c, x, 0.0); }
|
|
107
|
+
else if (hi == 1u) { rgb = vec3<f32>(x, c, 0.0); }
|
|
108
|
+
else if (hi == 2u) { rgb = vec3<f32>(0.0, c, x); }
|
|
109
|
+
else if (hi == 3u) { rgb = vec3<f32>(0.0, x, c); }
|
|
110
|
+
else if (hi == 4u) { rgb = vec3<f32>(x, 0.0, c); }
|
|
111
|
+
else { rgb = vec3<f32>(c, 0.0, x); }
|
|
112
|
+
return rgb + vec3<f32>(m);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
fn lut_sample(x: f32) -> f32 {
|
|
116
|
+
let N = f32(${y});
|
|
117
|
+
let uv_x = (x * (N - 1.0) + 0.5) / N;
|
|
118
|
+
return textureSampleLevel(t_lut, s_lut, vec2<f32>(uv_x, 0.5), 0.0).r;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@fragment fn fs(in: VSOut) -> @location(0) vec4<f32> {
|
|
122
|
+
let src = textureSampleLevel(t_src, s_src, in.uv, 0.0);
|
|
123
|
+
if (src.a < 1e-5) { return src; }
|
|
124
|
+
|
|
125
|
+
let rgb = src.rgb / src.a;
|
|
126
|
+
let hsl = rgb_to_hsl(rgb);
|
|
127
|
+
|
|
128
|
+
var out_hsl = hsl;
|
|
129
|
+
|
|
130
|
+
if (u.mode == 0u) {
|
|
131
|
+
let adj = lut_sample(hsl.x);
|
|
132
|
+
out_hsl.x = fract(hsl.x + (adj - 0.5) * 2.0);
|
|
133
|
+
} else if (u.mode == 1u) {
|
|
134
|
+
let adj = lut_sample(hsl.x);
|
|
135
|
+
out_hsl.y = clamp(hsl.y * (adj * 2.0), 0.0, 1.0);
|
|
136
|
+
} else if (u.mode == 2u) {
|
|
137
|
+
let adj = lut_sample(hsl.z);
|
|
138
|
+
out_hsl.y = clamp(hsl.y * (adj * 2.0), 0.0, 1.0);
|
|
139
|
+
} else {
|
|
140
|
+
let adj = lut_sample(hsl.y);
|
|
141
|
+
out_hsl.y = clamp(adj, 0.0, 1.0);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
let out_rgb = clamp(hsl_to_rgb(out_hsl), vec3<f32>(0.0), vec3<f32>(1.0));
|
|
145
|
+
return vec4<f32>(out_rgb * src.a, src.a);
|
|
146
|
+
}
|
|
147
|
+
`,k=new WeakMap,I=new WeakMap;function X(n,t){let s=k.get(n);if(!s){let r=R(n,["texture","sampler"]),i=R(n,["texture","sampler"]),o=n.createShaderModule({label:"curves-rgb.wgsl",code:J});s={pipeline:B(n,{label:"CurvesRgbPipeline",module:o,layouts:[r,i],format:t}),lutBindGroupLayout:r,srcBindGroupLayout:i},k.set(n,s)}return s}function Q(n,t){let s=I.get(n);if(!s){let r=R(n,["uniform","texture","sampler"]),i=R(n,["texture","sampler"]),o=n.createShaderModule({label:"curves-hsl.wgsl",code:K});s={pipeline:B(n,{label:"CurvesHslPipeline",module:o,layouts:[r,i],format:t}),uniformLayout:r,srcBindGroupLayout:i},I.set(n,s)}return s}var ee=32,V=new WeakMap;function W(n,t,s){let r=V.get(n);r||(r=new Map,V.set(n,r));let i=r.get(t);if(i)return r.delete(t),r.set(t,i),i;let o=s();if(r.set(t,o),r.size>ee){let[u,a]=r.entries().next().value;r.delete(u),a.destroy()}return o}function te(n,t){let s=U(t.master||[{x:0,y:0},{x:1,y:1}]),r=U(t.red||[{x:0,y:0},{x:1,y:1}]),i=U(t.green||[{x:0,y:0},{x:1,y:1}]),o=U(t.blue||[{x:0,y:0},{x:1,y:1}]),u=new Uint8Array(y*4);for(let e=0;e<y;e++){let c=e/(y-1),d=s(c),l=Math.max(0,Math.min(1,r(d))),h=Math.max(0,Math.min(1,i(d))),g=Math.max(0,Math.min(1,o(d)));u[e*4+0]=Math.round(l*255),u[e*4+1]=Math.round(h*255),u[e*4+2]=Math.round(g*255),u[e*4+3]=255}let a=n.createTexture({size:[y,1,1],dimension:"2d",format:F,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST});return n.queue.writeTexture({texture:a},u,{bytesPerRow:j},[y,1,1]),a}function re(n,t){let s=U(t),r=new Uint8Array(y*4);for(let o=0;o<y;o++){let u=o/(y-1),a=Math.round(Math.max(0,Math.min(1,s(u)))*255);r[o*4+0]=a,r[o*4+1]=a,r[o*4+2]=a,r[o*4+3]=255}let i=n.createTexture({size:[y,1,1],dimension:"2d",format:F,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST});return n.queue.writeTexture({texture:i},r,{bytesPerRow:j},[y,1,1]),i}var se={"hue-vs-hue":0,"hue-vs-sat":1,"lum-vs-sat":2,"sat-vs-sat":3},ne={"hue-vs-hue":"hueVsHue","hue-vs-sat":"hueVsSat","lum-vs-sat":"lumVsSat","sat-vs-sat":"satVsSat"},z=async n=>{let{ctx:t,encoder:s,pass:r,targetTexture:i,targetWidth:o,targetHeight:u,props:a}=n,e=a.virtualMedia?.operation;if(e?.op!=="Curves"||!a.virtualMedia?.children?.[0])return;r.end();let c=a.virtualMedia.children[0],d=o,l=u,h=e.nodeId||"curves_fallback",g=e.curveType||"rgb",{texture:p}=await w(n,c),m=t.renderer.samplerCache.getSampler(t.device),f=t.renderer.getTemporaryTexture(d,l,[p,i,...a.excludeTextures||[]]);if(g==="rgb"){let _=JSON.stringify({curveType:g,master:e.master,red:e.red,green:e.green,blue:e.blue}),b=W(t.device,_,()=>te(t.device,e)),{pipeline:P,lutBindGroupLayout:G,srcBindGroupLayout:x}=X(t.device,t.renderer.format);L(s,f.createView(),P,[t.device.createBindGroup({layout:G,entries:[{binding:0,resource:b.createView()},{binding:1,resource:m}]}),t.renderer.bindGroupCache.getBindGroup(t.device,x,p,m)])}else{let _=ne[g],b=e[_]||[{x:0,y:.5},{x:1,y:.5}],P=JSON.stringify({curveType:g,points:b}),G=W(t.device,P,()=>re(t.device,b)),x=new Uint32Array([se[g]??0,0,0,0]),T=t.renderer.getTemporaryBuffer(x),{pipeline:S,uniformLayout:Z,srcBindGroupLayout:q}=Q(t.device,t.renderer.format);L(s,f.createView(),S,[t.device.createBindGroup({layout:Z,entries:[{binding:0,resource:{buffer:T}},{binding:1,resource:G.createView()},{binding:2,resource:m}]}),t.renderer.bindGroupCache.getBindGroup(t.device,q,p,m)])}O(t.device,s,f,h),H(n,f,a.opacity??1)};var ae=E({WebGPURenderer:z}),ye=ae;export{ae as a,ye as b};
|