framefields 2.0.10 → 2.1.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/README.md +39 -11
- package/dist/audio/index.d.mts +4 -4
- package/dist/audio/index.mjs +13 -12
- package/dist/{audio-BxA0sL9z.d.mts → audio-C2fLC3Tx.d.mts} +3 -3
- package/dist/{audio-BxA0sL9z.d.mts.map → audio-C2fLC3Tx.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-B7Al-W_0.mjs → audio-D_4SeMRK.mjs} +4 -4
- package/dist/{audio-B7Al-W_0.mjs.map → audio-D_4SeMRK.mjs.map} +1 -1
- package/dist/{client-CwRhflHE.mjs → client-dVxUnmHz.mjs} +1 -1
- package/dist/{client-CwRhflHE.mjs.map → client-dVxUnmHz.mjs.map} +1 -1
- 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-DzUJmIHt.mjs → dist-BY0bIWgr.mjs} +10 -2
- package/dist/dist-BY0bIWgr.mjs.map +1 -0
- package/dist/{dist-B9PkqWnN.mjs → dist-Bun_TUvZ.mjs} +24046 -20774
- package/dist/dist-Bun_TUvZ.mjs.map +1 -0
- package/dist/{dist-BFjSQP7i.mjs → dist-DlzqyRar.mjs} +75 -618
- package/dist/dist-DlzqyRar.mjs.map +1 -0
- package/dist/{dist-cjs-TsA8LFXC.mjs → dist-cjs-91nR6B7Z.mjs} +3 -3
- package/dist/{dist-cjs-TsA8LFXC.mjs.map → dist-cjs-91nR6B7Z.mjs.map} +1 -1
- package/dist/{dist-cjs-DJ8fcQEe.mjs → dist-cjs-BAIenEMC.mjs} +11 -11
- package/dist/{dist-cjs-DJ8fcQEe.mjs.map → dist-cjs-BAIenEMC.mjs.map} +1 -1
- package/dist/{dist-cjs-BmyyWYWv.mjs → dist-cjs-BEQhh76X.mjs} +2 -2
- package/dist/{dist-cjs-BmyyWYWv.mjs.map → dist-cjs-BEQhh76X.mjs.map} +1 -1
- package/dist/{dist-cjs--pxyGFw2.mjs → dist-cjs-BYPq7pfw.mjs} +1 -1
- package/dist/{dist-cjs--pxyGFw2.mjs.map → dist-cjs-BYPq7pfw.mjs.map} +1 -1
- package/dist/{dist-cjs--lfMLs3U.mjs → dist-cjs-BocDqSCX.mjs} +4 -4
- package/dist/{dist-cjs--lfMLs3U.mjs.map → dist-cjs-BocDqSCX.mjs.map} +1 -1
- package/dist/{dist-cjs-CsU2sZoX.mjs → dist-cjs-CWiNggTl.mjs} +4 -4
- package/dist/{dist-cjs-CsU2sZoX.mjs.map → dist-cjs-CWiNggTl.mjs.map} +1 -1
- package/dist/{dist-cjs-DjzmP0-x.mjs → dist-cjs-CwabutT6.mjs} +13 -13
- package/dist/{dist-cjs-DjzmP0-x.mjs.map → dist-cjs-CwabutT6.mjs.map} +1 -1
- package/dist/{dist-cjs-BDpO-TH_.mjs → dist-cjs-D-EE4Ahy.mjs} +1 -1
- package/dist/{dist-cjs-BDpO-TH_.mjs.map → dist-cjs-D-EE4Ahy.mjs.map} +1 -1
- package/dist/{dist-cjs-CQwmMllY.mjs → dist-cjs-DNtDUWfk.mjs} +6 -6
- package/dist/{dist-cjs-CQwmMllY.mjs.map → dist-cjs-DNtDUWfk.mjs.map} +1 -1
- package/dist/{dist-cjs-CND_ghfH.mjs → dist-cjs-DbZhsgS0.mjs} +1 -1
- package/dist/{dist-cjs-CND_ghfH.mjs.map → dist-cjs-DbZhsgS0.mjs.map} +1 -1
- package/dist/{dist-cjs-CgFzrgj8.mjs → dist-cjs-Dh7REKcN.mjs} +1 -1
- package/dist/{dist-cjs-CgFzrgj8.mjs.map → dist-cjs-Dh7REKcN.mjs.map} +1 -1
- package/dist/{dist-cjs-DT2jJlcK.mjs → dist-cjs-Dobx0Nz-.mjs} +5 -5
- package/dist/{dist-cjs-DT2jJlcK.mjs.map → dist-cjs-Dobx0Nz-.mjs.map} +1 -1
- package/dist/{dist-cjs-DzjrlfbE.mjs → dist-cjs-Du0UpNof.mjs} +14 -14
- package/dist/{dist-cjs-DzjrlfbE.mjs.map → dist-cjs-Du0UpNof.mjs.map} +1 -1
- package/dist/dist-cjs-DyHiUfsr.mjs +6 -0
- package/dist/{dist-cjs-M-8QOgS_.mjs → dist-cjs-HHMfMF5a.mjs} +2 -2
- package/dist/{dist-cjs-M-8QOgS_.mjs.map → dist-cjs-HHMfMF5a.mjs.map} +1 -1
- package/dist/{dist-cjs-BiKQozdJ.mjs → dist-cjs-UJYQzLNT.mjs} +3 -3
- package/dist/{dist-cjs-BiKQozdJ.mjs.map → dist-cjs-UJYQzLNT.mjs.map} +1 -1
- package/dist/{dist-cjs-agQl9T8M.mjs → dist-cjs-UKxm5cFR.mjs} +6 -6
- package/dist/{dist-cjs-agQl9T8M.mjs.map → dist-cjs-UKxm5cFR.mjs.map} +1 -1
- package/dist/{dist-B9Afsv83.mjs → dist-fjKpBYkc.mjs} +662 -28
- 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-CREopCyP.mjs → effects-FTlu0dri.mjs} +3 -3
- package/dist/{effects-CREopCyP.mjs.map → effects-FTlu0dri.mjs.map} +1 -1
- package/dist/{event-streams-BaNGaLxh.mjs → event-streams-DnRe8uwT.mjs} +2 -2
- package/dist/{event-streams-BaNGaLxh.mjs.map → event-streams-DnRe8uwT.mjs.map} +1 -1
- package/dist/fonts/index.d.mts +2 -2
- package/dist/fonts/index.mjs +3 -1
- package/dist/{fonts-DhEQ5h6E.mjs → fonts-UM5xaBOx.mjs} +66 -6
- package/dist/fonts-UM5xaBOx.mjs.map +1 -0
- package/dist/gpu-RkpiFGOA.mjs +215 -0
- package/dist/gpu-RkpiFGOA.mjs.map +1 -0
- package/dist/{index-BXNNJVs8.d.mts → index-CHQ39_Oe.d.mts} +2 -2
- package/dist/{index-BXNNJVs8.d.mts.map → index-CHQ39_Oe.d.mts.map} +1 -1
- package/dist/{index-CvDVpaKn.d.mts → index-CzQseCtg.d.mts} +8 -8
- package/dist/{index-CvDVpaKn.d.mts.map → index-CzQseCtg.d.mts.map} +1 -1
- package/dist/{index-D1zaOwEU.d.mts → index-D67p-rHX.d.mts} +3506 -1280
- package/dist/index-D67p-rHX.d.mts.map +1 -0
- package/dist/{index-J9CIK_nu.d.mts → index-DPicEt8H.d.mts} +10 -2
- package/dist/index-DPicEt8H.d.mts.map +1 -0
- package/dist/{index-oodg5k9K.d.mts → index-Db8Z3AtX.d.mts} +3 -3
- package/dist/{index-oodg5k9K.d.mts.map → index-Db8Z3AtX.d.mts.map} +1 -1
- package/dist/{index-fo4E7A6C.d.mts → index-DsOqONsj.d.mts} +3 -3
- package/dist/{index-fo4E7A6C.d.mts.map → index-DsOqONsj.d.mts.map} +1 -1
- package/dist/{index-CQcdKyxF.d.mts → index-l03NV8JS.d.mts} +59 -2
- package/dist/index-l03NV8JS.d.mts.map +1 -0
- package/dist/index.d.mts +416 -1849
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +669 -79
- package/dist/index.mjs.map +1 -1
- package/dist/{package-XpCRbTOA.mjs → package-CudzAF-n.mjs} +1 -1
- package/dist/{package-XpCRbTOA.mjs.map → package-CudzAF-n.mjs.map} +1 -1
- package/dist/preview/index.d.mts +2 -2
- package/dist/preview/index.mjs +13 -12
- package/dist/{preview-9ifxywUM.mjs → preview-DwClLMlU.mjs} +3 -3
- package/dist/{preview-9ifxywUM.mjs.map → preview-DwClLMlU.mjs.map} +1 -1
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/{chunk-AW7HNZKR.mjs → chunk-3GNP7TJH.mjs} +3 -3
- package/dist/preview-engine/{chunk-LIHUEYI5.mjs → chunk-44CQSOYE.mjs} +2 -2
- 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-7EPIRODI.mjs +91 -0
- package/dist/preview-engine/{chunk-PQD5UPHG.mjs → chunk-7G3XIOP7.mjs} +1 -1
- package/dist/preview-engine/chunk-7J2FWGVD.mjs +1 -0
- package/dist/preview-engine/chunk-AXHB4J37.mjs +147 -0
- package/dist/preview-engine/chunk-AY7UX37L.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-24DXIKXL.mjs → chunk-DIGIQ5MJ.mjs} +2 -2
- 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-XLFYM7KH.mjs → chunk-EVXWDOCL.mjs} +2 -2
- package/dist/preview-engine/{chunk-EQ4QZRXB.mjs → chunk-EYWPOCZW.mjs} +2 -2
- package/dist/preview-engine/{chunk-IYVN2QEL.mjs → chunk-FLPSWDX4.mjs} +1 -1
- 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-HE4R7EZM.mjs +121 -0
- package/dist/preview-engine/chunk-IQC2I5A5.mjs +1 -0
- package/dist/preview-engine/chunk-IQKIHFNZ.mjs +1 -0
- package/dist/preview-engine/{chunk-XCYFPA34.mjs → chunk-IR5DNNWR.mjs} +3 -23
- 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-JXNG2ACR.mjs +118 -0
- package/dist/preview-engine/{chunk-V6VU46ZG.mjs → chunk-L6BH5J4P.mjs} +1 -1
- package/dist/preview-engine/chunk-LGVEFPOG.mjs +3 -0
- package/dist/preview-engine/{chunk-MDDF2GCF.mjs → chunk-MLY5M7Y5.mjs} +3 -23
- package/dist/preview-engine/chunk-NPD6W3RP.mjs +1 -0
- package/dist/preview-engine/chunk-OCX5AD23.mjs +1 -0
- package/dist/preview-engine/{chunk-D3TETPLI.mjs → chunk-OG62XGCT.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-PL4IH5V4.mjs +89 -0
- package/dist/preview-engine/chunk-PSRQA3QW.mjs +84 -0
- package/dist/preview-engine/{chunk-JAOXXYXG.mjs → chunk-PXT52LEH.mjs} +3 -23
- package/dist/preview-engine/chunk-Q22PJXFJ.mjs +69 -0
- package/dist/preview-engine/chunk-Q4Z54DQ7.mjs +1 -0
- package/dist/preview-engine/{chunk-BHFI3Y4T.mjs → chunk-QBEUICZD.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-25IW7NYO.mjs → chunk-S2CTIJSI.mjs} +1 -1
- 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-7DIAFPQP.mjs → chunk-T2FE5VOW.mjs} +3 -23
- package/dist/preview-engine/{chunk-ZSIJB76A.mjs → chunk-TS3JI3BH.mjs} +2 -2
- package/dist/preview-engine/{chunk-AMBSW6OA.mjs → chunk-U4JIFQRR.mjs} +2 -2
- package/dist/preview-engine/chunk-VRGREB3V.mjs +1 -0
- 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-YG35X5R5.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-VVLM6LZ3.mjs → chunk-ZDQF3OTC.mjs} +1 -1
- package/dist/preview-engine/chunk-ZIIFTWDH.mjs +58 -0
- 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-2ILG23ED.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-2VN3AH45.mjs +104 -0
- package/dist/preview-engine/renderers-3RC5FDWX.mjs +1 -0
- package/dist/preview-engine/renderers-57WDL6XN.mjs +1 -0
- package/dist/preview-engine/{renderers-CAUWP4XH.mjs → renderers-6OGFUSH6.mjs} +3 -23
- package/dist/preview-engine/renderers-6WH7NZCC.mjs +1 -0
- package/dist/preview-engine/renderers-7VJN5L3Z.mjs +1 -0
- package/dist/preview-engine/renderers-A6HM64UZ.mjs +1 -0
- package/dist/preview-engine/{renderers-WLH4HRUE.mjs → renderers-A7VH3ON5.mjs} +1 -1
- package/dist/preview-engine/renderers-B7DSGUMI.mjs +1 -0
- package/dist/preview-engine/renderers-BFNJ7VCI.mjs +1 -0
- package/dist/preview-engine/renderers-BSKZXITT.mjs +35 -0
- package/dist/preview-engine/renderers-CGYIDAVV.mjs +1 -0
- package/dist/preview-engine/renderers-CRRLV7IO.mjs +1 -0
- package/dist/preview-engine/{renderers-JQHUBWLL.mjs → renderers-D6T6IPER.mjs} +3 -23
- package/dist/preview-engine/renderers-DXHJAMZR.mjs +1 -0
- package/dist/preview-engine/renderers-ECA3P4ON.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-H46TS3IG.mjs +228 -0
- package/dist/preview-engine/renderers-HXFRTIJD.mjs +1 -0
- package/dist/preview-engine/renderers-IWQ3V6AJ.mjs +1 -0
- package/dist/preview-engine/renderers-JHFT27YU.mjs +1 -0
- package/dist/preview-engine/renderers-KZWGSKRF.mjs +1 -0
- package/dist/preview-engine/renderers-MON4QFRF.mjs +1 -0
- package/dist/preview-engine/renderers-NQXMYNSY.mjs +1 -0
- package/dist/preview-engine/renderers-NWHS7N2L.mjs +1 -0
- package/dist/preview-engine/renderers-ORAIXUL3.mjs +1 -0
- package/dist/preview-engine/renderers-OT7D3BUA.mjs +1 -0
- package/dist/preview-engine/renderers-Q4OFCMXI.mjs +1 -0
- package/dist/preview-engine/renderers-QVZVEYP5.mjs +1 -0
- package/dist/preview-engine/renderers-RJO6H4FC.mjs +1 -0
- package/dist/preview-engine/renderers-RKDPX5JU.mjs +1 -0
- package/dist/preview-engine/{renderers-2US2NIUG.mjs → renderers-RLHTNLRE.mjs} +3 -23
- package/dist/preview-engine/renderers-SBFF7JP5.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-U6KY34TP.mjs +100 -0
- package/dist/preview-engine/renderers-UHTO6BQA.mjs +1 -0
- package/dist/preview-engine/renderers-UNK6I4JJ.mjs +1 -0
- package/dist/preview-engine/renderers-UPTJJE5F.mjs +1 -0
- package/dist/preview-engine/renderers-W773SBPV.mjs +1 -0
- package/dist/preview-engine/renderers-XHTMRXC5.mjs +1 -0
- package/dist/preview-engine/renderers-YECY2YFT.mjs +1 -0
- package/dist/preview-engine/renderers-YMN6QXK7.mjs +1 -0
- package/dist/preview-engine/renderers-ZANPE3OK.mjs +1 -0
- package/dist/preview-engine/renderers-ZHTX73PR.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-xRfFoPxe.mjs → program-BqFVw5Mu.mjs} +295 -2279
- package/dist/program-BqFVw5Mu.mjs.map +1 -0
- package/dist/renderer/index.d.mts +2 -2
- package/dist/renderer/index.mjs +3 -3
- package/dist/{renderer-BgdkEFmv.mjs → renderer-2Nf9ypST.mjs} +85 -279
- package/dist/renderer-2Nf9ypST.mjs.map +1 -0
- package/dist/{renderer-BREIjsUU.mjs → renderer-2uN2cd0y.mjs} +14 -40
- package/dist/renderer-2uN2cd0y.mjs.map +1 -0
- package/dist/renderer-31jAuNzF.mjs +5 -0
- package/dist/renderer-36EI7Rsz.mjs +5 -0
- package/dist/renderer-3io-cjTt.mjs +5 -0
- package/dist/renderer-9_zWTHbg.mjs +5 -0
- package/dist/{renderer-5h0llpx7.mjs → renderer-B12_76qk.mjs} +4 -3
- package/dist/{renderer-5h0llpx7.mjs.map → renderer-B12_76qk.mjs.map} +1 -1
- package/dist/{renderer-_bygZSKk.mjs → renderer-B4oS8ZFO.mjs} +29 -98
- package/dist/renderer-B4oS8ZFO.mjs.map +1 -0
- package/dist/renderer-B6KnbfdA.mjs +5 -0
- package/dist/renderer-B7Y2bmRc.mjs +5 -0
- package/dist/renderer-BA6miaaI.mjs +5 -0
- package/dist/{renderer-CoZKST2Y.mjs → renderer-BGr_cBKV.mjs} +61 -208
- package/dist/renderer-BGr_cBKV.mjs.map +1 -0
- package/dist/renderer-BHi-Q6Z_.mjs +5 -0
- package/dist/{renderer-BiSALMQy.mjs → renderer-BLcu9RDt.mjs} +3 -1
- package/dist/{renderer-D2XD4QYk.mjs → renderer-BO2lYmtE.mjs} +34 -147
- package/dist/renderer-BO2lYmtE.mjs.map +1 -0
- package/dist/renderer-BOlN9HeG.mjs +5 -0
- package/dist/renderer-BSitV56h.mjs +268 -0
- package/dist/renderer-BSitV56h.mjs.map +1 -0
- package/dist/renderer-BTOW-ceB.mjs +5 -0
- package/dist/{renderer-wVldKtFU.mjs → renderer-BYqfkwLf.mjs} +51 -163
- package/dist/renderer-BYqfkwLf.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-jkZ_IQnW.mjs → renderer-BgnJUx24.mjs} +80 -258
- package/dist/renderer-BgnJUx24.mjs.map +1 -0
- package/dist/renderer-BiQ0PYOp.mjs +5 -0
- package/dist/{renderer-BnvqEqvE.mjs → renderer-BjTq3a0L.mjs} +5 -4
- package/dist/{renderer-BnvqEqvE.mjs.map → renderer-BjTq3a0L.mjs.map} +1 -1
- package/dist/{renderer-DEJwPRkR.mjs → renderer-BkN20ZKO.mjs} +15 -51
- package/dist/renderer-BkN20ZKO.mjs.map +1 -0
- package/dist/renderer-Bla7GDyV.mjs +5 -0
- package/dist/renderer-BoYyLVKy.mjs +5 -0
- package/dist/{renderer-D7zvPHKn.mjs → renderer-BpZaHFRc.mjs} +18 -28
- package/dist/renderer-BpZaHFRc.mjs.map +1 -0
- package/dist/renderer-BqOgb7bM.mjs +5 -0
- package/dist/{renderer-DNNqpK7t.mjs → renderer-Bq_dO0LG.mjs} +10 -17
- package/dist/renderer-Bq_dO0LG.mjs.map +1 -0
- package/dist/renderer-BqeM8yTJ.mjs +5 -0
- package/dist/{renderer-DryPrxYc.mjs → renderer-BqsV75Ml.mjs} +3 -1
- package/dist/{renderer-8qpGxSSO.mjs → renderer-Bs4tz_pw.mjs} +20 -87
- package/dist/renderer-Bs4tz_pw.mjs.map +1 -0
- package/dist/{renderer-DdVBt8Rz.mjs → renderer-Bsaokil3.mjs} +24 -104
- package/dist/renderer-Bsaokil3.mjs.map +1 -0
- package/dist/{renderer-D7ztfQHX.mjs → renderer-BvG1GF1c.mjs} +10 -16
- package/dist/renderer-BvG1GF1c.mjs.map +1 -0
- package/dist/{renderer-BGXbGqY4.mjs → renderer-BvpSIFkw.mjs} +83 -266
- package/dist/renderer-BvpSIFkw.mjs.map +1 -0
- package/dist/{renderer-Dju9CaeL.mjs → renderer-BwAqwTQq.mjs} +62 -209
- package/dist/renderer-BwAqwTQq.mjs.map +1 -0
- package/dist/{renderer-CzPWB0Ss.mjs → renderer-BwVfhrEx.mjs} +13 -45
- package/dist/renderer-BwVfhrEx.mjs.map +1 -0
- package/dist/renderer-BzpRe50i.mjs +5 -0
- package/dist/renderer-C0eAPwpr.mjs +5 -0
- package/dist/{renderer-But0u-xi.mjs → renderer-C3RfT8Gv.mjs} +59 -194
- package/dist/renderer-C3RfT8Gv.mjs.map +1 -0
- package/dist/{renderer-CgmFh6MY.mjs → renderer-C3cYDT3m.mjs} +3 -1
- package/dist/{renderer-D-4Yh-RK.mjs → renderer-CEGbqT2m.mjs} +236 -96
- package/dist/renderer-CEGbqT2m.mjs.map +1 -0
- package/dist/{renderer-CcU7dVn9.mjs → renderer-CGldH-Zx.mjs} +40 -142
- package/dist/renderer-CGldH-Zx.mjs.map +1 -0
- package/dist/renderer-CGn8V63v.mjs +5 -0
- package/dist/{renderer-DffynBHa.mjs → renderer-CH9Qtpy7.mjs} +4 -4
- package/dist/{renderer-DffynBHa.mjs.map → renderer-CH9Qtpy7.mjs.map} +1 -1
- package/dist/{renderer-ho_jXJ0H.mjs → renderer-CLyuu_19.mjs} +23 -117
- package/dist/renderer-CLyuu_19.mjs.map +1 -0
- package/dist/renderer-CM5Syo9r.mjs +5 -0
- package/dist/{renderer-BJ6Y-7ke.mjs → renderer-CRIM_XRK.mjs} +3 -3
- package/dist/{renderer-BJ6Y-7ke.mjs.map → renderer-CRIM_XRK.mjs.map} +1 -1
- package/dist/{renderer-2NQWaZd7.d.mts → renderer-CTGe8SqQ.d.mts} +2 -2
- package/dist/{renderer-2NQWaZd7.d.mts.map → renderer-CTGe8SqQ.d.mts.map} +1 -1
- package/dist/renderer-CWCEW6Wv.mjs +5 -0
- package/dist/{renderer-CNF10fCq.mjs → renderer-CgyOylPO.mjs} +10 -17
- package/dist/renderer-CgyOylPO.mjs.map +1 -0
- package/dist/{renderer-DjTiNeAp.mjs → renderer-CjT5Zy-J.mjs} +81 -221
- package/dist/renderer-CjT5Zy-J.mjs.map +1 -0
- package/dist/{renderer-_uvdg48N.mjs → renderer-Cjq1s3br.mjs} +24 -93
- package/dist/renderer-Cjq1s3br.mjs.map +1 -0
- package/dist/renderer-Cl70zxkP.mjs +5 -0
- package/dist/renderer-ClJjoVpB.mjs +6 -0
- package/dist/{renderer-DBlPbsgi.mjs → renderer-CpKNqciR.mjs} +3 -1
- package/dist/{renderer-DTvfYkI9.mjs → renderer-Cwhux4VX.mjs} +9 -16
- package/dist/renderer-Cwhux4VX.mjs.map +1 -0
- package/dist/{renderer-CJNyhr_S.mjs → renderer-D0nWLogn.mjs} +99 -282
- package/dist/renderer-D0nWLogn.mjs.map +1 -0
- package/dist/{renderer-9wp5R7PL.mjs → renderer-D1lynYuy.mjs} +23 -107
- package/dist/renderer-D1lynYuy.mjs.map +1 -0
- package/dist/{renderer-DYm4duFr.mjs → renderer-D4sYVV-I.mjs} +41 -140
- package/dist/renderer-D4sYVV-I.mjs.map +1 -0
- package/dist/{renderer-CroHPOsX.mjs → renderer-D5z3WDkm.mjs} +99 -287
- package/dist/renderer-D5z3WDkm.mjs.map +1 -0
- package/dist/renderer-D8C-pamu.mjs +148 -0
- package/dist/renderer-D8C-pamu.mjs.map +1 -0
- package/dist/{renderer-D_1oDOCP.mjs → renderer-DAtBnNGC.mjs} +14 -69
- package/dist/renderer-DAtBnNGC.mjs.map +1 -0
- package/dist/{renderer-DZGtBUCx.mjs → renderer-DG1NFsSV.mjs} +35 -185
- package/dist/renderer-DG1NFsSV.mjs.map +1 -0
- package/dist/{renderer-BM05sB8m.mjs → renderer-DHAErBtJ.mjs} +11 -74
- package/dist/renderer-DHAErBtJ.mjs.map +1 -0
- package/dist/{renderer-CStktK20.mjs → renderer-DIDSmoFA.mjs} +73 -73
- package/dist/{renderer-CStktK20.mjs.map → renderer-DIDSmoFA.mjs.map} +1 -1
- package/dist/{renderer-BA8YwBRQ.mjs → renderer-DKtP7-fr.mjs} +58 -234
- package/dist/renderer-DKtP7-fr.mjs.map +1 -0
- package/dist/renderer-DLnF-V_h.mjs +5 -0
- package/dist/renderer-DN1rjmcL.mjs +5 -0
- package/dist/{renderer-BZmfKIom.mjs → renderer-DOEsFT7Q.mjs} +57 -192
- package/dist/renderer-DOEsFT7Q.mjs.map +1 -0
- package/dist/{renderer-6GeDT4Mx.mjs → renderer-DPYB6ZcB.mjs} +57 -197
- package/dist/renderer-DPYB6ZcB.mjs.map +1 -0
- package/dist/{renderer-DCkSR2Ne.mjs → renderer-DRsPCkxr.mjs} +76 -210
- package/dist/renderer-DRsPCkxr.mjs.map +1 -0
- package/dist/renderer-DXTw9Oqb.mjs +5 -0
- package/dist/{renderer-DAMJZNtX.mjs → renderer-DZLJnnU2.mjs} +63 -190
- package/dist/renderer-DZLJnnU2.mjs.map +1 -0
- package/dist/{renderer-BtRfKx5N.mjs → renderer-DZrQffIP.mjs} +56 -167
- package/dist/renderer-DZrQffIP.mjs.map +1 -0
- package/dist/renderer-DbAVSBNI.mjs +5 -0
- package/dist/renderer-Dg8rD--8.mjs +5 -0
- package/dist/{renderer-BpCxKWQm.mjs → renderer-DhEyjn6Q.mjs} +52 -202
- package/dist/renderer-DhEyjn6Q.mjs.map +1 -0
- package/dist/{renderer-CIYcdZuZ.mjs → renderer-Dmv_Aj6x.mjs} +161 -457
- package/dist/renderer-Dmv_Aj6x.mjs.map +1 -0
- package/dist/renderer-DnFxegGu.mjs +5 -0
- package/dist/renderer-DnfmelHn.mjs +5 -0
- package/dist/{renderer-DxtHmyAa.mjs → renderer-Dpj68gTn.mjs} +11 -18
- package/dist/renderer-Dpj68gTn.mjs.map +1 -0
- package/dist/renderer-DuOjzggd.mjs +5 -0
- package/dist/renderer-DuuOlYIG.mjs +3 -0
- package/dist/renderer-DvYql0Cl.mjs +5 -0
- package/dist/{renderer-xKOVmd2O.mjs → renderer-DzhRNdBS.mjs} +245 -231
- package/dist/renderer-DzhRNdBS.mjs.map +1 -0
- package/dist/renderer-GSFP7v2z.mjs +3 -0
- package/dist/renderer-LfUdjgjF.mjs +5 -0
- package/dist/{renderer-CfeoxM_3.mjs → renderer-Q63y7HP_.mjs} +8 -15
- package/dist/renderer-Q63y7HP_.mjs.map +1 -0
- package/dist/renderer-SecCv3U8.mjs +5 -0
- package/dist/{renderer-b6sZN90h.mjs → renderer-mp1NN5zk.mjs} +4 -4
- package/dist/{renderer-b6sZN90h.mjs.map → renderer-mp1NN5zk.mjs.map} +1 -1
- package/dist/renderer-oZyoB4CT.mjs +5 -0
- package/dist/renderer-rzci_kTy.mjs +5 -0
- package/dist/{renderer-CpkiHRhh.mjs → renderer-to9DwqXK.mjs} +17 -99
- package/dist/renderer-to9DwqXK.mjs.map +1 -0
- package/dist/{renderer-CepMDQ06.mjs → renderer-v0vuUUUI.mjs} +19 -106
- package/dist/renderer-v0vuUUUI.mjs.map +1 -0
- package/dist/renderer-vLaZuZbX.mjs +5 -0
- package/dist/{renderers-CP8CFWDs-BLgwUYX2.mjs → renderers-CP8CFWDs-DlFq8jmz.mjs} +4 -4
- package/dist/{renderers-CP8CFWDs-BLgwUYX2.mjs.map → renderers-CP8CFWDs-DlFq8jmz.mjs.map} +1 -1
- package/dist/signals/index.d.mts +5 -5
- package/dist/signals/index.mjs +7 -7
- package/dist/{signals-CsxqD2AA.mjs → signals-BDkO0xcZ.mjs} +3 -3
- package/dist/{signals-CsxqD2AA.mjs.map → signals-BDkO0xcZ.mjs.map} +1 -1
- package/dist/{signin-Db08vl-g.mjs → signin-SVSXQw9i.mjs} +9 -9
- package/dist/{signin-Db08vl-g.mjs.map → signin-SVSXQw9i.mjs.map} +1 -1
- package/dist/{sso-oidc-CpLz_lIu.mjs → sso-oidc-B3Sagl43.mjs} +9 -9
- package/dist/{sso-oidc-CpLz_lIu.mjs.map → sso-oidc-B3Sagl43.mjs.map} +1 -1
- package/dist/{sts-BQefGuml.mjs → sts-CYeWec9i.mjs} +2 -2
- package/dist/{sts-Dgl0kH-t.mjs → sts-ClVtt-bV.mjs} +9 -9
- package/dist/{sts-Dgl0kH-t.mjs.map → sts-ClVtt-bV.mjs.map} +1 -1
- package/package.json +55 -55
- package/dist/dist-B9Afsv83.mjs.map +0 -1
- package/dist/dist-B9PkqWnN.mjs.map +0 -1
- package/dist/dist-BFjSQP7i.mjs.map +0 -1
- package/dist/dist-DzUJmIHt.mjs.map +0 -1
- package/dist/dist-cjs-3pon9kTt.mjs +0 -6
- package/dist/fonts-DhEQ5h6E.mjs.map +0 -1
- package/dist/index-CQcdKyxF.d.mts.map +0 -1
- package/dist/index-D1zaOwEU.d.mts.map +0 -1
- package/dist/index-J9CIK_nu.d.mts.map +0 -1
- package/dist/preview-engine/chunk-36YGYLKD.mjs +0 -58
- package/dist/preview-engine/chunk-5JD65JSJ.mjs +0 -110
- package/dist/preview-engine/chunk-7O24H4YT.mjs +0 -117
- package/dist/preview-engine/chunk-AG5JNZYQ.mjs +0 -8
- package/dist/preview-engine/chunk-AUFSM5KI.mjs +0 -141
- package/dist/preview-engine/chunk-BQ65MU6H.mjs +0 -138
- package/dist/preview-engine/chunk-BWDARDO6.mjs +0 -117
- package/dist/preview-engine/chunk-CNSHAFEA.mjs +0 -1
- 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-HPIULG7P.mjs +0 -111
- package/dist/preview-engine/chunk-HRIKNYPF.mjs +0 -60
- package/dist/preview-engine/chunk-JPXQPP6J.mjs +0 -1
- package/dist/preview-engine/chunk-K52S5DJX.mjs +0 -109
- package/dist/preview-engine/chunk-MJM3NFEC.mjs +0 -315
- package/dist/preview-engine/chunk-NRHSNPZV.mjs +0 -182
- package/dist/preview-engine/chunk-OWOSYNMF.mjs +0 -104
- package/dist/preview-engine/chunk-QGBSLNFI.mjs +0 -52
- package/dist/preview-engine/chunk-QM3XFEJN.mjs +0 -63
- package/dist/preview-engine/chunk-QTKJXDIW.mjs +0 -997
- package/dist/preview-engine/chunk-R3ZH7YF3.mjs +0 -89
- package/dist/preview-engine/chunk-R6YNSBKL.mjs +0 -108
- package/dist/preview-engine/chunk-RNOO4UR5.mjs +0 -3
- 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-T6CC2KCZ.mjs +0 -418
- package/dist/preview-engine/chunk-T6COGNOW.mjs +0 -134
- package/dist/preview-engine/chunk-UC7CSW2A.mjs +0 -1
- 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-32PIFHPS.mjs +0 -1
- package/dist/preview-engine/renderers-3Y3EMRDJ.mjs +0 -1
- package/dist/preview-engine/renderers-4AHH6BHF.mjs +0 -1
- package/dist/preview-engine/renderers-6PRVCTYV.mjs +0 -1
- package/dist/preview-engine/renderers-76PQY2SO.mjs +0 -1
- package/dist/preview-engine/renderers-7HNVXNAI.mjs +0 -248
- 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-CHJWUJVI.mjs +0 -1
- package/dist/preview-engine/renderers-CHOGQHVQ.mjs +0 -1
- package/dist/preview-engine/renderers-CI2GXWLP.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-EE2GFG7J.mjs +0 -1
- package/dist/preview-engine/renderers-ELO3KWTK.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-GJSUN5HU.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-UGZUPONY.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/program-xRfFoPxe.mjs.map +0 -1
- package/dist/renderer-6GeDT4Mx.mjs.map +0 -1
- package/dist/renderer-8qpGxSSO.mjs.map +0 -1
- package/dist/renderer-9wp5R7PL.mjs.map +0 -1
- package/dist/renderer-B2XzjK0z.mjs +0 -3
- package/dist/renderer-B4F6wL68.mjs +0 -3
- package/dist/renderer-B4i1jmiT.mjs +0 -3
- package/dist/renderer-B5ylY3uM.mjs +0 -3
- package/dist/renderer-BA8YwBRQ.mjs.map +0 -1
- package/dist/renderer-BGXbGqY4.mjs.map +0 -1
- package/dist/renderer-BM05sB8m.mjs.map +0 -1
- package/dist/renderer-BPw23wiR.mjs +0 -3
- package/dist/renderer-BREIjsUU.mjs.map +0 -1
- package/dist/renderer-BTu2EVhF.mjs +0 -3
- package/dist/renderer-BZmfKIom.mjs.map +0 -1
- package/dist/renderer-BfJSUjPN.mjs +0 -3
- package/dist/renderer-BgdkEFmv.mjs.map +0 -1
- package/dist/renderer-BghW-bSZ.mjs +0 -3
- package/dist/renderer-BpCxKWQm.mjs.map +0 -1
- package/dist/renderer-BtRfKx5N.mjs.map +0 -1
- package/dist/renderer-But0u-xi.mjs.map +0 -1
- package/dist/renderer-Bw3oZ9YT.mjs +0 -3
- package/dist/renderer-C-H680_l.mjs +0 -3
- package/dist/renderer-C2009W-_.mjs +0 -3
- package/dist/renderer-C36yoGXG.mjs +0 -3
- package/dist/renderer-CDLrNgfo.mjs +0 -3
- package/dist/renderer-CIYcdZuZ.mjs.map +0 -1
- package/dist/renderer-CJNyhr_S.mjs.map +0 -1
- package/dist/renderer-CL3evUmF.mjs +0 -3
- package/dist/renderer-CM1_2ZWA.mjs +0 -3
- package/dist/renderer-CNF10fCq.mjs.map +0 -1
- 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-CWlzudP8.mjs +0 -3
- package/dist/renderer-CZgB5st8.mjs +0 -3
- package/dist/renderer-CcU7dVn9.mjs.map +0 -1
- package/dist/renderer-Cd5vzrGs.mjs +0 -3
- package/dist/renderer-CeJ_vDXI.mjs +0 -3
- package/dist/renderer-CepMDQ06.mjs.map +0 -1
- package/dist/renderer-CfeoxM_3.mjs.map +0 -1
- package/dist/renderer-CjY77sB_.mjs +0 -3
- package/dist/renderer-CkykdR_D.mjs +0 -3
- package/dist/renderer-CoZKST2Y.mjs.map +0 -1
- package/dist/renderer-CpkiHRhh.mjs.map +0 -1
- package/dist/renderer-CroHPOsX.mjs.map +0 -1
- package/dist/renderer-CtVkU_GA.mjs +0 -44
- package/dist/renderer-CtVkU_GA.mjs.map +0 -1
- package/dist/renderer-CzPWB0Ss.mjs.map +0 -1
- package/dist/renderer-D-4Yh-RK.mjs.map +0 -1
- package/dist/renderer-D2XD4QYk.mjs.map +0 -1
- package/dist/renderer-D5Z6mda5.mjs +0 -3
- package/dist/renderer-D7ztfQHX.mjs.map +0 -1
- package/dist/renderer-D7zvPHKn.mjs.map +0 -1
- package/dist/renderer-D9NnIx7o.mjs +0 -3
- package/dist/renderer-DAMJZNtX.mjs.map +0 -1
- package/dist/renderer-DCJa7OGk.mjs +0 -3
- package/dist/renderer-DCkSR2Ne.mjs.map +0 -1
- package/dist/renderer-DEJwPRkR.mjs.map +0 -1
- package/dist/renderer-DGwSl7g1.mjs +0 -3
- package/dist/renderer-DNNqpK7t.mjs.map +0 -1
- package/dist/renderer-DNoRNfMm.mjs +0 -3
- package/dist/renderer-DOZ8bpyY.mjs +0 -3
- package/dist/renderer-DRHyRNU8.mjs +0 -3
- package/dist/renderer-DTvfYkI9.mjs.map +0 -1
- package/dist/renderer-DYm4duFr.mjs.map +0 -1
- package/dist/renderer-DZGtBUCx.mjs.map +0 -1
- package/dist/renderer-D_1oDOCP.mjs.map +0 -1
- package/dist/renderer-DdVBt8Rz.mjs.map +0 -1
- package/dist/renderer-DjTiNeAp.mjs.map +0 -1
- package/dist/renderer-Dju9CaeL.mjs.map +0 -1
- package/dist/renderer-DlD85Xoi.mjs +0 -3
- package/dist/renderer-Dr0bgOrW.mjs +0 -3
- package/dist/renderer-DurtG-Hc.mjs +0 -3
- package/dist/renderer-DxtHmyAa.mjs.map +0 -1
- package/dist/renderer-_bygZSKk.mjs.map +0 -1
- package/dist/renderer-_uvdg48N.mjs.map +0 -1
- package/dist/renderer-d5-F_48R.mjs +0 -3
- package/dist/renderer-eFv9HBmL.mjs +0 -3
- package/dist/renderer-ho_jXJ0H.mjs.map +0 -1
- package/dist/renderer-iuV6wQoL.mjs +0 -4
- package/dist/renderer-jkZ_IQnW.mjs.map +0 -1
- package/dist/renderer-n-uuWPF4.mjs +0 -3
- package/dist/renderer-rzccTFuY.mjs +0 -3
- package/dist/renderer-wVldKtFU.mjs.map +0 -1
- package/dist/renderer-xKOVmd2O.mjs.map +0 -1
- package/dist/renderer-y9eGFPFL.mjs +0 -3
- /package/dist/{renderer-C2n-EHxg.mjs → renderer-B-BcgA6d.mjs} +0 -0
|
@@ -1,418 +0,0 @@
|
|
|
1
|
-
import{a as Z}from"./chunk-LKYN3BM2.mjs";import{a as mt}from"./chunk-JPXQPP6J.mjs";import{a as B}from"./chunk-CNSHAFEA.mjs";import{a as pt,b as K,d as dt,e as L}from"./chunk-36YGYLKD.mjs";import{a as ct,b as ht}from"./chunk-AEK5BO3J.mjs";import{d as R,f as G,g as M,i as ft}from"./chunk-MJM3NFEC.mjs";import{d as lt}from"./chunk-HYBAPT6I.mjs";import{e as g}from"./chunk-BVF64D6H.mjs";g();var $=class{constructor(t,e){this.url=t;this.isHeadless=e}url;isHeadless;input=null;initPromise=null;iterator=null;iteratorStartTimestamp=-1;currentFetchId=0;fetchLock=Promise.resolve();destroyed=!1;async init(){if(!this.input)return this.initPromise?this.initPromise:(this.destroyed=!1,this.initPromise=(async()=>{try{let t=await L.acquire(this.url);this.destroyed?L.release(this.url):this.input=t}catch(t){throw this.initPromise=null,t}})(),this.initPromise)}destroy(){this.destroyed=!0,this.iterator?.return(),this.input&&(L.release(this.url),this.input=null),this.initPromise=null,this.onDestroy()}},J=class extends ${canvasSink=null;videoSampleSink=null;currentFrame=null;nextFrame=null;currentSample=null;nextSample=null;headlessQueue=[];isDecoding=!1;decodeBuffer=null;nextRequest=null;pushHeadlessQueue(t){let e=this.headlessQueue.findIndex(r=>r.timestamp>t.timestamp);e===-1?this.headlessQueue.push(t):this.headlessQueue.splice(e,0,t)}async fillHeadlessQueue(t){if(this.iterator)for(;this.headlessQueue.length<2;){let e=await this.iterator.next();if(this.currentFetchId!==t){e.value?.close?.();return}if(e.done||!e.value)break;this.pushHeadlessQueue(e.value)}}async closeIterator(t){if(t)try{await t.return()}catch{}}resetSinks(){let t=this.iterator;if(this.iterator=null,t)try{t.return()}catch{}this.canvasSink=null,this.videoSampleSink=null,this.currentFrame=null,this.nextFrame=null,this.currentSample?.close(),this.currentSample=null,this.nextSample?.close(),this.nextSample=null;for(let e of this.headlessQueue)try{e.close()}catch{}this.headlessQueue=[],this.decodeBuffer=null,this.iteratorStartTimestamp=-1}onDestroy(){this.resetSinks()}async startIterator(t,e){if(!this.canvasSink)return;let r=Math.max(0,Number.isFinite(t)?t:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==e||this.destroyed)return;this.iterator=this.canvasSink.canvases(r);let n=await this.iterator.next();if(this.currentFetchId!==e||this.destroyed)return;this.currentFrame=n.value??null;let s=await this.iterator.next();this.currentFetchId!==e||this.destroyed||(this.nextFrame=s.value??null,this.iteratorStartTimestamp=r)}async startIteratorHeadless(t,e){if(!this.videoSampleSink)return;let r=Math.max(0,Number.isFinite(t)?t:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==e||this.destroyed)return;for(let s of this.headlessQueue)s.close();this.headlessQueue=[];let n=Math.max(0,r-.1);this.iterator=this.videoSampleSink.samples(n),await this.fillHeadlessQueue(e),!(this.currentFetchId!==e||this.destroyed)&&(this.iteratorStartTimestamp=r)}async getFrame(t){if(await this.init(),this.destroyed||!this.input)return null;let e=Math.max(0,Number.isFinite(t)?t:0);return this.isDecoding?(this.nextRequest&&this.nextRequest.resolve(null),new Promise((r,i)=>{this.nextRequest={timestampSec:e,resolve:r,reject:i}})):this.executeDecode(e)}async executeDecode(t){this.isDecoding=!0;try{return await this.performDecode(t)}finally{if(this.isDecoding=!1,this.nextRequest){let e=this.nextRequest;this.nextRequest=null,this.executeDecode(e.timestampSec).then(e.resolve).catch(e.reject)}}}async performDecodeHeadless(t,e){if(!this.videoSampleSink){if(this.destroyed||!this.input)return null;let h=await this.input.getPrimaryVideoTrack();if(!h)return null;this.videoSampleSink=new pt(h)}let r=1e-4;if((!this.iterator||t<this.iteratorStartTimestamp-r||this.headlessQueue.length>0&&t<this.headlessQueue[0].timestamp-.01||this.headlessQueue.length>0&&t-this.headlessQueue[0].timestamp>1)&&(await this.startIteratorHeadless(t,e),this.currentFetchId!==e||this.destroyed||!this.input))return null;for(;;){if(await this.fillHeadlessQueue(e),this.currentFetchId!==e||this.destroyed||!this.input)return null;if(this.headlessQueue.length>=2&&this.headlessQueue[1].timestamp<=t+r){this.headlessQueue.shift()?.close();continue}break}let s=this.headlessQueue[0];if(!s)return null;let a=s.displayWidth,o=s.displayHeight,l=a*o*4,c=this.decodeBuffer;return(!c||c.length!==l)&&(c=new Uint8Array(l),this.decodeBuffer=c),await s.copyTo(c,{format:"RGBA"}),this.currentFetchId!==e||this.destroyed||!this.input?null:{width:a,height:o,buffer:c}}async performDecodeInternal(t){this.currentFetchId++;let e=this.currentFetchId;if(this.isHeadless)return this.performDecodeHeadless(t,e);if(!this.canvasSink){if(this.destroyed||!this.input)return null;let a=await this.input.getPrimaryVideoTrack();if(!a)return null;this.canvasSink=new K(a,{poolSize:3,alpha:!0})}let r=1e-4;if((!this.iterator||t<this.iteratorStartTimestamp-r||this.currentFrame&&t<this.currentFrame.timestamp-.01||this.currentFrame&&t-this.currentFrame.timestamp>1)&&(await this.startIterator(t,e),this.currentFetchId!==e||this.destroyed||!this.input))return null;for(;this.nextFrame&&this.nextFrame.timestamp<=t+r;)if(this.currentFrame=this.nextFrame,this.nextFrame=null,this.iterator){let a=await this.iterator.next();if(this.currentFetchId!==e||this.destroyed||!this.input)return null;this.nextFrame=a.value??null}if(!this.currentFrame)return null;let s=this.currentFrame.canvas;return{width:s.width,height:s.height,canvas:s}}async performDecode(t){let e=Math.max(0,Number.isFinite(t)?t:0);try{return await this.performDecodeInternal(e)}catch(r){let i=r;if(i?.name==="InputDisposedError"||i?.message?.includes("disposed")||this.destroyed||!this.input)return null;this.resetSinks();try{if(!this.isHeadless&&this.input&&!this.destroyed){let n=await this.input.getPrimaryVideoTrack();if(n&&!this.destroyed)return this.canvasSink=new K(n,{poolSize:3,alpha:!0,decoderOptions:{hardwareAcceleration:"prefer-software"}}),await this.performDecodeInternal(e)}}catch{}throw r}}},tt=class extends ${audioSink=null;onDestroy(){this.audioSink=null}async startIterator(t,e){this.audioSink&&(this.iterator?.return(),this.iterator=this.audioSink.buffers(t),this.iteratorStartTimestamp=t)}async*getBuffers(t){try{if(await this.init(),this.destroyed||!this.input)return;if(!this.audioSink){let i=await this.input.getPrimaryAudioTrack();if(!i)return;this.audioSink=new dt(i)}(!this.iterator||Math.abs(t-this.iteratorStartTimestamp)>.05)&&(this.currentFetchId++,await this.startIterator(t,this.currentFetchId));let r=this.currentFetchId;if(!this.iterator)return;for await(let i of this.iterator){if(this.currentFetchId!==r||this.destroyed||!this.input)break;this.iteratorStartTimestamp=i.timestamp+i.duration,yield i}}catch(e){let r=e;if(r?.name==="InputDisposedError"||r?.message?.includes("disposed")||this.destroyed||!this.input)return;throw e}finally{let e=this.currentFetchId;this.currentFetchId===e&&(this.iterator=null)}}},et=class{videoDecoders=new Map;audioDecoders=new Map;lastAccessed=new Map;touchKey(t){this.lastAccessed.set(t,Date.now())}destroy(){for(let t of this.videoDecoders.values())try{t.destroy()}catch{}this.videoDecoders.clear();for(let t of this.audioDecoders.values())try{t.destroy()}catch{}this.audioDecoders.clear(),this.lastAccessed.clear()}prune(t=3e5){let e=Date.now();for(let[r,i]of this.lastAccessed.entries())if(e-i>t){let n=this.videoDecoders.get(r);n&&(n.destroy(),this.videoDecoders.delete(r));let s=this.audioDecoders.get(r);s&&(s.destroy(),this.audioDecoders.delete(r)),this.lastAccessed.delete(r)}}getVideo(t,e,r){let i=`${t}-${e}-${r??"default"}`,n=this.videoDecoders.get(i);return n||(n=new J(t,e),this.videoDecoders.set(i,n)),this.touchKey(i),this.prune(),n}getAudio(t,e){let r=`${t}-${e??"default"}`,i=this.audioDecoders.get(r);return i||(i=new tt(t,!1),this.audioDecoders.set(r,i)),this.touchKey(r),this.prune(),i}clearNode(t){for(let[e,r]of this.videoDecoders)e.includes(t)&&(r.destroy(),this.videoDecoders.delete(e),this.lastAccessed.delete(e));for(let[e,r]of this.audioDecoders)e.includes(t)&&(r.destroy(),this.audioDecoders.delete(e),this.lastAccessed.delete(e))}},Vt=new et;g();g();var yt=`
|
|
2
|
-
struct CompositeUniforms {
|
|
3
|
-
blendMode : u32,
|
|
4
|
-
padding1 : u32,
|
|
5
|
-
padding2 : u32,
|
|
6
|
-
padding3 : u32,
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
@group(0) @binding(0) var<uniform> u : CompositeUniforms;
|
|
10
|
-
@group(1) @binding(0) var baseTex : texture_2d<f32>;
|
|
11
|
-
@group(1) @binding(1) var overlayTex : texture_2d<f32>;
|
|
12
|
-
@group(1) @binding(2) var samp : sampler;
|
|
13
|
-
|
|
14
|
-
struct VSOut {
|
|
15
|
-
@builtin(position) pos : vec4<f32>,
|
|
16
|
-
@location(0) uv : vec2<f32>,
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
@vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
|
|
20
|
-
var pos = array<vec2<f32>, 4>(
|
|
21
|
-
vec2<f32>(-1.0, 1.0),
|
|
22
|
-
vec2<f32>(1.0, 1.0),
|
|
23
|
-
vec2<f32>(-1.0, -1.0),
|
|
24
|
-
vec2<f32>(1.0, -1.0)
|
|
25
|
-
);
|
|
26
|
-
var uv = array<vec2<f32>, 4>(
|
|
27
|
-
vec2<f32>(0.0, 0.0),
|
|
28
|
-
vec2<f32>(1.0, 0.0),
|
|
29
|
-
vec2<f32>(0.0, 1.0),
|
|
30
|
-
vec2<f32>(1.0, 1.0)
|
|
31
|
-
);
|
|
32
|
-
return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
fn lum(c: vec3<f32>) -> f32 {
|
|
36
|
-
return 0.3 * c.r + 0.59 * c.g + 0.11 * c.b;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
fn clip_color(c: vec3<f32>) -> vec3<f32> {
|
|
40
|
-
let l = lum(c);
|
|
41
|
-
let n = min(min(c.r, c.g), c.b);
|
|
42
|
-
let x = max(max(c.r, c.g), c.b);
|
|
43
|
-
var res = c;
|
|
44
|
-
if (n < 0.0) {
|
|
45
|
-
res = l + (((res - l) * l) / (l - n));
|
|
46
|
-
}
|
|
47
|
-
if (x > 1.0) {
|
|
48
|
-
res = l + (((res - l) * (1.0 - l)) / (x - l));
|
|
49
|
-
}
|
|
50
|
-
return res;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
fn set_lum(c: vec3<f32>, l: f32) -> vec3<f32> {
|
|
54
|
-
let diff = l - lum(c);
|
|
55
|
-
return clip_color(c + vec3<f32>(diff));
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
fn sat(c: vec3<f32>) -> f32 {
|
|
59
|
-
return max(max(c.r, c.g), c.b) - min(min(c.r, c.g), c.b);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
fn set_sat(c: vec3<f32>, s: f32) -> vec3<f32> {
|
|
63
|
-
let c_min = min(min(c.r, c.g), c.b);
|
|
64
|
-
let c_max = max(max(c.r, c.g), c.b);
|
|
65
|
-
if (c_max <= c_min) {
|
|
66
|
-
return vec3<f32>(0.0);
|
|
67
|
-
}
|
|
68
|
-
return (c - vec3<f32>(c_min)) * s / (c_max - c_min);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
72
|
-
let d = textureSample(baseTex, samp, in.uv);
|
|
73
|
-
let s = textureSample(overlayTex, samp, in.uv);
|
|
74
|
-
let sa = s.a;
|
|
75
|
-
let da = d.a;
|
|
76
|
-
|
|
77
|
-
switch (u.blendMode) {
|
|
78
|
-
case 16u: { return d * sa; } // mask-in / destination-in
|
|
79
|
-
case 17u: { return d * (1.0 - sa); } // mask-out / destination-out
|
|
80
|
-
case 18u: { return s * da; } // source-in
|
|
81
|
-
case 19u: { return s * (1.0 - da); } // source-out
|
|
82
|
-
case 20u: { return s * da + d * (1.0 - sa); } // source-atop
|
|
83
|
-
case 21u: { return d + s * (1.0 - da); } // destination-over
|
|
84
|
-
case 22u: { return d * sa + s * (1.0 - da); } // destination-atop
|
|
85
|
-
case 23u: { return s + d; } // lighter
|
|
86
|
-
case 24u: { return s; } // copy
|
|
87
|
-
case 25u: { return s * (1.0 - da) + d * (1.0 - sa); } // xor
|
|
88
|
-
default: {
|
|
89
|
-
if (sa <= 0.0) { return d; }
|
|
90
|
-
if (da <= 0.0) { return s; }
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
let s_rgb = select(s.rgb / sa, vec3<f32>(0.0), sa < 0.001);
|
|
95
|
-
let d_rgb = select(d.rgb / da, vec3<f32>(0.0), da < 0.001);
|
|
96
|
-
|
|
97
|
-
var b_rgb = s_rgb;
|
|
98
|
-
|
|
99
|
-
switch (u.blendMode) {
|
|
100
|
-
case 1u: { b_rgb = s_rgb * d_rgb; } // multiply
|
|
101
|
-
case 2u: { b_rgb = s_rgb + d_rgb - s_rgb * d_rgb; } // screen
|
|
102
|
-
case 3u: { // overlay
|
|
103
|
-
b_rgb = select(1.0 - 2.0 * (1.0 - s_rgb) * (1.0 - d_rgb), 2.0 * s_rgb * d_rgb, d_rgb < vec3<f32>(0.5));
|
|
104
|
-
}
|
|
105
|
-
case 4u: { b_rgb = min(s_rgb, d_rgb); } // darken
|
|
106
|
-
case 5u: { b_rgb = max(s_rgb, d_rgb); } // lighten
|
|
107
|
-
case 6u: { // color-dodge
|
|
108
|
-
b_rgb = select(min(d_rgb / (1.0 - s_rgb), vec3<f32>(1.0)), vec3<f32>(0.0), s_rgb == vec3<f32>(1.0));
|
|
109
|
-
}
|
|
110
|
-
case 7u: { // color-burn
|
|
111
|
-
b_rgb = select(1.0 - min((1.0 - d_rgb) / s_rgb, vec3<f32>(1.0)), vec3<f32>(1.0), s_rgb == vec3<f32>(0.0));
|
|
112
|
-
}
|
|
113
|
-
case 8u: { // hard-light
|
|
114
|
-
b_rgb = select(1.0 - 2.0 * (1.0 - s_rgb) * (1.0 - d_rgb), 2.0 * s_rgb * d_rgb, s_rgb < vec3<f32>(0.5));
|
|
115
|
-
}
|
|
116
|
-
case 9u: { // soft-light
|
|
117
|
-
b_rgb = select(
|
|
118
|
-
d_rgb + (2.0 * s_rgb - 1.0) * (sqrt(d_rgb) - d_rgb),
|
|
119
|
-
d_rgb - (1.0 - 2.0 * s_rgb) * d_rgb * (1.0 - d_rgb),
|
|
120
|
-
s_rgb <= vec3<f32>(0.5)
|
|
121
|
-
);
|
|
122
|
-
}
|
|
123
|
-
case 10u: { b_rgb = abs(d_rgb - s_rgb); } // difference
|
|
124
|
-
case 11u: { b_rgb = s_rgb + d_rgb - 2.0 * s_rgb * d_rgb; } // exclusion
|
|
125
|
-
case 12u: { b_rgb = set_lum(set_sat(s_rgb, sat(d_rgb)), lum(d_rgb)); } // hue
|
|
126
|
-
case 13u: { b_rgb = set_lum(set_sat(d_rgb, sat(s_rgb)), lum(d_rgb)); } // saturation
|
|
127
|
-
case 14u: { b_rgb = set_lum(s_rgb, lum(d_rgb)); } // color
|
|
128
|
-
case 15u: { b_rgb = set_lum(d_rgb, lum(s_rgb)); } // luminosity
|
|
129
|
-
case 16u: { return d * s.a; } // mask-in
|
|
130
|
-
case 17u: { return d * (1.0 - s.a); } // mask-out
|
|
131
|
-
default: { b_rgb = s_rgb; } // normal
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
let out_a = sa + da * (1.0 - sa);
|
|
135
|
-
let out_rgb = (1.0 - da) * s.rgb + (1.0 - sa) * d.rgb + sa * da * b_rgb;
|
|
136
|
-
|
|
137
|
-
return vec4<f32>(out_rgb, out_a);
|
|
138
|
-
}
|
|
139
|
-
`;var Ct=`
|
|
140
|
-
struct MotionBlur2DUniforms {
|
|
141
|
-
vel: vec2<f32>,
|
|
142
|
-
_pad: vec2<f32>,
|
|
143
|
-
shutterFraction: f32,
|
|
144
|
-
samples: f32,
|
|
145
|
-
viewportWidth: f32,
|
|
146
|
-
viewportHeight: f32,
|
|
147
|
-
};
|
|
148
|
-
|
|
149
|
-
@group(0) @binding(0) var<uniform> u: MotionBlur2DUniforms;
|
|
150
|
-
@group(1) @binding(0) var sourceTexture: texture_2d<f32>;
|
|
151
|
-
@group(1) @binding(1) var colorSampler: sampler;
|
|
152
|
-
|
|
153
|
-
@vertex
|
|
154
|
-
fn vs(@builtin(vertex_index) vertexIndex: u32) -> @builtin(position) vec4<f32> {
|
|
155
|
-
var pos = array<vec2<f32>, 3>(
|
|
156
|
-
vec2<f32>(-1.0, -3.0),
|
|
157
|
-
vec2<f32>( 3.0, 1.0),
|
|
158
|
-
vec2<f32>(-1.0, 1.0)
|
|
159
|
-
);
|
|
160
|
-
return vec4<f32>(pos[vertexIndex], 0.0, 1.0);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
@fragment
|
|
164
|
-
fn fs(@builtin(position) pos: vec4<f32>) -> @location(0) vec4<f32> {
|
|
165
|
-
let uv = pos.xy / vec2<f32>(u.viewportWidth, u.viewportHeight);
|
|
166
|
-
let sampleCount = u32(max(u.samples, 1.0));
|
|
167
|
-
let velUV = u.vel * u.shutterFraction;
|
|
168
|
-
let halfSamples = f32(sampleCount) * 0.5;
|
|
169
|
-
|
|
170
|
-
var accum = vec4<f32>(0.0);
|
|
171
|
-
var totalWeight = 0.0;
|
|
172
|
-
|
|
173
|
-
for (var i = 0u; i < sampleCount; i = i + 1u) {
|
|
174
|
-
let t = (f32(i) - halfSamples) / max(halfSamples, 1.0);
|
|
175
|
-
let sampleUV = clamp(uv + velUV * t, vec2<f32>(0.0), vec2<f32>(1.0));
|
|
176
|
-
let w = exp(-2.5 * t * t);
|
|
177
|
-
accum += textureSampleLevel(sourceTexture, colorSampler, sampleUV, 0.0) * w;
|
|
178
|
-
totalWeight += w;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
return accum / max(totalWeight, 0.0001);
|
|
182
|
-
}
|
|
183
|
-
`,rt=class{textures=[];texturesByKey=new Map;index=0;getTexture(t,e,r,i,n){let s=new Set(Array.isArray(n)?n:n?[n]:[]),a=`${e}x${r}:${i}`,o=this.texturesByKey.get(a);if(o)for(let c=0;c<o.length;c++){let h=o[c];if(!s.has(h)){o.splice(c,1),o.unshift(h);let p=this.textures.indexOf(h);return p>=this.index&&(this.textures.splice(p,1),this.textures.splice(this.index,0,h),this.index++),h}}let l=t.createTexture({size:[e,r],format:i,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC});return this.texturesByKey.has(a)||this.texturesByKey.set(a,[]),this.texturesByKey.get(a).unshift(l),this.textures.splice(this.index,0,l),this.index++,l}reset(){this.index=0}destroy(){for(let t of this.textures)t.destroy();this.textures=[],this.texturesByKey.clear(),this.index=0}},kt={normal:0,"source-over":0,multiply:1,screen:2,overlay:3,darken:4,lighten:5,"color-dodge":6,"color-burn":7,"hard-light":8,"soft-light":9,difference:10,exclusion:11,hue:12,saturation:13,color:14,luminosity:15,"mask-in":16,"destination-in":16,"mask-out":17,"destination-out":17,"source-in":18,"source-out":19,"source-atop":20,"destination-over":21,"destination-atop":22,lighter:23,copy:24,xor:25},O=class{device;compositeUniformLayout;dualTextureLayout;motionBlurUniformLayout;singleTextureLayout;compositePipeline;motionBlurPipeline;compositePool;motionBlurPool;texturePool;compositeUniformBindGroupCache=new M;motionBlurUniformBindGroupCache=new M;compositeData=new Uint32Array(4);motionBlurData=new Float32Array(8);constructor(t,e){this.device=t,this.compositePool=new G(1024,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.motionBlurPool=new G(1024,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.texturePool=new rt,this.compositeUniformLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.dualTextureLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),this.motionBlurUniformLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.singleTextureLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]});let r=t.createPipelineLayout({bindGroupLayouts:[this.compositeUniformLayout,this.dualTextureLayout]}),i=t.createShaderModule({label:"composite.wgsl",code:yt});this.compositePipeline=t.createRenderPipeline({label:"CompositePipeline",layout:r,vertex:{module:i,entryPoint:"vs"},fragment:{module:i,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}});let n=t.createPipelineLayout({bindGroupLayouts:[this.motionBlurUniformLayout,this.singleTextureLayout]}),s=t.createShaderModule({label:"motion-blur-2d.wgsl",code:Ct});this.motionBlurPipeline=t.createRenderPipeline({label:"MotionBlurPipeline",layout:n,vertex:{module:s,entryPoint:"vs"},fragment:{module:s,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-list"}})}resetPools(){this.compositePool.reset(),this.motionBlurPool.reset(),this.texturePool.reset()}getTexture(t,e,r,i,n){return this.texturePool.getTexture(t,e,r,i,n)}getBuffer(t,e){return this.compositePool.getBuffer(t,e)}composite(t,e,r,i,n,s,a,o){let l=r.getSampler(this.device),c=[i,n];o&&(Array.isArray(o)?c.push(...o):c.push(o));let h=this.texturePool.getTexture(this.device,i.width,i.height,a,c);this.compositeData[0]=kt[s]??0;let p=this.compositePool.getBuffer(this.device,this.compositeData),m=t.beginRenderPass({colorAttachments:[{view:h.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});m.setPipeline(this.compositePipeline);let d=this.compositeUniformBindGroupCache.getBindGroup(this.device,this.compositeUniformLayout,p);m.setBindGroup(0,d);let f=e.getCompositeBindGroup(this.device,this.dualTextureLayout,i,n,l);return m.setBindGroup(1,f),m.draw(4),m.end(),h}applyMotionBlur(t,e,r,i,n,s,a=180,o=16,l,c){if(Math.abs(n)<.1&&Math.abs(s)<.1||a<=0)return i;let h=r.getSampler(this.device),p=[i];c&&(Array.isArray(c)?p.push(...c):p.push(c));let m=this.texturePool.getTexture(this.device,i.width,i.height,l,p);this.motionBlurData[0]=n/i.width,this.motionBlurData[1]=s/i.height,this.motionBlurData[2]=0,this.motionBlurData[3]=0,this.motionBlurData[4]=a/360,this.motionBlurData[5]=o,this.motionBlurData[6]=i.width,this.motionBlurData[7]=i.height;let d=this.motionBlurPool.getBuffer(this.device,this.motionBlurData),f=t.beginRenderPass({colorAttachments:[{view:m.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});f.setPipeline(this.motionBlurPipeline);let y=this.motionBlurUniformBindGroupCache.getBindGroup(this.device,this.motionBlurUniformLayout,d);return f.setBindGroup(0,y),f.setBindGroup(1,e.getBindGroup(this.device,this.singleTextureLayout,i,h)),f.draw(3),f.end(),m}destroy(){this.compositePool.destroy(),this.motionBlurPool.destroy(),this.texturePool.destroy(),this.compositeUniformBindGroupCache.destroy(),this.motionBlurUniformBindGroupCache.destroy()}};g();g();var E=class{cache=new WeakMap;dualCache=new WeakMap;getBindGroup(t,e,r,i){let n=this.cache.get(r);n||(n=new Map,this.cache.set(r,n));let s=n.get(e);return s||(s=t.createBindGroup({layout:e,entries:[{binding:0,resource:r.createView()},{binding:1,resource:i}]}),n.set(e,s)),s}getCompositeBindGroup(t,e,r,i,n){let s=this.dualCache.get(r);s||(s=new WeakMap,this.dualCache.set(r,s));let a=s.get(i);a||(a=new Map,s.set(i,a));let o=a.get(e);return o||(o=t.createBindGroup({layout:e,entries:[{binding:0,resource:r.createView()},{binding:1,resource:i.createView()},{binding:2,resource:n}]}),a.set(e,o)),o}destroy(){this.cache=new WeakMap,this.dualCache=new WeakMap}};g();var A=class{scissorStack=[];stencilStack=[];pushScissor(t,e,r){this.scissorStack.push({rect:t,surfaceWidth:e,surfaceHeight:r})}popScissor(){this.scissorStack.length>0&&this.scissorStack.pop()}saveScissors(){return[...this.scissorStack]}restoreScissors(t){this.scissorStack=[...t]}clearScissors(){this.scissorStack=[]}getCurrentScissor(t,e){let r=this.scissorStack[this.scissorStack.length-1];if(r&&!(t!==void 0&&e!==void 0&&r.surfaceWidth!==void 0&&r.surfaceHeight!==void 0&&r.surfaceWidth!==0&&r.surfaceHeight!==0&&(r.surfaceWidth!==t||r.surfaceHeight!==e)))return r.rect}pushStencilClip(t){this.stencilStack.push(t)}popStencilClip(){this.stencilStack.length>0&&this.stencilStack.pop()}getCurrentStencil(){return this.stencilStack[this.stencilStack.length-1]}applyScissorToPass(t,e,r){let i=this.getCurrentScissor(e,r);if(!i){t.setScissorRect(0,0,Math.max(1,Math.floor(e)),Math.max(1,Math.floor(r)));return}let n=Math.max(0,Math.floor(i.x)),s=Math.max(0,Math.floor(i.y)),a=Math.min(e,Math.ceil(i.x+i.width)),o=Math.min(r,Math.ceil(i.y+i.height)),l=Math.max(0,a-n),c=Math.max(0,o-s);if(!Number.isFinite(n)||!Number.isFinite(s)||!Number.isFinite(l)||!Number.isFinite(c)||l<=0||c<=0)t.setScissorRect(0,0,1,1);else{let h=Math.min(l,Math.max(0,e-n)),p=Math.min(c,Math.max(0,r-s));h<=0||p<=0?t.setScissorRect(0,0,1,1):t.setScissorRect(Math.floor(n),Math.floor(s),Math.floor(h),Math.floor(p))}}destroy(){this.scissorStack=[],this.stencilStack=[]}};g();function gt(u,t,e,r,i=24){let n=[],s=u;for(let a=1;a<=i;a++){let o=a/i,l=1-o,c=l*l,h=c*l,p=o*o,m=p*o,d={x:h*u.x+3*c*o*t.x+3*l*p*e.x+m*r.x,y:h*u.y+3*c*o*t.y+3*l*p*e.y+m*r.y};n.push({p0:s,p1:d}),s=d}return n}function xt(u,t,e,r=16){let i=[],n=u;for(let s=1;s<=r;s++){let a=s/r,o=1-a,l=o*o,c=a*a,h={x:l*u.x+2*o*a*t.x+c*e.x,y:l*u.y+2*o*a*t.y+c*e.y};i.push({p0:n,p1:h}),n=h}return i}function Ft(u,t,e,r,i,n,s){let a=Math.abs(t),o=Math.abs(e);if(a<1e-9||o<1e-9)return[{p0:u,p1:s}];if(Math.hypot(s.x-u.x,s.y-u.y)<1e-9)return[];let l=r*Math.PI/180,c=Math.cos(l),h=Math.sin(l),p=(u.x-s.x)/2,m=(u.y-s.y)/2,d=c*p+h*m,f=-h*p+c*m,y=d*d/(a*a)+f*f/(o*o);y>1&&(a*=Math.sqrt(y),o*=Math.sqrt(y));let x=a*a*o*o-a*a*f*f-o*o*d*d,P=a*a*f*f+o*o*d*d,v=(i===n?-1:1)*Math.sqrt(Math.max(0,x/P)),b=v*a*f/o,S=-v*o*d/a,U=c*b-h*S+(u.x+s.x)/2,k=h*b+c*S+(u.y+s.y)/2,Q=(C,F,T,_)=>Math.atan2(C*_-F*T,C*T+F*_),Y=Q(1,0,(d-b)/a,(f-S)/o),D=Q((d-b)/a,(f-S)/o,(-d-b)/a,(-f-S)/o);!n&&D>0&&(D-=2*Math.PI),n&&D<0&&(D+=2*Math.PI);let X=Math.max(4,Math.ceil(Math.abs(D)/(2*Math.PI)*64)),nt=[],at=u;for(let C=1;C<=X;C++){let F=Y+D*C/X,T=a*Math.cos(F),_=o*Math.sin(F),ut=C===X?s:{x:c*T-h*_+U,y:h*T+c*_+k};nt.push({p0:at,p1:ut}),at=ut}return nt}function I(u){let t=[];if(!u||typeof u!="string")return t;let e=[],r=/([a-df-z])|([-+]?(?:\d*\.\d+|\d+)(?:[eE][-+]?\d+)?)/gi,i;for(;(i=r.exec(u))!==null;)i[1]?e.push(i[1]):i[2]&&e.push(parseFloat(i[2]));let n=0,s={x:0,y:0},a={x:0,y:0},o=null,l=null;for(;n<e.length;){let c=e[n++];if(typeof c!="string")continue;let h=c,p=h===h.toLowerCase(),m=h.toUpperCase(),d=()=>n<e.length&&typeof e[n]=="number"?e[n++]:0;switch(m){case"M":{let f=!0;for(;n<e.length&&typeof e[n]=="number";){let y=d(),x=d();p&&(y+=s.x,x+=s.y),f?(s={x:y,y:x},a={x:y,y:x},f=!1):(t.push({p0:s,p1:{x:y,y:x}}),s={x:y,y:x})}o=null,l=null;break}case"L":{for(;n<e.length&&typeof e[n]=="number";){let f=d(),y=d();p&&(f+=s.x,y+=s.y),t.push({p0:s,p1:{x:f,y}}),s={x:f,y}}o=null,l=null;break}case"H":{for(;n<e.length&&typeof e[n]=="number";){let f=d();p&&(f+=s.x);let y={x:f,y:s.y};t.push({p0:s,p1:y}),s=y}o=null,l=null;break}case"V":{for(;n<e.length&&typeof e[n]=="number";){let f=d();p&&(f+=s.y);let y={x:s.x,y:f};t.push({p0:s,p1:y}),s=y}o=null,l=null;break}case"C":{for(;n<e.length&&typeof e[n]=="number";){let f=d(),y=d(),x=d(),P=d(),v=d(),b=d();p&&(f+=s.x,y+=s.y,x+=s.x,P+=s.y,v+=s.x,b+=s.y);let S={x:f,y},U={x,y:P},k={x:v,y:b};t.push(...gt(s,S,U,k)),s=k,o=U}l=null;break}case"S":{for(;n<e.length&&typeof e[n]=="number";){let f=d(),y=d(),x=d(),P=d();p&&(f+=s.x,y+=s.y,x+=s.x,P+=s.y);let v;o?v={x:2*s.x-o.x,y:2*s.y-o.y}:v={x:s.x,y:s.y};let b={x:f,y},S={x,y:P};t.push(...gt(s,v,b,S)),s=S,o=b}l=null;break}case"Q":{for(;n<e.length&&typeof e[n]=="number";){let f=d(),y=d(),x=d(),P=d();p&&(f+=s.x,y+=s.y,x+=s.x,P+=s.y);let v={x:f,y},b={x,y:P};t.push(...xt(s,v,b)),s=b,l=v}o=null;break}case"T":{for(;n<e.length&&typeof e[n]=="number";){let f=d(),y=d();p&&(f+=s.x,y+=s.y);let x;l?x={x:2*s.x-l.x,y:2*s.y-l.y}:x={x:s.x,y:s.y};let P={x:f,y};t.push(...xt(s,x,P)),s=P,l=x}o=null;break}case"A":{for(;n<e.length&&typeof e[n]=="number";){let f=d(),y=d(),x=d(),P=d()!==0,v=d()!==0,b=d(),S=d();p&&(b+=s.x,S+=s.y);let U={x:b,y:S};t.push(...Ft(s,f,y,x,P,v,U)),s=U}o=null,l=null;break}case"Z":{Math.hypot(s.x-a.x,s.y-a.y)>1e-5&&t.push({p0:s,p1:a}),s=a,o=null,l=null;break}default:break}}return t}function V(u,t,e,r=0){if(u.length===0)return[];let i=[],n=0;for(let c of u){let h=Math.hypot(c.p1.x-c.p0.x,c.p1.y-c.p0.y);i.push(h),n+=h}if(n<1e-6)return[];let s=Math.abs(r)>1?r%360/360:r,a=(t+s)%1,o=(e+s)%1;a<0&&(a+=1),o<0&&(o+=1);let l=(c,h)=>{if(c>=h)return[];let p=[],m=0;for(let d=0;d<u.length;d++){let f=u[d],y=i[d],x=m,P=m+y;if(m=P,P<=c||x>=h||y<1e-6)continue;let v=Math.max(0,(c-x)/y),b=Math.min(1,(h-x)/y);if(b>v){let S={x:f.p0.x+(f.p1.x-f.p0.x)*v,y:f.p0.y+(f.p1.y-f.p0.y)*v},U={x:f.p0.x+(f.p1.x-f.p0.x)*b,y:f.p0.y+(f.p1.y-f.p0.y)*b};p.push({p0:S,p1:U})}}return p};if(t===0&&e===1&&r===0)return[...u];if(Math.abs(a-o)<1e-5)return[];if(a<=o)return l(a*n,o*n);{let c=l(a*n,n),h=l(0,o*n);return[...c,...h]}}function it(u,t,e=0){if(u.length===0||t.length===0)return u;let r=0;for(let m of t)r+=m;if(r<1e-5)return u;let i=0,n=[];for(let m of u){let d=Math.hypot(m.p1.x-m.p0.x,m.p1.y-m.p0.y);n.push(d),i+=d}let s=[],a=(e%r+r)%r,o=0,l=!0,c=a;for(;c>t[o];)c-=t[o],o=(o+1)%t.length,l=!l;let h=t[o]-c,p=0;for(;p<i;){let m=Math.min(h,i-p);if(l&&m>1e-4){let d=V(u,p/i,(p+m)/i);s.push(...d)}p+=m,o=(o+1)%t.length,l=!l,h=t[o]}return s}function vt(u,t,e=0,r=0,i=0,n=0){let s=Math.min(u/2,t/2),a=Math.min(e,s),o=Math.min(r,s),l=Math.min(i,s),c=Math.min(n,s);return a===0&&o===0&&l===0&&c===0?`M 0 0 L ${u} 0 L ${u} ${t} L 0 ${t} Z`:[`M ${a} 0`,`L ${u-o} 0`,o>0?`Q ${u} 0 ${u} ${o}`:`L ${u} 0`,`L ${u} ${t-l}`,l>0?`Q ${u} ${t} ${u-l} ${t}`:`L ${u} ${t}`,`L ${c} ${t}`,c>0?`Q 0 ${t} 0 ${t-c}`:`L 0 ${t}`,`L 0 ${a}`,a>0?`Q 0 0 ${a} 0`:"L 0 0","Z"].join(" ")}function Tt(u,t){let e=Math.min(u,t)/2,r=u/2,i=t/2,n=e*.5522847498;return[`M ${r} ${i-e}`,`C ${r+n} ${i-e} ${r+e} ${i-n} ${r+e} ${i}`,`C ${r+e} ${i+n} ${r+n} ${i+e} ${r} ${i+e}`,`C ${r-n} ${i+e} ${r-e} ${i+n} ${r-e} ${i}`,`C ${r-e} ${i-n} ${r-n} ${i-e} ${r} ${i-e}`,"Z"].join(" ")}function _t(u,t){let e=u/2,r=t/2,i=e,n=r,s=e*.5522847498,a=r*.5522847498;return[`M ${i} ${n-r}`,`C ${i+s} ${n-r} ${i+e} ${n-a} ${i+e} ${n}`,`C ${i+e} ${n+a} ${i+s} ${n+r} ${i} ${n+r}`,`C ${i-s} ${n+r} ${i-e} ${n+a} ${i-e} ${n}`,`C ${i-e} ${n-a} ${i-s} ${n-r} ${i} ${n-r}`,"Z"].join(" ")}function Rt(u,t,e=5){let r=Math.max(3,e),i=Math.min(u,t)/2,n=u/2,s=t/2,a=[];for(let o=0;o<r;o++){let l=-Math.PI/2+o*2*Math.PI/r;a.push({x:n+i*Math.cos(l),y:s+i*Math.sin(l)})}return a.map((o,l)=>`${l===0?"M":"L"} ${o.x} ${o.y}`).join(" ")+" Z"}function Lt(u,t,e=5,r=.5){let i=Math.max(3,e),n=Math.min(u,t)/2,s=n*Math.max(.01,Math.min(.99,r)),a=u/2,o=t/2,l=[];for(let c=0;c<i*2;c++){let h=-Math.PI/2+c*Math.PI/i,p=c%2===0?n:s;l.push({x:a+p*Math.cos(h),y:o+p*Math.sin(h)})}return l.map((c,h)=>`${h===0?"M":"L"} ${c.x} ${c.y}`).join(" ")+" Z"}function $t(u,t,e=40,r=40,i=20){let n=Math.min(e,t),s=Math.min(r,u),a=Math.min(i,n),o=t/2;return[`M 0 ${o-a/2}`,`L ${u-s} ${o-a/2}`,`L ${u-s} ${o-n/2}`,`L ${u} ${o}`,`L ${u-s} ${o+n/2}`,`L ${u-s} ${o+a/2}`,`L 0 ${o+a/2}`,"Z"].join(" ")}function ot(u){let{shapeType:t,width:e,height:r}=u;switch(t){case"rect":return vt(e,r,u.cornerRadius??0,u.cornerRadius??0,u.cornerRadius??0,u.cornerRadius??0);case"circle":return Tt(e,r);case"ellipse":return _t(e,r);case"polygon":return Rt(e,r,u.polygonSides??5);case"star":return Lt(e,r,u.starPoints??5,u.starInnerRadiusRatio??.5);case"arrow":return $t(e,r,u.arrowHeadWidth??40,u.arrowHeadLength??40,u.arrowShaftWidth??20);case"path":return u.path??"";default:return""}}function Pt(u){if(u.length<3)return[];if(u.length===3)return[u[0],u[1],u[2]];let t=[...u],e=t[t.length-1],r=t[0];if(Math.hypot(e.x-r.x,e.y-r.y)<1e-5&&t.pop(),t.length<3)return[];let i=0;for(let h=0;h<t.length;h++){let p=(h+1)%t.length;i+=t[h].x*t[p].y-t[p].x*t[h].y}i<0&&t.reverse();let n=(h,p,m,d)=>{let f=(m.x-p.x)*(h.y-p.y)-(m.y-p.y)*(h.x-p.x),y=(d.x-m.x)*(h.y-m.y)-(d.y-m.y)*(h.x-m.x),x=(p.x-d.x)*(h.y-d.y)-(p.y-d.y)*(h.x-d.x);return f>=-1e-6&&y>=-1e-6&&x>=-1e-6},s=(h,p,m,d)=>{if((p.x-h.x)*(m.y-h.y)-(p.y-h.y)*(m.x-h.x)<=1e-7)return!1;for(let y of d)if(!(y===h||y===p||y===m)&&n(y,h,p,m))return!1;return!0},a=[],o=[...t],l=0,c=o.length*o.length*2;for(;o.length>3&&l<c;){l++;let h=!1;for(let p=0;p<o.length;p++){let m=o[(p-1+o.length)%o.length],d=o[p],f=o[(p+1)%o.length];if(s(m,d,f,o)){a.push(m,d,f),o.splice(p,1),h=!0;break}}h||(a.push(o[0],o[1],o[2]),o.splice(1,1))}return o.length===3&&a.push(o[0],o[1],o[2]),a}function bt(u){let{shapeType:t,width:e,height:r}=u;if(t==="rect"){let i=u.cornerRadius??0;if(i<=0)return new Float32Array([0,0,e,0,e,r,0,0,e,r,0,r]);let n=vt(e,r,i,i,i,i),a=I(n).map(c=>c.p0),o=Pt(a),l=new Float32Array(o.length*2);for(let c=0;c<o.length;c++)l[c*2]=o[c].x,l[c*2+1]=o[c].y;return l}if(t==="circle"||t==="ellipse"){let i=e/2,n=r/2,s=t==="circle"?Math.min(e,r)/2:e/2,a=t==="circle"?s:r/2,o=48,l=new Float32Array(o*3*2),c=0;for(let h=0;h<o;h++){let p=h*2*Math.PI/o,m=(h+1)*2*Math.PI/o;l[c++]=i,l[c++]=n,l[c++]=i+s*Math.cos(p),l[c++]=n+a*Math.sin(p),l[c++]=i+s*Math.cos(m),l[c++]=n+a*Math.sin(m)}return l}if(t==="polygon"){let i=Math.max(3,u.polygonSides??5),n=Math.min(e,r)/2,s=e/2,a=r/2,o=new Float32Array(i*3*2),l=0;for(let c=0;c<i;c++){let h=-Math.PI/2+c*2*Math.PI/i,p=-Math.PI/2+(c+1)*2*Math.PI/i;o[l++]=s,o[l++]=a,o[l++]=s+n*Math.cos(h),o[l++]=a+n*Math.sin(h),o[l++]=s+n*Math.cos(p),o[l++]=a+n*Math.sin(p)}return o}if(t==="star"){let i=Math.max(3,u.starPoints??5),n=Math.min(e,r)/2,s=n*Math.max(.01,Math.min(.99,u.starInnerRadiusRatio??.5)),a=e/2,o=r/2,l=i*2,c=new Float32Array(l*3*2),h=0;for(let p=0;p<l;p++){let m=-Math.PI/2+p*Math.PI/i,d=-Math.PI/2+(p+1)*Math.PI/i,f=p%2===0?n:s,y=(p+1)%2===0?n:s;c[h++]=a,c[h++]=o,c[h++]=a+f*Math.cos(m),c[h++]=o+f*Math.sin(m),c[h++]=a+y*Math.cos(d),c[h++]=o+y*Math.sin(d)}return c}if(t==="arrow"){let i=Math.min(u.arrowHeadWidth??40,r),n=Math.min(u.arrowHeadLength??40,e),s=Math.min(u.arrowShaftWidth??20,i),a=r/2,o=0,l=e-n,c=e,h=a-s/2,p=a+s/2,m=a-i/2,d=a+i/2;return new Float32Array([o,h,l,h,l,p,o,h,l,p,o,p,l,m,c,a,l,d])}if(t==="path"&&u.path){let i=I(u.path);if(i.length===0)return new Float32Array(0);let n=i.map(o=>o.p0),s=Pt(n),a=new Float32Array(s.length*2);for(let o=0;o<s.length;o++)a[o*2]=s[o].x,a[o*2+1]=s[o].y;return a}return new Float32Array(0)}g();g();var St=`
|
|
184
|
-
struct Uniforms {
|
|
185
|
-
transformCol0 : vec4<f32>,
|
|
186
|
-
transformCol1 : vec4<f32>,
|
|
187
|
-
transformCol2 : vec4<f32>,
|
|
188
|
-
params : vec4<f32>, // x = opacity, y = surfaceWidth, z = surfaceHeight, w = strokeWidth
|
|
189
|
-
color : vec4<f32>,
|
|
190
|
-
style : vec4<f32>, // x = capType (0 = round, 1 = butt, 2 = square)
|
|
191
|
-
p0 : vec2<f32>,
|
|
192
|
-
p1 : vec2<f32>,
|
|
193
|
-
};
|
|
194
|
-
|
|
195
|
-
@group(0) @binding(0) var<uniform> u : Uniforms;
|
|
196
|
-
|
|
197
|
-
struct VSOut {
|
|
198
|
-
@builtin(position) pos : vec4<f32>,
|
|
199
|
-
@location(0) localPos : vec2<f32>,
|
|
200
|
-
};
|
|
201
|
-
|
|
202
|
-
@vertex fn vs(@location(0) xy : vec2<f32>) -> VSOut {
|
|
203
|
-
let transform = mat3x3<f32>(u.transformCol0.xyz, u.transformCol1.xyz, u.transformCol2.xyz);
|
|
204
|
-
let p = transform * vec3<f32>(xy, 1.0);
|
|
205
|
-
|
|
206
|
-
let surfaceSize = u.params.yz;
|
|
207
|
-
let clipX = (p.x / surfaceSize.x) * 2.0 - 1.0;
|
|
208
|
-
let clipY = 1.0 - (p.y / surfaceSize.y) * 2.0;
|
|
209
|
-
|
|
210
|
-
return VSOut(vec4<f32>(clipX, clipY, 0.0, 1.0), xy);
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
fn sdSegmentWithCap(p: vec2<f32>, a: vec2<f32>, b: vec2<f32>, radius: f32, capType: f32) -> f32 {
|
|
214
|
-
let ba = b - a;
|
|
215
|
-
let len = length(ba);
|
|
216
|
-
if (len < 1e-6) {
|
|
217
|
-
return length(p - a) - radius;
|
|
218
|
-
}
|
|
219
|
-
let dir = ba / len;
|
|
220
|
-
let normal = vec2<f32>(-dir.y, dir.x);
|
|
221
|
-
let pa = p - a;
|
|
222
|
-
|
|
223
|
-
let proj = dot(pa, dir);
|
|
224
|
-
let perp = abs(dot(pa, normal));
|
|
225
|
-
|
|
226
|
-
if (capType > 0.5 && capType < 1.5) {
|
|
227
|
-
// Butt cap: terminates strictly at endpoints a and b
|
|
228
|
-
let dx = max(-proj, proj - len);
|
|
229
|
-
let dy = perp - radius;
|
|
230
|
-
let outside = length(max(vec2<f32>(dx, dy), vec2<f32>(0.0, 0.0)));
|
|
231
|
-
let inside = min(max(dx, dy), 0.0);
|
|
232
|
-
return outside + inside;
|
|
233
|
-
} else if (capType >= 1.5) {
|
|
234
|
-
// Square cap: extends past endpoints a and b by radius
|
|
235
|
-
let dx = max(-proj - radius, proj - (len + radius));
|
|
236
|
-
let dy = perp - radius;
|
|
237
|
-
let outside = length(max(vec2<f32>(dx, dy), vec2<f32>(0.0, 0.0)));
|
|
238
|
-
let inside = min(max(dx, dy), 0.0);
|
|
239
|
-
return outside + inside;
|
|
240
|
-
} else {
|
|
241
|
-
// Round cap (default)
|
|
242
|
-
let h = clamp(proj / len, 0.0, 1.0);
|
|
243
|
-
return length(pa - ba * h) - radius;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
248
|
-
let radius = u.params.w * 0.5;
|
|
249
|
-
let d = sdSegmentWithCap(in.localPos, u.p0, u.p1, radius, u.style.x);
|
|
250
|
-
|
|
251
|
-
let fw = max(fwidth(d), 1e-5);
|
|
252
|
-
let edgeAlpha = clamp(0.5 - d / fw, 0.0, 1.0);
|
|
253
|
-
let alpha = u.color.a * u.params.x * edgeAlpha;
|
|
254
|
-
if (alpha <= 0.0) {
|
|
255
|
-
discard;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
return vec4<f32>(u.color.rgb * alpha, alpha);
|
|
259
|
-
}
|
|
260
|
-
`;var W=class{device;pipeline;maxPipeline;uniformLayout;uniformPool;vertexPool;uniformBindGroupCache=new M;scratchData=new Float32Array(28);constructor(t,e){this.device=t,this.uniformPool=new G(4096,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.vertexPool=new G(4096,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST);let r=t.createShaderModule({label:"path.wgsl",code:St});this.uniformLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.pipeline=t.createRenderPipeline({label:"PathPipeline",layout:t.createPipelineLayout({bindGroupLayouts:[this.uniformLayout]}),vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:e,blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}}}]},primitive:{topology:"triangle-strip"}}),this.maxPipeline=t.createRenderPipeline({label:"PathPipeline.max",layout:t.createPipelineLayout({bindGroupLayouts:[this.uniformLayout]}),vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:e,blend:{color:{srcFactor:"one",dstFactor:"one",operation:"max"},alpha:{srcFactor:"one",dstFactor:"one",operation:"max"}}}]},primitive:{topology:"triangle-strip"}})}resetPools(){this.uniformPool.reset(),this.vertexPool.reset()}drawPath(t,e,r,i,n,s,a,o){let l=I(r);if(l.length===0||((o?.trimStart!==void 0||o?.trimEnd!==void 0||o?.trimOffset!==void 0)&&(l=V(l,o.trimStart??0,o.trimEnd??1,o.trimOffset??0)),o?.strokeDashArray&&o.strokeDashArray.length>0&&(l=it(l,o.strokeDashArray,o.strokeDashOffset??0)),l.length===0))return;let c=B(i),h=o?.opacity??1,p=0;o?.strokeLineCap==="butt"?p=1:o?.strokeLineCap==="square"&&(p=2);for(let m of l)this.drawSegment(t,e,m.p0,m.p1,c,n,p,s,a,h,o)}drawSegments(t,e,r,i,n,s,a,o){let l=r;if((o?.trimStart!==void 0||o?.trimEnd!==void 0||o?.trimOffset!==void 0)&&(l=V(l,o.trimStart??0,o.trimEnd??1,o.trimOffset??0)),o?.strokeDashArray&&o.strokeDashArray.length>0&&(l=it(l,o.strokeDashArray,o.strokeDashOffset??0)),l.length===0)return;let c=B(i),h=o?.opacity??1,p=0;o?.strokeLineCap==="butt"?p=1:o?.strokeLineCap==="square"&&(p=2);for(let m of l)this.drawSegment(t,e,m.p0,m.p1,c,n,p,s,a,h,o)}drawSegment(t,e,r,i,n,s,a,o,l,c,h){let p=this.scratchData;e.packIntoBuffer(p,c,o,l,h?.transform),p[15]=s,p[16]=n.r,p[17]=n.g,p[18]=n.b,p[19]=n.a,p[20]=a,p[21]=0,p[22]=0,p[23]=0,p[24]=r.x,p[25]=r.y,p[26]=i.x,p[27]=i.y;let m=this.uniformPool.getBuffer(this.device,p),d=i.x-r.x,f=i.y-r.y,y=Math.sqrt(d*d+f*f);if(y<1e-6)return;let x=s*.5+2,P=d/y*x,v=f/y*x,b=-v,S=P,U=new Float32Array([r.x-P-b,r.y-v-S,r.x-P+b,r.y-v+S,i.x+P-b,i.y+v-S,i.x+P+b,i.y+v+S]),k=this.vertexPool.getBuffer(this.device,U),Y=h?.blendMode==="max"?this.maxPipeline:this.pipeline;t.setPipeline(Y);let D=this.uniformBindGroupCache.getBindGroup(this.device,this.uniformLayout,m);t.setBindGroup(0,D),t.setVertexBuffer(0,k),t.draw(4)}destroy(){this.uniformPool.destroy(),this.vertexPool.destroy(),this.uniformBindGroupCache.destroy()}};g();g();var wt=`
|
|
261
|
-
struct Uniforms {
|
|
262
|
-
transformCol0 : vec4<f32>,
|
|
263
|
-
transformCol1 : vec4<f32>,
|
|
264
|
-
transformCol2 : vec4<f32>,
|
|
265
|
-
params : vec4<f32>, // x = opacity, y = surfaceWidth, z = surfaceHeight, w = blurAmount
|
|
266
|
-
};
|
|
267
|
-
|
|
268
|
-
@group(0) @binding(0) var<uniform> u : Uniforms;
|
|
269
|
-
@group(1) @binding(0) var tex : texture_2d<f32>;
|
|
270
|
-
@group(1) @binding(1) var samp : sampler;
|
|
271
|
-
|
|
272
|
-
struct VSOut {
|
|
273
|
-
@builtin(position) pos : vec4<f32>,
|
|
274
|
-
@location(0) uv : vec2<f32>,
|
|
275
|
-
};
|
|
276
|
-
|
|
277
|
-
@vertex fn vs(@location(0) xy : vec2<f32>, @location(1) uv : vec2<f32>) -> VSOut {
|
|
278
|
-
let transform = mat3x3<f32>(u.transformCol0.xyz, u.transformCol1.xyz, u.transformCol2.xyz);
|
|
279
|
-
let p = transform * vec3<f32>(xy, 1.0);
|
|
280
|
-
|
|
281
|
-
let surfaceSize = u.params.yz;
|
|
282
|
-
let clipX = (p.x / surfaceSize.x) * 2.0 - 1.0;
|
|
283
|
-
let clipY = 1.0 - (p.y / surfaceSize.y) * 2.0;
|
|
284
|
-
|
|
285
|
-
return VSOut(vec4<f32>(clipX, clipY, 0.0, 1.0), uv);
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
289
|
-
let opacity = u.params.x;
|
|
290
|
-
let blurAmount = u.params.w;
|
|
291
|
-
|
|
292
|
-
if (blurAmount > 0.01) {
|
|
293
|
-
let fdx = dpdx(in.uv);
|
|
294
|
-
let fdy = dpdy(in.uv);
|
|
295
|
-
let fw = max(max(abs(fdx), abs(fdy)), vec2<f32>(0.000001));
|
|
296
|
-
let step = fw * blurAmount * 0.3;
|
|
297
|
-
|
|
298
|
-
var color = vec4<f32>(0.0);
|
|
299
|
-
var totalWeight = 0.0;
|
|
300
|
-
for (var y_offset = -1.0; y_offset <= 1.0; y_offset = y_offset + 1.0) {
|
|
301
|
-
for (var x_offset = -1.0; x_offset <= 1.0; x_offset = x_offset + 1.0) {
|
|
302
|
-
let offset = vec2<f32>(x_offset, y_offset) * step;
|
|
303
|
-
let sampleColor = textureSample(tex, samp, in.uv + offset);
|
|
304
|
-
color = color + sampleColor;
|
|
305
|
-
totalWeight = totalWeight + 1.0;
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
return (color / totalWeight) * opacity;
|
|
309
|
-
} else {
|
|
310
|
-
let color = textureSample(tex, samp, in.uv);
|
|
311
|
-
return color * opacity;
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
`;var z=class{buffers=[];index=0;size;usage;constructor(t,e){this.size=t,this.usage=e}getBuffer(t,e){if(this.index>=this.buffers.length){let i=t.createBuffer({size:this.size,usage:this.usage});this.buffers.push(i)}let r=this.buffers[this.index++];return t.queue.writeBuffer(r,0,e),r}reset(){this.index=0}destroy(){for(let t of this.buffers)t.destroy();this.buffers=[]}},j=class{device;pipeline;uniformLayout;textureLayout;uniformPool;vertexPool;uniformBindGroupCache=new M;uniformData=new Float32Array(16);vertexData=new Float32Array(16);constructor(t,e){this.device=t,this.uniformPool=new z(64,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.vertexPool=new z(64,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST);let r=t.createShaderModule({label:"quad.wgsl",code:wt});this.uniformLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.textureLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]});let i=t.createPipelineLayout({bindGroupLayouts:[this.uniformLayout,this.textureLayout]});this.pipeline=t.createRenderPipeline({label:"QuadPipeline",layout:i,vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:16,attributes:[{shaderLocation:0,offset:0,format:"float32x2"},{shaderLocation:1,offset:8,format:"float32x2"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:e,blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}}}]},primitive:{topology:"triangle-strip"}})}resetPools(){this.uniformPool.reset(),this.vertexPool.reset()}draw(t,e,r,i,n,s,a,o,l,c){let h=c?.opacity??1;r.packIntoBuffer(this.uniformData,h,o,l,c?.transform);let p=this.uniformPool.getBuffer(this.device,this.uniformData),m=s.x/i.width,d=s.y/i.height,f=(s.x+s.width)/i.width,y=(s.y+s.height)/i.height;this.vertexData[0]=a.x,this.vertexData[1]=a.y,this.vertexData[2]=m,this.vertexData[3]=d,this.vertexData[4]=a.x+a.width,this.vertexData[5]=a.y,this.vertexData[6]=f,this.vertexData[7]=d,this.vertexData[8]=a.x,this.vertexData[9]=a.y+a.height,this.vertexData[10]=m,this.vertexData[11]=y,this.vertexData[12]=a.x+a.width,this.vertexData[13]=a.y+a.height,this.vertexData[14]=f,this.vertexData[15]=y;let x=this.vertexPool.getBuffer(this.device,this.vertexData),P=this.uniformBindGroupCache.getBindGroup(this.device,this.uniformLayout,p),v=e.getBindGroup(this.device,this.textureLayout,i,n);t.setPipeline(this.pipeline),t.setBindGroup(0,P),t.setBindGroup(1,v),t.setVertexBuffer(0,x),t.draw(4)}destroy(){this.uniformPool.destroy(),this.vertexPool.destroy(),this.uniformBindGroupCache.destroy()}};g();g();var Gt=`
|
|
315
|
-
struct Uniforms {
|
|
316
|
-
transformCol0 : vec4<f32>,
|
|
317
|
-
transformCol1 : vec4<f32>,
|
|
318
|
-
transformCol2 : vec4<f32>,
|
|
319
|
-
params : vec4<f32>, // x = opacity, y = surfaceWidth, z = surfaceHeight, w = fillType (0=solid, 1=linear, 2=radial)
|
|
320
|
-
color : vec4<f32>, // solid color or gradient start
|
|
321
|
-
color2 : vec4<f32>, // gradient end
|
|
322
|
-
gradCoords : vec4<f32>, // linear: (x0, y0, x1, y1), radial: (cx, cy, radius, unused)
|
|
323
|
-
};
|
|
324
|
-
|
|
325
|
-
@group(0) @binding(0) var<uniform> u : Uniforms;
|
|
326
|
-
|
|
327
|
-
struct VSOut {
|
|
328
|
-
@builtin(position) pos : vec4<f32>,
|
|
329
|
-
@location(0) localPos : vec2<f32>,
|
|
330
|
-
};
|
|
331
|
-
|
|
332
|
-
@vertex fn vs(@location(0) xy : vec2<f32>) -> VSOut {
|
|
333
|
-
let transform = mat3x3<f32>(u.transformCol0.xyz, u.transformCol1.xyz, u.transformCol2.xyz);
|
|
334
|
-
let p = transform * vec3<f32>(xy, 1.0);
|
|
335
|
-
|
|
336
|
-
let surfaceSize = u.params.yz;
|
|
337
|
-
let clipX = (p.x / surfaceSize.x) * 2.0 - 1.0;
|
|
338
|
-
let clipY = 1.0 - (p.y / surfaceSize.y) * 2.0;
|
|
339
|
-
|
|
340
|
-
return VSOut(vec4<f32>(clipX, clipY, 0.0, 1.0), xy);
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
344
|
-
var outColor = u.color;
|
|
345
|
-
let fillType = u.params.w;
|
|
346
|
-
|
|
347
|
-
if (fillType > 0.5 && fillType < 1.5) {
|
|
348
|
-
// Linear gradient between p0 and p1
|
|
349
|
-
let p0 = u.gradCoords.xy;
|
|
350
|
-
let p1 = u.gradCoords.zw;
|
|
351
|
-
let d = p1 - p0;
|
|
352
|
-
let lenSq = dot(d, d);
|
|
353
|
-
let t = clamp(dot(in.localPos - p0, d) / max(lenSq, 1e-6), 0.0, 1.0);
|
|
354
|
-
outColor = mix(u.color, u.color2, t);
|
|
355
|
-
} else if (fillType >= 1.5) {
|
|
356
|
-
// Radial gradient from center out to radius
|
|
357
|
-
let center = u.gradCoords.xy;
|
|
358
|
-
let radius = max(u.gradCoords.z, 1e-6);
|
|
359
|
-
let dist = length(in.localPos - center);
|
|
360
|
-
let t = clamp(dist / radius, 0.0, 1.0);
|
|
361
|
-
outColor = mix(u.color, u.color2, t);
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
let alpha = outColor.a * u.params.x;
|
|
365
|
-
if (alpha <= 0.0) {
|
|
366
|
-
discard;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
return vec4<f32>(outColor.rgb * alpha, alpha);
|
|
370
|
-
}
|
|
371
|
-
`;var H=class{device;pipeline;uniformLayout;uniformPool;vertexPool;uniformData=new Float32Array(28);constructor(t,e){this.device=t,this.uniformPool=new G(2048,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.vertexPool=new G(8192,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST);let r=t.createShaderModule({label:"shape-fill.wgsl",code:Gt});this.uniformLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.pipeline=t.createRenderPipeline({label:"ShapeFillPipeline",layout:t.createPipelineLayout({bindGroupLayouts:[this.uniformLayout]}),vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:e,blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}}}]},primitive:{topology:"triangle-list"}})}resetPools(){this.uniformPool.reset(),this.vertexPool.reset()}draw(t,e,r,i,n,s,a,o){if(r.length<6||i.type==="none")return;let l=o?.opacity??1;e.packIntoBuffer(this.uniformData,l,s,a,o?.transform);let c=0;i.type==="linear"?c=1:i.type==="radial"&&(c=2),this.uniformData[15]=c;let h=B(i.color??"#ffffff");this.uniformData[16]=h.r,this.uniformData[17]=h.g,this.uniformData[18]=h.b,this.uniformData[19]=h.a;let p=B(i.color2??i.color??"#ffffff");this.uniformData[20]=p.r,this.uniformData[21]=p.g,this.uniformData[22]=p.b,this.uniformData[23]=p.a,c===1?(this.uniformData[24]=i.startX??n.x,this.uniformData[25]=i.startY??n.y,this.uniformData[26]=i.endX??n.x+n.width,this.uniformData[27]=i.endY??n.y+n.height):c===2?(this.uniformData[24]=i.cx??n.x+n.width/2,this.uniformData[25]=i.cy??n.y+n.height/2,this.uniformData[26]=i.radius??Math.max(n.width,n.height)/2,this.uniformData[27]=0):(this.uniformData[24]=0,this.uniformData[25]=0,this.uniformData[26]=0,this.uniformData[27]=0);let m=this.uniformPool.getBuffer(this.device,this.uniformData),d=this.vertexPool.getBuffer(this.device,r);t.setPipeline(this.pipeline),t.setBindGroup(0,this.device.createBindGroup({layout:this.uniformLayout,entries:[{binding:0,resource:{buffer:m}}]})),t.setVertexBuffer(0,d),t.draw(r.length/2)}destroy(){this.uniformPool.destroy(),this.vertexPool.destroy()}};g();g();var Ut=`
|
|
372
|
-
struct Uniforms {
|
|
373
|
-
transformCol0 : vec4<f32>,
|
|
374
|
-
transformCol1 : vec4<f32>,
|
|
375
|
-
transformCol2 : vec4<f32>,
|
|
376
|
-
params : vec4<f32>, // x = opacity, y = surfaceWidth, z = surfaceHeight, w = cornerRadius
|
|
377
|
-
color : vec4<f32>,
|
|
378
|
-
rect : vec4<f32>, // x, y, width, height
|
|
379
|
-
};
|
|
380
|
-
|
|
381
|
-
@group(0) @binding(0) var<uniform> u : Uniforms;
|
|
382
|
-
|
|
383
|
-
struct VSOut {
|
|
384
|
-
@builtin(position) pos : vec4<f32>,
|
|
385
|
-
@location(0) localPos : vec2<f32>,
|
|
386
|
-
};
|
|
387
|
-
|
|
388
|
-
@vertex fn vs(@location(0) xy : vec2<f32>) -> VSOut {
|
|
389
|
-
let transform = mat3x3<f32>(u.transformCol0.xyz, u.transformCol1.xyz, u.transformCol2.xyz);
|
|
390
|
-
let p = transform * vec3<f32>(xy, 1.0);
|
|
391
|
-
|
|
392
|
-
let surfaceSize = u.params.yz;
|
|
393
|
-
let clipX = (p.x / surfaceSize.x) * 2.0 - 1.0;
|
|
394
|
-
let clipY = 1.0 - (p.y / surfaceSize.y) * 2.0;
|
|
395
|
-
|
|
396
|
-
return VSOut(vec4<f32>(clipX, clipY, 0.0, 1.0), xy);
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
fn sdRoundedRect(p: vec2<f32>, b: vec2<f32>, r: f32) -> f32 {
|
|
400
|
-
let q = abs(p) - b + r;
|
|
401
|
-
return min(max(q.x, q.y), 0.0) + length(max(q, vec2<f32>(0.0))) - r;
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
405
|
-
let center = u.rect.xy + u.rect.zw * 0.5;
|
|
406
|
-
let halfSize = u.rect.zw * 0.5;
|
|
407
|
-
let radius = u.params.w;
|
|
408
|
-
|
|
409
|
-
let d = sdRoundedRect(in.localPos - center, halfSize, radius);
|
|
410
|
-
let edgeAlpha = 1.0 - smoothstep(0.0, 1.0, d);
|
|
411
|
-
let alpha = u.color.a * u.params.x * edgeAlpha;
|
|
412
|
-
if (alpha <= 0.0) {
|
|
413
|
-
discard;
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
return vec4<f32>(u.color.rgb * alpha, alpha);
|
|
417
|
-
}
|
|
418
|
-
`;var N=class{device;pipeline;uniformLayout;uniformPool;vertexPool;uniformBindGroupCache=new M;uniformData=new Float32Array(24);vertexData=new Float32Array(8);constructor(t,e){this.device=t,this.uniformPool=new G(1024,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.vertexPool=new G(256,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST);let r=t.createShaderModule({label:"solid.wgsl",code:Ut});this.uniformLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.pipeline=t.createRenderPipeline({label:"SolidPipeline",layout:t.createPipelineLayout({bindGroupLayouts:[this.uniformLayout]}),vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:e,blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}}}]},primitive:{topology:"triangle-strip"}})}resetPools(){this.uniformPool.reset(),this.vertexPool.reset()}draw(t,e,r,i,n,s,a=0,o){let l=B(i),c=o?.opacity??1;e.packIntoBuffer(this.uniformData,c,n,s,o?.transform),this.uniformData[15]=a,this.uniformData[16]=l.r,this.uniformData[17]=l.g,this.uniformData[18]=l.b,this.uniformData[19]=l.a,this.uniformData[20]=r.x,this.uniformData[21]=r.y,this.uniformData[22]=r.width,this.uniformData[23]=r.height;let h=this.uniformPool.getBuffer(this.device,this.uniformData);this.vertexData[0]=r.x,this.vertexData[1]=r.y,this.vertexData[2]=r.x+r.width,this.vertexData[3]=r.y,this.vertexData[4]=r.x,this.vertexData[5]=r.y+r.height,this.vertexData[6]=r.x+r.width,this.vertexData[7]=r.y+r.height;let p=this.vertexPool.getBuffer(this.device,this.vertexData);t.setPipeline(this.pipeline);let m=this.uniformBindGroupCache.getBindGroup(this.device,this.uniformLayout,h);t.setBindGroup(0,m),t.setVertexBuffer(0,p),t.draw(4)}destroy(){this.uniformPool.destroy(),this.vertexPool.destroy(),this.uniformBindGroupCache.destroy()}};g();var q=class{stack=[new DOMMatrix];push(t){let r=this.stack[this.stack.length-1].multiply(t);this.stack.push(r)}pop(){this.stack.length>1&&this.stack.pop()}getCurrent(){return this.stack[this.stack.length-1]}packIntoBuffer(t,e,r,i,n,s){let a=this.getCurrent();n&&(a=a.multiply(n)),t[0]=a.a,t[1]=a.b,t[2]=0,t[3]=0,t[4]=a.c,t[5]=a.d,t[6]=0,t[7]=0,t[8]=a.e,t[9]=a.f,t[10]=1,t[11]=0,t[12]=e,t[13]=r,t[14]=i,t[15]=s??0}destroy(){this.stack=[new DOMMatrix]}};function Ot(u){if(Array.isArray(u)){let r=u[3]??1;return[u[0]*r,u[1]*r,u[2]*r,r]}if("r"in u){let r=u.a??1;return{r:u.r*r,g:u.g*r,b:u.b*r,a:r}}let t=Array.from(u),e=t[3]??1;return[t[0]*e,t[1]*e,t[2]*e,e]}var Mt=new WeakMap;function qe(u,t){let e=Mt.get(u);return(!e||e.format!==t||e.isDestroyed)&&(e=new st(u,t),Mt.set(u,e)),e.resetPools(),e}var st=class{device;transformStack=new q;clipStack=new A;quadPipeline;solidPipeline;shapeFillPipeline;pathPipeline;effectPipeline;slugPipeline;bindGroupCache=new E;samplerCache=new mt;format;isDestroyed=!1;rasterDrawCount=0;surfaceWidth=0;surfaceHeight=0;lastEncoder=null;constructor(t,e){this.device=t,this.format=e,this.quadPipeline=new j(t,e),this.solidPipeline=new N(t,e),this.shapeFillPipeline=new H(t,e),this.pathPipeline=new W(t,e),this.effectPipeline=new O(t,e),this.slugPipeline=new ft(t,e)}beginFrame(t,e,r={r:0,g:0,b:0,a:0},i,n,s="clear"){this.surfaceWidth=i,this.surfaceHeight=n,t!==this.lastEncoder&&(this.lastEncoder=t,this.resetPools());let a=t.beginRenderPass({colorAttachments:[{view:e,clearValue:Ot(r),loadOp:s,storeOp:"store"}]});return this.clipStack.applyScissorToPass(a,i,n),a}endFrame(t){}resetPools(){this.quadPipeline.resetPools(),this.solidPipeline.resetPools(),this.shapeFillPipeline.resetPools(),this.pathPipeline.resetPools(),this.effectPipeline&&this.effectPipeline.resetPools(),this.slugPipeline.resetPools(),Z.flushRetired(this.device),Z.prune(this.device)}drawTexture(t,e,r,i){let n=this.samplerCache.getSampler(this.device),s={x:0,y:0,width:e.width,height:e.height};this.rasterDrawCount++,this.quadPipeline.draw(t,this.bindGroupCache,this.transformStack,e,n,s,r,this.surfaceWidth,this.surfaceHeight,i)}drawTextureRegion(t,e,r,i,n){let s=this.samplerCache.getSampler(this.device);this.rasterDrawCount++,this.quadPipeline.draw(t,this.bindGroupCache,this.transformStack,e,s,r,i,this.surfaceWidth,this.surfaceHeight,n)}drawRect(t,e,r,i=0,n){let s=0,a=n;typeof i=="object"&&i!==null?(a=i,s=0):typeof i=="number"&&(s=i),this.rasterDrawCount++,this.solidPipeline.draw(t,this.transformStack,e,r,this.surfaceWidth,this.surfaceHeight,s,a)}drawPath(t,e,r,i,n){this.rasterDrawCount++,this.pathPipeline.drawPath(t,this.transformStack,e,r,i,this.surfaceWidth,this.surfaceHeight,n)}drawShapeFill(t,e,r,i,n){this.rasterDrawCount++,this.shapeFillPipeline.draw(t,this.transformStack,e,r,i,this.surfaceWidth,this.surfaceHeight,n)}drawShape(t,e,r,i,n){let s={x:0,y:0,width:e.width,height:e.height};if(r&&r.type!=="none"){let a=bt(e);if(a.length>0&&(this.drawShapeFill(t,a,r,s,n),(!i||!i.width||i.width<=0)&&(r.type??"solid")==="solid"&&r.color)){let o=ot(e);o&&this.drawPath(t,o,r.color,1,{...n,strokeLineCap:"round"})}}if(i&&i.width&&i.width>0&&i.color){let a=ot(e);a&&this.drawPath(t,a,i.color,i.width,{...n,strokeLineCap:i.cap,trimStart:i.trimStart,trimEnd:i.trimEnd,trimOffset:i.trimOffset,strokeDashArray:i.dashArray,strokeDashOffset:i.dashOffset})}}drawRRect(t,e,r,i){this.drawRect(t,e.rect,r,e.rx,i)}getTemporaryTexture(t,e,r){return this.effectPipeline.getTexture(this.device,t,e,this.format,r)}getTemporaryBuffer(t){return this.effectPipeline.getBuffer(this.device,t)}composite(t,e,r,i,n){return this.effectPipeline.composite(t,this.bindGroupCache,this.samplerCache,e,r,i,this.format,n)}applyMotionBlur(t,e,r,i,n=180,s=16,a){return this.effectPipeline.applyMotionBlur(t,this.bindGroupCache,this.samplerCache,e,r,i,n,s,this.format,a)}getCurrentTransform(){return this.transformStack.getCurrent()}getTransformStack(){return this.transformStack}getSurfaceWidth(){return this.surfaceWidth}getSurfaceHeight(){return this.surfaceHeight}pushIdentity(){let t=this.transformStack.getCurrent();this.pushTransform(t.inverse())}pushTransform(t){this.transformStack.push(t)}popTransform(){this.transformStack.pop()}pushScissor(t){this.clipStack.pushScissor(t,this.surfaceWidth,this.surfaceHeight)}pushScissorLocal(t){let e=this.transformStack.getCurrent(),r=[e.transformPoint(new DOMPoint(t.x,t.y)),e.transformPoint(new DOMPoint(t.x+t.width,t.y)),e.transformPoint(new DOMPoint(t.x,t.y+t.height)),e.transformPoint(new DOMPoint(t.x+t.width,t.y+t.height))],i=r.map(h=>h.x),n=r.map(h=>h.y),s=Math.min(...i),a=Math.min(...n),o=Math.max(...i)-s,l=Math.max(...n)-a,c=this.clipStack.getCurrentScissor(this.surfaceWidth,this.surfaceHeight);if(c){let h=Math.max(s,c.x),p=Math.max(a,c.y),m=Math.min(s+o,c.x+c.width),d=Math.min(a+l,c.y+c.height);s=h,a=p,o=Math.max(0,m-h),l=Math.max(0,d-p)}this.clipStack.pushScissor({x:s,y:a,width:o,height:l},this.surfaceWidth,this.surfaceHeight)}popScissor(){this.clipStack.popScissor()}suspendScissors(){let t=this.clipStack.saveScissors();return this.clipStack.clearScissors(),t}resumeScissors(t){this.clipStack.restoreScissors(t)}pushStencilClip(t){this.clipStack.pushStencilClip(t)}popStencilClip(){this.clipStack.popStencilClip()}destroy(){this.isDestroyed=!0,this.transformStack.destroy(),this.clipStack.destroy(),this.bindGroupCache.destroy(),this.samplerCache.destroy(),this.quadPipeline.destroy(),this.solidPipeline.destroy(),this.shapeFillPipeline.destroy(),this.pathPipeline.destroy(),this.effectPipeline.destroy(),this.slugPipeline.destroy(),this.lastEncoder=null}};g();async function Dt(u,t){if(typeof window<"u"&&typeof FontFace<"u")try{let r=await new FontFace(u,`url(${t})`).load();document.fonts.add(r),await document.fonts.ready}catch(e){console.warn(`[preloadFont] Failed to load font "${u}" from ${t}:`,e)}else await ct(u,t)}g();var Et=/\p{Extended_Pictographic}/gu,Bt=!1;async function or(u,t,e=(r,i)=>console.warn(`[framefields] ${i}`,r)){let r=new Set,i=new Map;(function s(a){let o=a.operation;if(o){let l=o.op==="text"||o.kind==="text"||o.op==="caption"||o.kind==="caption"||typeof o.text=="string",c=o.fontFamily||(l?"Inter":"");if(c&&r.add(c),o.op==="text"&&typeof o.text=="string"){let h=o.fontSize??48;for(let p of o.text.match(Et)??[])i.set(`${p}-${h}`,h)}}for(let l of a.children??[])s(l)})(u);let n=[];for(let s of r){let a=ht(s)??lt(s);n.push(Dt(s,a).catch(o=>e(o,`font "${s}" from ${a}`))),t&&n.push(R.preloadSlugFont(t,s,a).catch(o=>e(o,`Slug font "${s}" from ${a}`)))}if(t&&i.size>0){!R.hasEmojiFont()&&!Bt&&(Bt=!0,console.warn("[framefields] Text uses emoji but no emoji font is registered, so exports draw nothing for them. Register a color emoji font (e.g. Noto Color Emoji) with FontManager.registerEmojiFont(path)."));for(let[s,a]of i){let o=s.slice(0,s.lastIndexOf("-"));n.push(R.preloadEmoji(t,o,a).catch(l=>{R.hasEmojiFont()&&e(l,`emoji "${o}"`)}))}}await Promise.all(n)}export{Vt as a,O as b,qe as c,st as d,Dt as e,or as f};
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import{d as V}from"./chunk-6YJP57MZ.mjs";import{e as w}from"./chunk-BVF64D6H.mjs";w();w();var O=new WeakMap,ce=`
|
|
2
|
-
struct ColorBalanceUniforms {
|
|
3
|
-
shadows : vec4<f32>,
|
|
4
|
-
midtones : vec4<f32>,
|
|
5
|
-
highlights : vec4<f32>,
|
|
6
|
-
preserveLuminosity : f32,
|
|
7
|
-
hasShadowsCyanRedSig : f32,
|
|
8
|
-
hasShadowsMagentaGreenSig : f32,
|
|
9
|
-
hasShadowsYellowBlueSig : f32,
|
|
10
|
-
|
|
11
|
-
hasMidtonesCyanRedSig : f32,
|
|
12
|
-
hasMidtonesMagentaGreenSig : f32,
|
|
13
|
-
hasMidtonesYellowBlueSig : f32,
|
|
14
|
-
hasHighlightsCyanRedSig : f32,
|
|
15
|
-
|
|
16
|
-
hasHighlightsMagentaGreenSig : f32,
|
|
17
|
-
hasHighlightsYellowBlueSig : f32,
|
|
18
|
-
_pad0 : f32,
|
|
19
|
-
_pad1 : f32,
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
@group(0) @binding(0) var<uniform> u : ColorBalanceUniforms;
|
|
23
|
-
@group(1) @binding(0) var tex : texture_2d<f32>;
|
|
24
|
-
@group(1) @binding(1) var samp : sampler;
|
|
25
|
-
|
|
26
|
-
@group(2) @binding(0) var shadowsCyanRedSigTex : texture_2d<f32>;
|
|
27
|
-
@group(2) @binding(1) var shadowsMagentaGreenSigTex : texture_2d<f32>;
|
|
28
|
-
@group(2) @binding(2) var shadowsYellowBlueSigTex : texture_2d<f32>;
|
|
29
|
-
@group(2) @binding(3) var midtonesCyanRedSigTex : texture_2d<f32>;
|
|
30
|
-
@group(2) @binding(4) var midtonesMagentaGreenSigTex: texture_2d<f32>;
|
|
31
|
-
@group(2) @binding(5) var midtonesYellowBlueSigTex : texture_2d<f32>;
|
|
32
|
-
@group(2) @binding(6) var highlightsCyanRedSigTex : texture_2d<f32>;
|
|
33
|
-
@group(2) @binding(7) var highlightsMagentaGreenSigTex: texture_2d<f32>;
|
|
34
|
-
@group(2) @binding(8) var highlightsYellowBlueSigTex: texture_2d<f32>;
|
|
35
|
-
@group(2) @binding(9) var signalSamp : sampler;
|
|
36
|
-
|
|
37
|
-
struct VSOut {
|
|
38
|
-
@builtin(position) pos : vec4<f32>,
|
|
39
|
-
@location(0) uv : vec2<f32>,
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
@vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
|
|
43
|
-
var pos = array<vec2<f32>, 4>(
|
|
44
|
-
vec2<f32>(-1.0, 1.0),
|
|
45
|
-
vec2<f32>(1.0, 1.0),
|
|
46
|
-
vec2<f32>(-1.0, -1.0),
|
|
47
|
-
vec2<f32>(1.0, -1.0)
|
|
48
|
-
);
|
|
49
|
-
var uv = array<vec2<f32>, 4>(
|
|
50
|
-
vec2<f32>(0.0, 0.0),
|
|
51
|
-
vec2<f32>(1.0, 0.0),
|
|
52
|
-
vec2<f32>(0.0, 1.0),
|
|
53
|
-
vec2<f32>(1.0, 1.0)
|
|
54
|
-
);
|
|
55
|
-
return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
fn get_luminance(c: vec3<f32>) -> f32 {
|
|
59
|
-
return dot(c, vec3<f32>(0.2126, 0.7152, 0.0722));
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
fn set_luminance(c: vec3<f32>, l: f32) -> vec3<f32> {
|
|
63
|
-
let d = l - get_luminance(c);
|
|
64
|
-
var res = c + vec3<f32>(d);
|
|
65
|
-
let min_c = min(res.r, min(res.g, res.b));
|
|
66
|
-
let max_c = max(res.r, max(res.g, res.b));
|
|
67
|
-
if (min_c < 0.0) {
|
|
68
|
-
res = l + ((res - vec3<f32>(l)) * l) / max(l - min_c, 1e-5);
|
|
69
|
-
}
|
|
70
|
-
if (max_c > 1.0) {
|
|
71
|
-
res = l + ((res - vec3<f32>(l)) * (1.0 - l)) / max(max_c - l, 1e-5);
|
|
72
|
-
}
|
|
73
|
-
return clamp(res, vec3<f32>(0.0), vec3<f32>(1.0));
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
77
|
-
let color = textureSampleLevel(tex, samp, in.uv, 0.0);
|
|
78
|
-
if (color.a <= 0.00001) {
|
|
79
|
-
return color;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
let alpha = color.a;
|
|
83
|
-
let rgb = color.rgb / max(alpha, 0.0001);
|
|
84
|
-
|
|
85
|
-
var sShift = u.shadows.rgb;
|
|
86
|
-
if (u.hasShadowsCyanRedSig > 0.5) {
|
|
87
|
-
sShift.r = clamp(textureSampleLevel(shadowsCyanRedSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r, -100.0, 100.0) / 100.0;
|
|
88
|
-
}
|
|
89
|
-
if (u.hasShadowsMagentaGreenSig > 0.5) {
|
|
90
|
-
sShift.g = clamp(textureSampleLevel(shadowsMagentaGreenSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r, -100.0, 100.0) / 100.0;
|
|
91
|
-
}
|
|
92
|
-
if (u.hasShadowsYellowBlueSig > 0.5) {
|
|
93
|
-
sShift.b = clamp(textureSampleLevel(shadowsYellowBlueSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r, -100.0, 100.0) / 100.0;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
var mShift = u.midtones.rgb;
|
|
97
|
-
if (u.hasMidtonesCyanRedSig > 0.5) {
|
|
98
|
-
mShift.r = clamp(textureSampleLevel(midtonesCyanRedSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r, -100.0, 100.0) / 100.0;
|
|
99
|
-
}
|
|
100
|
-
if (u.hasMidtonesMagentaGreenSig > 0.5) {
|
|
101
|
-
mShift.g = clamp(textureSampleLevel(midtonesMagentaGreenSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r, -100.0, 100.0) / 100.0;
|
|
102
|
-
}
|
|
103
|
-
if (u.hasMidtonesYellowBlueSig > 0.5) {
|
|
104
|
-
mShift.b = clamp(textureSampleLevel(midtonesYellowBlueSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r, -100.0, 100.0) / 100.0;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
var hShift = u.highlights.rgb;
|
|
108
|
-
if (u.hasHighlightsCyanRedSig > 0.5) {
|
|
109
|
-
hShift.r = clamp(textureSampleLevel(highlightsCyanRedSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r, -100.0, 100.0) / 100.0;
|
|
110
|
-
}
|
|
111
|
-
if (u.hasHighlightsMagentaGreenSig > 0.5) {
|
|
112
|
-
hShift.g = clamp(textureSampleLevel(highlightsMagentaGreenSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r, -100.0, 100.0) / 100.0;
|
|
113
|
-
}
|
|
114
|
-
if (u.hasHighlightsYellowBlueSig > 0.5) {
|
|
115
|
-
hShift.b = clamp(textureSampleLevel(highlightsYellowBlueSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r, -100.0, 100.0) / 100.0;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
let origLum = get_luminance(rgb);
|
|
119
|
-
|
|
120
|
-
// Tonal range weighting curves
|
|
121
|
-
let wShadows = clamp((1.0 - origLum) * (1.0 - origLum * 1.5), 0.0, 1.0);
|
|
122
|
-
let wMidtones = clamp(1.0 - 4.0 * (origLum - 0.5) * (origLum - 0.5), 0.0, 1.0);
|
|
123
|
-
let wHighlights = clamp(origLum * (origLum * 1.5 - 0.5), 0.0, 1.0);
|
|
124
|
-
|
|
125
|
-
let delta = wShadows * sShift + wMidtones * mShift + wHighlights * hShift;
|
|
126
|
-
var adjustedRgb = clamp(rgb + delta, vec3<f32>(0.0), vec3<f32>(1.0));
|
|
127
|
-
|
|
128
|
-
if (u.preserveLuminosity > 0.5) {
|
|
129
|
-
adjustedRgb = set_luminance(adjustedRgb, origLum);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
return vec4<f32>(adjustedRgb * alpha, alpha);
|
|
133
|
-
}
|
|
134
|
-
`;function he(r,t){let s=O.get(r);if(s)return s;let S=r.createBindGroupLayout({label:"ColorBalanceUniformLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),v=r.createBindGroupLayout({label:"ColorBalanceTextureLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),f=r.createBindGroupLayout({label:"ColorBalanceSignalTextureLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:5,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:6,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:7,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:8,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:9,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),c=r.createShaderModule({label:"ColorBalanceShaderModule",code:ce});return s={pipeline:r.createRenderPipeline({label:"ColorBalancePipeline",layout:r.createPipelineLayout({bindGroupLayouts:[S,v,f]}),vertex:{module:c,entryPoint:"vs"},fragment:{module:c,entryPoint:"fs",targets:[{format:t}]},primitive:{topology:"triangle-strip"}}),uniformLayout:S,textureLayout:v,signalTextureLayout:f},O.set(r,s),s}var e=new Float32Array(24),k=async r=>{let{ctx:t,encoder:s,pass:S,targetView:v,targetTexture:f,targetWidth:c,targetHeight:y,props:n,drawChild:W}=r,i=n.virtualMedia?.operation;if(i?.op!=="ColorBalance"||!n.virtualMedia?.children?.[0])return;S.end();let G=n.frame??0,H=n.compositionFrame??G,b=n.fps||30,F=n.virtualMedia.children[0],h=c,m=y,j=n.virtualMedia?.metadata?.id||(i.inputs?Object.keys(i.inputs)[0]:null)||n.renderId||"colorbalance_node",o=(a,g,I=-100,D=100)=>{if(a&&i.inputs?.[a]?.connectionValid){let u=i.inputs[a].outputItem;if(u?.type==="Number"){let ge=typeof u.data=="number"?u.data:u.data?.value??g;return{val:Math.max(I,Math.min(D,ge)),hasStaticSig:!1,sd:null}}if(u?.type==="Signal"&&u.data)return{val:g,hasStaticSig:!0,sd:u.data}}return{val:Math.max(I,Math.min(D,g)),hasStaticSig:!1,sd:null}},l=a=>{a!=null&&(typeof a=="object"&&a!==null?"get"in a&&typeof a.get=="function"?a=a.get({frame:H,fps:b}):"value"in a&&(a=a.value):typeof a=="function"&&(a=a(H,b)));let g=Number(a??0);return isNaN(g)?0:g},B=o(i.shadows_cyanRedHandleId,l(i.shadows?.cyanRed)),R=o(i.shadows_magentaGreenHandleId,l(i.shadows?.magentaGreen)),T=o(i.shadows_yellowBlueHandleId,l(i.shadows?.yellowBlue)),M=o(i.midtones_cyanRedHandleId,l(i.midtones?.cyanRed)),_=o(i.midtones_magentaGreenHandleId,l(i.midtones?.magentaGreen)),C=o(i.midtones_yellowBlueHandleId,l(i.midtones?.yellowBlue)),L=o(i.highlights_cyanRedHandleId,l(i.highlights?.cyanRed)),P=o(i.highlights_magentaGreenHandleId,l(i.highlights?.magentaGreen)),U=o(i.highlights_yellowBlueHandleId,l(i.highlights?.yellowBlue)),x=t.renderer.getTemporaryTexture(h,m,[...n.excludeTextures||[],f]),N=x.createView();t.renderer.beginFrame(s,N,{r:0,g:0,b:0,a:0},h,m,"clear").end(),t.renderer.pushScissor({x:0,y:0,width:h,height:m}),t.renderer.pushIdentity(),await W(F,{...n,virtualMedia:F},N,x,h,m),t.renderer.popTransform(),t.renderer.popScissor();let{pipeline:$,uniformLayout:q,textureLayout:z,signalTextureLayout:J}=he(t.device,t.renderer.format),A=t.renderer.samplerCache.getSampler(t.device),K=n.elapsedMs!==void 0?n.elapsedMs/1e3:G/b,Q=n.virtualMedia?.metadata?.durationMs?n.virtualMedia.metadata.durationMs/1e3:n.durationMs!==void 0?n.durationMs/1e3:0,d=(a,g)=>a.hasStaticSig&&a.sd?V.getOrCreate2DTextureView(t.device,s,a.sd.nodeId??`${j}_${g}`,K,Q,a.sd,h,m,n.renderId,G,b):V.getDummy1x1TextureView(t.device),X=d(B,"shadows_cyanRed_sig"),Z=d(R,"shadows_magentaGreen_sig"),ee=d(T,"shadows_yellowBlue_sig"),ie=d(M,"midtones_cyanRed_sig"),ae=d(_,"midtones_magentaGreen_sig"),te=d(C,"midtones_yellowBlue_sig"),ne=d(L,"highlights_cyanRed_sig"),re=d(P,"highlights_magentaGreen_sig"),se=d(U,"highlights_yellowBlue_sig"),oe=i.preserveLuminosity===!1?0:1;e[0]=B.val/100,e[1]=R.val/100,e[2]=T.val/100,e[3]=0,e[4]=M.val/100,e[5]=_.val/100,e[6]=C.val/100,e[7]=0,e[8]=L.val/100,e[9]=P.val/100,e[10]=U.val/100,e[11]=0,e[12]=oe,e[13]=B.hasStaticSig?1:0,e[14]=R.hasStaticSig?1:0,e[15]=T.hasStaticSig?1:0,e[16]=M.hasStaticSig?1:0,e[17]=_.hasStaticSig?1:0,e[18]=C.hasStaticSig?1:0,e[19]=L.hasStaticSig?1:0,e[20]=P.hasStaticSig?1:0,e[21]=U.hasStaticSig?1:0,e[22]=0,e[23]=0;let le=t.renderer.getTemporaryBuffer(e),Y=t.renderer.getTemporaryTexture(h,m,[x,f,...n.excludeTextures||[]]),de=t.device.createBindGroup({layout:J,entries:[{binding:0,resource:X},{binding:1,resource:Z},{binding:2,resource:ee},{binding:3,resource:ie},{binding:4,resource:ae},{binding:5,resource:te},{binding:6,resource:ne},{binding:7,resource:re},{binding:8,resource:se},{binding:9,resource:A}]}),p=s.beginRenderPass({colorAttachments:[{view:Y.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});p.setPipeline($),p.setBindGroup(0,t.device.createBindGroup({layout:q,entries:[{binding:0,resource:{buffer:le}}]})),p.setBindGroup(1,t.renderer.bindGroupCache.getBindGroup(t.device,z,x,A)),p.setBindGroup(2,de),p.draw(4),p.end();let E=t.renderer.beginFrame(s,v,{r:0,g:0,b:0,a:0},c,y,"load");t.renderer.drawTexture(E,Y,{x:0,y:0,width:c,height:y},{opacity:n.opacity??1}),r.pass=E};var ye={WebGPURenderer:k};export{k as a,ye as b};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as s}from"./chunk-BVF64D6H.mjs";s();var w="onnxruntime-web",g=()=>import(w),u=class{kind="webgpu";_loader;_providers;_wasmFallback;_ortPromise;constructor(e={}){this._loader=e.loader??g,this._providers=e.executionProviders??["webgpu","wasm"],this._wasmFallback=e.wasmFallback!==!1}ort(){return this._ortPromise||(this._ortPromise=this._loader().catch(e=>{throw this._ortPromise=void 0,new Error(`onnxruntime-web failed to load (${String(e)}). Install it in the browser bundle or pass a custom loader.`)})),this._ortPromise}async createSession(e){let o=await this.ort(),r;try{r=await o.InferenceSession.create(e,{executionProviders:[...this._providers],graphOptimizationLevel:"all",logSeverityLevel:3})}catch(n){if(!this._wasmFallback||!this._providers.includes("webgpu"))throw n;r=await o.InferenceSession.create(e,{executionProviders:["wasm"],graphOptimizationLevel:"all",logSeverityLevel:3})}return{run:async n=>{let v=r.inputNames.includes(n.name)?n.name:r.inputNames[0]??n.name,p=await r.run({[v]:new o.Tensor("float32",n.data,[...n.dims])}),a={};for(let[d,l]of Object.entries(p))a[d]={data:l.data,dims:[...l.dims]};return a},release:()=>{r.release()}}}};s();s();var h="onnxruntime-web/webgpu",S="webgpu",t;function O(){return t||(t=(async()=>{let i=globalThis;if(i.navigator?.gpu)return;let{create:e,globals:o}=await import(S);Object.assign(globalThis,o);let r=i.navigator??={};Object.defineProperty(r,"gpu",{value:e([]),configurable:!0,writable:!0})})(),t.catch(()=>{t=void 0})),t}var c=class{kind="webgpu";_inner;constructor(e={}){let o=e.loader??(async()=>{await O();let r=await import(h);return r.env?.wasm&&(r.env.wasm.numThreads=1),r});this._inner=new u({wasmFallback:!1,...e,loader:o})}createSession(e){return this._inner.createSession(e)}};var f;function I(i){f=i}var m=class{_resolved;get kind(){return this._resolved?.kind??"webgpu"}async createSession(e){if(!this._resolved){let o=new c({wasmFallback:!1});try{let r=await o.createSession(e);return this._resolved=o,r}catch{this._resolved=new P}}return this._resolved.createSession(e)}};function k(){return f?.()??new m}var P=class{kind="node";ortPromise;async ort(){return this.ortPromise||(this.ortPromise=import("./onnxruntime-node-56GSZEH3.mjs").catch(e=>{throw this.ortPromise=void 0,new Error(`onnxruntime-node failed to load (${String(e)}). Install it in the environment or provide a custom SessionProvider.`)})),this.ortPromise}async createSession(e){let o=await this.ort(),r=await o.InferenceSession.create(e,{executionProviders:["cpu"],graphOptimizationLevel:"all"});return{run:async n=>{let p={[r.inputNames.includes(n.name)?n.name:r.inputNames[0]??n.name]:new o.Tensor("float32",n.data,[...n.dims])},a=await r.run(p),d={};for(let[l,b]of Object.entries(a))d[l]={data:b.data,dims:[...b.dims]};return d},release:()=>{r.release()}}}};export{u as a,I as b,k as c};
|