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,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { o as resolveHandleParam } from "./renderer-BSitV56h.mjs";
|
|
2
|
+
import { a as configBuilder, i as VideoResultSchema, n as ImageResultSchema } from "./dist-BY0bIWgr.mjs";
|
|
3
|
+
import { a as createFullscreenPipeline, c as drawTextureToTarget, d as signalTextureView, f as signalTiming, l as fragmentBindGroupLayout, o as drawChildToTexture, p as texturesLayout, s as drawFullscreenPass, t as FULLSCREEN_QUAD_WGSL } from "./gpu-DG3gI88-.mjs";
|
|
3
4
|
import { z } from "zod";
|
|
4
5
|
|
|
5
|
-
//#region ../../nodes/node-shadows-highlights/dist/renderers-
|
|
6
|
+
//#region ../../nodes/node-shadows-highlights/dist/renderers-CCz2R7ss.mjs
|
|
6
7
|
const MAX_RADIUS = 250;
|
|
7
8
|
const MIN_RADIUS = 1;
|
|
8
9
|
const MAX_AMOUNT = 100;
|
|
@@ -96,27 +97,7 @@ struct ShadowsHighlightsUniforms {
|
|
|
96
97
|
@group(2) @binding(6) var colorCorrectionSigTex : texture_2d<f32>;
|
|
97
98
|
@group(2) @binding(7) var midtoneContrastSigTex : texture_2d<f32>;
|
|
98
99
|
@group(2) @binding(8) var signalSamp : sampler;
|
|
99
|
-
|
|
100
|
-
struct VSOut {
|
|
101
|
-
@builtin(position) pos : vec4<f32>,
|
|
102
|
-
@location(0) uv : vec2<f32>,
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
@vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
|
|
106
|
-
var pos = array<vec2<f32>, 4>(
|
|
107
|
-
vec2<f32>(-1.0, 1.0),
|
|
108
|
-
vec2<f32>(1.0, 1.0),
|
|
109
|
-
vec2<f32>(-1.0, -1.0),
|
|
110
|
-
vec2<f32>(1.0, -1.0)
|
|
111
|
-
);
|
|
112
|
-
var uv = array<vec2<f32>, 4>(
|
|
113
|
-
vec2<f32>(0.0, 0.0),
|
|
114
|
-
vec2<f32>(1.0, 0.0),
|
|
115
|
-
vec2<f32>(0.0, 1.0),
|
|
116
|
-
vec2<f32>(1.0, 1.0)
|
|
117
|
-
);
|
|
118
|
-
return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
|
|
119
|
-
}
|
|
100
|
+
${FULLSCREEN_QUAD_WGSL}
|
|
120
101
|
|
|
121
102
|
fn get_luminance(c: vec3<f32>) -> f32 {
|
|
122
103
|
return dot(c, vec3<f32>(0.2126, 0.7152, 0.0722));
|
|
@@ -323,104 +304,32 @@ const shadowsHighlightsUniformData = new Float32Array(20);
|
|
|
323
304
|
function getShadowsHighlightsResources(device, targetFormat) {
|
|
324
305
|
const cached = deviceResourceCache.get(device);
|
|
325
306
|
if (cached) return cached;
|
|
326
|
-
const uniformLayout = device
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
binding: 0,
|
|
334
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
335
|
-
texture: { sampleType: "float" }
|
|
336
|
-
},
|
|
337
|
-
{
|
|
338
|
-
binding: 1,
|
|
339
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
340
|
-
sampler: { type: "filtering" }
|
|
341
|
-
},
|
|
342
|
-
{
|
|
343
|
-
binding: 2,
|
|
344
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
345
|
-
texture: { sampleType: "float" }
|
|
346
|
-
}
|
|
347
|
-
] });
|
|
348
|
-
const signalTextureLayout = device.createBindGroupLayout({ entries: [
|
|
349
|
-
{
|
|
350
|
-
binding: 0,
|
|
351
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
352
|
-
texture: { sampleType: "float" }
|
|
353
|
-
},
|
|
354
|
-
{
|
|
355
|
-
binding: 1,
|
|
356
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
357
|
-
texture: { sampleType: "float" }
|
|
358
|
-
},
|
|
359
|
-
{
|
|
360
|
-
binding: 2,
|
|
361
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
362
|
-
texture: { sampleType: "float" }
|
|
363
|
-
},
|
|
364
|
-
{
|
|
365
|
-
binding: 3,
|
|
366
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
367
|
-
texture: { sampleType: "float" }
|
|
368
|
-
},
|
|
369
|
-
{
|
|
370
|
-
binding: 4,
|
|
371
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
372
|
-
texture: { sampleType: "float" }
|
|
373
|
-
},
|
|
374
|
-
{
|
|
375
|
-
binding: 5,
|
|
376
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
377
|
-
texture: { sampleType: "float" }
|
|
378
|
-
},
|
|
379
|
-
{
|
|
380
|
-
binding: 6,
|
|
381
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
382
|
-
texture: { sampleType: "float" }
|
|
383
|
-
},
|
|
384
|
-
{
|
|
385
|
-
binding: 7,
|
|
386
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
387
|
-
texture: { sampleType: "float" }
|
|
388
|
-
},
|
|
389
|
-
{
|
|
390
|
-
binding: 8,
|
|
391
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
392
|
-
sampler: { type: "filtering" }
|
|
393
|
-
}
|
|
394
|
-
] });
|
|
395
|
-
const shaderModule = device.createShaderModule({ code: WGSL_SHADOWS_HIGHLIGHTS_UNIFORMS });
|
|
396
|
-
const pipelineLayout = device.createPipelineLayout({ bindGroupLayouts: [
|
|
397
|
-
uniformLayout,
|
|
398
|
-
textureLayout,
|
|
399
|
-
signalTextureLayout
|
|
400
|
-
] });
|
|
307
|
+
const uniformLayout = fragmentBindGroupLayout(device, ["uniform"]);
|
|
308
|
+
const textureLayout = fragmentBindGroupLayout(device, [
|
|
309
|
+
"texture",
|
|
310
|
+
"sampler",
|
|
311
|
+
"texture"
|
|
312
|
+
]);
|
|
313
|
+
const signalTextureLayout = texturesLayout(device, 8);
|
|
401
314
|
const res = {
|
|
402
315
|
uniformLayout,
|
|
403
316
|
textureLayout,
|
|
404
317
|
signalTextureLayout,
|
|
405
|
-
pipeline: device
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
entryPoint: "fs",
|
|
414
|
-
targets: [{ format: targetFormat }]
|
|
415
|
-
},
|
|
416
|
-
primitive: { topology: "triangle-strip" }
|
|
318
|
+
pipeline: createFullscreenPipeline(device, {
|
|
319
|
+
module: device.createShaderModule({ code: WGSL_SHADOWS_HIGHLIGHTS_UNIFORMS }),
|
|
320
|
+
layouts: device.createPipelineLayout({ bindGroupLayouts: [
|
|
321
|
+
uniformLayout,
|
|
322
|
+
textureLayout,
|
|
323
|
+
signalTextureLayout
|
|
324
|
+
] }),
|
|
325
|
+
format: targetFormat
|
|
417
326
|
})
|
|
418
327
|
};
|
|
419
328
|
deviceResourceCache.set(device, res);
|
|
420
329
|
return res;
|
|
421
330
|
}
|
|
422
331
|
const WebGPURenderer = async (args) => {
|
|
423
|
-
const { ctx, encoder, pass,
|
|
332
|
+
const { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props } = args;
|
|
424
333
|
const op = props.virtualMedia?.operation;
|
|
425
334
|
if (op?.op !== "ShadowsHighlights" || !op) return;
|
|
426
335
|
const childMedia = props.virtualMedia.children?.[0];
|
|
@@ -431,29 +340,7 @@ const WebGPURenderer = async (args) => {
|
|
|
431
340
|
const width = targetWidth;
|
|
432
341
|
const height = targetHeight;
|
|
433
342
|
const nodeId = (props.virtualMedia?.metadata)?.id || (op.inputs ? Object.keys(op.inputs)[0] : null) || props.renderId || "shadowshighlights_node";
|
|
434
|
-
const resolveField = (handleId, fallbackVal, clampMin = 0, clampMax = 1e3) =>
|
|
435
|
-
if (handleId && op.inputs?.[handleId]?.connectionValid) {
|
|
436
|
-
const outputItem = op.inputs[handleId].outputItem;
|
|
437
|
-
if (outputItem?.type === "Number") {
|
|
438
|
-
const numVal = typeof outputItem.data === "number" ? outputItem.data : outputItem.data?.value ?? fallbackVal;
|
|
439
|
-
return {
|
|
440
|
-
val: Math.max(clampMin, Math.min(clampMax, numVal)),
|
|
441
|
-
hasStaticSig: false,
|
|
442
|
-
sd: null
|
|
443
|
-
};
|
|
444
|
-
}
|
|
445
|
-
if (outputItem?.type === "Signal" && outputItem.data) return {
|
|
446
|
-
val: fallbackVal,
|
|
447
|
-
hasStaticSig: true,
|
|
448
|
-
sd: outputItem.data
|
|
449
|
-
};
|
|
450
|
-
}
|
|
451
|
-
return {
|
|
452
|
-
val: Math.max(clampMin, Math.min(clampMax, fallbackVal)),
|
|
453
|
-
hasStaticSig: false,
|
|
454
|
-
sd: null
|
|
455
|
-
};
|
|
456
|
-
};
|
|
343
|
+
const resolveField = (handleId, fallbackVal, clampMin = 0, clampMax = 1e3) => resolveHandleParam(op.inputs, handleId, fallbackVal, clampMin, clampMax);
|
|
457
344
|
const shadowAmountRes = resolveField(op.shadowAmountHandleId, Number(op.shadowAmount ?? 0), 0, MAX_AMOUNT);
|
|
458
345
|
const shadowTonalWidthRes = resolveField(op.shadowTonalWidthHandleId, Number(op.shadowTonalWidth ?? 50), 0, 100);
|
|
459
346
|
const shadowRadiusRes = resolveField(op.shadowRadiusHandleId, Number(op.shadowRadius ?? 30), MIN_RADIUS, MAX_RADIUS);
|
|
@@ -462,51 +349,24 @@ const WebGPURenderer = async (args) => {
|
|
|
462
349
|
const highlightRadiusRes = resolveField(op.highlightRadiusHandleId, Number(op.highlightRadius ?? 30), MIN_RADIUS, MAX_RADIUS);
|
|
463
350
|
const colorCorrectionRes = resolveField(op.colorCorrectionHandleId, Number(op.colorCorrection ?? 0), -100, 100);
|
|
464
351
|
const midtoneContrastRes = resolveField(op.midtoneContrastHandleId, Number(op.midtoneContrast ?? 0), -100, 100);
|
|
465
|
-
const
|
|
466
|
-
const tmpView = tmpTex.createView();
|
|
467
|
-
ctx.renderer.beginFrame(encoder, tmpView, {
|
|
468
|
-
r: 0,
|
|
469
|
-
g: 0,
|
|
470
|
-
b: 0,
|
|
471
|
-
a: 0
|
|
472
|
-
}, width, height, "clear").end();
|
|
473
|
-
ctx.renderer.pushScissor({
|
|
474
|
-
x: 0,
|
|
475
|
-
y: 0,
|
|
476
|
-
width,
|
|
477
|
-
height
|
|
478
|
-
});
|
|
479
|
-
ctx.renderer.pushIdentity();
|
|
480
|
-
await drawChild(childMedia, {
|
|
481
|
-
...props,
|
|
482
|
-
virtualMedia: childMedia
|
|
483
|
-
}, tmpView, tmpTex, width, height);
|
|
484
|
-
ctx.renderer.popTransform();
|
|
485
|
-
ctx.renderer.popScissor();
|
|
352
|
+
const { texture: tmpTex } = await drawChildToTexture(args, childMedia);
|
|
486
353
|
if (shadowAmountRes.val <= 0 && !shadowAmountRes.hasStaticSig && highlightAmountRes.val <= 0 && !highlightAmountRes.hasStaticSig && midtoneContrastRes.val === 0 && !midtoneContrastRes.hasStaticSig) {
|
|
487
|
-
|
|
488
|
-
r: 0,
|
|
489
|
-
g: 0,
|
|
490
|
-
b: 0,
|
|
491
|
-
a: 0
|
|
492
|
-
}, targetWidth, targetHeight, "load");
|
|
493
|
-
ctx.renderer.drawTexture(finalPass$1, tmpTex, {
|
|
494
|
-
x: 0,
|
|
495
|
-
y: 0,
|
|
496
|
-
width: targetWidth,
|
|
497
|
-
height: targetHeight
|
|
498
|
-
}, { opacity: op.opacity ?? 1 });
|
|
499
|
-
args.pass = finalPass$1;
|
|
354
|
+
drawTextureToTarget(args, tmpTex, op.opacity ?? 1);
|
|
500
355
|
return;
|
|
501
356
|
}
|
|
502
357
|
const { pipeline, uniformLayout: uLayout, textureLayout: tLayout, signalTextureLayout: sigLayout } = getShadowsHighlightsResources(ctx.device, ctx.renderer.format);
|
|
503
358
|
const sampler = ctx.renderer.samplerCache.getSampler(ctx.device);
|
|
504
|
-
const elapsedSeconds
|
|
505
|
-
const
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
359
|
+
const { elapsedSeconds, durationSeconds } = signalTiming(props, frame, fps);
|
|
360
|
+
const signalContext = {
|
|
361
|
+
args,
|
|
362
|
+
width,
|
|
363
|
+
height,
|
|
364
|
+
frame,
|
|
365
|
+
fps,
|
|
366
|
+
elapsedSeconds,
|
|
367
|
+
durationSeconds
|
|
509
368
|
};
|
|
369
|
+
const getSignalView = (res, suffix) => signalTextureView(signalContext, res, `${nodeId}_${suffix}`);
|
|
510
370
|
const shadowAmountView = getSignalView(shadowAmountRes, "shadow_amount_sig");
|
|
511
371
|
const shadowTonalWidthView = getSignalView(shadowTonalWidthRes, "shadow_tonal_width_sig");
|
|
512
372
|
const shadowRadiusView = getSignalView(shadowRadiusRes, "shadow_radius_sig");
|
|
@@ -606,72 +466,36 @@ const WebGPURenderer = async (args) => {
|
|
|
606
466
|
shadowsHighlightsUniformData[1] = 0;
|
|
607
467
|
shadowsHighlightsUniformData[10] = 0;
|
|
608
468
|
const hBuffer = ctx.renderer.getTemporaryBuffer(shadowsHighlightsUniformData);
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
hPass.setPipeline(pipeline);
|
|
621
|
-
hPass.setBindGroup(0, ctx.device.createBindGroup({
|
|
622
|
-
layout: uLayout,
|
|
623
|
-
entries: [{
|
|
624
|
-
binding: 0,
|
|
625
|
-
resource: { buffer: hBuffer }
|
|
626
|
-
}]
|
|
627
|
-
}));
|
|
628
|
-
hPass.setBindGroup(1, createBindGroup(tmpTex, tmpTex));
|
|
629
|
-
hPass.setBindGroup(2, sigBindGroup);
|
|
630
|
-
hPass.draw(4);
|
|
631
|
-
hPass.end();
|
|
469
|
+
drawFullscreenPass(encoder, outTex1.createView(), pipeline, [
|
|
470
|
+
ctx.device.createBindGroup({
|
|
471
|
+
layout: uLayout,
|
|
472
|
+
entries: [{
|
|
473
|
+
binding: 0,
|
|
474
|
+
resource: { buffer: hBuffer }
|
|
475
|
+
}]
|
|
476
|
+
}),
|
|
477
|
+
createBindGroup(tmpTex, tmpTex),
|
|
478
|
+
sigBindGroup
|
|
479
|
+
]);
|
|
632
480
|
shadowsHighlightsUniformData[0] = 0;
|
|
633
481
|
shadowsHighlightsUniformData[1] = 1;
|
|
634
482
|
shadowsHighlightsUniformData[10] = 1;
|
|
635
483
|
const vBuffer = ctx.renderer.getTemporaryBuffer(shadowsHighlightsUniformData);
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
vPass.setBindGroup(0, ctx.device.createBindGroup({
|
|
649
|
-
layout: uLayout,
|
|
650
|
-
entries: [{
|
|
651
|
-
binding: 0,
|
|
652
|
-
resource: { buffer: vBuffer }
|
|
653
|
-
}]
|
|
654
|
-
}));
|
|
655
|
-
vPass.setBindGroup(1, createBindGroup(outTex1, tmpTex));
|
|
656
|
-
vPass.setBindGroup(2, sigBindGroup);
|
|
657
|
-
vPass.draw(4);
|
|
658
|
-
vPass.end();
|
|
659
|
-
const finalPass = ctx.renderer.beginFrame(encoder, targetView, {
|
|
660
|
-
r: 0,
|
|
661
|
-
g: 0,
|
|
662
|
-
b: 0,
|
|
663
|
-
a: 0
|
|
664
|
-
}, targetWidth, targetHeight, "load");
|
|
665
|
-
ctx.renderer.drawTexture(finalPass, outTex2, {
|
|
666
|
-
x: 0,
|
|
667
|
-
y: 0,
|
|
668
|
-
width: targetWidth,
|
|
669
|
-
height: targetHeight
|
|
670
|
-
}, { opacity: op.opacity ?? 1 });
|
|
671
|
-
args.pass = finalPass;
|
|
484
|
+
drawFullscreenPass(encoder, outTex2.createView(), pipeline, [
|
|
485
|
+
ctx.device.createBindGroup({
|
|
486
|
+
layout: uLayout,
|
|
487
|
+
entries: [{
|
|
488
|
+
binding: 0,
|
|
489
|
+
resource: { buffer: vBuffer }
|
|
490
|
+
}]
|
|
491
|
+
}),
|
|
492
|
+
createBindGroup(outTex1, tmpTex),
|
|
493
|
+
sigBindGroup
|
|
494
|
+
]);
|
|
495
|
+
drawTextureToTarget(args, outTex2, op.opacity ?? 1);
|
|
672
496
|
};
|
|
673
497
|
var renderers_default = { WebGPURenderer };
|
|
674
498
|
|
|
675
499
|
//#endregion
|
|
676
500
|
export { renderers_default as n, WebGPURenderer as t };
|
|
677
|
-
//# sourceMappingURL=renderer-
|
|
501
|
+
//# sourceMappingURL=renderer-Dno-fujw.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer-Dno-fujw.mjs","names":[],"sources":["../../../nodes/node-shadows-highlights/dist/renderers-CCz2R7ss.mjs"],"sourcesContent":["import { ImageResultSchema, VideoResultSchema, configBuilder, resolveHandleParam } from \"@framefields/node-sdk\";\nimport { FULLSCREEN_QUAD_WGSL, createFullscreenPipeline, drawChildToTexture, drawFullscreenPass, drawTextureToTarget, fragmentBindGroupLayout, signalTextureView, signalTiming, texturesLayout } from \"@framefields/node-sdk/gpu\";\nimport { z } from \"zod\";\n\n//#region src/shared/config.ts\nconst MAX_RADIUS = 250;\nconst MIN_RADIUS = 1;\nconst MAX_AMOUNT = 100;\nconst shadowsHighlightsConfig = configBuilder().field(\"shadowAmount\", z.number().min(0).max(100).default(0), {\n\tbindable: true,\n\tdataTypes: [\"Number\", \"Signal\"],\n\tlabel: \"Shadow Boost (%)\",\n\tdescription: \"Percentage to lift and recover crushed shadow details (0–100%).\"\n}).field(\"shadowTonalWidth\", z.number().min(0).max(100).default(50), {\n\tbindable: true,\n\tdataTypes: [\"Number\", \"Signal\"],\n\tlabel: \"Shadow Range (%)\",\n\tdescription: \"Range of dark tones affected by shadow adjustments (0–100%).\"\n}).field(\"shadowRadius\", z.number().min(1).max(250).default(30), {\n\tbindable: true,\n\tdataTypes: [\"Number\", \"Signal\"],\n\tlabel: \"Shadow Radius (px)\",\n\tdescription: \"Local neighborhood radius in pixels to determine shadow illumination (1–250px).\"\n}).field(\"highlightAmount\", z.number().min(0).max(100).default(0), {\n\tbindable: true,\n\tdataTypes: [\"Number\", \"Signal\"],\n\tlabel: \"Highlight Suppression (%)\",\n\tdescription: \"Percentage to suppress and recover blown highlight details (0–100%).\"\n}).field(\"highlightTonalWidth\", z.number().min(0).max(100).default(50), {\n\tbindable: true,\n\tdataTypes: [\"Number\", \"Signal\"],\n\tlabel: \"Highlight Range (%)\",\n\tdescription: \"Range of bright tones affected by highlight adjustments (0–100%).\"\n}).field(\"highlightRadius\", z.number().min(1).max(250).default(30), {\n\tbindable: true,\n\tdataTypes: [\"Number\", \"Signal\"],\n\tlabel: \"Highlight Radius (px)\",\n\tdescription: \"Local neighborhood radius in pixels to determine highlight exposure (1–250px).\"\n}).field(\"colorCorrection\", z.number().min(-100).max(100).default(0), {\n\tbindable: true,\n\tdataTypes: [\"Number\", \"Signal\"],\n\tlabel: \"Color Correction (%)\",\n\tdescription: \"Fine-tunes color saturation in recovered shadow/highlight zones (-100 to +100%).\"\n}).field(\"midtoneContrast\", z.number().min(-100).max(100).default(0), {\n\tbindable: true,\n\tdataTypes: [\"Number\", \"Signal\"],\n\tlabel: \"Midtone Contrast (%)\",\n\tdescription: \"Adjusts contrast centered on the midtones (-100 to +100%).\"\n}).build();\nconst ShadowsHighlightsNodeConfigSchema = shadowsHighlightsConfig.schema;\nconst ShadowsHighlightsResultSchema = z.union([ImageResultSchema, VideoResultSchema]);\nconst ShadowsHighlightsOperationSchema = ShadowsHighlightsNodeConfigSchema.extend({\n\top: z.literal(\"ShadowsHighlights\"),\n\tmetadata: z.unknown().optional()\n});\nconst defaultShadowsHighlightsConfig = ShadowsHighlightsNodeConfigSchema.parse({});\nconst SHADOWS_HIGHLIGHTS_PRESETS = [\n\t{\n\t\tid: \"default\",\n\t\tname: \"Default (Neutral)\",\n\t\tdescription: \"Zero adjustments across dynamic range\",\n\t\tconfig: {\n\t\t\tshadowAmount: 0,\n\t\t\tshadowTonalWidth: 50,\n\t\t\tshadowRadius: 30,\n\t\t\thighlightAmount: 0,\n\t\t\thighlightTonalWidth: 50,\n\t\t\thighlightRadius: 30,\n\t\t\tcolorCorrection: 0,\n\t\t\tmidtoneContrast: 0\n\t\t}\n\t},\n\t{\n\t\tid: \"shadow-lift\",\n\t\tname: \"Shadow Detail Lift\",\n\t\tdescription: \"Gently opens up underexposed shadows without bleaching midtones\",\n\t\tconfig: {\n\t\t\tshadowAmount: 40,\n\t\t\tshadowTonalWidth: 50,\n\t\t\tshadowRadius: 35,\n\t\t\thighlightAmount: 0,\n\t\t\thighlightTonalWidth: 50,\n\t\t\thighlightRadius: 30,\n\t\t\tcolorCorrection: 10,\n\t\t\tmidtoneContrast: 0\n\t\t}\n\t},\n\t{\n\t\tid: \"highlight-recovery\",\n\t\tname: \"Highlight Recovery\",\n\t\tdescription: \"Pulls back blown sky, cloud, and specular highlight clipping\",\n\t\tconfig: {\n\t\t\tshadowAmount: 0,\n\t\t\tshadowTonalWidth: 50,\n\t\t\tshadowRadius: 30,\n\t\t\thighlightAmount: 45,\n\t\t\thighlightTonalWidth: 40,\n\t\t\thighlightRadius: 30,\n\t\t\tcolorCorrection: -5,\n\t\t\tmidtoneContrast: 0\n\t\t}\n\t},\n\t{\n\t\tid: \"hdr-balance\",\n\t\tname: \"HDR Dynamic Range\",\n\t\tdescription: \"Balanced recovery expanding visible dynamic range in high contrast scenes\",\n\t\tconfig: {\n\t\t\tshadowAmount: 35,\n\t\t\tshadowTonalWidth: 50,\n\t\t\tshadowRadius: 40,\n\t\t\thighlightAmount: 35,\n\t\t\thighlightTonalWidth: 50,\n\t\t\thighlightRadius: 40,\n\t\t\tcolorCorrection: 15,\n\t\t\tmidtoneContrast: 10\n\t\t}\n\t},\n\t{\n\t\tid: \"backlight-correction\",\n\t\tname: \"Backlight Correction\",\n\t\tdescription: \"Compensates for harsh backlighting illuminating silhouetted subjects\",\n\t\tconfig: {\n\t\t\tshadowAmount: 60,\n\t\t\tshadowTonalWidth: 60,\n\t\t\tshadowRadius: 50,\n\t\t\thighlightAmount: 20,\n\t\t\thighlightTonalWidth: 35,\n\t\t\thighlightRadius: 30,\n\t\t\tcolorCorrection: 20,\n\t\t\tmidtoneContrast: 5\n\t\t}\n\t},\n\t{\n\t\tid: \"dramatic-punch\",\n\t\tname: \"Dramatic Contrast & Clarity\",\n\t\tdescription: \"Deepens shadows, compresses highlights, and boosts midtone punch\",\n\t\tconfig: {\n\t\t\tshadowAmount: 10,\n\t\t\tshadowTonalWidth: 30,\n\t\t\tshadowRadius: 25,\n\t\t\thighlightAmount: 30,\n\t\t\thighlightTonalWidth: 55,\n\t\t\thighlightRadius: 25,\n\t\t\tcolorCorrection: 5,\n\t\t\tmidtoneContrast: 25\n\t\t}\n\t},\n\t{\n\t\tid: \"gentle-fill\",\n\t\tname: \"Gentle Fill Light\",\n\t\tdescription: \"Subtle lift to low-light areas preserving photographic atmosphere\",\n\t\tconfig: {\n\t\t\tshadowAmount: 20,\n\t\t\tshadowTonalWidth: 40,\n\t\t\tshadowRadius: 30,\n\t\t\thighlightAmount: 15,\n\t\t\thighlightTonalWidth: 40,\n\t\t\thighlightRadius: 30,\n\t\t\tcolorCorrection: 5,\n\t\t\tmidtoneContrast: 0\n\t\t}\n\t}\n];\nconst SHADOWS_HIGHLIGHTS_OUTPUT_TYPE_MAP = {\n\tVideo: \"Video\",\n\tLottie: \"Video\",\n\tGIF: \"GIF\",\n\tImage: \"Image\",\n\tSVG: \"Image\"\n};\n\n//#endregion\n//#region src/renderers/webgpu-renderer.ts\nconst WGSL_SHADOWS_HIGHLIGHTS_UNIFORMS = `\nstruct ShadowsHighlightsUniforms {\n\tdirX : f32,\n\tdirY : f32,\n\tshadowRadius : f32,\n\thighlightRadius : f32,\n\n\tshadowAmount : f32,\n\tshadowTonalWidth : f32,\n\thighlightAmount : f32,\n\thighlightTonalWidth : f32,\n\n\tcolorCorrection : f32,\n\tmidtoneContrast : f32,\n\tisSecondPass : f32,\n\t_pad0 : f32,\n\n\thasShadowAmountSig : f32,\n\thasShadowTonalWidthSig : f32,\n\thasShadowRadiusSig : f32,\n\thasHighlightAmountSig : f32,\n\n\thasHighlightTonalWidthSig : f32,\n\thasHighlightRadiusSig : f32,\n\thasColorCorrectionSig : f32,\n\thasMidtoneContrastSig : f32,\n};\n\n@group(0) @binding(0) var<uniform> u : ShadowsHighlightsUniforms;\n@group(1) @binding(0) var tex : texture_2d<f32>;\n@group(1) @binding(1) var samp : sampler;\n@group(1) @binding(2) var origTex : texture_2d<f32>;\n\n@group(2) @binding(0) var shadowAmountSigTex : texture_2d<f32>;\n@group(2) @binding(1) var shadowTonalWidthSigTex : texture_2d<f32>;\n@group(2) @binding(2) var shadowRadiusSigTex : texture_2d<f32>;\n@group(2) @binding(3) var highlightAmountSigTex : texture_2d<f32>;\n@group(2) @binding(4) var highlightTonalWidthSigTex : texture_2d<f32>;\n@group(2) @binding(5) var highlightRadiusSigTex : texture_2d<f32>;\n@group(2) @binding(6) var colorCorrectionSigTex : texture_2d<f32>;\n@group(2) @binding(7) var midtoneContrastSigTex : texture_2d<f32>;\n@group(2) @binding(8) var signalSamp : sampler;\n${FULLSCREEN_QUAD_WGSL}\n\nfn get_luminance(c: vec3<f32>) -> f32 {\n\treturn dot(c, vec3<f32>(0.2126, 0.7152, 0.0722));\n}\n\n@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {\n\tlet origCol = textureSampleLevel(origTex, samp, in.uv, 0.0);\n\n\tvar sAmount = u.shadowAmount;\n\tif (u.hasShadowAmountSig > 0.5) {\n\t\tsAmount = textureSampleLevel(shadowAmountSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n\t}\n\tsAmount = clamp(sAmount, 0.0, 100.0);\n\n\tvar sTonalWidthVal = u.shadowTonalWidth;\n\tif (u.hasShadowTonalWidthSig > 0.5) {\n\t\tsTonalWidthVal = textureSampleLevel(shadowTonalWidthSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n\t}\n\tsTonalWidthVal = clamp(sTonalWidthVal, 0.0, 100.0);\n\n\tvar sRadius = u.shadowRadius;\n\tif (u.hasShadowRadiusSig > 0.5) {\n\t\tsRadius = textureSampleLevel(shadowRadiusSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n\t}\n\tsRadius = clamp(sRadius, 1.0, 250.0);\n\n\tvar hAmount = u.highlightAmount;\n\tif (u.hasHighlightAmountSig > 0.5) {\n\t\thAmount = textureSampleLevel(highlightAmountSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n\t}\n\thAmount = clamp(hAmount, 0.0, 100.0);\n\n\tvar hTonalWidthVal = u.highlightTonalWidth;\n\tif (u.hasHighlightTonalWidthSig > 0.5) {\n\t\thTonalWidthVal = textureSampleLevel(highlightTonalWidthSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n\t}\n\thTonalWidthVal = clamp(hTonalWidthVal, 0.0, 100.0);\n\n\tvar hRadius = u.highlightRadius;\n\tif (u.hasHighlightRadiusSig > 0.5) {\n\t\thRadius = textureSampleLevel(highlightRadiusSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n\t}\n\thRadius = clamp(hRadius, 1.0, 250.0);\n\n\tvar colCorrVal = u.colorCorrection;\n\tif (u.hasColorCorrectionSig > 0.5) {\n\t\tcolCorrVal = textureSampleLevel(colorCorrectionSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n\t}\n\tcolCorrVal = clamp(colCorrVal, -100.0, 100.0);\n\n\tvar midContrastVal = u.midtoneContrast;\n\tif (u.hasMidtoneContrastSig > 0.5) {\n\t\tmidContrastVal = textureSampleLevel(midtoneContrastSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n\t}\n\tmidContrastVal = clamp(midContrastVal, -100.0, 100.0);\n\n\tif (sAmount <= 0.0 && hAmount <= 0.0 && abs(midContrastVal) <= 0.0) {\n\t\tif (u.isSecondPass > 0.5) {\n\t\t\treturn origCol;\n\t\t}\n\t\treturn origCol;\n\t}\n\n\tlet dimensions = vec2<f32>(textureDimensions(tex));\n\tlet texelSize = 1.0 / dimensions;\n\tlet direction = vec2<f32>(u.dirX, u.dirY);\n\n\tlet lumaOrig = get_luminance(origCol.rgb / max(origCol.a, 1e-5));\n\n\t// Shadow blur parameters\n\tlet sSpatialSigma = sRadius;\n\tlet stepScaleS = max(1.0, sSpatialSigma / 20.0);\n\tlet effectiveSigmaS = sSpatialSigma / stepScaleS;\n\tlet sampleRadiusS = min(i32(ceil(3.0 * effectiveSigmaS)), 64);\n\n\t// Highlight blur parameters\n\tlet hSpatialSigma = hRadius;\n\tlet stepScaleH = max(1.0, hSpatialSigma / 20.0);\n\tlet effectiveSigmaH = hSpatialSigma / stepScaleH;\n\tlet sampleRadiusH = min(i32(ceil(3.0 * effectiveSigmaH)), 64);\n\n\tif (u.isSecondPass <= 0.5) {\n\t\t// PASS 1: Horizontal blur of luminance from origTex\n\t\t// Output packed channels: R = sLumaPass1, G = hLumaPass1, B = sAlphaPass1, A = hAlphaPass1\n\t\tvar sSum = 0.0;\n\t\tvar sWeightSum = 0.0;\n\t\tvar sAlphaSum = 0.0;\n\t\tvar sKernelSum = 0.0;\n\n\t\tfor (var i = -sampleRadiusS; i <= sampleRadiusS; i++) {\n\t\t\tlet offset = vec2<f32>(f32(i) * stepScaleS) * direction * texelSize;\n\t\t\tlet x = f32(i) * stepScaleS;\n\t\t\tlet weight = exp(-0.5 * (x / sSpatialSigma) * (x / sSpatialSigma));\n\t\t\tlet sampleCol = textureSampleLevel(tex, samp, in.uv + offset, 0.0);\n\t\t\tlet sampleAlpha = sampleCol.a;\n\t\t\tlet sampleLuma = get_luminance(sampleCol.rgb / max(sampleAlpha, 1e-5));\n\t\t\tsSum += sampleLuma * weight * sampleAlpha;\n\t\t\tsWeightSum += weight * sampleAlpha;\n\t\t\tsAlphaSum += sampleAlpha * weight;\n\t\t\tsKernelSum += weight;\n\t\t}\n\n\t\tvar hSum = 0.0;\n\t\tvar hWeightSum = 0.0;\n\t\tvar hAlphaSum = 0.0;\n\t\tvar hKernelSum = 0.0;\n\n\t\tfor (var i = -sampleRadiusH; i <= sampleRadiusH; i++) {\n\t\t\tlet offset = vec2<f32>(f32(i) * stepScaleH) * direction * texelSize;\n\t\t\tlet x = f32(i) * stepScaleH;\n\t\t\tlet weight = exp(-0.5 * (x / hSpatialSigma) * (x / hSpatialSigma));\n\t\t\tlet sampleCol = textureSampleLevel(tex, samp, in.uv + offset, 0.0);\n\t\t\tlet sampleAlpha = sampleCol.a;\n\t\t\tlet sampleLuma = get_luminance(sampleCol.rgb / max(sampleAlpha, 1e-5));\n\t\t\thSum += sampleLuma * weight * sampleAlpha;\n\t\t\thWeightSum += weight * sampleAlpha;\n\t\t\thAlphaSum += sampleAlpha * weight;\n\t\t\thKernelSum += weight;\n\t\t}\n\n\t\tlet sLumaPass1 = select(lumaOrig, sSum / sWeightSum, sWeightSum > 1e-5);\n\t\tlet sAlphaPass1 = sAlphaSum / max(sKernelSum, 1e-5);\n\t\tlet hLumaPass1 = select(lumaOrig, hSum / hWeightSum, hWeightSum > 1e-5);\n\t\tlet hAlphaPass1 = hAlphaSum / max(hKernelSum, 1e-5);\n\n\t\treturn vec4<f32>(sLumaPass1, hLumaPass1, sAlphaPass1, hAlphaPass1);\n\t}\n\n\t// PASS 2: Vertical blur of Pass 1 + Dynamic Range Recovery\n\tif (origCol.a < 1e-5) {\n\t\treturn vec4<f32>(0.0, 0.0, 0.0, 0.0);\n\t}\n\n\tvar sSum = 0.0;\n\tvar sWeightSum = 0.0;\n\n\tfor (var i = -sampleRadiusS; i <= sampleRadiusS; i++) {\n\t\tlet offset = vec2<f32>(f32(i) * stepScaleS) * direction * texelSize;\n\t\tlet x = f32(i) * stepScaleS;\n\t\tlet weight = exp(-0.5 * (x / sSpatialSigma) * (x / sSpatialSigma));\n\t\tlet samplePass1 = textureSampleLevel(tex, samp, in.uv + offset, 0.0);\n\t\tlet sampleAlpha = samplePass1.b;\n\t\tlet sampleLuma = samplePass1.r;\n\t\tsSum += sampleLuma * weight * sampleAlpha;\n\t\tsWeightSum += weight * sampleAlpha;\n\t}\n\n\tvar hSum = 0.0;\n\tvar hWeightSum = 0.0;\n\n\tfor (var i = -sampleRadiusH; i <= sampleRadiusH; i++) {\n\t\tlet offset = vec2<f32>(f32(i) * stepScaleH) * direction * texelSize;\n\t\tlet x = f32(i) * stepScaleH;\n\t\tlet weight = exp(-0.5 * (x / hSpatialSigma) * (x / hSpatialSigma));\n\t\tlet samplePass1 = textureSampleLevel(tex, samp, in.uv + offset, 0.0);\n\t\tlet sampleAlpha = samplePass1.a;\n\t\tlet sampleLuma = samplePass1.g;\n\t\thSum += sampleLuma * weight * sampleAlpha;\n\t\thWeightSum += weight * sampleAlpha;\n\t}\n\n\tlet sLumaBlur = select(lumaOrig, sSum / sWeightSum, sWeightSum > 1e-5);\n\tlet hLumaBlur = select(lumaOrig, hSum / hWeightSum, hWeightSum > 1e-5);\n\n\tlet alpha = origCol.a;\n\tlet rgb = origCol.rgb / alpha;\n\n\tlet sAmountNorm = sAmount / 100.0;\n\tlet hAmountNorm = hAmount / 100.0;\n\tlet sTonalWidth = clamp(sTonalWidthVal / 100.0, 0.01, 1.0);\n\tlet hTonalWidth = clamp(hTonalWidthVal / 100.0, 0.01, 1.0);\n\tlet colCorrNorm = colCorrVal / 100.0;\n\tlet midContrastNorm = midContrastVal / 100.0;\n\n\tlet sEvalLuma = 0.65 * sLumaBlur + 0.35 * lumaOrig;\n\tlet hEvalLuma = 0.65 * hLumaBlur + 0.35 * lumaOrig;\n\n\tlet wShadow = 1.0 - smoothstep(0.0, sTonalWidth, sEvalLuma);\n\tlet wHighlight = smoothstep(1.0 - hTonalWidth, 1.0, hEvalLuma);\n\n\tlet shadowBoost = sAmountNorm * wShadow * (1.0 - lumaOrig) * (1.0 - sqrt(clamp(sLumaBlur, 0.0, 1.0)));\n\tlet highlightSuppression = hAmountNorm * wHighlight * lumaOrig * sqrt(clamp(hLumaBlur, 0.0, 1.0));\n\n\tvar targetLuma = clamp(lumaOrig + shadowBoost - highlightSuppression, 0.0, 1.0);\n\n\tif (abs(midContrastNorm) > 0.001) {\n\t\tlet midDiff = targetLuma - 0.5;\n\t\tlet sCurve = midDiff * (1.0 - 4.0 * midDiff * midDiff);\n\t\ttargetLuma = clamp(targetLuma + midContrastNorm * sCurve * 0.4, 0.0, 1.0);\n\t}\n\n\tvar adjustedRgb = rgb * ((targetLuma + 1e-4) / (lumaOrig + 1e-4));\n\n\tlet effectIntensity = sAmountNorm * wShadow + hAmountNorm * wHighlight;\n\tlet satFactor = clamp(1.0 + colCorrNorm * effectIntensity * 1.5, 0.0, 3.0);\n\tadjustedRgb = mix(vec3<f32>(targetLuma), adjustedRgb, satFactor);\n\n\tlet finalRgb = clamp(adjustedRgb, vec3<f32>(0.0), vec3<f32>(1.0));\n\treturn vec4<f32>(finalRgb * alpha, alpha);\n}\n`;\nconst deviceResourceCache = /* @__PURE__ */ new WeakMap();\nconst shadowsHighlightsUniformData = new Float32Array(20);\nfunction getShadowsHighlightsResources(device, targetFormat) {\n\tconst cached = deviceResourceCache.get(device);\n\tif (cached) return cached;\n\tconst uniformLayout = fragmentBindGroupLayout(device, [\"uniform\"]);\n\tconst textureLayout = fragmentBindGroupLayout(device, [\n\t\t\"texture\",\n\t\t\"sampler\",\n\t\t\"texture\"\n\t]);\n\tconst signalTextureLayout = texturesLayout(device, 8);\n\tconst res = {\n\t\tuniformLayout,\n\t\ttextureLayout,\n\t\tsignalTextureLayout,\n\t\tpipeline: createFullscreenPipeline(device, {\n\t\t\tmodule: device.createShaderModule({ code: WGSL_SHADOWS_HIGHLIGHTS_UNIFORMS }),\n\t\t\tlayouts: device.createPipelineLayout({ bindGroupLayouts: [\n\t\t\t\tuniformLayout,\n\t\t\t\ttextureLayout,\n\t\t\t\tsignalTextureLayout\n\t\t\t] }),\n\t\t\tformat: targetFormat\n\t\t})\n\t};\n\tdeviceResourceCache.set(device, res);\n\treturn res;\n}\nconst WebGPURenderer = async (args) => {\n\tconst { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props } = args;\n\tconst op = props.virtualMedia?.operation;\n\tif (op?.op !== \"ShadowsHighlights\" || !op) return;\n\tconst childMedia = props.virtualMedia.children?.[0];\n\tif (!childMedia) return;\n\tpass.end();\n\tconst frame = props.frame ?? 0;\n\tconst fps = props.fps || 30;\n\tconst width = targetWidth;\n\tconst height = targetHeight;\n\tconst nodeId = (props.virtualMedia?.metadata)?.id || (op.inputs ? Object.keys(op.inputs)[0] : null) || props.renderId || \"shadowshighlights_node\";\n\tconst resolveField = (handleId, fallbackVal, clampMin = 0, clampMax = 1e3) => resolveHandleParam(op.inputs, handleId, fallbackVal, clampMin, clampMax);\n\tconst shadowAmountRes = resolveField(op.shadowAmountHandleId, Number(op.shadowAmount ?? 0), 0, MAX_AMOUNT);\n\tconst shadowTonalWidthRes = resolveField(op.shadowTonalWidthHandleId, Number(op.shadowTonalWidth ?? 50), 0, 100);\n\tconst shadowRadiusRes = resolveField(op.shadowRadiusHandleId, Number(op.shadowRadius ?? 30), MIN_RADIUS, MAX_RADIUS);\n\tconst highlightAmountRes = resolveField(op.highlightAmountHandleId, Number(op.highlightAmount ?? 0), 0, MAX_AMOUNT);\n\tconst highlightTonalWidthRes = resolveField(op.highlightTonalWidthHandleId, Number(op.highlightTonalWidth ?? 50), 0, 100);\n\tconst highlightRadiusRes = resolveField(op.highlightRadiusHandleId, Number(op.highlightRadius ?? 30), MIN_RADIUS, MAX_RADIUS);\n\tconst colorCorrectionRes = resolveField(op.colorCorrectionHandleId, Number(op.colorCorrection ?? 0), -100, 100);\n\tconst midtoneContrastRes = resolveField(op.midtoneContrastHandleId, Number(op.midtoneContrast ?? 0), -100, 100);\n\tconst { texture: tmpTex } = await drawChildToTexture(args, childMedia);\n\tif (shadowAmountRes.val <= 0 && !shadowAmountRes.hasStaticSig && highlightAmountRes.val <= 0 && !highlightAmountRes.hasStaticSig && midtoneContrastRes.val === 0 && !midtoneContrastRes.hasStaticSig) {\n\t\tdrawTextureToTarget(args, tmpTex, op.opacity ?? 1);\n\t\treturn;\n\t}\n\tconst { pipeline, uniformLayout: uLayout, textureLayout: tLayout, signalTextureLayout: sigLayout } = getShadowsHighlightsResources(ctx.device, ctx.renderer.format);\n\tconst sampler = ctx.renderer.samplerCache.getSampler(ctx.device);\n\tconst { elapsedSeconds, durationSeconds } = signalTiming(props, frame, fps);\n\tconst signalContext = {\n\t\targs,\n\t\twidth,\n\t\theight,\n\t\tframe,\n\t\tfps,\n\t\telapsedSeconds,\n\t\tdurationSeconds\n\t};\n\tconst getSignalView = (res, suffix) => signalTextureView(signalContext, res, `${nodeId}_${suffix}`);\n\tconst shadowAmountView = getSignalView(shadowAmountRes, \"shadow_amount_sig\");\n\tconst shadowTonalWidthView = getSignalView(shadowTonalWidthRes, \"shadow_tonal_width_sig\");\n\tconst shadowRadiusView = getSignalView(shadowRadiusRes, \"shadow_radius_sig\");\n\tconst highlightAmountView = getSignalView(highlightAmountRes, \"highlight_amount_sig\");\n\tconst highlightTonalWidthView = getSignalView(highlightTonalWidthRes, \"highlight_tonal_width_sig\");\n\tconst highlightRadiusView = getSignalView(highlightRadiusRes, \"highlight_radius_sig\");\n\tconst colorCorrectionView = getSignalView(colorCorrectionRes, \"color_correction_sig\");\n\tconst midtoneContrastView = getSignalView(midtoneContrastRes, \"midtone_contrast_sig\");\n\tconst createBindGroup = (inputTex, origTexture) => ctx.device.createBindGroup({\n\t\tlayout: tLayout,\n\t\tentries: [\n\t\t\t{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: inputTex.createView()\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 1,\n\t\t\t\tresource: sampler\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 2,\n\t\t\t\tresource: origTexture.createView()\n\t\t\t}\n\t\t]\n\t});\n\tshadowsHighlightsUniformData[2] = shadowRadiusRes.val;\n\tshadowsHighlightsUniformData[3] = highlightRadiusRes.val;\n\tshadowsHighlightsUniformData[4] = shadowAmountRes.val;\n\tshadowsHighlightsUniformData[5] = shadowTonalWidthRes.val;\n\tshadowsHighlightsUniformData[6] = highlightAmountRes.val;\n\tshadowsHighlightsUniformData[7] = highlightTonalWidthRes.val;\n\tshadowsHighlightsUniformData[8] = colorCorrectionRes.val;\n\tshadowsHighlightsUniformData[9] = midtoneContrastRes.val;\n\tshadowsHighlightsUniformData[10] = 0;\n\tshadowsHighlightsUniformData[11] = 0;\n\tshadowsHighlightsUniformData[12] = shadowAmountRes.hasStaticSig ? 1 : 0;\n\tshadowsHighlightsUniformData[13] = shadowTonalWidthRes.hasStaticSig ? 1 : 0;\n\tshadowsHighlightsUniformData[14] = shadowRadiusRes.hasStaticSig ? 1 : 0;\n\tshadowsHighlightsUniformData[15] = highlightAmountRes.hasStaticSig ? 1 : 0;\n\tshadowsHighlightsUniformData[16] = highlightTonalWidthRes.hasStaticSig ? 1 : 0;\n\tshadowsHighlightsUniformData[17] = highlightRadiusRes.hasStaticSig ? 1 : 0;\n\tshadowsHighlightsUniformData[18] = colorCorrectionRes.hasStaticSig ? 1 : 0;\n\tshadowsHighlightsUniformData[19] = midtoneContrastRes.hasStaticSig ? 1 : 0;\n\tconst outTex1 = ctx.renderer.getTemporaryTexture(width, height, [\n\t\ttmpTex,\n\t\ttargetTexture,\n\t\t...props.excludeTextures || []\n\t]);\n\tconst outTex2 = ctx.renderer.getTemporaryTexture(width, height, [\n\t\ttmpTex,\n\t\toutTex1,\n\t\ttargetTexture,\n\t\t...props.excludeTextures || []\n\t]);\n\tconst sigBindGroup = ctx.device.createBindGroup({\n\t\tlayout: sigLayout,\n\t\tentries: [\n\t\t\t{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: shadowAmountView\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 1,\n\t\t\t\tresource: shadowTonalWidthView\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 2,\n\t\t\t\tresource: shadowRadiusView\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 3,\n\t\t\t\tresource: highlightAmountView\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 4,\n\t\t\t\tresource: highlightTonalWidthView\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 5,\n\t\t\t\tresource: highlightRadiusView\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 6,\n\t\t\t\tresource: colorCorrectionView\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 7,\n\t\t\t\tresource: midtoneContrastView\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 8,\n\t\t\t\tresource: sampler\n\t\t\t}\n\t\t]\n\t});\n\tshadowsHighlightsUniformData[0] = 1;\n\tshadowsHighlightsUniformData[1] = 0;\n\tshadowsHighlightsUniformData[10] = 0;\n\tconst hBuffer = ctx.renderer.getTemporaryBuffer(shadowsHighlightsUniformData);\n\tdrawFullscreenPass(encoder, outTex1.createView(), pipeline, [\n\t\tctx.device.createBindGroup({\n\t\t\tlayout: uLayout,\n\t\t\tentries: [{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: { buffer: hBuffer }\n\t\t\t}]\n\t\t}),\n\t\tcreateBindGroup(tmpTex, tmpTex),\n\t\tsigBindGroup\n\t]);\n\tshadowsHighlightsUniformData[0] = 0;\n\tshadowsHighlightsUniformData[1] = 1;\n\tshadowsHighlightsUniformData[10] = 1;\n\tconst vBuffer = ctx.renderer.getTemporaryBuffer(shadowsHighlightsUniformData);\n\tdrawFullscreenPass(encoder, outTex2.createView(), pipeline, [\n\t\tctx.device.createBindGroup({\n\t\t\tlayout: uLayout,\n\t\t\tentries: [{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: { buffer: vBuffer }\n\t\t\t}]\n\t\t}),\n\t\tcreateBindGroup(outTex1, tmpTex),\n\t\tsigBindGroup\n\t]);\n\tdrawTextureToTarget(args, outTex2, op.opacity ?? 1);\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = { WebGPURenderer };\n\n//#endregion\nexport { MIN_RADIUS as a, ShadowsHighlightsNodeConfigSchema as c, defaultShadowsHighlightsConfig as d, shadowsHighlightsConfig as f, MAX_RADIUS as i, ShadowsHighlightsOperationSchema as l, WebGPURenderer as n, SHADOWS_HIGHLIGHTS_OUTPUT_TYPE_MAP as o, MAX_AMOUNT as r, SHADOWS_HIGHLIGHTS_PRESETS as s, renderers_default as t, ShadowsHighlightsResultSchema as u };\n//# sourceMappingURL=renderers-CCz2R7ss.mjs.map"],"mappings":"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"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import "./chunk-GBe2k3y8.mjs";
|
|
2
|
+
import { n as defineRenderer } from "./renderer-BSitV56h.mjs";
|
|
3
|
+
import "./dist-DkuDAIrG.mjs";
|
|
4
|
+
import { i as beginTargetPass, l as fragmentBindGroupLayout, o as drawChildToTexture, p as texturesLayout, t as FULLSCREEN_QUAD_WGSL } from "./gpu-DG3gI88-.mjs";
|
|
2
5
|
|
|
3
|
-
//#region ../../nodes/node-channel-merger/dist/renderers-
|
|
6
|
+
//#region ../../nodes/node-channel-merger/dist/renderers-CFuJvvvy.mjs
|
|
4
7
|
const COLOR_SPACE_MAP = {
|
|
5
8
|
RGBA: 0,
|
|
6
9
|
HSLA: 1,
|
|
@@ -21,27 +24,7 @@ struct MergerUniforms {
|
|
|
21
24
|
@group(1) @binding(2) var tex3 : texture_2d<f32>;
|
|
22
25
|
@group(1) @binding(3) var tex4 : texture_2d<f32>;
|
|
23
26
|
@group(1) @binding(4) var samp : sampler;
|
|
24
|
-
|
|
25
|
-
struct VSOut {
|
|
26
|
-
@builtin(position) pos : vec4<f32>,
|
|
27
|
-
@location(0) uv : vec2<f32>,
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
@vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
|
|
31
|
-
var pos = array<vec2<f32>, 4>(
|
|
32
|
-
vec2<f32>(-1.0, 1.0),
|
|
33
|
-
vec2<f32>(1.0, 1.0),
|
|
34
|
-
vec2<f32>(-1.0, -1.0),
|
|
35
|
-
vec2<f32>(1.0, -1.0)
|
|
36
|
-
);
|
|
37
|
-
var uv = array<vec2<f32>, 4>(
|
|
38
|
-
vec2<f32>(0.0, 0.0),
|
|
39
|
-
vec2<f32>(1.0, 0.0),
|
|
40
|
-
vec2<f32>(0.0, 1.0),
|
|
41
|
-
vec2<f32>(1.0, 1.0)
|
|
42
|
-
);
|
|
43
|
-
return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
|
|
44
|
-
}
|
|
27
|
+
${FULLSCREEN_QUAD_WGSL}
|
|
45
28
|
|
|
46
29
|
fn hue2rgb(p: f32, q: f32, t_in: f32) -> f32 {
|
|
47
30
|
var t = t_in;
|
|
@@ -137,38 +120,8 @@ function getDeviceLayouts(device) {
|
|
|
137
120
|
let res = deviceResourceCache.get(device);
|
|
138
121
|
if (res) return res;
|
|
139
122
|
res = {
|
|
140
|
-
uniformLayout: device
|
|
141
|
-
|
|
142
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
143
|
-
buffer: { type: "uniform" }
|
|
144
|
-
}] }),
|
|
145
|
-
textureLayout: device.createBindGroupLayout({ entries: [
|
|
146
|
-
{
|
|
147
|
-
binding: 0,
|
|
148
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
149
|
-
texture: { sampleType: "float" }
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
binding: 1,
|
|
153
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
154
|
-
texture: { sampleType: "float" }
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
binding: 2,
|
|
158
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
159
|
-
texture: { sampleType: "float" }
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
binding: 3,
|
|
163
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
164
|
-
texture: { sampleType: "float" }
|
|
165
|
-
},
|
|
166
|
-
{
|
|
167
|
-
binding: 4,
|
|
168
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
169
|
-
sampler: { type: "filtering" }
|
|
170
|
-
}
|
|
171
|
-
] }),
|
|
123
|
+
uniformLayout: fragmentBindGroupLayout(device, ["uniform"]),
|
|
124
|
+
textureLayout: texturesLayout(device, 4),
|
|
172
125
|
pipelineCache: /* @__PURE__ */ new Map()
|
|
173
126
|
};
|
|
174
127
|
deviceResourceCache.set(device, res);
|
|
@@ -206,7 +159,7 @@ function getPipeline(device, format) {
|
|
|
206
159
|
};
|
|
207
160
|
}
|
|
208
161
|
const ChannelMergerWebGPURenderer = async (args) => {
|
|
209
|
-
const { ctx, encoder, pass,
|
|
162
|
+
const { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props, drawChild } = args;
|
|
210
163
|
const op = props.virtualMedia?.operation;
|
|
211
164
|
if (op?.op !== "ChannelMerger" || !op) return;
|
|
212
165
|
const ch1Media = op.channel1Media ?? props.virtualMedia.children?.[0];
|
|
@@ -217,95 +170,35 @@ const ChannelMergerWebGPURenderer = async (args) => {
|
|
|
217
170
|
pass.end();
|
|
218
171
|
const width = targetWidth;
|
|
219
172
|
const height = targetHeight;
|
|
220
|
-
const tex1 =
|
|
221
|
-
const view1 = tex1.createView();
|
|
222
|
-
ctx.renderer.beginFrame(encoder, view1, {
|
|
223
|
-
r: 0,
|
|
224
|
-
g: 0,
|
|
225
|
-
b: 0,
|
|
226
|
-
a: 0
|
|
227
|
-
}, width, height, "clear").end();
|
|
228
|
-
ctx.renderer.pushScissor({
|
|
229
|
-
x: 0,
|
|
230
|
-
y: 0,
|
|
231
|
-
width,
|
|
232
|
-
height
|
|
233
|
-
});
|
|
234
|
-
ctx.renderer.pushIdentity();
|
|
235
|
-
await drawChild(ch1Media, {
|
|
173
|
+
const { texture: tex1, view: view1 } = await drawChildToTexture(args, ch1Media, { props: {
|
|
236
174
|
...props,
|
|
237
175
|
virtualMedia: ch1Media,
|
|
238
|
-
renderId: `${props.renderId}-ch1
|
|
239
|
-
|
|
240
|
-
}, view1, tex1, width, height);
|
|
241
|
-
ctx.renderer.popTransform();
|
|
242
|
-
ctx.renderer.popScissor();
|
|
176
|
+
renderId: `${props.renderId}-ch1`
|
|
177
|
+
} });
|
|
243
178
|
args.pass.end();
|
|
244
|
-
const tex2 =
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
g: 0,
|
|
253
|
-
b: 0,
|
|
254
|
-
a: 0
|
|
255
|
-
}, width, height, "clear").end();
|
|
256
|
-
ctx.renderer.pushScissor({
|
|
257
|
-
x: 0,
|
|
258
|
-
y: 0,
|
|
259
|
-
width,
|
|
260
|
-
height
|
|
179
|
+
const { texture: tex2, view: view2 } = await drawChildToTexture(args, ch2Media, {
|
|
180
|
+
props: {
|
|
181
|
+
...props,
|
|
182
|
+
virtualMedia: ch2Media,
|
|
183
|
+
renderId: `${props.renderId}-ch2`,
|
|
184
|
+
excludeTextures: [...props.excludeTextures || [], tex1]
|
|
185
|
+
},
|
|
186
|
+
exclude: [tex1]
|
|
261
187
|
});
|
|
262
|
-
ctx.renderer.pushIdentity();
|
|
263
|
-
await drawChild(ch2Media, {
|
|
264
|
-
...props,
|
|
265
|
-
virtualMedia: ch2Media,
|
|
266
|
-
renderId: `${props.renderId}-ch2`,
|
|
267
|
-
excludeTextures: [
|
|
268
|
-
...props.excludeTextures || [],
|
|
269
|
-
tex1,
|
|
270
|
-
tex2
|
|
271
|
-
]
|
|
272
|
-
}, view2, tex2, width, height);
|
|
273
|
-
ctx.renderer.popTransform();
|
|
274
|
-
ctx.renderer.popScissor();
|
|
275
188
|
args.pass.end();
|
|
276
|
-
const tex3 =
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
}, width, height, "clear").end();
|
|
289
|
-
ctx.renderer.pushScissor({
|
|
290
|
-
x: 0,
|
|
291
|
-
y: 0,
|
|
292
|
-
width,
|
|
293
|
-
height
|
|
189
|
+
const { texture: tex3, view: view3 } = await drawChildToTexture(args, ch3Media, {
|
|
190
|
+
props: {
|
|
191
|
+
...props,
|
|
192
|
+
virtualMedia: ch3Media,
|
|
193
|
+
renderId: `${props.renderId}-ch3`,
|
|
194
|
+
excludeTextures: [
|
|
195
|
+
...props.excludeTextures || [],
|
|
196
|
+
tex1,
|
|
197
|
+
tex2
|
|
198
|
+
]
|
|
199
|
+
},
|
|
200
|
+
exclude: [tex1, tex2]
|
|
294
201
|
});
|
|
295
|
-
ctx.renderer.pushIdentity();
|
|
296
|
-
await drawChild(ch3Media, {
|
|
297
|
-
...props,
|
|
298
|
-
virtualMedia: ch3Media,
|
|
299
|
-
renderId: `${props.renderId}-ch3`,
|
|
300
|
-
excludeTextures: [
|
|
301
|
-
...props.excludeTextures || [],
|
|
302
|
-
tex1,
|
|
303
|
-
tex2,
|
|
304
|
-
tex3
|
|
305
|
-
]
|
|
306
|
-
}, view3, tex3, width, height);
|
|
307
|
-
ctx.renderer.popTransform();
|
|
308
|
-
ctx.renderer.popScissor();
|
|
309
202
|
args.pass.end();
|
|
310
203
|
const tex4 = ctx.renderer.getTemporaryTexture(width, height, [
|
|
311
204
|
...props.excludeTextures || [],
|
|
@@ -387,20 +280,14 @@ const ChannelMergerWebGPURenderer = async (args) => {
|
|
|
387
280
|
}
|
|
388
281
|
]
|
|
389
282
|
});
|
|
390
|
-
const finalPass =
|
|
391
|
-
r: 0,
|
|
392
|
-
g: 0,
|
|
393
|
-
b: 0,
|
|
394
|
-
a: 0
|
|
395
|
-
}, width, height, "load");
|
|
283
|
+
const finalPass = beginTargetPass(args);
|
|
396
284
|
finalPass.setPipeline(pipeline);
|
|
397
285
|
finalPass.setBindGroup(0, uniformBindGroup);
|
|
398
286
|
finalPass.setBindGroup(1, textureBindGroup);
|
|
399
287
|
finalPass.draw(4, 1, 0, 0);
|
|
400
|
-
args.pass = finalPass;
|
|
401
288
|
};
|
|
402
289
|
var renderers_default = defineRenderer({ WebGPURenderer: ChannelMergerWebGPURenderer });
|
|
403
290
|
|
|
404
291
|
//#endregion
|
|
405
292
|
export { ChannelMergerWebGPURenderer, renderers_default as default };
|
|
406
|
-
//# sourceMappingURL=renderer-
|
|
293
|
+
//# sourceMappingURL=renderer-DoYdfDEA.mjs.map
|