framefields 2.9.2 → 2.10.0-canary.0
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/NOTICE.md +18 -0
- package/README.md +10 -7
- package/dist/audio/index.d.mts +5 -4
- package/dist/audio/index.mjs +13 -13
- package/dist/{audio-Ccpl9mjV.d.mts → audio-1X5qNNmk.d.mts} +4 -3
- package/dist/audio-1X5qNNmk.d.mts.map +1 -0
- package/dist/{audio-a0MFkK6J.mjs → audio-KHBadECb.mjs} +1 -1
- package/dist/{audio-a0MFkK6J.mjs.map → audio-KHBadECb.mjs.map} +1 -1
- package/dist/{audio-BfQg37MW.mjs → audio-YpBRdI7r.mjs} +4 -4
- package/dist/{audio-BfQg37MW.mjs.map → audio-YpBRdI7r.mjs.map} +1 -1
- package/dist/{check-result-C3jlgV2i.mjs → check-result-Culfu7Nx.mjs} +1 -1
- package/dist/{check-result-C3jlgV2i.mjs.map → check-result-Culfu7Nx.mjs.map} +1 -1
- package/dist/cli/check-worker.mjs +50 -50
- package/dist/cli.mjs +179 -3
- package/dist/cli.mjs.map +1 -1
- package/dist/cloud/index.d.mts +118 -0
- package/dist/cloud/index.d.mts.map +1 -0
- package/dist/cloud/index.mjs +3 -0
- package/dist/cloud-xcfV4J03.mjs +233 -0
- package/dist/cloud-xcfV4J03.mjs.map +1 -0
- package/dist/components/index.d.mts +14 -11
- package/dist/components/index.mjs +47 -47
- package/dist/dist-2_lT3Dwc.mjs +1434 -0
- package/dist/dist-2_lT3Dwc.mjs.map +1 -0
- package/dist/{dist-Buaaj-Ul.mjs → dist-BIE8fvlv.mjs} +1 -1
- package/dist/{dist-Buaaj-Ul.mjs.map → dist-BIE8fvlv.mjs.map} +1 -1
- package/dist/{dist-BlIrsfcn.mjs → dist-Bf2_efYP.mjs} +1 -1
- package/dist/{dist-BlIrsfcn.mjs.map → dist-Bf2_efYP.mjs.map} +1 -1
- package/dist/dist-BwtxciN4.mjs +3 -0
- package/dist/{dist-C1cCW7Bt.mjs → dist-C4Vxgm0Q.mjs} +275 -78
- package/dist/dist-C4Vxgm0Q.mjs.map +1 -0
- package/dist/{dist-C8Xq3zgx.mjs → dist-Cu1fZ9Uy.mjs} +4 -4
- package/dist/{dist-C8Xq3zgx.mjs.map → dist-Cu1fZ9Uy.mjs.map} +1 -1
- package/dist/{dist-DVMepKaO.mjs → dist-CySGkG54.mjs} +2 -2
- package/dist/dist-CySGkG54.mjs.map +1 -0
- package/dist/effects/index.d.mts +6 -4
- package/dist/effects/index.mjs +36 -36
- package/dist/{effects-CemgqEPv.mjs → effects-DiWYouOK.mjs} +3 -3
- package/dist/{effects-CemgqEPv.mjs.map → effects-DiWYouOK.mjs.map} +1 -1
- package/dist/fonts/index.d.mts +1 -1
- package/dist/fonts/index.mjs +3 -3
- package/dist/{fonts-BW0pPcvJ.mjs → fonts-BnV-GB1o.mjs} +2 -2
- package/dist/{fonts-BW0pPcvJ.mjs.map → fonts-BnV-GB1o.mjs.map} +1 -1
- package/dist/{gpu-CMaa63nz.mjs → gpu-Bw35AMwY.mjs} +11 -3
- package/dist/gpu-Bw35AMwY.mjs.map +1 -0
- package/dist/{index-D5UDyVMb.d.mts → index-B7WqFBZA.d.mts} +35 -2401
- package/dist/index-B7WqFBZA.d.mts.map +1 -0
- package/dist/{index-BfDFmIBE.d.mts → index-BW0Q1ygn.d.mts} +1 -1
- package/dist/{index-BfDFmIBE.d.mts.map → index-BW0Q1ygn.d.mts.map} +1 -1
- package/dist/{index-CQ-bbZk3.d.mts → index-Bbv0VtxJ.d.mts} +7 -1165
- package/dist/index-Bbv0VtxJ.d.mts.map +1 -0
- package/dist/{index-CFoAmh7q.d.mts → index-CDQrdZ0J.d.mts} +3 -3
- package/dist/{index-CFoAmh7q.d.mts.map → index-CDQrdZ0J.d.mts.map} +1 -1
- package/dist/index-COYNQ_mf.d.mts +2402 -0
- package/dist/index-COYNQ_mf.d.mts.map +1 -0
- package/dist/{index-BIjMAW1h.d.mts → index-CdCrae-I.d.mts} +2 -2
- package/dist/{index-BIjMAW1h.d.mts.map → index-CdCrae-I.d.mts.map} +1 -1
- package/dist/index-DQa7mhzq.d.mts +330 -0
- package/dist/index-DQa7mhzq.d.mts.map +1 -0
- package/dist/{index-Bnh42ouE.d.mts → index-Dyt4yS-x.d.mts} +376 -287
- package/dist/index-Dyt4yS-x.d.mts.map +1 -0
- package/dist/index-WwuuX8ZJ.d.mts +1165 -0
- package/dist/index-WwuuX8ZJ.d.mts.map +1 -0
- package/dist/{index-CJL0JAU8.d.mts → index-gOVtTm-P.d.mts} +125 -3
- package/dist/index-gOVtTm-P.d.mts.map +1 -0
- package/dist/{index-7Z9_a_iB.d.mts → index-h7m8QgcL.d.mts} +3 -3
- package/dist/{index-7Z9_a_iB.d.mts.map → index-h7m8QgcL.d.mts.map} +1 -1
- package/dist/index.d.mts +16 -13
- package/dist/index.mjs +59 -58
- package/dist/preview/index.d.mts +4 -3
- package/dist/preview/index.mjs +12 -12
- package/dist/{preview-DvP8AZuV.mjs → preview-BW7ilNWk.mjs} +3 -3
- package/dist/{preview-DvP8AZuV.mjs.map → preview-BW7ilNWk.mjs.map} +1 -1
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/chunk-44V4V5LD.mjs +1 -0
- package/dist/preview-engine/{chunk-5AWAOMBR.mjs → chunk-4BWBX2HM.mjs} +1 -1
- package/dist/preview-engine/{chunk-BEYA25UZ.mjs → chunk-4DSOZ5QG.mjs} +1 -1
- package/dist/preview-engine/{chunk-VVE2QHVG.mjs → chunk-4FACCLLE.mjs} +1 -1
- package/dist/preview-engine/{chunk-DMSZXG56.mjs → chunk-4N25ZU43.mjs} +1 -1
- package/dist/preview-engine/{chunk-FTCEG3SF.mjs → chunk-4RLKHFV6.mjs} +1 -1
- package/dist/preview-engine/chunk-4TPXZNVR.mjs +483 -0
- package/dist/preview-engine/chunk-4YT5YJIF.mjs +1 -0
- package/dist/preview-engine/{chunk-CC4NNNIY.mjs → chunk-57WXGYEV.mjs} +1 -1
- package/dist/preview-engine/{chunk-C4M3B2Q2.mjs → chunk-5SLBE2FX.mjs} +1 -1
- package/dist/preview-engine/{chunk-PM2W4VLT.mjs → chunk-5Y7SO37Q.mjs} +1 -1
- package/dist/preview-engine/{chunk-BJXNKMSY.mjs → chunk-64L4GUOF.mjs} +20 -6
- package/dist/preview-engine/{chunk-Y5K5LVOR.mjs → chunk-6BE3IL7L.mjs} +1 -1
- package/dist/preview-engine/{chunk-GA4HNR44.mjs → chunk-6LBFSGCI.mjs} +1 -1
- package/dist/preview-engine/{chunk-IB6GZJOL.mjs → chunk-6O55UROD.mjs} +1 -1
- package/dist/preview-engine/{chunk-SPJPM43P.mjs → chunk-6SLCECHG.mjs} +1 -1
- package/dist/preview-engine/chunk-77MT33VR.mjs +1 -0
- package/dist/preview-engine/{chunk-QCSVT73T.mjs → chunk-7A3BNAWY.mjs} +84 -25
- package/dist/preview-engine/{chunk-CN2VLYLB.mjs → chunk-7HW7GA76.mjs} +1 -1
- package/dist/preview-engine/chunk-A6OAPDIA.mjs +1 -0
- package/dist/preview-engine/chunk-ADLIF544.mjs +39 -0
- package/dist/preview-engine/{chunk-LVYVXVZO.mjs → chunk-C2GX5L5S.mjs} +1 -1
- package/dist/preview-engine/{chunk-4WYM72ZN.mjs → chunk-CHXR5XZK.mjs} +1 -1
- package/dist/preview-engine/chunk-CSLSWUUT.mjs +1 -0
- package/dist/preview-engine/{chunk-JSYG6OWZ.mjs → chunk-D7OMXGIZ.mjs} +1 -1
- package/dist/preview-engine/{chunk-RJIAES3X.mjs → chunk-EKEKYGXE.mjs} +1 -1
- package/dist/preview-engine/{chunk-TNJEZKXM.mjs → chunk-FH72KTSM.mjs} +1 -1
- package/dist/preview-engine/{chunk-P5FKRQFU.mjs → chunk-FW2UDDUT.mjs} +1 -1
- package/dist/preview-engine/{chunk-S2ABWY5G.mjs → chunk-GTMZOMAN.mjs} +1 -1
- package/dist/preview-engine/{chunk-6R3UJBL5.mjs → chunk-HGWT3RVQ.mjs} +10 -10
- package/dist/preview-engine/{chunk-34RJ7GAS.mjs → chunk-HKYENGC5.mjs} +1 -1
- package/dist/preview-engine/{chunk-7U34VKNO.mjs → chunk-HO7FXISJ.mjs} +1 -1
- package/dist/preview-engine/{chunk-73CNXGAK.mjs → chunk-HPQDCC4S.mjs} +1 -1
- package/dist/preview-engine/{chunk-ZY47XIRK.mjs → chunk-IVAA5X5H.mjs} +1 -1
- package/dist/preview-engine/chunk-JAAFSVAG.mjs +1 -0
- package/dist/preview-engine/{chunk-UXYM2G6J.mjs → chunk-JFBSNFN6.mjs} +1 -1
- package/dist/preview-engine/{chunk-GIICZZQI.mjs → chunk-JSKEVYKD.mjs} +1 -1
- package/dist/preview-engine/{chunk-EJJITH6U.mjs → chunk-K3TJJXVC.mjs} +1 -1
- package/dist/preview-engine/{chunk-GZWA5QJS.mjs → chunk-L2NTIWW5.mjs} +1 -1
- package/dist/preview-engine/{chunk-VN36PRVD.mjs → chunk-LBP7E7SJ.mjs} +1 -1
- package/dist/preview-engine/{chunk-34DL53D5.mjs → chunk-LTR5FXGU.mjs} +1 -1
- package/dist/preview-engine/{chunk-GRJJVSOV.mjs → chunk-ML7WO27M.mjs} +1 -1
- package/dist/preview-engine/{chunk-GN3NDRLI.mjs → chunk-NCQHOGZK.mjs} +1 -1
- package/dist/preview-engine/{chunk-OH5W5EL6.mjs → chunk-NTTEGJD6.mjs} +1 -1
- package/dist/preview-engine/{chunk-2B722GXM.mjs → chunk-OD4CSXZL.mjs} +15 -15
- package/dist/preview-engine/{chunk-AHQCDTD6.mjs → chunk-OOUDE4XL.mjs} +1 -1
- package/dist/preview-engine/chunk-PH3UUX6A.mjs +138 -0
- package/dist/preview-engine/chunk-PIHG6HJO.mjs +1 -0
- package/dist/preview-engine/{chunk-ZJ5SWTCW.mjs → chunk-RAW2I27S.mjs} +1 -1
- package/dist/preview-engine/{chunk-BJV2LBII.mjs → chunk-RMHL4XZ3.mjs} +1 -1
- package/dist/preview-engine/chunk-T6L3DO3H.mjs +1 -0
- package/dist/preview-engine/{chunk-2PYTDN2C.mjs → chunk-V5HU6NIW.mjs} +1 -1
- package/dist/preview-engine/{chunk-DVZITDQS.mjs → chunk-VRJBOFFY.mjs} +1 -1
- package/dist/preview-engine/{chunk-SF37HXAH.mjs → chunk-WVIDORLK.mjs} +1 -1
- package/dist/preview-engine/{chunk-35HMRW4I.mjs → chunk-XCQ7KN4S.mjs} +1 -1
- package/dist/preview-engine/{chunk-KHJZMTOS.mjs → chunk-Y2SWIWIU.mjs} +1 -1
- package/dist/preview-engine/{chunk-H7BSN7V7.mjs → chunk-YS3ROS25.mjs} +1 -1
- package/dist/preview-engine/{chunk-2DWY7UBV.mjs → chunk-YXCTOCQ2.mjs} +1 -1
- package/dist/preview-engine/{chunk-BVDWS3D2.mjs → chunk-ZA5LWHRM.mjs} +1 -1
- package/dist/preview-engine/chunk-ZGEKF34E.mjs +1974 -0
- package/dist/preview-engine/components.mjs +1 -1
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/fonts.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +1 -1
- package/dist/preview-engine/player.mjs +1 -1
- package/dist/preview-engine/renderers-33PIDDZC.mjs +1 -0
- package/dist/preview-engine/{renderers-ZACSHGNZ.mjs → renderers-36P2TKPC.mjs} +1 -1
- package/dist/preview-engine/{renderers-TSBV4KPE.mjs → renderers-37Y5LR2S.mjs} +1 -1
- package/dist/preview-engine/renderers-3AZ3HY53.mjs +1 -0
- package/dist/preview-engine/renderers-3FGKW52B.mjs +1 -0
- package/dist/preview-engine/renderers-4A2FBS3Y.mjs +1 -0
- package/dist/preview-engine/{renderers-5TO2SXFR.mjs → renderers-4MW4NW6O.mjs} +1 -1
- package/dist/preview-engine/{renderers-ENMY4DKF.mjs → renderers-4SNAK77B.mjs} +1 -1
- package/dist/preview-engine/{renderers-Y22VSOXF.mjs → renderers-4WFRXGMR.mjs} +1 -1
- package/dist/preview-engine/{renderers-5KANN7XF.mjs → renderers-5K3BSBI6.mjs} +1 -1
- package/dist/preview-engine/renderers-65DU2F5W.mjs +1 -0
- package/dist/preview-engine/renderers-6CTPYQR6.mjs +1 -0
- package/dist/preview-engine/{renderers-NUAI4TO5.mjs → renderers-6RRWA33X.mjs} +1 -1
- package/dist/preview-engine/{renderers-4F7WLQD5.mjs → renderers-6RYIPQ7W.mjs} +1 -1
- package/dist/preview-engine/{renderers-U4M7ZCV4.mjs → renderers-AUYCQNSS.mjs} +1 -1
- package/dist/preview-engine/renderers-AWODRI3B.mjs +1 -0
- package/dist/preview-engine/renderers-BO6HHGMZ.mjs +1 -0
- package/dist/preview-engine/renderers-BSXYDEV7.mjs +1 -0
- package/dist/preview-engine/{renderers-FSI5KNGZ.mjs → renderers-CMBI4JOC.mjs} +1 -1
- package/dist/preview-engine/{renderers-6Z7DWAPH.mjs → renderers-CQIPHCIW.mjs} +1 -1
- package/dist/preview-engine/renderers-DU7KPFVV.mjs +1 -0
- package/dist/preview-engine/renderers-ECW2CGNU.mjs +1 -0
- package/dist/preview-engine/renderers-EEX22FUO.mjs +1 -0
- package/dist/preview-engine/{renderers-MOEC2XZZ.mjs → renderers-EILFSWSJ.mjs} +1 -1
- package/dist/preview-engine/{renderers-NCGH2WWJ.mjs → renderers-G2FL3IFD.mjs} +1 -1
- package/dist/preview-engine/{renderers-5XRKZHVT.mjs → renderers-GCQKGJ7W.mjs} +1 -1
- package/dist/preview-engine/{renderers-77PDUMYI.mjs → renderers-HXNSDJBY.mjs} +1 -1
- package/dist/preview-engine/renderers-HZBXLDKG.mjs +1 -0
- package/dist/preview-engine/renderers-IOXNQPQK.mjs +1 -0
- package/dist/preview-engine/renderers-IR44E4ZZ.mjs +1 -0
- package/dist/preview-engine/{renderers-TGJSOKDY.mjs → renderers-JALV3B3A.mjs} +1 -1
- package/dist/preview-engine/{renderers-IHGAWLUF.mjs → renderers-JMSAW7VY.mjs} +1 -1
- package/dist/preview-engine/{renderers-CUMVIVHI.mjs → renderers-JZYHX4XI.mjs} +1 -1
- package/dist/preview-engine/renderers-JZZ3ODOZ.mjs +1 -0
- package/dist/preview-engine/renderers-K37YL3Z7.mjs +1 -0
- package/dist/preview-engine/{renderers-RN2MHIFK.mjs → renderers-KICDB5Y6.mjs} +1 -1
- package/dist/preview-engine/renderers-KUJQV3K6.mjs +1 -0
- package/dist/preview-engine/renderers-KXVKLSSX.mjs +1 -0
- package/dist/preview-engine/{renderers-WEYAHOBK.mjs → renderers-LF6U4MR5.mjs} +1 -1
- package/dist/preview-engine/renderers-N4RVFX3G.mjs +1 -0
- package/dist/preview-engine/{renderers-PPZK6VEW.mjs → renderers-NQC4DPX4.mjs} +1 -1
- package/dist/preview-engine/renderers-NZWWEAYA.mjs +1 -0
- package/dist/preview-engine/{renderers-5UZ3YFBD.mjs → renderers-OPRXVIGT.mjs} +1 -1
- package/dist/preview-engine/{renderers-7C5RA3R5.mjs → renderers-OZKPOUMW.mjs} +1 -1
- package/dist/preview-engine/renderers-P4JJEDZB.mjs +1 -0
- package/dist/preview-engine/{renderers-V3AQO7AR.mjs → renderers-PGZDFDSC.mjs} +1 -1
- package/dist/preview-engine/renderers-Q4572F5C.mjs +1 -0
- package/dist/preview-engine/{renderers-PIIEUKFE.mjs → renderers-Q5YCUPYE.mjs} +1 -1
- package/dist/preview-engine/renderers-QAX2QWWQ.mjs +1 -0
- package/dist/preview-engine/{renderers-SEIAUKJF.mjs → renderers-RQ3JZE3L.mjs} +1 -1
- package/dist/preview-engine/renderers-SRFIEVWL.mjs +1 -0
- package/dist/preview-engine/renderers-SYC6WFTM.mjs +1 -0
- package/dist/preview-engine/{renderers-QA2HKUJJ.mjs → renderers-TKHQRERE.mjs} +1 -1
- package/dist/preview-engine/{renderers-A24KZK2Q.mjs → renderers-U4S577ON.mjs} +1 -1
- package/dist/preview-engine/{renderers-KC6ZSKCW.mjs → renderers-UBIFSF37.mjs} +1 -1
- package/dist/preview-engine/renderers-UH4WN3QN.mjs +1 -0
- package/dist/preview-engine/renderers-V4FFCAS7.mjs +1 -0
- package/dist/preview-engine/renderers-VGDEOZUU.mjs +1 -0
- package/dist/preview-engine/renderers-VJJKBX5K.mjs +1 -0
- package/dist/preview-engine/renderers-VJOKVDYW.mjs +1 -0
- package/dist/preview-engine/renderers-VUUWZUOH.mjs +1 -0
- package/dist/preview-engine/renderers-WG756VF3.mjs +228 -0
- package/dist/preview-engine/renderers-WOP5GOZP.mjs +1 -0
- package/dist/preview-engine/{renderers-T74CQCEN.mjs → renderers-XZ3XDQIN.mjs} +1 -1
- package/dist/preview-engine/renderers-Y4MGN2FR.mjs +1 -0
- package/dist/preview-engine/renderers-YAMYH7IK.mjs +1 -0
- package/dist/preview-engine/{renderers-MD3PRFZL.mjs → renderers-YJ4PJEPG.mjs} +1 -1
- package/dist/preview-engine/renderers-ZNLSAWW3.mjs +1 -0
- package/dist/preview-engine/{renderers-L6YDX6GS.mjs → renderers-ZQVKE5AO.mjs} +1 -1
- package/dist/preview-engine/signals.mjs +1 -1
- package/dist/preview-engine/{src-4IUYUKIZ.mjs → src-GPF7RIBU.mjs} +1 -1
- package/dist/{program-CKpKkllV.mjs → program-BUjUTdxq.mjs} +44 -17
- package/dist/program-BUjUTdxq.mjs.map +1 -0
- package/dist/registry/focus-zoom.json +9 -2
- package/dist/renderer/index.d.mts +4 -3
- package/dist/renderer/index.mjs +4 -4
- package/dist/{renderer-BF0hx_iJ.mjs → renderer--f8JHHyT.mjs} +5 -5
- package/dist/{renderer-BF0hx_iJ.mjs.map → renderer--f8JHHyT.mjs.map} +1 -1
- package/dist/{renderer-CHr7MiYW.mjs → renderer-1KgHl_ls.mjs} +5 -5
- package/dist/{renderer-CHr7MiYW.mjs.map → renderer-1KgHl_ls.mjs.map} +1 -1
- package/dist/renderer-6sNr6ZRJ.mjs +6 -0
- package/dist/{renderer-BgO6BA_z.mjs → renderer-7c0ecb-L.mjs} +74 -21
- package/dist/renderer-7c0ecb-L.mjs.map +1 -0
- package/dist/{renderer-D61B9bXF.mjs → renderer-7w9PZmWJ.mjs} +4 -4
- package/dist/{renderer-D61B9bXF.mjs.map → renderer-7w9PZmWJ.mjs.map} +1 -1
- package/dist/{renderer-DVCJjVn7.mjs → renderer-B3WHDQeB.mjs} +5 -5
- package/dist/{renderer-DVCJjVn7.mjs.map → renderer-B3WHDQeB.mjs.map} +1 -1
- package/dist/{renderer-C7eFJf0_.mjs → renderer-B84T5I98.mjs} +5 -5
- package/dist/{renderer-C7eFJf0_.mjs.map → renderer-B84T5I98.mjs.map} +1 -1
- package/dist/{renderer-EaLUCobW.mjs → renderer-B8i4d1Rc.mjs} +4 -4
- package/dist/{renderer-EaLUCobW.mjs.map → renderer-B8i4d1Rc.mjs.map} +1 -1
- package/dist/renderer-BDHGxD6p.mjs +5 -0
- package/dist/{renderer-WCZu2Rf5.mjs → renderer-BFmVDdVs.mjs} +4 -4
- package/dist/{renderer-WCZu2Rf5.mjs.map → renderer-BFmVDdVs.mjs.map} +1 -1
- package/dist/{renderer-bAKUeHF3.mjs → renderer-BG_cnGbF.mjs} +5 -5
- package/dist/{renderer-bAKUeHF3.mjs.map → renderer-BG_cnGbF.mjs.map} +1 -1
- package/dist/{renderer-BPWDsufX.mjs → renderer-BIToh0CA.mjs} +3 -3
- package/dist/{renderer-BPWDsufX.mjs.map → renderer-BIToh0CA.mjs.map} +1 -1
- package/dist/{renderer-mNSyac1V.mjs → renderer-BOg8i8eF.mjs} +11 -2
- package/dist/{renderer-mNSyac1V.mjs.map → renderer-BOg8i8eF.mjs.map} +1 -1
- package/dist/{renderer-BlPqTEii.mjs → renderer-BSW4CGZF.mjs} +4 -4
- package/dist/{renderer-BlPqTEii.mjs.map → renderer-BSW4CGZF.mjs.map} +1 -1
- package/dist/{renderer-D7Al3_-5.mjs → renderer-BT4im6c0.mjs} +5 -5
- package/dist/{renderer-D7Al3_-5.mjs.map → renderer-BT4im6c0.mjs.map} +1 -1
- package/dist/renderer-BT9dvpk2.mjs +5 -0
- package/dist/{renderer-BpIF1QIE.mjs → renderer-BTLZBD63.mjs} +5 -5
- package/dist/{renderer-BpIF1QIE.mjs.map → renderer-BTLZBD63.mjs.map} +1 -1
- package/dist/{renderer-CcvvoKiZ.mjs → renderer-Bb_HHUQ0.mjs} +5 -5
- package/dist/{renderer-CcvvoKiZ.mjs.map → renderer-Bb_HHUQ0.mjs.map} +1 -1
- package/dist/renderer-Bd-NuU3M.mjs +3 -0
- package/dist/{renderer-sCovEubT.mjs → renderer-BdRwbLLV.mjs} +4 -4
- package/dist/{renderer-sCovEubT.mjs.map → renderer-BdRwbLLV.mjs.map} +1 -1
- package/dist/{renderer-DNQvOrkY.mjs → renderer-BeJoW-nG.mjs} +5 -5
- package/dist/{renderer-DNQvOrkY.mjs.map → renderer-BeJoW-nG.mjs.map} +1 -1
- package/dist/renderer-BfaRh0qy.mjs +5 -0
- package/dist/{renderer-B522Dkdk.mjs → renderer-BhNZn2DU.mjs} +4 -4
- package/dist/{renderer-B522Dkdk.mjs.map → renderer-BhNZn2DU.mjs.map} +1 -1
- package/dist/{renderer-D47AEJE_.mjs → renderer-Bif8bwCq.mjs} +3 -3
- package/dist/{renderer-D47AEJE_.mjs.map → renderer-Bif8bwCq.mjs.map} +1 -1
- package/dist/renderer-BlwXKV7Y.mjs +5 -0
- package/dist/{renderer-CwFqqpWY.mjs → renderer-Bm91Xv6l.mjs} +4 -4
- package/dist/{renderer-CwFqqpWY.mjs.map → renderer-Bm91Xv6l.mjs.map} +1 -1
- package/dist/{renderer-SSBL4M1o.mjs → renderer-BnN3JH9u.mjs} +20 -7
- package/dist/renderer-BnN3JH9u.mjs.map +1 -0
- package/dist/{renderer-8QIwXh7O.mjs → renderer-Bo5GwErU.mjs} +6 -6
- package/dist/{renderer-8QIwXh7O.mjs.map → renderer-Bo5GwErU.mjs.map} +1 -1
- package/dist/{renderer-DF-yvIrV.mjs → renderer-Br_aJ_b7.mjs} +4 -4
- package/dist/{renderer-DF-yvIrV.mjs.map → renderer-Br_aJ_b7.mjs.map} +1 -1
- package/dist/{renderer-DmkWrWAk.mjs → renderer-BvRaVByi.mjs} +3 -3
- package/dist/{renderer-DmkWrWAk.mjs.map → renderer-BvRaVByi.mjs.map} +1 -1
- package/dist/renderer-C40yZK3x.mjs +5 -0
- package/dist/renderer-C5MjQ7L8.mjs +5 -0
- package/dist/renderer-C8LjKYnS.mjs +5 -0
- package/dist/renderer-C9q9H_qa.mjs +5 -0
- package/dist/renderer-CC4fhNup.mjs +3 -0
- package/dist/{renderer-GBmWjBvy.mjs → renderer-CDfCaqV4.mjs} +3 -3
- package/dist/{renderer-GBmWjBvy.mjs.map → renderer-CDfCaqV4.mjs.map} +1 -1
- package/dist/renderer-CF9ta9Rm.mjs +5 -0
- package/dist/{renderer-DkRSZg5g.mjs → renderer-CKlNHDKI.mjs} +5 -5
- package/dist/{renderer-DkRSZg5g.mjs.map → renderer-CKlNHDKI.mjs.map} +1 -1
- package/dist/{renderer-CYC32bDW.mjs → renderer-CLRrcT_3.mjs} +5 -5
- package/dist/{renderer-CYC32bDW.mjs.map → renderer-CLRrcT_3.mjs.map} +1 -1
- package/dist/{renderer-DpruWmZU.mjs → renderer-CO1PwItH.mjs} +4 -4
- package/dist/{renderer-DpruWmZU.mjs.map → renderer-CO1PwItH.mjs.map} +1 -1
- package/dist/renderer-CO205Gr9.mjs +5 -0
- package/dist/renderer-CSm8UXLP.mjs +5 -0
- package/dist/renderer-CSy8HRtF.mjs +5 -0
- package/dist/{renderer-pHWEHDnM.mjs → renderer-CTSvHf6g.mjs} +5 -5
- package/dist/{renderer-pHWEHDnM.mjs.map → renderer-CTSvHf6g.mjs.map} +1 -1
- package/dist/{renderer-hSCfnvaK.mjs → renderer-CWmlfdLb.mjs} +5 -5
- package/dist/{renderer-hSCfnvaK.mjs.map → renderer-CWmlfdLb.mjs.map} +1 -1
- package/dist/{renderer--fkmiVjl.mjs → renderer-CanNjQuL.mjs} +4 -4
- package/dist/{renderer--fkmiVjl.mjs.map → renderer-CanNjQuL.mjs.map} +1 -1
- package/dist/renderer-CdNRWDsA.mjs +5 -0
- package/dist/{renderer-DFzI3yI_.mjs → renderer-CeNAgCE2.mjs} +3 -3
- package/dist/{renderer-DFzI3yI_.mjs.map → renderer-CeNAgCE2.mjs.map} +1 -1
- package/dist/{renderer-BdyopiLC.mjs → renderer-Ch1qZ2PT.mjs} +4 -4
- package/dist/{renderer-BdyopiLC.mjs.map → renderer-Ch1qZ2PT.mjs.map} +1 -1
- package/dist/{renderer-CQvmbRQ5.mjs → renderer-Chfo4G9t.mjs} +5 -5
- package/dist/{renderer-CQvmbRQ5.mjs.map → renderer-Chfo4G9t.mjs.map} +1 -1
- package/dist/{renderer-DEmYyaqj.mjs → renderer-Ck-NLzz0.mjs} +4 -4
- package/dist/{renderer-DEmYyaqj.mjs.map → renderer-Ck-NLzz0.mjs.map} +1 -1
- package/dist/renderer-CkAjiGRB.mjs +5 -0
- package/dist/renderer-CmryuPBm.mjs +5 -0
- package/dist/renderer-CnEwne4L.mjs +5 -0
- package/dist/{renderer-BlvGcyAN.mjs → renderer-CsRuEpR2.mjs} +3 -3
- package/dist/{renderer-BlvGcyAN.mjs.map → renderer-CsRuEpR2.mjs.map} +1 -1
- package/dist/{renderer-SWr3vbrV.mjs → renderer-CtulmkqT.mjs} +3 -3
- package/dist/{renderer-SWr3vbrV.mjs.map → renderer-CtulmkqT.mjs.map} +1 -1
- package/dist/{renderer-DTqDy2m9.mjs → renderer-CwAuWLWm.mjs} +3 -3
- package/dist/{renderer-DTqDy2m9.mjs.map → renderer-CwAuWLWm.mjs.map} +1 -1
- package/dist/{renderer-B2jjxsjO.mjs → renderer-CxabOSkk.mjs} +4 -4
- package/dist/{renderer-B2jjxsjO.mjs.map → renderer-CxabOSkk.mjs.map} +1 -1
- package/dist/{renderer-DPAD6fL1.mjs → renderer-CybBR8AL.mjs} +425 -115
- package/dist/renderer-CybBR8AL.mjs.map +1 -0
- package/dist/{renderer-DO-KbpYZ.mjs → renderer-D1tDMuD0.mjs} +5 -5
- package/dist/{renderer-DO-KbpYZ.mjs.map → renderer-D1tDMuD0.mjs.map} +1 -1
- package/dist/renderer-D4QDoqOG.mjs +5 -0
- package/dist/{renderer-Bfk6A7UO.mjs → renderer-D7DlNOVi.mjs} +5 -5
- package/dist/{renderer-Bfk6A7UO.mjs.map → renderer-D7DlNOVi.mjs.map} +1 -1
- package/dist/renderer-D7cS2a8z.mjs +5 -0
- package/dist/{renderer-g_vrrAQU.mjs → renderer-D7lApyWZ.mjs} +3 -3
- package/dist/{renderer-g_vrrAQU.mjs.map → renderer-D7lApyWZ.mjs.map} +1 -1
- package/dist/renderer-D85CNC-b.mjs +5 -0
- package/dist/{renderer-DqvoMLca.mjs → renderer-DAfCcnCz.mjs} +5 -5
- package/dist/{renderer-DqvoMLca.mjs.map → renderer-DAfCcnCz.mjs.map} +1 -1
- package/dist/{renderer-D7r6onRT.mjs → renderer-DAug14gu.mjs} +4 -4
- package/dist/{renderer-D7r6onRT.mjs.map → renderer-DAug14gu.mjs.map} +1 -1
- package/dist/{renderer-DMvmf3T2.mjs → renderer-DBfx6QX1.mjs} +3 -3
- package/dist/renderer-DC9IoJNz.mjs +5 -0
- package/dist/renderer-DCMoBppL.mjs +1062 -0
- package/dist/renderer-DCMoBppL.mjs.map +1 -0
- package/dist/renderer-DIDh0gFm.mjs +5 -0
- package/dist/{renderer-DKgPVOLL.d.mts → renderer-DJuVX3c5.d.mts} +2 -2
- package/dist/{renderer-DKgPVOLL.d.mts.map → renderer-DJuVX3c5.d.mts.map} +1 -1
- package/dist/{renderer-sYSkIUfo.mjs → renderer-DKptrHeL.mjs} +5 -5
- package/dist/{renderer-sYSkIUfo.mjs.map → renderer-DKptrHeL.mjs.map} +1 -1
- package/dist/renderer-DLmJ9GWE.mjs +5 -0
- package/dist/renderer-DM7PUWP9.mjs +5 -0
- package/dist/{renderer-C41U1tK6.mjs → renderer-DMtzPqYo.mjs} +211 -72
- package/dist/renderer-DMtzPqYo.mjs.map +1 -0
- package/dist/renderer-DPWFDxIO.mjs +5 -0
- package/dist/renderer-DUCByhAk.mjs +5 -0
- package/dist/renderer-DVOtnCKH.mjs +5 -0
- package/dist/renderer-DVrN2bW8.mjs +5 -0
- package/dist/{renderer-zXPVLRlD.mjs → renderer-D_rEtJAH.mjs} +5 -5
- package/dist/{renderer-zXPVLRlD.mjs.map → renderer-D_rEtJAH.mjs.map} +1 -1
- package/dist/{renderer-BIGFP1cF.mjs → renderer-Dak_wVh9.mjs} +2 -2
- package/dist/{renderer-BIGFP1cF.mjs.map → renderer-Dak_wVh9.mjs.map} +1 -1
- package/dist/{renderer-DX41niRU.mjs → renderer-Dd2XrdqA.mjs} +4 -4
- package/dist/{renderer-DX41niRU.mjs.map → renderer-Dd2XrdqA.mjs.map} +1 -1
- package/dist/renderer-DdOVwfG4.mjs +5 -0
- package/dist/{renderer-1r-Uq-Ae.mjs → renderer-Dih1rtT6.mjs} +3 -3
- package/dist/{renderer-1r-Uq-Ae.mjs.map → renderer-Dih1rtT6.mjs.map} +1 -1
- package/dist/{renderer-BXJXziIt.mjs → renderer-DjiebKHO.mjs} +3 -3
- package/dist/{renderer-BXJXziIt.mjs.map → renderer-DjiebKHO.mjs.map} +1 -1
- package/dist/{renderer-DIw3UtEU.mjs → renderer-DkAFIpzB.mjs} +5 -5
- package/dist/{renderer-DIw3UtEU.mjs.map → renderer-DkAFIpzB.mjs.map} +1 -1
- package/dist/{renderer-DDEkFbVI.mjs → renderer-DlbSqOJR.mjs} +5 -5
- package/dist/{renderer-DDEkFbVI.mjs.map → renderer-DlbSqOJR.mjs.map} +1 -1
- package/dist/{renderer-C7L8Ceqr.mjs → renderer-DrExCXnp.mjs} +4 -4
- package/dist/{renderer-C7L8Ceqr.mjs.map → renderer-DrExCXnp.mjs.map} +1 -1
- package/dist/{renderer-_iMAO698.mjs → renderer-DsPLMzy1.mjs} +2 -2
- package/dist/{renderer-_iMAO698.mjs.map → renderer-DsPLMzy1.mjs.map} +1 -1
- package/dist/{renderer-BAYTI6jj.mjs → renderer-Dswrn-yi.mjs} +4 -4
- package/dist/{renderer-BAYTI6jj.mjs.map → renderer-Dswrn-yi.mjs.map} +1 -1
- package/dist/renderer-DtCe9ouu.mjs +5 -0
- package/dist/{renderer-DXEWbnRF.mjs → renderer-DtCmG-tT.mjs} +4 -4
- package/dist/{renderer-DXEWbnRF.mjs.map → renderer-DtCmG-tT.mjs.map} +1 -1
- package/dist/{renderer-B39I6CQw.mjs → renderer-DxiF4O6X.mjs} +4 -4
- package/dist/{renderer-B39I6CQw.mjs.map → renderer-DxiF4O6X.mjs.map} +1 -1
- package/dist/{renderer-BAusZ6Vu.mjs → renderer-DxkvDAA6.mjs} +4 -4
- package/dist/{renderer-BAusZ6Vu.mjs.map → renderer-DxkvDAA6.mjs.map} +1 -1
- package/dist/{renderer-ktWXVYka.mjs → renderer-FFLnACY-.mjs} +6 -6
- package/dist/{renderer-ktWXVYka.mjs.map → renderer-FFLnACY-.mjs.map} +1 -1
- package/dist/{renderer-Lth37j17.mjs → renderer-H4CZt3Z5.mjs} +3 -3
- package/dist/{renderer-B-ur0Ej8.mjs → renderer-JASAZUyY.mjs} +4 -4
- package/dist/{renderer-B-ur0Ej8.mjs.map → renderer-JASAZUyY.mjs.map} +1 -1
- package/dist/renderer-Mg0kr9Fm.mjs +5 -0
- package/dist/{renderer-CCycwCEB.mjs → renderer-R2kLaNuR.mjs} +3 -3
- package/dist/{renderer-CCycwCEB.mjs.map → renderer-R2kLaNuR.mjs.map} +1 -1
- package/dist/renderer-T35PsSw5.mjs +5 -0
- package/dist/{renderer-cod5Ona9.mjs → renderer-fWW0bsVl.mjs} +3 -3
- package/dist/renderer-iSZ5NT-J.mjs +5 -0
- package/dist/{renderer-oKRF4A0M.mjs → renderer-jBKpX3Xg.mjs} +4 -4
- package/dist/{renderer-oKRF4A0M.mjs.map → renderer-jBKpX3Xg.mjs.map} +1 -1
- package/dist/{renderer-Xv6GfNUI.mjs → renderer-kFx1_MmK.mjs} +3 -3
- package/dist/{renderer-Xv6GfNUI.mjs.map → renderer-kFx1_MmK.mjs.map} +1 -1
- package/dist/{renderer-DbRZe0Re.mjs → renderer-muB4slsV.mjs} +5 -5
- package/dist/{renderer-DbRZe0Re.mjs.map → renderer-muB4slsV.mjs.map} +1 -1
- package/dist/renderer-nEmMjQ1a.mjs +5 -0
- package/dist/{renderer-CpUJBOfb.mjs → renderer-oiDoNzhv.mjs} +3 -3
- package/dist/renderer-pG1nyfjE.mjs +5 -0
- package/dist/{renderer-BX7jS14r.d.mts → renderer-tcypOFaB.d.mts} +23 -4
- package/dist/renderer-tcypOFaB.d.mts.map +1 -0
- package/dist/{renderer-CiQhD8Gg.mjs → renderer-vPxMXiv8.mjs} +5 -5
- package/dist/{renderer-CiQhD8Gg.mjs.map → renderer-vPxMXiv8.mjs.map} +1 -1
- package/dist/renderer-vbb9e3E3.mjs +5 -0
- package/dist/{renderer-D8bBHrWC.mjs → renderer-vpsU_4XW.mjs} +5 -5
- package/dist/{renderer-D8bBHrWC.mjs.map → renderer-vpsU_4XW.mjs.map} +1 -1
- package/dist/{renderer-DiY70S8S.mjs → renderer-w7mlMSC-.mjs} +4 -4
- package/dist/{renderer-DiY70S8S.mjs.map → renderer-w7mlMSC-.mjs.map} +1 -1
- package/dist/{renderers-CP8CFWDs-DH2oktaC.mjs → renderers-CP8CFWDs-OgyUiyrr.mjs} +4 -4
- package/dist/{renderers-CP8CFWDs-DH2oktaC.mjs.map → renderers-CP8CFWDs-OgyUiyrr.mjs.map} +1 -1
- package/dist/sam/index.d.mts +4 -0
- package/dist/sam/index.mjs +3 -0
- package/dist/signals/index.d.mts +7 -6
- package/dist/signals/index.mjs +8 -8
- package/dist/{signals-CXwgAUp-.mjs → signals-BfJ1aqpT.mjs} +4 -4
- package/dist/{signals-CXwgAUp-.mjs.map → signals-BfJ1aqpT.mjs.map} +1 -1
- package/dist/{renderer-B2P1vgb7.mjs → src-BU6vm9sP-DFJ3phW0.mjs} +81 -1016
- package/dist/src-BU6vm9sP-DFJ3phW0.mjs.map +1 -0
- package/dist/{src-DFEqficI.mjs → src-C3f3zXYg.mjs} +251 -37
- package/dist/src-C3f3zXYg.mjs.map +1 -0
- package/package.json +75 -69
- package/dist/audio-Ccpl9mjV.d.mts.map +0 -1
- package/dist/dist-C1cCW7Bt.mjs.map +0 -1
- package/dist/dist-DVMepKaO.mjs.map +0 -1
- package/dist/gpu-CMaa63nz.mjs.map +0 -1
- package/dist/index-Bnh42ouE.d.mts.map +0 -1
- package/dist/index-CJL0JAU8.d.mts.map +0 -1
- package/dist/index-CQ-bbZk3.d.mts.map +0 -1
- package/dist/index-D5UDyVMb.d.mts.map +0 -1
- package/dist/preview-engine/chunk-4FY4TNST.mjs +0 -1
- package/dist/preview-engine/chunk-7LDSMOO3.mjs +0 -1
- package/dist/preview-engine/chunk-AGAZJZWI.mjs +0 -1
- package/dist/preview-engine/chunk-BXPM5SJ3.mjs +0 -1
- package/dist/preview-engine/chunk-D73ZKPFN.mjs +0 -138
- package/dist/preview-engine/chunk-FKG27DVO.mjs +0 -4
- package/dist/preview-engine/chunk-KOVN277Z.mjs +0 -1
- package/dist/preview-engine/chunk-KXLXP66K.mjs +0 -1974
- package/dist/preview-engine/chunk-MIEH74UH.mjs +0 -480
- package/dist/preview-engine/chunk-XYGDTPO7.mjs +0 -39
- package/dist/preview-engine/chunk-YGKO4NIU.mjs +0 -1
- package/dist/preview-engine/renderers-3BOQOUEU.mjs +0 -1
- package/dist/preview-engine/renderers-3M2FESR2.mjs +0 -1
- package/dist/preview-engine/renderers-6LHIWKMZ.mjs +0 -1
- package/dist/preview-engine/renderers-7XHO6M3B.mjs +0 -228
- package/dist/preview-engine/renderers-A43VCJ7X.mjs +0 -1
- package/dist/preview-engine/renderers-AKY464RY.mjs +0 -1
- package/dist/preview-engine/renderers-C5UO6PL5.mjs +0 -1
- package/dist/preview-engine/renderers-C64QSZO4.mjs +0 -1
- package/dist/preview-engine/renderers-CIRCR6NG.mjs +0 -1
- package/dist/preview-engine/renderers-CIWOPETY.mjs +0 -1
- package/dist/preview-engine/renderers-CZEZCELP.mjs +0 -1
- package/dist/preview-engine/renderers-FSQMWHQM.mjs +0 -1
- package/dist/preview-engine/renderers-FZEW5C23.mjs +0 -1
- package/dist/preview-engine/renderers-HCET2IML.mjs +0 -1
- package/dist/preview-engine/renderers-IUOOC6K7.mjs +0 -1
- package/dist/preview-engine/renderers-KYYJLVIJ.mjs +0 -1
- package/dist/preview-engine/renderers-L4GE7WV3.mjs +0 -1
- package/dist/preview-engine/renderers-LRAFWKCO.mjs +0 -1
- package/dist/preview-engine/renderers-LU3XZWEB.mjs +0 -1
- package/dist/preview-engine/renderers-MDHPQY6D.mjs +0 -1
- package/dist/preview-engine/renderers-ND2WV4K3.mjs +0 -1
- package/dist/preview-engine/renderers-NJ5CWVVH.mjs +0 -1
- package/dist/preview-engine/renderers-NKXYPR3V.mjs +0 -1
- package/dist/preview-engine/renderers-NWR66CGK.mjs +0 -1
- package/dist/preview-engine/renderers-O22WTBRM.mjs +0 -1
- package/dist/preview-engine/renderers-PBBA7LQB.mjs +0 -1
- package/dist/preview-engine/renderers-Q6LJRZ7R.mjs +0 -1
- package/dist/preview-engine/renderers-RMEACSRL.mjs +0 -1
- package/dist/preview-engine/renderers-SP42LCSI.mjs +0 -1
- package/dist/preview-engine/renderers-T7SZA3BX.mjs +0 -1
- package/dist/preview-engine/renderers-VADTDAHD.mjs +0 -1
- package/dist/preview-engine/renderers-VNNWI5C3.mjs +0 -1
- package/dist/preview-engine/renderers-WZ75MLP3.mjs +0 -1
- package/dist/preview-engine/renderers-XB5R4UQA.mjs +0 -1
- package/dist/preview-engine/renderers-YBIUZDGQ.mjs +0 -1
- package/dist/preview-engine/renderers-YESJR4O7.mjs +0 -1
- package/dist/preview-engine/renderers-YKSRZRRT.mjs +0 -1
- package/dist/program-CKpKkllV.mjs.map +0 -1
- package/dist/renderer--Ac-dg4A.mjs +0 -5
- package/dist/renderer--N7TMqzU.mjs +0 -5
- package/dist/renderer-2ecmdOae.mjs +0 -5
- package/dist/renderer-B2P1vgb7.mjs.map +0 -1
- package/dist/renderer-B5RJp5g-.mjs +0 -5
- package/dist/renderer-B7xyT1Vb.mjs +0 -5
- package/dist/renderer-BBeArN_x.mjs +0 -5
- package/dist/renderer-BCAZDu-r.mjs +0 -5
- package/dist/renderer-BJnhik7Y.mjs +0 -5
- package/dist/renderer-BX7jS14r.d.mts.map +0 -1
- package/dist/renderer-BgO6BA_z.mjs.map +0 -1
- package/dist/renderer-BxRW8MZO.mjs +0 -5
- package/dist/renderer-C-lfsEAN.mjs +0 -5
- package/dist/renderer-C41U1tK6.mjs.map +0 -1
- package/dist/renderer-C6nOFN4-.mjs +0 -5
- package/dist/renderer-C84TSQmS.mjs +0 -5
- package/dist/renderer-C8_6YofT.mjs +0 -5
- package/dist/renderer-COb3tOPG.mjs +0 -5
- package/dist/renderer-CSCIzaLy.mjs +0 -5
- package/dist/renderer-CmI4c8MS.mjs +0 -5
- package/dist/renderer-CqVltdX9.mjs +0 -5
- package/dist/renderer-D-FpMzLY.mjs +0 -5
- package/dist/renderer-D-Oyn9mG.mjs +0 -5
- package/dist/renderer-D2QrkA8_.mjs +0 -5
- package/dist/renderer-D5bjOx83.mjs +0 -3
- package/dist/renderer-D64r4iN-.mjs +0 -5
- package/dist/renderer-DCq6YkgP.mjs +0 -5
- package/dist/renderer-DDHG3GdR.mjs +0 -5
- package/dist/renderer-DMdNfcud.mjs +0 -6
- package/dist/renderer-DPAD6fL1.mjs.map +0 -1
- package/dist/renderer-DZQXZ4lK.mjs +0 -5
- package/dist/renderer-DczJJLA1.mjs +0 -5
- package/dist/renderer-DfqJj9oe.mjs +0 -5
- package/dist/renderer-DgO9ihVJ.mjs +0 -5
- package/dist/renderer-DhgnQZYb.mjs +0 -5
- package/dist/renderer-DjxKjHMf.mjs +0 -5
- package/dist/renderer-DnRDW2Oz.mjs +0 -3
- package/dist/renderer-DqLA5cdR.mjs +0 -5
- package/dist/renderer-Dudp6ZlH.mjs +0 -5
- package/dist/renderer-SSBL4M1o.mjs.map +0 -1
- package/dist/renderer-_jC5KIT1.mjs +0 -5
- package/dist/renderer-cTgAuVmJ.mjs +0 -5
- package/dist/renderer-nVKDvDLO.mjs +0 -5
- package/dist/renderer-pZ6_pUo1.mjs +0 -5
- package/dist/src-DFEqficI.mjs.map +0 -1
- /package/dist/{chunk-BcJoO4Nm.mjs → chunk-W71TSjRM.mjs} +0 -0
- /package/dist/{renderer-COqFNSfV.mjs → renderer-B6rZUBwE.mjs} +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import "./chunk-
|
|
2
|
-
import { It as getActiveMediaMetadata, _n as reportRenderDiagnostic, p as DEFAULT_DURATION_MS, rn as mediaSourceTime, vn as resolveBoolean, xn as resolveNumber } from "./dist-
|
|
3
|
-
import {
|
|
4
|
-
import { B as jointMatrices, F as getPrimitiveGeometry, G as measureMaxCaptionHeight, M as fitSpansToText, N as generateExtrudedTextGeometry, Q as poseNodes,
|
|
5
|
-
import { a as createFullscreenPipeline, l as fragmentBindGroupLayout, n as PREMULTIPLIED_BLEND, t as FULLSCREEN_QUAD_WGSL } from "./gpu-
|
|
6
|
-
import { n as decodeAudioSource, o as resolveLayerDuration, p as measureText } from "./dist-
|
|
7
|
-
import { o as TemporalDeflickerPipeline } from "./dist-
|
|
8
|
-
import { B as evaluateKeyframes, I as computeLayout, N as collectNodeOps, U as initLayout, V as evaluateTrackAtFrame } from "./program-
|
|
1
|
+
import "./chunk-W71TSjRM.mjs";
|
|
2
|
+
import { It as getActiveMediaMetadata, _n as reportRenderDiagnostic, p as DEFAULT_DURATION_MS, rn as mediaSourceTime, vn as resolveBoolean, xn as resolveNumber } from "./dist-Bf2_efYP.mjs";
|
|
3
|
+
import { i as effectReach, n as defineRenderer, r as effectMaxPixelScale, s as resolveFrameNumber, t as audioRegistry, u as solveHomography } from "./renderer-BOg8i8eF.mjs";
|
|
4
|
+
import { B as jointMatrices, F as getPrimitiveGeometry, G as measureMaxCaptionHeight, M as fitSpansToText, N as generateExtrudedTextGeometry, Q as poseNodes, at as spansText, ct as transformScale, d as ScreenSpaceRelightPipeline, dt as Camera3D, gt as Matrix4Math, l as Renderer3D, mt as Light3D, n as AudioLatentTrackCache, nt as sampleMorphWeights, ot as srtLoader, p as SlugFontCache, q as parseColor, tt as resolveTextSpans, ut as resolveMediaSourceUrl, vt as Vector3Math } from "./dist-C4Vxgm0Q.mjs";
|
|
5
|
+
import { a as createFullscreenPipeline, l as fragmentBindGroupLayout, n as PREMULTIPLIED_BLEND, t as FULLSCREEN_QUAD_WGSL } from "./gpu-Bw35AMwY.mjs";
|
|
6
|
+
import { n as decodeAudioSource, o as resolveLayerDuration, p as measureText } from "./dist-Cu1fZ9Uy.mjs";
|
|
7
|
+
import { o as TemporalDeflickerPipeline } from "./dist-BIE8fvlv.mjs";
|
|
8
|
+
import { B as evaluateKeyframes, I as computeLayout, N as collectNodeOps, U as initLayout, V as evaluateTrackAtFrame } from "./program-BUjUTdxq.mjs";
|
|
9
9
|
import gsapModule from "gsap";
|
|
10
10
|
|
|
11
|
-
//#region ../../nodes/node-compositor/dist/renderers-
|
|
11
|
+
//#region ../../nodes/node-compositor/dist/renderers-Cvrf0vGs.mjs
|
|
12
12
|
/**
|
|
13
13
|
* Solves a cubic bezier curve defined by control points (x1, y1) and (x2, y2)
|
|
14
14
|
* for a given progress parameter t in [0, 1].
|
|
@@ -847,6 +847,25 @@ function resolveLayer2DPosition(params) {
|
|
|
847
847
|
};
|
|
848
848
|
return transformPoint(pm, localX, localY);
|
|
849
849
|
}
|
|
850
|
+
/** Past this many pixels per layout px a scaled-up layer gains nothing visible. */
|
|
851
|
+
const MAX_RASTER_SCALE = 4;
|
|
852
|
+
/**
|
|
853
|
+
* Pixels per layout px to rasterize a 2D layer at, so it stays sharp when its
|
|
854
|
+
* transform onto the canvas scales it up by `axisScale` (the transform's
|
|
855
|
+
* larger axis scale). Rounded up to a quarter, so an animated zoom reuses a
|
|
856
|
+
* few texture sizes instead of allocating new ones every frame; never below 1
|
|
857
|
+
* (a shrunk layer keeps its layout raster). Capped, rounded down to a quarter,
|
|
858
|
+
* by MAX_RASTER_SCALE, by `limits.maxDimension` (the GPU's texture side), by
|
|
859
|
+
* `limits.maxPixels` (a pixel budget for one texture) and by
|
|
860
|
+
* `limits.effects`, the highest scale the layer's effects keep their look at.
|
|
861
|
+
*/
|
|
862
|
+
function layerRasterScale(axisScale, size, limits) {
|
|
863
|
+
const w = Math.max(1, size.width);
|
|
864
|
+
const h = Math.max(1, size.height);
|
|
865
|
+
const cap = Math.min(MAX_RASTER_SCALE, limits.maxDimension / Math.max(w, h), Math.sqrt(limits.maxPixels / (w * h)), limits.effects);
|
|
866
|
+
const wanted = Math.ceil(axisScale * 4 - 1e-6) / 4;
|
|
867
|
+
return Math.max(1, Math.min(wanted, Math.floor(cap * 4 + 1e-6) / 4));
|
|
868
|
+
}
|
|
850
869
|
const Transform3DMath = {
|
|
851
870
|
identity() {
|
|
852
871
|
return [
|
|
@@ -1345,6 +1364,30 @@ function effectsReach(effects) {
|
|
|
1345
1364
|
}
|
|
1346
1365
|
return reach;
|
|
1347
1366
|
}
|
|
1367
|
+
/**
|
|
1368
|
+
* The most pixels per layout px a leaf's effects keep their look at: the
|
|
1369
|
+
* least any of them declares (`maxPixelScale`), 1 for one that doesn't.
|
|
1370
|
+
* Relighting runs in the leaf itself, at any scale.
|
|
1371
|
+
*/
|
|
1372
|
+
function effectsMaxPixelScale(effects) {
|
|
1373
|
+
let limit = Number.POSITIVE_INFINITY;
|
|
1374
|
+
for (const e of effects) {
|
|
1375
|
+
const op = e && typeof e.toOperation === "function" ? e.toOperation() : e;
|
|
1376
|
+
if (!op || typeof op !== "object" || op.op === "Relight3D") continue;
|
|
1377
|
+
limit = Math.min(limit, effectMaxPixelScale(op));
|
|
1378
|
+
}
|
|
1379
|
+
return limit;
|
|
1380
|
+
}
|
|
1381
|
+
/**
|
|
1382
|
+
* Media content that draws in its layer's own units, so it can be drawn
|
|
1383
|
+
* under a raster scale: a source or a nested composition. Effect, crop and
|
|
1384
|
+
* vision passes wrapped around a source draw at their container's size in
|
|
1385
|
+
* their own pixel space instead.
|
|
1386
|
+
*/
|
|
1387
|
+
function drawsInLayerUnits(content) {
|
|
1388
|
+
const op = content?.operation?.op;
|
|
1389
|
+
return op === "source" || op === "Compositor";
|
|
1390
|
+
}
|
|
1348
1391
|
function quatFromEulerAngles(rx, ry, rz) {
|
|
1349
1392
|
const DEG = Math.PI / 180;
|
|
1350
1393
|
const halfX = rx * DEG / 2;
|
|
@@ -1480,7 +1523,11 @@ async function applyLayerEffectsInRegion(region, effects, sourceTex, width, heig
|
|
|
1480
1523
|
view: out.createView()
|
|
1481
1524
|
};
|
|
1482
1525
|
}
|
|
1483
|
-
|
|
1526
|
+
/**
|
|
1527
|
+
* Runs `effects` over `sourceTex` (`width`×`height` pixels, `pixelScale` of
|
|
1528
|
+
* them per layout px) into a new texture of its size.
|
|
1529
|
+
*/
|
|
1530
|
+
async function applyLayerEffects(effects, sourceTex, width, height, ctx, encoder, props, drawChild, excludes, shiftedFrame, compositionFrame, fps, isVideoMode, layerId, pixelScale = 1) {
|
|
1484
1531
|
const remainingEffects = effects.filter((e) => {
|
|
1485
1532
|
if (!e || typeof e !== "object") return false;
|
|
1486
1533
|
const op = e?.op;
|
|
@@ -1543,6 +1590,7 @@ async function applyLayerEffects(effects, sourceTex, width, height, ctx, encoder
|
|
|
1543
1590
|
...props,
|
|
1544
1591
|
containerWidth: width,
|
|
1545
1592
|
containerHeight: height,
|
|
1593
|
+
pixelScale,
|
|
1546
1594
|
renderId: `${props.renderId}-${layerId}-fx`,
|
|
1547
1595
|
frame: shiftedFrame,
|
|
1548
1596
|
compositionFrame,
|
|
@@ -1730,6 +1778,12 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
1730
1778
|
});
|
|
1731
1779
|
const is3DScene = Boolean(cameraVM || has3DLayer || lightVMs.length > 0);
|
|
1732
1780
|
let camera = null;
|
|
1781
|
+
/** Where a relief keeps its look from: the default camera at the scene's field of view. */
|
|
1782
|
+
let reliefEye = [
|
|
1783
|
+
0,
|
|
1784
|
+
0,
|
|
1785
|
+
0
|
|
1786
|
+
];
|
|
1733
1787
|
let dofEnabled = false;
|
|
1734
1788
|
const sceneLights = [];
|
|
1735
1789
|
let sceneEnvironment = null;
|
|
@@ -1740,6 +1794,7 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
1740
1794
|
const camStub = camOp?.id ? targetsById[camOp.id] : void 0;
|
|
1741
1795
|
const fov = camStub?.cameraFov ?? camOp?.lens?.fov ?? 50;
|
|
1742
1796
|
camera = Camera3D.createDefaultCamera(nativeWidth, nativeHeight, fov);
|
|
1797
|
+
reliefEye = [...camera.eye];
|
|
1743
1798
|
camera.near = camOp?.lens?.near ?? 1;
|
|
1744
1799
|
camera.far = camOp?.lens?.far ?? 5e4;
|
|
1745
1800
|
camera.zoom = camStub?.cameraZoom ?? camOp?.lens?.zoom ?? 1;
|
|
@@ -1860,8 +1915,31 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
1860
1915
|
}
|
|
1861
1916
|
}
|
|
1862
1917
|
const pending3DItems = [];
|
|
1863
|
-
/** Textures the queued 3D items still read: their layers and
|
|
1864
|
-
const pendingTextures = () => pending3DItems.flatMap((q) => [
|
|
1918
|
+
/** Textures the queued 3D items still read: their layers, mattes and reliefs. */
|
|
1919
|
+
const pendingTextures = () => pending3DItems.flatMap((q) => [
|
|
1920
|
+
q.texture,
|
|
1921
|
+
q.opts.matte,
|
|
1922
|
+
q.kind === "quad" ? q.opts.relief?.texture : void 0
|
|
1923
|
+
]).filter((t) => Boolean(t));
|
|
1924
|
+
/** Reliefs of 3D layers by owner id, drawn just before their owner. */
|
|
1925
|
+
const reliefs = /* @__PURE__ */ new Map();
|
|
1926
|
+
/** The relief a 3D layer drawn at (x, y, w, h) of its pass carries, if any. */
|
|
1927
|
+
const reliefOpts = (id, x, y, w, h) => {
|
|
1928
|
+
const r = id === void 0 ? void 0 : reliefs.get(id);
|
|
1929
|
+
if (!r) return {};
|
|
1930
|
+
const { width, height } = r.texture;
|
|
1931
|
+
return { relief: {
|
|
1932
|
+
texture: r.texture,
|
|
1933
|
+
uvRect: [
|
|
1934
|
+
x / width,
|
|
1935
|
+
y / height,
|
|
1936
|
+
w / width,
|
|
1937
|
+
h / height
|
|
1938
|
+
],
|
|
1939
|
+
amount: r.amount,
|
|
1940
|
+
eye: reliefEye
|
|
1941
|
+
} };
|
|
1942
|
+
};
|
|
1865
1943
|
const flush3DPass = (curTex, curView, curExcludes) => {
|
|
1866
1944
|
if (pending3DItems.length === 0 || !camera) return {
|
|
1867
1945
|
finalTex: curTex,
|
|
@@ -2088,6 +2166,14 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
2088
2166
|
}
|
|
2089
2167
|
return true;
|
|
2090
2168
|
};
|
|
2169
|
+
const rasterScaleOf = (matrix, width, height, effects = Number.POSITIVE_INFINITY) => layerRasterScale(transformScale(matrix), {
|
|
2170
|
+
width,
|
|
2171
|
+
height
|
|
2172
|
+
}, {
|
|
2173
|
+
maxDimension: ctx.device.limits.maxTextureDimension2D,
|
|
2174
|
+
maxPixels: 4 * nativeWidth * nativeHeight,
|
|
2175
|
+
effects
|
|
2176
|
+
});
|
|
2091
2177
|
const renderNodeTree = async (vms, initialTex, initialView, excludes, accumulatedOpacity = 1, parentMatrix = new DOMMatrix(), parentRect = null, targetW = nativeWidth, targetH = nativeHeight, parent3DMatrix = null, isRootScene = false) => {
|
|
2092
2178
|
const sorted = [...vms].sort((a, b) => {
|
|
2093
2179
|
return (a.operation?.zIndex ?? 0) - (b.operation?.zIndex ?? 0);
|
|
@@ -2096,14 +2182,16 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
2096
2182
|
let activeView = initialView;
|
|
2097
2183
|
let activeExcludes = excludes;
|
|
2098
2184
|
const mattesByOwner = /* @__PURE__ */ new Map();
|
|
2185
|
+
const reliefsByOwner = /* @__PURE__ */ new Map();
|
|
2099
2186
|
for (const vm of vms) {
|
|
2100
|
-
const
|
|
2101
|
-
if (
|
|
2187
|
+
const op$1 = vm.operation;
|
|
2188
|
+
if (op$1?.matteOf) mattesByOwner.set(op$1.matteOf, vm);
|
|
2189
|
+
if (op$1?.reliefOf) reliefsByOwner.set(op$1.reliefOf, vm);
|
|
2102
2190
|
}
|
|
2103
2191
|
for (const child of sorted) {
|
|
2104
2192
|
const lop = child.operation;
|
|
2105
2193
|
if (lop.kind === "camera" || lop.kind === "light") continue;
|
|
2106
|
-
if (lop.matteOf) continue;
|
|
2194
|
+
if (lop.matteOf || lop.reliefOf) continue;
|
|
2107
2195
|
const targetId = lop.id || lop.inputHandleId;
|
|
2108
2196
|
const target = targetId ? targetsById[targetId] : void 0;
|
|
2109
2197
|
const isChild3D = Boolean(target?.is3D ?? lop.is3D) || Boolean(camera && ((target?.z ?? lop.z ?? 0) !== 0 || lop.is3D)) || Boolean(parent3DMatrix);
|
|
@@ -2127,29 +2215,43 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
2127
2215
|
continue;
|
|
2128
2216
|
}
|
|
2129
2217
|
nodeIndex += 1;
|
|
2218
|
+
const isolate = async (vm, index) => {
|
|
2219
|
+
const queued = pending3DItems.splice(0);
|
|
2220
|
+
const busy = [
|
|
2221
|
+
targetTexture,
|
|
2222
|
+
activeTex,
|
|
2223
|
+
...activeExcludes,
|
|
2224
|
+
...queued.flatMap((q) => [
|
|
2225
|
+
q.texture,
|
|
2226
|
+
q.opts.matte,
|
|
2227
|
+
q.kind === "quad" ? q.opts.relief?.texture : void 0
|
|
2228
|
+
])
|
|
2229
|
+
].filter((t) => Boolean(t));
|
|
2230
|
+
const tex = ctx.renderer.getTemporaryTexture(targetW, targetH, busy);
|
|
2231
|
+
const view = tex.createView();
|
|
2232
|
+
ctx.renderer.beginFrame(encoder, view, {
|
|
2233
|
+
r: 0,
|
|
2234
|
+
g: 0,
|
|
2235
|
+
b: 0,
|
|
2236
|
+
a: 0
|
|
2237
|
+
}, targetW, targetH, "clear").end();
|
|
2238
|
+
const drawn = (await renderLayerVM(vm, index, tex, view, busy.filter((t) => t !== targetTexture), accumulatedOpacity, parentMatrix, parentRect, targetW, targetH, parent3DMatrix, false))?.finalTex ?? tex;
|
|
2239
|
+
const flat = flush3DPass(drawn, drawn.createView(), busy).finalTex;
|
|
2240
|
+
pending3DItems.push(...queued);
|
|
2241
|
+
return flat;
|
|
2242
|
+
};
|
|
2243
|
+
const reliefVM = lop.reliefId ? reliefsByOwner.get(lop.id) : void 0;
|
|
2244
|
+
if (reliefVM && isChild3D) {
|
|
2245
|
+
const texture = await isolate(reliefVM, nodeIndex);
|
|
2246
|
+
activeExcludes = [...activeExcludes, texture];
|
|
2247
|
+
nodeIndex += 1;
|
|
2248
|
+
reliefs.set(lop.id, {
|
|
2249
|
+
texture,
|
|
2250
|
+
amount: lop.reliefAmount ?? 0
|
|
2251
|
+
});
|
|
2252
|
+
}
|
|
2130
2253
|
const matteVM = lop.matteId ? mattesByOwner.get(lop.id) : void 0;
|
|
2131
2254
|
if (matteVM) {
|
|
2132
|
-
const isolate = async (vm, index) => {
|
|
2133
|
-
const queued = pending3DItems.splice(0);
|
|
2134
|
-
const busy = [
|
|
2135
|
-
targetTexture,
|
|
2136
|
-
activeTex,
|
|
2137
|
-
...activeExcludes,
|
|
2138
|
-
...queued.flatMap((q) => [q.texture, q.opts.matte])
|
|
2139
|
-
].filter((t) => Boolean(t));
|
|
2140
|
-
const tex = ctx.renderer.getTemporaryTexture(targetW, targetH, busy);
|
|
2141
|
-
const view = tex.createView();
|
|
2142
|
-
ctx.renderer.beginFrame(encoder, view, {
|
|
2143
|
-
r: 0,
|
|
2144
|
-
g: 0,
|
|
2145
|
-
b: 0,
|
|
2146
|
-
a: 0
|
|
2147
|
-
}, targetW, targetH, "clear").end();
|
|
2148
|
-
const drawn = (await renderLayerVM(vm, index, tex, view, busy.filter((t) => t !== targetTexture), accumulatedOpacity, parentMatrix, parentRect, targetW, targetH, parent3DMatrix, false))?.finalTex ?? tex;
|
|
2149
|
-
const flat = flush3DPass(drawn, drawn.createView(), busy).finalTex;
|
|
2150
|
-
pending3DItems.push(...queued);
|
|
2151
|
-
return flat;
|
|
2152
|
-
};
|
|
2153
2255
|
const mode = matteVM.operation.matteMode ?? "alpha";
|
|
2154
2256
|
const blend = mode === "luma" ? "luma-in" : mode === "luma-inverted" ? "luma-out" : mode === "alpha-inverted" ? "destination-out" : "destination-in";
|
|
2155
2257
|
if (isChild3D) {
|
|
@@ -3423,7 +3525,8 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
3423
3525
|
ambientIntensity: target?.ambientIntensity ?? lop.ambientIntensity,
|
|
3424
3526
|
metallic: target?.metallic ?? lop.metallic,
|
|
3425
3527
|
...surfaceProps(target, lop),
|
|
3426
|
-
...modelMatrix && { modelMatrix }
|
|
3528
|
+
...modelMatrix && { modelMatrix },
|
|
3529
|
+
...reliefOpts(lop.id, localX, localY, layerW, layerH)
|
|
3427
3530
|
};
|
|
3428
3531
|
pending3DItems.push({
|
|
3429
3532
|
kind: "quad",
|
|
@@ -3554,7 +3657,7 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
3554
3657
|
activeTex,
|
|
3555
3658
|
targetTexture,
|
|
3556
3659
|
...excludes
|
|
3557
|
-
]) : null;
|
|
3660
|
+
], rasterScaleOf(layerMatrix, layerW, layerH)) : null;
|
|
3558
3661
|
if (paint || border) {
|
|
3559
3662
|
const pass$1 = ctx.renderer.beginFrame(encoder, activeView, {
|
|
3560
3663
|
r: 0,
|
|
@@ -3611,7 +3714,7 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
3611
3714
|
activeTex,
|
|
3612
3715
|
targetTexture,
|
|
3613
3716
|
...excludes
|
|
3614
|
-
]) : null;
|
|
3717
|
+
], rasterScaleOf(layerMatrix, layerW, layerH)) : null;
|
|
3615
3718
|
if (border) {
|
|
3616
3719
|
const pass$1 = ctx.renderer.beginFrame(encoder, activeView, {
|
|
3617
3720
|
r: 0,
|
|
@@ -3698,7 +3801,7 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
3698
3801
|
]);
|
|
3699
3802
|
activeGroupView = activeGroupTex.createView();
|
|
3700
3803
|
}
|
|
3701
|
-
const borderResult$1 = lop.borderWidth !== void 0 && lop.borderColor ? createBorderTexture(ctx, encoder, layerW, layerH, br$1, lop.borderWidth, lop.borderColor, lop.strokeAlign ?? "inside", [activeGroupTex, ...groupExcludes]) : null;
|
|
3804
|
+
const borderResult$1 = lop.borderWidth !== void 0 && lop.borderColor ? createBorderTexture(ctx, encoder, layerW, layerH, br$1, lop.borderWidth, lop.borderColor, lop.strokeAlign ?? "inside", [activeGroupTex, ...groupExcludes], rasterScaleOf(layerMatrix, layerW, layerH)) : null;
|
|
3702
3805
|
if (borderResult$1) {
|
|
3703
3806
|
const borderPass = ctx.renderer.beginFrame(encoder, activeGroupView, {
|
|
3704
3807
|
r: 0,
|
|
@@ -3802,8 +3905,24 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
3802
3905
|
finalView: activeView
|
|
3803
3906
|
};
|
|
3804
3907
|
const br = Math.min(lop.borderRadius ?? lop.strokeRadius ?? 0, layerW / 2, layerH / 2);
|
|
3805
|
-
const
|
|
3806
|
-
const
|
|
3908
|
+
const leafDeflickerEffect = Array.isArray(lop.effects) ? lop.effects.find((e) => e?.op === "TemporalDeflicker" || e?.constructor?.name === "TemporalDeflicker") : void 0;
|
|
3909
|
+
const deflickerOpts = target?.deflicker ?? lop.deflicker ?? leafDeflickerEffect;
|
|
3910
|
+
const leafRelightEffect = Array.isArray(lop.effects) ? lop.effects.find((e) => e?.op === "Relight3D" || e?.constructor?.name === "Relight3D") : void 0;
|
|
3911
|
+
const rawLeafRelight = target?.relighting ?? lop.relighting ?? (typeof lop.relight === "object" ? lop.relight : void 0) ?? leafRelightEffect;
|
|
3912
|
+
const relightOpts = typeof rawLeafRelight === "object" && rawLeafRelight !== null ? rawLeafRelight : void 0;
|
|
3913
|
+
const shutterAngle = target?.motionBlurShutter ?? lop.motionBlurShutter ?? 0;
|
|
3914
|
+
const hasEffects = kind !== "media" && Array.isArray(lop.effects) && lop.effects.length > 0;
|
|
3915
|
+
const rasterScale = isTrue3D || is3D || deflickerOpts || kind === "media" && !drawsInLayerUnits(nodeVM.children?.[0]) ? 1 : rasterScaleOf(layerMatrix, layerW, layerH, hasEffects ? effectsMaxPixelScale(lop.effects) : void 0);
|
|
3916
|
+
const raster = new DOMMatrix([
|
|
3917
|
+
rasterScale,
|
|
3918
|
+
0,
|
|
3919
|
+
0,
|
|
3920
|
+
rasterScale,
|
|
3921
|
+
0,
|
|
3922
|
+
0
|
|
3923
|
+
]);
|
|
3924
|
+
const texW = Math.ceil(layerW * rasterScale);
|
|
3925
|
+
const texH = Math.ceil(layerH * rasterScale);
|
|
3807
3926
|
const savedScissors = ctx.renderer.suspendScissors?.() ?? [];
|
|
3808
3927
|
const localTex = ctx.renderer.getTemporaryTexture(texW, texH, [
|
|
3809
3928
|
activeTex,
|
|
@@ -3944,6 +4063,7 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
3944
4063
|
const captureGlyphs = isTrue3D && kind === "text";
|
|
3945
4064
|
const rasterDrawsBefore = ctx.renderer.rasterDrawCount;
|
|
3946
4065
|
if (captureGlyphs) ctx.renderer.slugPipeline.beginCapture();
|
|
4066
|
+
ctx.renderer.pushTransform(raster);
|
|
3947
4067
|
try {
|
|
3948
4068
|
await drawChild(content, {
|
|
3949
4069
|
containerWidth: layerW,
|
|
@@ -3985,6 +4105,7 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
3985
4105
|
}
|
|
3986
4106
|
}, localView, localTex, texW, texH);
|
|
3987
4107
|
} finally {
|
|
4108
|
+
ctx.renderer.popTransform();
|
|
3988
4109
|
if (captureGlyphs) glyphBatches = ctx.renderer.slugPipeline.endCapture();
|
|
3989
4110
|
}
|
|
3990
4111
|
layerHasRaster = ctx.renderer.rasterDrawCount !== rasterDrawsBefore;
|
|
@@ -4042,6 +4163,7 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
4042
4163
|
const trimStart = target?.trimStart ?? lop.trimStart ?? 0;
|
|
4043
4164
|
const trimEnd = target?.trimEnd ?? lop.trimEnd ?? 1;
|
|
4044
4165
|
const trimOffset = target?.trimOffset ?? lop.trimOffset ?? 0;
|
|
4166
|
+
ctx.renderer.pushTransform(raster);
|
|
4045
4167
|
ctx.renderer.drawShape(shapePass, shapeConfig, fillConfig, strokeWidth > 0 ? {
|
|
4046
4168
|
color: strokeColor,
|
|
4047
4169
|
width: strokeWidth,
|
|
@@ -4052,15 +4174,9 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
4052
4174
|
dashArray: strokeDashArray,
|
|
4053
4175
|
dashOffset: strokeDashOffset
|
|
4054
4176
|
} : void 0);
|
|
4177
|
+
ctx.renderer.popTransform();
|
|
4055
4178
|
shapePass.end();
|
|
4056
4179
|
}
|
|
4057
|
-
const leafDeflickerEffect = Array.isArray(lop.effects) ? lop.effects.find((e) => e?.op === "TemporalDeflicker" || e?.constructor?.name === "TemporalDeflicker") : void 0;
|
|
4058
|
-
const deflickerOpts = target?.deflicker ?? lop.deflicker ?? leafDeflickerEffect;
|
|
4059
|
-
const leafRelightEffect = Array.isArray(lop.effects) ? lop.effects.find((e) => e?.op === "Relight3D" || e?.constructor?.name === "Relight3D") : void 0;
|
|
4060
|
-
const rawLeafRelight = target?.relighting ?? lop.relighting ?? (typeof lop.relight === "object" ? lop.relight : void 0) ?? leafRelightEffect;
|
|
4061
|
-
const relightOpts = typeof rawLeafRelight === "object" && rawLeafRelight !== null ? rawLeafRelight : void 0;
|
|
4062
|
-
const shutterAngle = target?.motionBlurShutter ?? lop.motionBlurShutter ?? 0;
|
|
4063
|
-
const hasEffects = kind !== "media" && Array.isArray(lop.effects) && lop.effects.length > 0;
|
|
4064
4180
|
if (glyphBatches && glyphBatches.length > 0 && (deflickerOpts || relightOpts || shutterAngle > 0 || hasEffects)) {
|
|
4065
4181
|
const glyphPass = ctx.renderer.beginFrame(encoder, localView, {
|
|
4066
4182
|
r: 0,
|
|
@@ -4094,6 +4210,7 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
4094
4210
|
b: 0,
|
|
4095
4211
|
a: 0
|
|
4096
4212
|
}, texW, texH, "load");
|
|
4213
|
+
ctx.renderer.pushTransform(raster);
|
|
4097
4214
|
ctx.renderer.drawRect(maskPass, {
|
|
4098
4215
|
x: 0,
|
|
4099
4216
|
y: 0,
|
|
@@ -4105,6 +4222,7 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
4105
4222
|
b: 1,
|
|
4106
4223
|
a: 1
|
|
4107
4224
|
}, br);
|
|
4225
|
+
ctx.renderer.popTransform();
|
|
4108
4226
|
maskPass.end();
|
|
4109
4227
|
finalTex = ctx.renderer.composite(encoder, localTex, maskTex, "mask-in", [
|
|
4110
4228
|
activeTex,
|
|
@@ -4120,11 +4238,13 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
4120
4238
|
if (relightOpts) {
|
|
4121
4239
|
const relightPipeline = getScreenSpaceRelightPipeline(ctx.device, ctx.renderer.format ?? "rgba8unorm");
|
|
4122
4240
|
const r3dInstance = getRenderer3D(ctx.device, ctx.renderer.format ?? "rgba8unorm", sampleCount3d);
|
|
4241
|
+
const extentW = texW / rasterScale;
|
|
4242
|
+
const extentH = texH / rasterScale;
|
|
4123
4243
|
const activeLights = synthesizeRelightLights(relightOpts, sceneLights, {
|
|
4124
4244
|
x: sampledX,
|
|
4125
4245
|
y: sampledY,
|
|
4126
|
-
width:
|
|
4127
|
-
height:
|
|
4246
|
+
width: extentW,
|
|
4247
|
+
height: extentH
|
|
4128
4248
|
}, compositionFrame, fps ?? 24);
|
|
4129
4249
|
const lightsBuffer = r3dInstance.getOrCreateLightsBuffer(activeLights);
|
|
4130
4250
|
const relitTex = ctx.renderer.getTemporaryTexture(texW, texH, [
|
|
@@ -4136,8 +4256,8 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
4136
4256
|
const relitView = relitTex.createView();
|
|
4137
4257
|
const normalTex = relightOpts.normalTexture ?? relightOpts.normalMap;
|
|
4138
4258
|
relightPipeline.execute(encoder, relitView, finalTex, normalTex, lightsBuffer, {
|
|
4139
|
-
viewportWidth:
|
|
4140
|
-
viewportHeight:
|
|
4259
|
+
viewportWidth: extentW,
|
|
4260
|
+
viewportHeight: extentH,
|
|
4141
4261
|
layerX: sampledX,
|
|
4142
4262
|
layerY: sampledY,
|
|
4143
4263
|
roughness: resolveFrameNumber(target?.roughness ?? target?.relightRoughness ?? relightOpts.specularRoughness ?? relightOpts.roughness, .35, compositionFrame, fps ?? 24),
|
|
@@ -4162,9 +4282,11 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
4162
4282
|
if (Math.hypot(vx, vy) > .5) {
|
|
4163
4283
|
if (!isTrue3D && !(is3D && quad3D)) {
|
|
4164
4284
|
const reach = shutterAngle / 360;
|
|
4165
|
-
|
|
4166
|
-
|
|
4167
|
-
|
|
4285
|
+
const padX$1 = Math.ceil(Math.abs(vx) * rasterScale * reach);
|
|
4286
|
+
const padY$1 = Math.ceil(Math.abs(vy) * rasterScale * reach);
|
|
4287
|
+
blurPadX = padX$1 / rasterScale;
|
|
4288
|
+
blurPadY = padY$1 / rasterScale;
|
|
4289
|
+
const paddedTex = ctx.renderer.getTemporaryTexture(texW + padX$1 * 2, texH + padY$1 * 2, [
|
|
4168
4290
|
finalTex,
|
|
4169
4291
|
activeTex,
|
|
4170
4292
|
targetTexture,
|
|
@@ -4177,17 +4299,17 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
4177
4299
|
a: 0
|
|
4178
4300
|
}, paddedTex.width, paddedTex.height, "clear");
|
|
4179
4301
|
ctx.renderer.drawTexture(padPass, finalTex, {
|
|
4180
|
-
x:
|
|
4181
|
-
y:
|
|
4302
|
+
x: padX$1,
|
|
4303
|
+
y: padY$1,
|
|
4182
4304
|
width: texW,
|
|
4183
4305
|
height: texH
|
|
4184
4306
|
}, { opacity: 1 });
|
|
4185
4307
|
padPass.end();
|
|
4186
4308
|
finalTex = paddedTex;
|
|
4187
4309
|
}
|
|
4188
|
-
const streakPx = Math.hypot(vx, vy) * (shutterAngle / 360) * 2;
|
|
4310
|
+
const streakPx = Math.hypot(vx, vy) * rasterScale * (shutterAngle / 360) * 2;
|
|
4189
4311
|
const samples = Math.min(128, Math.max(16, Math.ceil(streakPx / 2)));
|
|
4190
|
-
finalTex = ctx.renderer.applyMotionBlur(encoder, finalTex, vx, vy, shutterAngle, samples, [
|
|
4312
|
+
finalTex = ctx.renderer.applyMotionBlur(encoder, finalTex, vx * rasterScale, vy * rasterScale, shutterAngle, samples, [
|
|
4191
4313
|
activeTex,
|
|
4192
4314
|
targetTexture,
|
|
4193
4315
|
...excludes
|
|
@@ -4199,7 +4321,7 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
4199
4321
|
activeTex,
|
|
4200
4322
|
targetTexture,
|
|
4201
4323
|
...excludes
|
|
4202
|
-
], shiftedFrame, compositionFrame, fps ?? 24, isVideoMode, lop.id ?? `leaf_${i}
|
|
4324
|
+
], shiftedFrame, compositionFrame, fps ?? 24, isVideoMode, lop.id ?? `leaf_${i}`, rasterScale)).texture;
|
|
4203
4325
|
const borderExcludes = [
|
|
4204
4326
|
localTex,
|
|
4205
4327
|
finalTex,
|
|
@@ -4207,7 +4329,7 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
4207
4329
|
targetTexture,
|
|
4208
4330
|
...excludes
|
|
4209
4331
|
];
|
|
4210
|
-
const borderResult = !isTrue3D && lop.borderWidth !== void 0 && lop.borderColor ? createBorderTexture(ctx, encoder, layerW, layerH, br, lop.borderWidth, lop.borderColor, lop.strokeAlign ?? "inside", borderExcludes) : null;
|
|
4332
|
+
const borderResult = !isTrue3D && lop.borderWidth !== void 0 && lop.borderColor ? createBorderTexture(ctx, encoder, layerW, layerH, br, lop.borderWidth, lop.borderColor, lop.strokeAlign ?? "inside", borderExcludes, rasterScale) : null;
|
|
4211
4333
|
if (savedScissors.length > 0) ctx.renderer.resumeScissors?.(savedScissors);
|
|
4212
4334
|
if (isTrue3D) {
|
|
4213
4335
|
const renderedTex = finalTex;
|
|
@@ -4258,7 +4380,7 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
4258
4380
|
],
|
|
4259
4381
|
width: layerW,
|
|
4260
4382
|
height: layerH,
|
|
4261
|
-
textureExtent: [layerW / texW, layerH / texH],
|
|
4383
|
+
textureExtent: [layerW * rasterScale / texW, layerH * rasterScale / texH],
|
|
4262
4384
|
rotation: [
|
|
4263
4385
|
target?.rotateX ?? lop.rotateX ?? 0,
|
|
4264
4386
|
target?.rotateY ?? lop.rotateY ?? 0,
|
|
@@ -4282,7 +4404,8 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
4282
4404
|
ambientIntensity: target?.ambientIntensity ?? lop.ambientIntensity,
|
|
4283
4405
|
metallic: target?.metallic ?? lop.metallic,
|
|
4284
4406
|
...surfaceProps(target, lop),
|
|
4285
|
-
...modelMatrix && { modelMatrix }
|
|
4407
|
+
...modelMatrix && { modelMatrix },
|
|
4408
|
+
...reliefOpts(lop.id, localX, localY, layerW, layerH)
|
|
4286
4409
|
};
|
|
4287
4410
|
const quadHasContent = layerHasRaster || Boolean(quadOpts.borderWidth && quadOpts.borderWidth > 0 && quadOpts.borderColor);
|
|
4288
4411
|
if (!glyphBatches || quadHasContent) pending3DItems.push({
|
|
@@ -4436,7 +4559,11 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
4436
4559
|
};
|
|
4437
4560
|
/** Pixels of room around a border texture for its anti-aliased edge. */
|
|
4438
4561
|
const BORDER_AA_MARGIN = 2;
|
|
4439
|
-
|
|
4562
|
+
/**
|
|
4563
|
+
* A `w`×`h` box's border as a texture, `rasterScale` pixels per layout px,
|
|
4564
|
+
* and the rect it covers in layout px (around the box, at its origin).
|
|
4565
|
+
*/
|
|
4566
|
+
function createBorderTexture(ctx, encoder, w, h, br, borderWidth, borderColor, strokeAlign, excludeTextures, rasterScale = 1) {
|
|
4440
4567
|
if (w <= 0 || h <= 0 || !borderColor || !borderWidth || borderWidth <= 0) return null;
|
|
4441
4568
|
let ox = 0;
|
|
4442
4569
|
let oy = 0;
|
|
@@ -4472,8 +4599,16 @@ function createBorderTexture(ctx, encoder, w, h, br, borderWidth, borderColor, s
|
|
|
4472
4599
|
}
|
|
4473
4600
|
if (ow <= 0 || oh <= 0) return null;
|
|
4474
4601
|
const m = BORDER_AA_MARGIN;
|
|
4475
|
-
const borderTexW = Math.ceil(ow + 2 * m);
|
|
4476
|
-
const borderTexH = Math.ceil(oh + 2 * m);
|
|
4602
|
+
const borderTexW = Math.ceil((ow + 2 * m) * rasterScale);
|
|
4603
|
+
const borderTexH = Math.ceil((oh + 2 * m) * rasterScale);
|
|
4604
|
+
const raster = new DOMMatrix([
|
|
4605
|
+
rasterScale,
|
|
4606
|
+
0,
|
|
4607
|
+
0,
|
|
4608
|
+
rasterScale,
|
|
4609
|
+
0,
|
|
4610
|
+
0
|
|
4611
|
+
]);
|
|
4477
4612
|
const outerTex = ctx.renderer.getTemporaryTexture(borderTexW, borderTexH, excludeTextures);
|
|
4478
4613
|
const outerView = outerTex.createView();
|
|
4479
4614
|
ctx.renderer.beginFrame(encoder, outerView, {
|
|
@@ -4488,12 +4623,14 @@ function createBorderTexture(ctx, encoder, w, h, br, borderWidth, borderColor, s
|
|
|
4488
4623
|
b: 0,
|
|
4489
4624
|
a: 0
|
|
4490
4625
|
}, borderTexW, borderTexH, "load");
|
|
4626
|
+
ctx.renderer.pushTransform(raster);
|
|
4491
4627
|
ctx.renderer.drawRect(outerDrawPass, {
|
|
4492
4628
|
x: m,
|
|
4493
4629
|
y: m,
|
|
4494
4630
|
width: ow,
|
|
4495
4631
|
height: oh
|
|
4496
4632
|
}, borderColor, outerRadius);
|
|
4633
|
+
ctx.renderer.popTransform();
|
|
4497
4634
|
outerDrawPass.end();
|
|
4498
4635
|
const innerW = ow - 2 * borderWidth;
|
|
4499
4636
|
const innerH = oh - 2 * borderWidth;
|
|
@@ -4512,6 +4649,7 @@ function createBorderTexture(ctx, encoder, w, h, br, borderWidth, borderColor, s
|
|
|
4512
4649
|
b: 0,
|
|
4513
4650
|
a: 0
|
|
4514
4651
|
}, borderTexW, borderTexH, "load");
|
|
4652
|
+
ctx.renderer.pushTransform(raster);
|
|
4515
4653
|
ctx.renderer.drawRect(innerDrawPass, {
|
|
4516
4654
|
x: m + borderWidth,
|
|
4517
4655
|
y: m + borderWidth,
|
|
@@ -4523,21 +4661,22 @@ function createBorderTexture(ctx, encoder, w, h, br, borderWidth, borderColor, s
|
|
|
4523
4661
|
b: 1,
|
|
4524
4662
|
a: 1
|
|
4525
4663
|
}, innerRadius);
|
|
4664
|
+
ctx.renderer.popTransform();
|
|
4526
4665
|
innerDrawPass.end();
|
|
4527
4666
|
return {
|
|
4528
4667
|
borderTex: ctx.renderer.composite(encoder, outerTex, innerTex, "mask-out", excludeTextures),
|
|
4529
4668
|
ox: ox - m,
|
|
4530
4669
|
oy: oy - m,
|
|
4531
|
-
ow: borderTexW,
|
|
4532
|
-
oh: borderTexH
|
|
4670
|
+
ow: borderTexW / rasterScale,
|
|
4671
|
+
oh: borderTexH / rasterScale
|
|
4533
4672
|
};
|
|
4534
4673
|
}
|
|
4535
4674
|
return {
|
|
4536
4675
|
borderTex: outerTex,
|
|
4537
4676
|
ox: ox - m,
|
|
4538
4677
|
oy: oy - m,
|
|
4539
|
-
ow: borderTexW,
|
|
4540
|
-
oh: borderTexH
|
|
4678
|
+
ow: borderTexW / rasterScale,
|
|
4679
|
+
oh: borderTexH / rasterScale
|
|
4541
4680
|
};
|
|
4542
4681
|
}
|
|
4543
4682
|
const compositorLayerAudioProcessor = async (channels, sampleRate, virtualMedia, ctx) => {
|
|
@@ -4593,4 +4732,4 @@ var renderers_default = defineRenderer({ WebGPURenderer: CompositorWebGPURendere
|
|
|
4593
4732
|
|
|
4594
4733
|
//#endregion
|
|
4595
4734
|
export { Transform3DMath, renderers_default as default, has3DTransform };
|
|
4596
|
-
//# sourceMappingURL=renderer-
|
|
4735
|
+
//# sourceMappingURL=renderer-DMtzPqYo.mjs.map
|