framefields 2.0.11 → 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 +22 -5
- package/dist/audio/index.d.mts +4 -4
- package/dist/audio/index.mjs +13 -12
- package/dist/{audio-BHanw8Jb.d.mts → audio-C2fLC3Tx.d.mts} +3 -3
- package/dist/{audio-BHanw8Jb.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-COOMNwL5.mjs → audio-D_4SeMRK.mjs} +4 -4
- package/dist/{audio-COOMNwL5.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-BYqNNwsl.mjs → dist-BY0bIWgr.mjs} +10 -2
- package/dist/dist-BY0bIWgr.mjs.map +1 -0
- package/dist/{dist-Cxi68OuY.mjs → dist-Bun_TUvZ.mjs} +26862 -25638
- package/dist/dist-Bun_TUvZ.mjs.map +1 -0
- package/dist/{dist-BAVZdFEJ.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-CbG3QxDw.mjs → dist-fjKpBYkc.mjs} +12 -27
- package/dist/dist-fjKpBYkc.mjs.map +1 -0
- package/dist/effects/index.d.mts +4 -4
- package/dist/effects/index.mjs +36 -34
- package/dist/{effects-DzbjFhyA.mjs → effects-FTlu0dri.mjs} +3 -3
- package/dist/{effects-DzbjFhyA.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 +1 -1
- package/dist/fonts/index.mjs +3 -1
- package/dist/{fonts-C0W6TgJk.mjs → fonts-UM5xaBOx.mjs} +24 -11
- 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-CYGpSVsf.d.mts → index-CHQ39_Oe.d.mts} +2 -2
- package/dist/{index-CYGpSVsf.d.mts.map → index-CHQ39_Oe.d.mts.map} +1 -1
- package/dist/{index-CDoTrMs1.d.mts → index-CzQseCtg.d.mts} +8 -8
- package/dist/{index-CDoTrMs1.d.mts.map → index-CzQseCtg.d.mts.map} +1 -1
- package/dist/{index-DDEPvMww.d.mts → index-D67p-rHX.d.mts} +3452 -1675
- package/dist/index-D67p-rHX.d.mts.map +1 -0
- package/dist/{index-9B8CJowc.d.mts → index-DPicEt8H.d.mts} +10 -2
- package/dist/index-DPicEt8H.d.mts.map +1 -0
- package/dist/{index-DGJp1d30.d.mts → index-Db8Z3AtX.d.mts} +3 -3
- package/dist/{index-DGJp1d30.d.mts.map → index-Db8Z3AtX.d.mts.map} +1 -1
- package/dist/{index-DRZu3ezy.d.mts → index-DsOqONsj.d.mts} +3 -3
- package/dist/{index-DRZu3ezy.d.mts.map → index-DsOqONsj.d.mts.map} +1 -1
- package/dist/{index-DnWsbbuZ.d.mts → index-l03NV8JS.d.mts} +7 -2
- package/dist/index-l03NV8JS.d.mts.map +1 -0
- package/dist/index.d.mts +28 -1841
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +79 -65
- 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-BV2C4Fk6.mjs → preview-DwClLMlU.mjs} +3 -3
- package/dist/{preview-BV2C4Fk6.mjs.map → preview-DwClLMlU.mjs.map} +1 -1
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/{chunk-Y6HWYPKX.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-RJUAM52F.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-QYRDQMNB.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-ECPP3UG6.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-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-AWTH2WZO.mjs → chunk-WUKH7BD7.mjs} +1 -1
- package/dist/preview-engine/chunk-XC5WZNOY.mjs +1448 -0
- package/dist/preview-engine/chunk-YQZOGEPZ.mjs +186 -0
- package/dist/preview-engine/{chunk-6256GQFP.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-BmNKgzja.mjs → program-BqFVw5Mu.mjs} +93 -2335
- 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-CnXW28b9.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-WSGuj_V6.mjs → renderer-B12_76qk.mjs} +4 -3
- package/dist/{renderer-WSGuj_V6.mjs.map → renderer-B12_76qk.mjs.map} +1 -1
- package/dist/{renderer-bsWnRNpJ.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-Bv6q84TU.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-Bv21DbWy.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-Bhdf90Zq.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-DirxsOjq.mjs → renderer-BgnJUx24.mjs} +80 -258
- package/dist/renderer-BgnJUx24.mjs.map +1 -0
- package/dist/renderer-BiQ0PYOp.mjs +5 -0
- package/dist/{renderer-DIgsilTw.mjs → renderer-BjTq3a0L.mjs} +5 -4
- package/dist/{renderer-DIgsilTw.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-cgxO2xN6.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-dncoIVdd.mjs → renderer-BqsV75Ml.mjs} +3 -1
- package/dist/{renderer-ChdLYS-G.mjs → renderer-Bs4tz_pw.mjs} +20 -87
- package/dist/renderer-Bs4tz_pw.mjs.map +1 -0
- package/dist/{renderer-DpGc-N3G.mjs → renderer-Bsaokil3.mjs} +24 -104
- package/dist/renderer-Bsaokil3.mjs.map +1 -0
- package/dist/{renderer-CXn5HAnK.mjs → renderer-BvG1GF1c.mjs} +10 -16
- package/dist/renderer-BvG1GF1c.mjs.map +1 -0
- package/dist/{renderer-CI7sG_cv.mjs → renderer-BvpSIFkw.mjs} +83 -266
- package/dist/renderer-BvpSIFkw.mjs.map +1 -0
- package/dist/{renderer-B8UaFNqb.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-CtyD_Xju.mjs → renderer-C3RfT8Gv.mjs} +59 -194
- package/dist/renderer-C3RfT8Gv.mjs.map +1 -0
- package/dist/{renderer-B1YMwl2B.mjs → renderer-C3cYDT3m.mjs} +3 -1
- package/dist/{renderer-1VuQTY1Z.mjs → renderer-CEGbqT2m.mjs} +236 -96
- package/dist/renderer-CEGbqT2m.mjs.map +1 -0
- package/dist/{renderer-DxTs4Iyi.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-kwmlLQOO.mjs → renderer-CH9Qtpy7.mjs} +4 -4
- package/dist/{renderer-kwmlLQOO.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-D2nCGcjv.mjs → renderer-CRIM_XRK.mjs} +3 -3
- package/dist/{renderer-D2nCGcjv.mjs.map → renderer-CRIM_XRK.mjs.map} +1 -1
- package/dist/{renderer-BTdOMMEx.d.mts → renderer-CTGe8SqQ.d.mts} +2 -2
- package/dist/{renderer-BTdOMMEx.d.mts.map → renderer-CTGe8SqQ.d.mts.map} +1 -1
- package/dist/renderer-CWCEW6Wv.mjs +5 -0
- package/dist/{renderer-Dy0utCl7.mjs → renderer-CgyOylPO.mjs} +10 -17
- package/dist/renderer-CgyOylPO.mjs.map +1 -0
- package/dist/{renderer-C_TPMHiH.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-BSaYG8aw.mjs → renderer-CpKNqciR.mjs} +3 -1
- package/dist/{renderer-Bfgd4N0O.mjs → renderer-Cwhux4VX.mjs} +9 -16
- package/dist/renderer-Cwhux4VX.mjs.map +1 -0
- package/dist/{renderer-BJ1aTkZf.mjs → renderer-D0nWLogn.mjs} +99 -282
- package/dist/renderer-D0nWLogn.mjs.map +1 -0
- package/dist/{renderer-vqkKWqa5.mjs → renderer-D1lynYuy.mjs} +23 -107
- package/dist/renderer-D1lynYuy.mjs.map +1 -0
- package/dist/{renderer-B8-kzZdP.mjs → renderer-D4sYVV-I.mjs} +41 -140
- package/dist/renderer-D4sYVV-I.mjs.map +1 -0
- package/dist/{renderer-Bc04fivZ.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-RKsXlF_0.mjs → renderer-DIDSmoFA.mjs} +73 -73
- package/dist/{renderer-RKsXlF_0.mjs.map → renderer-DIDSmoFA.mjs.map} +1 -1
- package/dist/{renderer-BDbTWSpP.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-CfC_aiew.mjs → renderer-DOEsFT7Q.mjs} +57 -192
- package/dist/renderer-DOEsFT7Q.mjs.map +1 -0
- package/dist/{renderer-Ctk2zzfy.mjs → renderer-DPYB6ZcB.mjs} +57 -197
- package/dist/renderer-DPYB6ZcB.mjs.map +1 -0
- package/dist/{renderer-CWTpc4ff.mjs → renderer-DRsPCkxr.mjs} +76 -210
- package/dist/renderer-DRsPCkxr.mjs.map +1 -0
- package/dist/renderer-DXTw9Oqb.mjs +5 -0
- package/dist/{renderer-CaaOKMSd.mjs → renderer-DZLJnnU2.mjs} +63 -190
- package/dist/renderer-DZLJnnU2.mjs.map +1 -0
- package/dist/{renderer-B2ieylQ3.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-DML9qpmS.mjs → renderer-DhEyjn6Q.mjs} +52 -202
- package/dist/renderer-DhEyjn6Q.mjs.map +1 -0
- package/dist/{renderer-CdciwwMI.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-BIIWCg_J.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-BfAWZziM.mjs → renderer-DzhRNdBS.mjs} +58 -225
- 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-Djlb4TLO.mjs → renderer-Q63y7HP_.mjs} +8 -15
- package/dist/renderer-Q63y7HP_.mjs.map +1 -0
- package/dist/renderer-SecCv3U8.mjs +5 -0
- package/dist/{renderer-BhZZEyFX.mjs → renderer-mp1NN5zk.mjs} +4 -4
- package/dist/{renderer-BhZZEyFX.mjs.map → renderer-mp1NN5zk.mjs.map} +1 -1
- package/dist/renderer-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-DwQTx8S7.mjs → renderers-CP8CFWDs-DlFq8jmz.mjs} +4 -4
- package/dist/{renderers-CP8CFWDs-DwQTx8S7.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-Bv1OweKd.mjs → signals-BDkO0xcZ.mjs} +3 -3
- package/dist/{signals-Bv1OweKd.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-BAVZdFEJ.mjs.map +0 -1
- package/dist/dist-BYqNNwsl.mjs.map +0 -1
- package/dist/dist-CbG3QxDw.mjs.map +0 -1
- package/dist/dist-Cxi68OuY.mjs.map +0 -1
- package/dist/dist-cjs-3pon9kTt.mjs +0 -6
- package/dist/fonts-C0W6TgJk.mjs.map +0 -1
- package/dist/index-9B8CJowc.d.mts.map +0 -1
- package/dist/index-DDEPvMww.d.mts.map +0 -1
- package/dist/index-DnWsbbuZ.d.mts.map +0 -1
- package/dist/preview-engine/chunk-36YGYLKD.mjs +0 -58
- package/dist/preview-engine/chunk-7O24H4YT.mjs +0 -117
- package/dist/preview-engine/chunk-AUFSM5KI.mjs +0 -141
- package/dist/preview-engine/chunk-BQ65MU6H.mjs +0 -138
- package/dist/preview-engine/chunk-BWDARDO6.mjs +0 -117
- package/dist/preview-engine/chunk-DLXQDDIN.mjs +0 -46
- package/dist/preview-engine/chunk-EJGLUZMW.mjs +0 -1
- package/dist/preview-engine/chunk-FE6RSVKZ.mjs +0 -73
- package/dist/preview-engine/chunk-FGHOHCFG.mjs +0 -110
- package/dist/preview-engine/chunk-HPIULG7P.mjs +0 -111
- package/dist/preview-engine/chunk-HRIKNYPF.mjs +0 -60
- package/dist/preview-engine/chunk-IMV5SBQV.mjs +0 -1
- package/dist/preview-engine/chunk-JPXQPP6J.mjs +0 -1
- package/dist/preview-engine/chunk-K52S5DJX.mjs +0 -109
- package/dist/preview-engine/chunk-L3IEJZ5S.mjs +0 -474
- package/dist/preview-engine/chunk-M7NMFDJ3.mjs +0 -3
- package/dist/preview-engine/chunk-MJM3NFEC.mjs +0 -315
- package/dist/preview-engine/chunk-NFAGEP43.mjs +0 -1448
- package/dist/preview-engine/chunk-NRHSNPZV.mjs +0 -182
- package/dist/preview-engine/chunk-OWOSYNMF.mjs +0 -104
- package/dist/preview-engine/chunk-Q66QQI6N.mjs +0 -8
- package/dist/preview-engine/chunk-QGBSLNFI.mjs +0 -52
- package/dist/preview-engine/chunk-QM3XFEJN.mjs +0 -63
- package/dist/preview-engine/chunk-R3ZH7YF3.mjs +0 -89
- package/dist/preview-engine/chunk-R6YNSBKL.mjs +0 -108
- package/dist/preview-engine/chunk-S4CSX6K5.mjs +0 -610
- package/dist/preview-engine/chunk-SNYAHQ25.mjs +0 -186
- package/dist/preview-engine/chunk-SRT2OCQW.mjs +0 -1
- package/dist/preview-engine/chunk-SUUUYXXT.mjs +0 -1
- package/dist/preview-engine/chunk-T6COGNOW.mjs +0 -134
- package/dist/preview-engine/chunk-XFYXT76H.mjs +0 -52
- package/dist/preview-engine/chunk-XUM42I4R.mjs +0 -1
- package/dist/preview-engine/chunk-YITWSOG4.mjs +0 -103
- package/dist/preview-engine/chunk-ZDCA6NVT.mjs +0 -82
- package/dist/preview-engine/chunk-ZNGOAGAI.mjs +0 -1
- package/dist/preview-engine/renderers-27Q5X3U6.mjs +0 -1
- package/dist/preview-engine/renderers-4AHH6BHF.mjs +0 -1
- package/dist/preview-engine/renderers-5BV6JGTU.mjs +0 -248
- package/dist/preview-engine/renderers-6PRVCTYV.mjs +0 -1
- package/dist/preview-engine/renderers-76PQY2SO.mjs +0 -1
- package/dist/preview-engine/renderers-7X2W6QWX.mjs +0 -1
- package/dist/preview-engine/renderers-B52QT6MT.mjs +0 -55
- package/dist/preview-engine/renderers-BE6RVJSE.mjs +0 -1
- package/dist/preview-engine/renderers-BMM2BH56.mjs +0 -1
- package/dist/preview-engine/renderers-CHOGQHVQ.mjs +0 -1
- package/dist/preview-engine/renderers-CRKRWR2Y.mjs +0 -1
- package/dist/preview-engine/renderers-DEYDSGJX.mjs +0 -1
- package/dist/preview-engine/renderers-DZTNRCR7.mjs +0 -1
- package/dist/preview-engine/renderers-ELO3KWTK.mjs +0 -1
- package/dist/preview-engine/renderers-EOJMPPAQ.mjs +0 -1
- package/dist/preview-engine/renderers-F2KJNDWA.mjs +0 -124
- package/dist/preview-engine/renderers-FCV4COVB.mjs +0 -1
- package/dist/preview-engine/renderers-G5KQISVL.mjs +0 -1
- package/dist/preview-engine/renderers-GJSUN5HU.mjs +0 -1
- package/dist/preview-engine/renderers-GMX2ZQDG.mjs +0 -1
- package/dist/preview-engine/renderers-GXCRINGC.mjs +0 -1
- package/dist/preview-engine/renderers-IHKORHMT.mjs +0 -1
- package/dist/preview-engine/renderers-JA4SLMG3.mjs +0 -1
- package/dist/preview-engine/renderers-JLN77CFZ.mjs +0 -1
- package/dist/preview-engine/renderers-KBFW7B5F.mjs +0 -1
- package/dist/preview-engine/renderers-LJRJMFCR.mjs +0 -1
- package/dist/preview-engine/renderers-LPAPZ5QS.mjs +0 -1
- package/dist/preview-engine/renderers-NQUDQEHY.mjs +0 -1
- package/dist/preview-engine/renderers-NS3AIJVG.mjs +0 -1
- package/dist/preview-engine/renderers-NSY2SDIE.mjs +0 -1
- package/dist/preview-engine/renderers-PW4OJWHF.mjs +0 -120
- package/dist/preview-engine/renderers-PWLWOZY4.mjs +0 -1
- package/dist/preview-engine/renderers-Q3MD34JN.mjs +0 -1
- package/dist/preview-engine/renderers-RXGNA2Q7.mjs +0 -1
- package/dist/preview-engine/renderers-TVTQ2R74.mjs +0 -1
- package/dist/preview-engine/renderers-VTTGFO55.mjs +0 -1
- package/dist/preview-engine/renderers-W3VVM5HB.mjs +0 -1
- package/dist/preview-engine/renderers-WG7QBD4D.mjs +0 -1
- package/dist/preview-engine/renderers-WLLJFZTF.mjs +0 -1
- package/dist/preview-engine/renderers-WN4SYFCU.mjs +0 -1
- package/dist/preview-engine/renderers-WSMLLSWX.mjs +0 -1
- package/dist/preview-engine/renderers-XFBSGTHU.mjs +0 -1
- package/dist/preview-engine/renderers-XFC6ZPO5.mjs +0 -1
- package/dist/preview-engine/renderers-XUHRY3XH.mjs +0 -1
- package/dist/preview-engine/renderers-YAOB5XU6.mjs +0 -1
- package/dist/preview-engine/renderers-YTB4FOHT.mjs +0 -1
- package/dist/preview-engine/renderers-ZIMBODX6.mjs +0 -1
- package/dist/program-BmNKgzja.mjs.map +0 -1
- package/dist/renderer-1VuQTY1Z.mjs.map +0 -1
- package/dist/renderer-6oMSare3.mjs +0 -3
- package/dist/renderer-B1ComPb2.mjs +0 -3
- package/dist/renderer-B2XzjK0z.mjs +0 -3
- package/dist/renderer-B2ieylQ3.mjs.map +0 -1
- package/dist/renderer-B8-kzZdP.mjs.map +0 -1
- package/dist/renderer-B8UaFNqb.mjs.map +0 -1
- package/dist/renderer-BDbTWSpP.mjs.map +0 -1
- package/dist/renderer-BIIWCg_J.mjs.map +0 -1
- package/dist/renderer-BJ1aTkZf.mjs.map +0 -1
- package/dist/renderer-BM05sB8m.mjs.map +0 -1
- package/dist/renderer-BQ5Bz5D0.mjs +0 -3
- package/dist/renderer-BREIjsUU.mjs.map +0 -1
- package/dist/renderer-BTu2EVhF.mjs +0 -3
- package/dist/renderer-BZcn_iBl.mjs +0 -3
- package/dist/renderer-Bc04fivZ.mjs.map +0 -1
- package/dist/renderer-BfAWZziM.mjs.map +0 -1
- package/dist/renderer-BfJSUjPN.mjs +0 -3
- package/dist/renderer-Bfgd4N0O.mjs.map +0 -1
- package/dist/renderer-Bhdf90Zq.mjs.map +0 -1
- package/dist/renderer-Bp6sDMa6.mjs +0 -3
- package/dist/renderer-Bt7_sb_Y.mjs +0 -3
- package/dist/renderer-Bv6q84TU.mjs.map +0 -1
- package/dist/renderer-C-H680_l.mjs +0 -3
- package/dist/renderer-C606ZPUn.mjs +0 -3
- package/dist/renderer-C9jyKn1i.mjs +0 -3
- package/dist/renderer-CDLrNgfo.mjs +0 -3
- package/dist/renderer-CERfcxgv.mjs +0 -3
- package/dist/renderer-CG5PzNkv.mjs +0 -3
- package/dist/renderer-CI7sG_cv.mjs.map +0 -1
- package/dist/renderer-CPoIMVdk.mjs +0 -3
- package/dist/renderer-CQdVj2JS.mjs +0 -3
- package/dist/renderer-CQiTodg9.mjs +0 -337
- package/dist/renderer-CQiTodg9.mjs.map +0 -1
- package/dist/renderer-CWTpc4ff.mjs.map +0 -1
- package/dist/renderer-CXn5HAnK.mjs.map +0 -1
- package/dist/renderer-CZgB5st8.mjs +0 -3
- package/dist/renderer-C_TPMHiH.mjs.map +0 -1
- package/dist/renderer-Ca7L1EOp.mjs +0 -3
- package/dist/renderer-CaaOKMSd.mjs.map +0 -1
- package/dist/renderer-CdciwwMI.mjs.map +0 -1
- package/dist/renderer-CepMDQ06.mjs.map +0 -1
- package/dist/renderer-CfC_aiew.mjs.map +0 -1
- package/dist/renderer-ChdLYS-G.mjs.map +0 -1
- package/dist/renderer-CkykdR_D.mjs +0 -3
- package/dist/renderer-Cl6GkeHx.mjs +0 -3
- package/dist/renderer-ClcjrFyo.mjs +0 -3
- package/dist/renderer-CnXW28b9.mjs.map +0 -1
- package/dist/renderer-CpkiHRhh.mjs.map +0 -1
- package/dist/renderer-CtVkU_GA.mjs +0 -44
- package/dist/renderer-CtVkU_GA.mjs.map +0 -1
- package/dist/renderer-Ctk2zzfy.mjs.map +0 -1
- package/dist/renderer-CtyD_Xju.mjs.map +0 -1
- package/dist/renderer-CySUP_wk.mjs +0 -3
- package/dist/renderer-CzPWB0Ss.mjs.map +0 -1
- package/dist/renderer-D2XD4QYk.mjs.map +0 -1
- package/dist/renderer-D2l_Odyg.mjs +0 -3
- package/dist/renderer-D7zvPHKn.mjs.map +0 -1
- package/dist/renderer-D9NnIx7o.mjs +0 -3
- package/dist/renderer-DCPCYySt.mjs +0 -3
- package/dist/renderer-DEJwPRkR.mjs.map +0 -1
- package/dist/renderer-DIkpJEOZ.mjs +0 -3
- package/dist/renderer-DML9qpmS.mjs.map +0 -1
- package/dist/renderer-DNSXPkf_.mjs +0 -3
- package/dist/renderer-DP-CvZ_Z.mjs +0 -3
- package/dist/renderer-DZGtBUCx.mjs.map +0 -1
- package/dist/renderer-D_1oDOCP.mjs.map +0 -1
- package/dist/renderer-DeXb8R6h.mjs +0 -3
- package/dist/renderer-DezO-ZaP.mjs +0 -4
- package/dist/renderer-DhXe04fC.mjs +0 -3
- package/dist/renderer-DirxsOjq.mjs.map +0 -1
- package/dist/renderer-Djlb4TLO.mjs.map +0 -1
- package/dist/renderer-DnH3SI7w.mjs +0 -3
- package/dist/renderer-DpGc-N3G.mjs.map +0 -1
- package/dist/renderer-Dpw4oi33.mjs +0 -3
- package/dist/renderer-DxTs4Iyi.mjs.map +0 -1
- package/dist/renderer-Dy0utCl7.mjs.map +0 -1
- package/dist/renderer-Md-ytU0v.mjs +0 -3
- package/dist/renderer-U-bhWO9Q.mjs +0 -3
- package/dist/renderer-_uvdg48N.mjs.map +0 -1
- package/dist/renderer-bsWnRNpJ.mjs.map +0 -1
- package/dist/renderer-cgxO2xN6.mjs.map +0 -1
- package/dist/renderer-d5-F_48R.mjs +0 -3
- package/dist/renderer-ho_jXJ0H.mjs.map +0 -1
- package/dist/renderer-vqkKWqa5.mjs.map +0 -1
- package/dist/renderer-zA5okHds.mjs +0 -3
- /package/dist/{renderer-C2n-EHxg.mjs → renderer-B-BcgA6d.mjs} +0 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { n as defineRenderer } from "./renderer-
|
|
2
|
-
import {
|
|
1
|
+
import { n as defineRenderer } from "./renderer-BSitV56h.mjs";
|
|
2
|
+
import { An as signalRegistry, z as lutStore } from "./dist-Bun_TUvZ.mjs";
|
|
3
|
+
import { a as createFullscreenPipeline, c as drawTextureToTarget, f as signalTiming, l as fragmentBindGroupLayout, o as drawChildToTexture, s as drawFullscreenPass, t as FULLSCREEN_QUAD_WGSL, u as perDevice } from "./gpu-RkpiFGOA.mjs";
|
|
3
4
|
|
|
4
|
-
//#region ../../nodes/node-apply-lut/dist/renderers-
|
|
5
|
+
//#region ../../nodes/node-apply-lut/dist/renderers-BrWmp6fW.mjs
|
|
5
6
|
const LUT_3D_SHADER = `
|
|
6
7
|
struct LutUniforms {
|
|
7
8
|
intensity : f32,
|
|
@@ -17,27 +18,7 @@ struct LutUniforms {
|
|
|
17
18
|
@group(2) @binding(1) var lutSamp : sampler;
|
|
18
19
|
@group(3) @binding(0) var signalTex : texture_2d<f32>;
|
|
19
20
|
@group(3) @binding(1) var signalSamp : sampler;
|
|
20
|
-
|
|
21
|
-
struct VSOut {
|
|
22
|
-
@builtin(position) pos : vec4<f32>,
|
|
23
|
-
@location(0) uv : vec2<f32>,
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
@vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
|
|
27
|
-
var pos = array<vec2<f32>, 4>(
|
|
28
|
-
vec2<f32>(-1.0, 1.0),
|
|
29
|
-
vec2<f32>(1.0, 1.0),
|
|
30
|
-
vec2<f32>(-1.0, -1.0),
|
|
31
|
-
vec2<f32>(1.0, -1.0)
|
|
32
|
-
);
|
|
33
|
-
var uv = array<vec2<f32>, 4>(
|
|
34
|
-
vec2<f32>(0.0, 0.0),
|
|
35
|
-
vec2<f32>(1.0, 0.0),
|
|
36
|
-
vec2<f32>(0.0, 1.0),
|
|
37
|
-
vec2<f32>(1.0, 1.0)
|
|
38
|
-
);
|
|
39
|
-
return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
|
|
40
|
-
}
|
|
21
|
+
${FULLSCREEN_QUAD_WGSL}
|
|
41
22
|
|
|
42
23
|
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
43
24
|
let inputColor = textureSampleLevel(tex, samp, in.uv, 0.0);
|
|
@@ -70,27 +51,7 @@ struct LutUniforms {
|
|
|
70
51
|
@group(2) @binding(1) var lutSamp : sampler;
|
|
71
52
|
@group(3) @binding(0) var signalTex : texture_2d<f32>;
|
|
72
53
|
@group(3) @binding(1) var signalSamp : sampler;
|
|
73
|
-
|
|
74
|
-
struct VSOut {
|
|
75
|
-
@builtin(position) pos : vec4<f32>,
|
|
76
|
-
@location(0) uv : vec2<f32>,
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
@vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
|
|
80
|
-
var pos = array<vec2<f32>, 4>(
|
|
81
|
-
vec2<f32>(-1.0, 1.0),
|
|
82
|
-
vec2<f32>(1.0, 1.0),
|
|
83
|
-
vec2<f32>(-1.0, -1.0),
|
|
84
|
-
vec2<f32>(1.0, -1.0)
|
|
85
|
-
);
|
|
86
|
-
var uv = array<vec2<f32>, 4>(
|
|
87
|
-
vec2<f32>(0.0, 0.0),
|
|
88
|
-
vec2<f32>(1.0, 0.0),
|
|
89
|
-
vec2<f32>(0.0, 1.0),
|
|
90
|
-
vec2<f32>(1.0, 1.0)
|
|
91
|
-
);
|
|
92
|
-
return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
|
|
93
|
-
}
|
|
54
|
+
${FULLSCREEN_QUAD_WGSL}
|
|
94
55
|
|
|
95
56
|
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
96
57
|
let inputColor = textureSampleLevel(tex, samp, in.uv, 0.0);
|
|
@@ -112,64 +73,21 @@ struct VSOut {
|
|
|
112
73
|
return vec4<f32>(finalRgb * inputColor.a, inputColor.a);
|
|
113
74
|
}
|
|
114
75
|
`;
|
|
115
|
-
const deviceResourceCache = /* @__PURE__ */ new WeakMap();
|
|
116
76
|
const lutUniformData = new Float32Array(4);
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
binding: 1,
|
|
132
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
133
|
-
sampler: { type: "filtering" }
|
|
134
|
-
}] }),
|
|
135
|
-
lutTextureLayout3D: device.createBindGroupLayout({ entries: [{
|
|
136
|
-
binding: 0,
|
|
137
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
138
|
-
texture: {
|
|
139
|
-
viewDimension: "3d",
|
|
140
|
-
sampleType: "float"
|
|
141
|
-
}
|
|
142
|
-
}, {
|
|
143
|
-
binding: 1,
|
|
144
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
145
|
-
sampler: { type: "filtering" }
|
|
146
|
-
}] }),
|
|
147
|
-
lutTextureLayout1D: device.createBindGroupLayout({ entries: [{
|
|
148
|
-
binding: 0,
|
|
149
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
150
|
-
texture: {
|
|
151
|
-
viewDimension: "1d",
|
|
152
|
-
sampleType: "float"
|
|
153
|
-
}
|
|
154
|
-
}, {
|
|
155
|
-
binding: 1,
|
|
156
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
157
|
-
sampler: { type: "filtering" }
|
|
158
|
-
}] }),
|
|
159
|
-
signalTextureLayout: device.createBindGroupLayout({ entries: [{
|
|
160
|
-
binding: 0,
|
|
161
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
162
|
-
texture: { sampleType: "float" }
|
|
163
|
-
}, {
|
|
164
|
-
binding: 1,
|
|
165
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
166
|
-
sampler: { type: "filtering" }
|
|
167
|
-
}] }),
|
|
168
|
-
pipelineCache: /* @__PURE__ */ new Map()
|
|
169
|
-
};
|
|
170
|
-
deviceResourceCache.set(device, res);
|
|
171
|
-
return res;
|
|
172
|
-
}
|
|
77
|
+
const getDeviceLayouts = perDevice((device) => ({
|
|
78
|
+
lutUniformLayout: fragmentBindGroupLayout(device, ["uniform"]),
|
|
79
|
+
singleTextureLayout: fragmentBindGroupLayout(device, ["texture", "sampler"]),
|
|
80
|
+
lutTextureLayout3D: fragmentBindGroupLayout(device, [{ texture: {
|
|
81
|
+
viewDimension: "3d",
|
|
82
|
+
sampleType: "float"
|
|
83
|
+
} }, "sampler"]),
|
|
84
|
+
lutTextureLayout1D: fragmentBindGroupLayout(device, [{ texture: {
|
|
85
|
+
viewDimension: "1d",
|
|
86
|
+
sampleType: "float"
|
|
87
|
+
} }, "sampler"]),
|
|
88
|
+
signalTextureLayout: fragmentBindGroupLayout(device, ["texture", "sampler"]),
|
|
89
|
+
pipelineCache: /* @__PURE__ */ new Map()
|
|
90
|
+
}));
|
|
173
91
|
function getLutResources(device, format, type) {
|
|
174
92
|
const layouts = getDeviceLayouts(device);
|
|
175
93
|
const cacheKey = `lut_${type}_${format}`;
|
|
@@ -181,24 +99,16 @@ function getLutResources(device, format, type) {
|
|
|
181
99
|
code: shaderCode
|
|
182
100
|
});
|
|
183
101
|
const currentLutLayout = type === "3D" ? layouts.lutTextureLayout3D : layouts.lutTextureLayout1D;
|
|
184
|
-
pipeline = device
|
|
102
|
+
pipeline = createFullscreenPipeline(device, {
|
|
185
103
|
label: `LutPipeline_${type}_${format}`,
|
|
186
|
-
|
|
104
|
+
module: lutModule,
|
|
105
|
+
layouts: [
|
|
187
106
|
layouts.lutUniformLayout,
|
|
188
107
|
layouts.singleTextureLayout,
|
|
189
108
|
currentLutLayout,
|
|
190
109
|
layouts.signalTextureLayout
|
|
191
|
-
]
|
|
192
|
-
|
|
193
|
-
module: lutModule,
|
|
194
|
-
entryPoint: "vs"
|
|
195
|
-
},
|
|
196
|
-
fragment: {
|
|
197
|
-
module: lutModule,
|
|
198
|
-
entryPoint: "fs",
|
|
199
|
-
targets: [{ format }]
|
|
200
|
-
},
|
|
201
|
-
primitive: { topology: "triangle-strip" }
|
|
110
|
+
],
|
|
111
|
+
format
|
|
202
112
|
});
|
|
203
113
|
layouts.pipelineCache.set(cacheKey, pipeline);
|
|
204
114
|
}
|
|
@@ -211,7 +121,7 @@ function getLutResources(device, format, type) {
|
|
|
211
121
|
};
|
|
212
122
|
}
|
|
213
123
|
const LutWebGPURenderer = async (args) => {
|
|
214
|
-
const { ctx, encoder, pass,
|
|
124
|
+
const { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props } = args;
|
|
215
125
|
const frame = props.frame ?? 0;
|
|
216
126
|
const fps = props.fps || 30;
|
|
217
127
|
const op = props.virtualMedia?.operation;
|
|
@@ -251,41 +161,9 @@ const LutWebGPURenderer = async (args) => {
|
|
|
251
161
|
if (prefix) lut = lutStore.getAnyMatching(prefix, ctx.device);
|
|
252
162
|
}
|
|
253
163
|
}
|
|
254
|
-
const
|
|
255
|
-
const tmpView = tmpTex.createView();
|
|
256
|
-
ctx.renderer.beginFrame(encoder, tmpView, {
|
|
257
|
-
r: 0,
|
|
258
|
-
g: 0,
|
|
259
|
-
b: 0,
|
|
260
|
-
a: 0
|
|
261
|
-
}, width, height, "clear").end();
|
|
262
|
-
ctx.renderer.pushScissor({
|
|
263
|
-
x: 0,
|
|
264
|
-
y: 0,
|
|
265
|
-
width,
|
|
266
|
-
height
|
|
267
|
-
});
|
|
268
|
-
ctx.renderer.pushIdentity();
|
|
269
|
-
await drawChild(childMedia, {
|
|
270
|
-
...props,
|
|
271
|
-
virtualMedia: childMedia
|
|
272
|
-
}, tmpView, tmpTex, width, height);
|
|
273
|
-
ctx.renderer.popTransform();
|
|
274
|
-
ctx.renderer.popScissor();
|
|
164
|
+
const { texture: tmpTex } = await drawChildToTexture(args, childMedia);
|
|
275
165
|
if (!lut) {
|
|
276
|
-
|
|
277
|
-
r: 0,
|
|
278
|
-
g: 0,
|
|
279
|
-
b: 0,
|
|
280
|
-
a: 0
|
|
281
|
-
}, targetWidth, targetHeight, "load");
|
|
282
|
-
ctx.renderer.drawTexture(finalPass$1, tmpTex, {
|
|
283
|
-
x: 0,
|
|
284
|
-
y: 0,
|
|
285
|
-
width: targetWidth,
|
|
286
|
-
height: targetHeight
|
|
287
|
-
}, { opacity: op.opacity ?? 1 });
|
|
288
|
-
args.pass = finalPass$1;
|
|
166
|
+
drawTextureToTarget(args, tmpTex, op.opacity ?? 1);
|
|
289
167
|
return;
|
|
290
168
|
}
|
|
291
169
|
const { lutPipeline: pipeline, lutUniformLayout: uLayout, singleTextureLayout: tLayout, lutTextureLayout: lLayout, signalTextureLayout: sigLayout } = getLutResources(ctx.device, ctx.renderer.format, lut.type);
|
|
@@ -297,8 +175,7 @@ const LutWebGPURenderer = async (args) => {
|
|
|
297
175
|
]);
|
|
298
176
|
let signalView;
|
|
299
177
|
if (hasStaticSignal) {
|
|
300
|
-
const elapsedSeconds
|
|
301
|
-
const durationSeconds = props.virtualMedia?.metadata?.durationMs ? props.virtualMedia.metadata.durationMs / 1e3 : props.durationMs !== void 0 ? props.durationMs / 1e3 : 0;
|
|
178
|
+
const { elapsedSeconds, durationSeconds } = signalTiming(props, frame, fps);
|
|
302
179
|
signalView = signalRegistry.getOrCreate2DTextureView(ctx.device, encoder, sd.nodeId ?? "lut_intensity_sig", elapsedSeconds, durationSeconds, sd, width, height, props.renderId, frame, fps);
|
|
303
180
|
} else signalView = signalRegistry.getDummy1x1TextureView(ctx.device);
|
|
304
181
|
lutUniformData[0] = intensity;
|
|
@@ -306,64 +183,40 @@ const LutWebGPURenderer = async (args) => {
|
|
|
306
183
|
lutUniformData[2] = hasStaticSignal ? 1 : 0;
|
|
307
184
|
lutUniformData[3] = 0;
|
|
308
185
|
const uniformBuffer = ctx.renderer.getTemporaryBuffer(lutUniformData);
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
layout: sigLayout,
|
|
341
|
-
entries: [{
|
|
342
|
-
binding: 0,
|
|
343
|
-
resource: signalView
|
|
344
|
-
}, {
|
|
345
|
-
binding: 1,
|
|
346
|
-
resource: sampler
|
|
347
|
-
}]
|
|
348
|
-
}));
|
|
349
|
-
renderPass.draw(4);
|
|
350
|
-
renderPass.end();
|
|
351
|
-
const finalPass = ctx.renderer.beginFrame(encoder, targetView, {
|
|
352
|
-
r: 0,
|
|
353
|
-
g: 0,
|
|
354
|
-
b: 0,
|
|
355
|
-
a: 0
|
|
356
|
-
}, targetWidth, targetHeight, "load");
|
|
357
|
-
ctx.renderer.drawTexture(finalPass, outTex, {
|
|
358
|
-
x: 0,
|
|
359
|
-
y: 0,
|
|
360
|
-
width: targetWidth,
|
|
361
|
-
height: targetHeight
|
|
362
|
-
}, { opacity: op.opacity ?? 1 });
|
|
363
|
-
args.pass = finalPass;
|
|
186
|
+
drawFullscreenPass(encoder, outTex.createView(), pipeline, [
|
|
187
|
+
ctx.device.createBindGroup({
|
|
188
|
+
layout: uLayout,
|
|
189
|
+
entries: [{
|
|
190
|
+
binding: 0,
|
|
191
|
+
resource: { buffer: uniformBuffer }
|
|
192
|
+
}]
|
|
193
|
+
}),
|
|
194
|
+
ctx.renderer.bindGroupCache.getBindGroup(ctx.device, tLayout, tmpTex, sampler),
|
|
195
|
+
ctx.device.createBindGroup({
|
|
196
|
+
layout: lLayout,
|
|
197
|
+
entries: [{
|
|
198
|
+
binding: 0,
|
|
199
|
+
resource: lut.texture.createView()
|
|
200
|
+
}, {
|
|
201
|
+
binding: 1,
|
|
202
|
+
resource: sampler
|
|
203
|
+
}]
|
|
204
|
+
}),
|
|
205
|
+
ctx.device.createBindGroup({
|
|
206
|
+
layout: sigLayout,
|
|
207
|
+
entries: [{
|
|
208
|
+
binding: 0,
|
|
209
|
+
resource: signalView
|
|
210
|
+
}, {
|
|
211
|
+
binding: 1,
|
|
212
|
+
resource: sampler
|
|
213
|
+
}]
|
|
214
|
+
})
|
|
215
|
+
]);
|
|
216
|
+
drawTextureToTarget(args, outTex, op.opacity ?? 1);
|
|
364
217
|
};
|
|
365
218
|
var renderers_default = defineRenderer({ WebGPURenderer: LutWebGPURenderer });
|
|
366
219
|
|
|
367
220
|
//#endregion
|
|
368
221
|
export { renderers_default as t };
|
|
369
|
-
//# sourceMappingURL=renderer-
|
|
222
|
+
//# sourceMappingURL=renderer-BGr_cBKV.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer-BGr_cBKV.mjs","names":[],"sources":["../../../nodes/node-apply-lut/dist/renderers-BrWmp6fW.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { FULLSCREEN_QUAD_WGSL, createFullscreenPipeline, drawChildToTexture, drawFullscreenPass, drawTextureToTarget, fragmentBindGroupLayout, perDevice, signalTiming } from \"@framefields/node-sdk/gpu\";\nimport { lutStore, signalRegistry } from \"@framefields/webgpu-renderers\";\n\n//#region src/renderers/webgpu-renderer.ts\nconst LUT_3D_SHADER = `\nstruct LutUniforms {\n\tintensity : f32,\n\tlutSize : f32,\n\thasSignal : f32,\n\tpad : f32,\n};\n\n@group(0) @binding(0) var<uniform> u : LutUniforms;\n@group(1) @binding(0) var tex : texture_2d<f32>;\n@group(1) @binding(1) var samp : sampler;\n@group(2) @binding(0) var lutTex : texture_3d<f32>;\n@group(2) @binding(1) var lutSamp : sampler;\n@group(3) @binding(0) var signalTex : texture_2d<f32>;\n@group(3) @binding(1) var signalSamp : sampler;\n${FULLSCREEN_QUAD_WGSL}\n\n@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {\n\tlet inputColor = textureSampleLevel(tex, samp, in.uv, 0.0);\n\t\n\t// Coordinate adjustment to sample from texel centers\n\tlet uvw = inputColor.rgb * ((u.lutSize - 1.0) / u.lutSize) + vec3<f32>(0.5 / u.lutSize);\n\tlet mappedColor = textureSampleLevel(lutTex, lutSamp, uvw, 0.0);\n\t\n\tvar activeIntensity = u.intensity;\n\tif (u.hasSignal > 0.5) {\n\t\tactiveIntensity = textureSampleLevel(signalTex, signalSamp, in.uv, 0.0).r;\n\t}\n\t\n\tlet finalRgb = inputColor.rgb + activeIntensity * (mappedColor.rgb - inputColor.rgb);\n\treturn vec4<f32>(finalRgb * inputColor.a, inputColor.a);\n}\n`;\nconst LUT_1D_SHADER = `\nstruct LutUniforms {\n\tintensity : f32,\n\tlutSize : f32,\n\thasSignal : f32,\n\tpad : f32,\n};\n\n@group(0) @binding(0) var<uniform> u : LutUniforms;\n@group(1) @binding(0) var tex : texture_2d<f32>;\n@group(1) @binding(1) var samp : sampler;\n@group(2) @binding(0) var lutTex : texture_1d<f32>;\n@group(2) @binding(1) var lutSamp : sampler;\n@group(3) @binding(0) var signalTex : texture_2d<f32>;\n@group(3) @binding(1) var signalSamp : sampler;\n${FULLSCREEN_QUAD_WGSL}\n\n@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {\n\tlet inputColor = textureSampleLevel(tex, samp, in.uv, 0.0);\n\t\n\tlet rCoord = inputColor.r * ((u.lutSize - 1.0) / u.lutSize) + (0.5 / u.lutSize);\n\tlet gCoord = inputColor.g * ((u.lutSize - 1.0) / u.lutSize) + (0.5 / u.lutSize);\n\tlet bCoord = inputColor.b * ((u.lutSize - 1.0) / u.lutSize) + (0.5 / u.lutSize);\n\t\n\tlet mappedR = textureSampleLevel(lutTex, lutSamp, rCoord, 0.0).r;\n\tlet mappedG = textureSampleLevel(lutTex, lutSamp, gCoord, 0.0).g;\n\tlet mappedB = textureSampleLevel(lutTex, lutSamp, bCoord, 0.0).b;\n\t\n\tvar activeIntensity = u.intensity;\n\tif (u.hasSignal > 0.5) {\n\t\tactiveIntensity = textureSampleLevel(signalTex, signalSamp, in.uv, 0.0).r;\n\t}\n\t\n\tlet finalRgb = inputColor.rgb + activeIntensity * (vec3<f32>(mappedR, mappedG, mappedB) - inputColor.rgb);\n\treturn vec4<f32>(finalRgb * inputColor.a, inputColor.a);\n}\n`;\nconst lutUniformData = new Float32Array(4);\nconst getDeviceLayouts = perDevice((device) => ({\n\tlutUniformLayout: fragmentBindGroupLayout(device, [\"uniform\"]),\n\tsingleTextureLayout: fragmentBindGroupLayout(device, [\"texture\", \"sampler\"]),\n\tlutTextureLayout3D: fragmentBindGroupLayout(device, [{ texture: {\n\t\tviewDimension: \"3d\",\n\t\tsampleType: \"float\"\n\t} }, \"sampler\"]),\n\tlutTextureLayout1D: fragmentBindGroupLayout(device, [{ texture: {\n\t\tviewDimension: \"1d\",\n\t\tsampleType: \"float\"\n\t} }, \"sampler\"]),\n\tsignalTextureLayout: fragmentBindGroupLayout(device, [\"texture\", \"sampler\"]),\n\tpipelineCache: /* @__PURE__ */ new Map()\n}));\nfunction getLutResources(device, format, type) {\n\tconst layouts = getDeviceLayouts(device);\n\tconst cacheKey = `lut_${type}_${format}`;\n\tlet pipeline = layouts.pipelineCache.get(cacheKey);\n\tif (!pipeline) {\n\t\tconst shaderCode = type === \"3D\" ? LUT_3D_SHADER : LUT_1D_SHADER;\n\t\tconst lutModule = device.createShaderModule({\n\t\t\tlabel: `lut_${type.toLowerCase()}_${format}.wgsl`,\n\t\t\tcode: shaderCode\n\t\t});\n\t\tconst currentLutLayout = type === \"3D\" ? layouts.lutTextureLayout3D : layouts.lutTextureLayout1D;\n\t\tpipeline = createFullscreenPipeline(device, {\n\t\t\tlabel: `LutPipeline_${type}_${format}`,\n\t\t\tmodule: lutModule,\n\t\t\tlayouts: [\n\t\t\t\tlayouts.lutUniformLayout,\n\t\t\t\tlayouts.singleTextureLayout,\n\t\t\t\tcurrentLutLayout,\n\t\t\t\tlayouts.signalTextureLayout\n\t\t\t],\n\t\t\tformat\n\t\t});\n\t\tlayouts.pipelineCache.set(cacheKey, pipeline);\n\t}\n\treturn {\n\t\tlutPipeline: pipeline,\n\t\tlutUniformLayout: layouts.lutUniformLayout,\n\t\tsingleTextureLayout: layouts.singleTextureLayout,\n\t\tlutTextureLayout: type === \"3D\" ? layouts.lutTextureLayout3D : layouts.lutTextureLayout1D,\n\t\tsignalTextureLayout: layouts.signalTextureLayout\n\t};\n}\nconst LutWebGPURenderer = async (args) => {\n\tconst { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props } = args;\n\tconst frame = props.frame ?? 0;\n\tconst fps = props.fps || 30;\n\tconst op = props.virtualMedia?.operation;\n\tif (op?.op !== \"ApplyLUT\" || !op) return;\n\tconst childMedia = props.virtualMedia.children?.[0];\n\tif (!childMedia) return;\n\tconst lutUrl = op.lutUrl;\n\tif (!lutUrl) return;\n\tpass.end();\n\tconst width = targetWidth;\n\tconst height = targetHeight;\n\tconst intensityInput = op.intensityHandleId ? op.inputs?.[op.intensityHandleId] : null;\n\tconst hasSignal = !!(intensityInput?.connectionValid && intensityInput.outputItem?.type === \"Signal\");\n\tconst sd = hasSignal ? intensityInput?.outputItem?.data : null;\n\tlet intensity = 1;\n\tlet hasStaticSignal = false;\n\tif (!hasSignal) if (intensityInput?.connectionValid && intensityInput.outputItem?.type === \"Number\") intensity = Number(intensityInput.outputItem.data ?? 1);\n\telse intensity = Number(op.intensity ?? 1);\n\telse if (sd && typeof sd === \"object\") {\n\t\tintensity = Number(sd.offset ?? 1);\n\t\thasStaticSignal = true;\n\t}\n\tintensity = Math.max(0, Math.min(10, intensity));\n\tlet lut = lutStore.get(lutUrl, ctx.device);\n\tif (!lut) {\n\t\tif ((props.isHeadless ?? (typeof window === \"undefined\" || globalThis.__IS_HEADLESS_RENDERER__)) || props.forceWait) try {\n\t\t\tlut = await lutStore.getOrLoad(lutUrl, ctx.device);\n\t\t} catch (err) {\n\t\t\tif (!(err instanceof DOMException && err.name === \"AbortError\") && !(err && typeof err === \"object\" && \"name\" in err && err.name === \"AbortError\")) console.error(\"[ApplyLUT] Failed to load LUT synchronously:\", err);\n\t\t}\n\t\telse lutStore.getOrLoad(lutUrl, ctx.device).catch((err) => {\n\t\t\tif (err instanceof DOMException && err.name === \"AbortError\" || err && typeof err === \"object\" && \"name\" in err && err.name === \"AbortError\") return;\n\t\t\tconsole.error(\"[ApplyLUT] Failed to load LUT in background:\", err);\n\t\t});\n\t\tif (!lut && lutUrl.startsWith(\"runtime://lut/\")) {\n\t\t\tconst prefix = lutUrl.substring(0, lutUrl.lastIndexOf(\"-\") + 1);\n\t\t\tif (prefix) lut = lutStore.getAnyMatching(prefix, ctx.device);\n\t\t}\n\t}\n\tconst { texture: tmpTex } = await drawChildToTexture(args, childMedia);\n\tif (!lut) {\n\t\tdrawTextureToTarget(args, tmpTex, op.opacity ?? 1);\n\t\treturn;\n\t}\n\tconst { lutPipeline: pipeline, lutUniformLayout: uLayout, singleTextureLayout: tLayout, lutTextureLayout: lLayout, signalTextureLayout: sigLayout } = getLutResources(ctx.device, ctx.renderer.format, lut.type);\n\tconst sampler = ctx.renderer.samplerCache.getSampler(ctx.device);\n\tconst outTex = ctx.renderer.getTemporaryTexture(width, height, [\n\t\ttmpTex,\n\t\ttargetTexture,\n\t\t...props.excludeTextures || []\n\t]);\n\tlet signalView;\n\tif (hasStaticSignal) {\n\t\tconst { elapsedSeconds, durationSeconds } = signalTiming(props, frame, fps);\n\t\tsignalView = signalRegistry.getOrCreate2DTextureView(ctx.device, encoder, sd.nodeId ?? \"lut_intensity_sig\", elapsedSeconds, durationSeconds, sd, width, height, props.renderId, frame, fps);\n\t} else signalView = signalRegistry.getDummy1x1TextureView(ctx.device);\n\tlutUniformData[0] = intensity;\n\tlutUniformData[1] = lut.size;\n\tlutUniformData[2] = hasStaticSignal ? 1 : 0;\n\tlutUniformData[3] = 0;\n\tconst uniformBuffer = ctx.renderer.getTemporaryBuffer(lutUniformData);\n\tdrawFullscreenPass(encoder, outTex.createView(), pipeline, [\n\t\tctx.device.createBindGroup({\n\t\t\tlayout: uLayout,\n\t\t\tentries: [{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: { buffer: uniformBuffer }\n\t\t\t}]\n\t\t}),\n\t\tctx.renderer.bindGroupCache.getBindGroup(ctx.device, tLayout, tmpTex, sampler),\n\t\tctx.device.createBindGroup({\n\t\t\tlayout: lLayout,\n\t\t\tentries: [{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: lut.texture.createView()\n\t\t\t}, {\n\t\t\t\tbinding: 1,\n\t\t\t\tresource: sampler\n\t\t\t}]\n\t\t}),\n\t\tctx.device.createBindGroup({\n\t\t\tlayout: sigLayout,\n\t\t\tentries: [{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: signalView\n\t\t\t}, {\n\t\t\t\tbinding: 1,\n\t\t\t\tresource: sampler\n\t\t\t}]\n\t\t})\n\t]);\n\tdrawTextureToTarget(args, outTex, op.opacity ?? 1);\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer: LutWebGPURenderer });\n\n//#endregion\nexport { renderers_default as t };\n//# sourceMappingURL=renderers-BrWmp6fW.mjs.map"],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import "./chunk-GMkBE123.mjs";
|
|
2
|
+
import "./dist-Bun_TUvZ.mjs";
|
|
3
|
+
import { n as renderers_default, t as ColorBalanceWebGPURenderer } from "./renderer-DhEyjn6Q.mjs";
|
|
2
4
|
|
|
3
5
|
export { ColorBalanceWebGPURenderer, renderers_default as default };
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import "./chunk-GMkBE123.mjs";
|
|
2
|
+
import { n as defineRenderer } from "./renderer-BSitV56h.mjs";
|
|
3
|
+
import "./dist-Bun_TUvZ.mjs";
|
|
4
|
+
import { i as beginTargetPass, l as fragmentBindGroupLayout, o as drawChildToTexture, p as texturesLayout, t as FULLSCREEN_QUAD_WGSL } from "./gpu-RkpiFGOA.mjs";
|
|
2
5
|
|
|
3
|
-
//#region ../../nodes/node-channel-merger/dist/renderers-
|
|
6
|
+
//#region ../../nodes/node-channel-merger/dist/renderers-CFuJvvvy.mjs
|
|
4
7
|
const COLOR_SPACE_MAP = {
|
|
5
8
|
RGBA: 0,
|
|
6
9
|
HSLA: 1,
|
|
@@ -21,27 +24,7 @@ struct MergerUniforms {
|
|
|
21
24
|
@group(1) @binding(2) var tex3 : texture_2d<f32>;
|
|
22
25
|
@group(1) @binding(3) var tex4 : texture_2d<f32>;
|
|
23
26
|
@group(1) @binding(4) var samp : sampler;
|
|
24
|
-
|
|
25
|
-
struct VSOut {
|
|
26
|
-
@builtin(position) pos : vec4<f32>,
|
|
27
|
-
@location(0) uv : vec2<f32>,
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
@vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
|
|
31
|
-
var pos = array<vec2<f32>, 4>(
|
|
32
|
-
vec2<f32>(-1.0, 1.0),
|
|
33
|
-
vec2<f32>(1.0, 1.0),
|
|
34
|
-
vec2<f32>(-1.0, -1.0),
|
|
35
|
-
vec2<f32>(1.0, -1.0)
|
|
36
|
-
);
|
|
37
|
-
var uv = array<vec2<f32>, 4>(
|
|
38
|
-
vec2<f32>(0.0, 0.0),
|
|
39
|
-
vec2<f32>(1.0, 0.0),
|
|
40
|
-
vec2<f32>(0.0, 1.0),
|
|
41
|
-
vec2<f32>(1.0, 1.0)
|
|
42
|
-
);
|
|
43
|
-
return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
|
|
44
|
-
}
|
|
27
|
+
${FULLSCREEN_QUAD_WGSL}
|
|
45
28
|
|
|
46
29
|
fn hue2rgb(p: f32, q: f32, t_in: f32) -> f32 {
|
|
47
30
|
var t = t_in;
|
|
@@ -137,38 +120,8 @@ function getDeviceLayouts(device) {
|
|
|
137
120
|
let res = deviceResourceCache.get(device);
|
|
138
121
|
if (res) return res;
|
|
139
122
|
res = {
|
|
140
|
-
uniformLayout: device
|
|
141
|
-
|
|
142
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
143
|
-
buffer: { type: "uniform" }
|
|
144
|
-
}] }),
|
|
145
|
-
textureLayout: device.createBindGroupLayout({ entries: [
|
|
146
|
-
{
|
|
147
|
-
binding: 0,
|
|
148
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
149
|
-
texture: { sampleType: "float" }
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
binding: 1,
|
|
153
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
154
|
-
texture: { sampleType: "float" }
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
binding: 2,
|
|
158
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
159
|
-
texture: { sampleType: "float" }
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
binding: 3,
|
|
163
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
164
|
-
texture: { sampleType: "float" }
|
|
165
|
-
},
|
|
166
|
-
{
|
|
167
|
-
binding: 4,
|
|
168
|
-
visibility: GPUShaderStage.FRAGMENT,
|
|
169
|
-
sampler: { type: "filtering" }
|
|
170
|
-
}
|
|
171
|
-
] }),
|
|
123
|
+
uniformLayout: fragmentBindGroupLayout(device, ["uniform"]),
|
|
124
|
+
textureLayout: texturesLayout(device, 4),
|
|
172
125
|
pipelineCache: /* @__PURE__ */ new Map()
|
|
173
126
|
};
|
|
174
127
|
deviceResourceCache.set(device, res);
|
|
@@ -206,7 +159,7 @@ function getPipeline(device, format) {
|
|
|
206
159
|
};
|
|
207
160
|
}
|
|
208
161
|
const ChannelMergerWebGPURenderer = async (args) => {
|
|
209
|
-
const { ctx, encoder, pass,
|
|
162
|
+
const { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props, drawChild } = args;
|
|
210
163
|
const op = props.virtualMedia?.operation;
|
|
211
164
|
if (op?.op !== "ChannelMerger" || !op) return;
|
|
212
165
|
const ch1Media = op.channel1Media ?? props.virtualMedia.children?.[0];
|
|
@@ -217,95 +170,35 @@ const ChannelMergerWebGPURenderer = async (args) => {
|
|
|
217
170
|
pass.end();
|
|
218
171
|
const width = targetWidth;
|
|
219
172
|
const height = targetHeight;
|
|
220
|
-
const tex1 =
|
|
221
|
-
const view1 = tex1.createView();
|
|
222
|
-
ctx.renderer.beginFrame(encoder, view1, {
|
|
223
|
-
r: 0,
|
|
224
|
-
g: 0,
|
|
225
|
-
b: 0,
|
|
226
|
-
a: 0
|
|
227
|
-
}, width, height, "clear").end();
|
|
228
|
-
ctx.renderer.pushScissor({
|
|
229
|
-
x: 0,
|
|
230
|
-
y: 0,
|
|
231
|
-
width,
|
|
232
|
-
height
|
|
233
|
-
});
|
|
234
|
-
ctx.renderer.pushIdentity();
|
|
235
|
-
await drawChild(ch1Media, {
|
|
173
|
+
const { texture: tex1, view: view1 } = await drawChildToTexture(args, ch1Media, { props: {
|
|
236
174
|
...props,
|
|
237
175
|
virtualMedia: ch1Media,
|
|
238
|
-
renderId: `${props.renderId}-ch1
|
|
239
|
-
|
|
240
|
-
}, view1, tex1, width, height);
|
|
241
|
-
ctx.renderer.popTransform();
|
|
242
|
-
ctx.renderer.popScissor();
|
|
176
|
+
renderId: `${props.renderId}-ch1`
|
|
177
|
+
} });
|
|
243
178
|
args.pass.end();
|
|
244
|
-
const tex2 =
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
g: 0,
|
|
253
|
-
b: 0,
|
|
254
|
-
a: 0
|
|
255
|
-
}, width, height, "clear").end();
|
|
256
|
-
ctx.renderer.pushScissor({
|
|
257
|
-
x: 0,
|
|
258
|
-
y: 0,
|
|
259
|
-
width,
|
|
260
|
-
height
|
|
179
|
+
const { texture: tex2, view: view2 } = await drawChildToTexture(args, ch2Media, {
|
|
180
|
+
props: {
|
|
181
|
+
...props,
|
|
182
|
+
virtualMedia: ch2Media,
|
|
183
|
+
renderId: `${props.renderId}-ch2`,
|
|
184
|
+
excludeTextures: [...props.excludeTextures || [], tex1]
|
|
185
|
+
},
|
|
186
|
+
exclude: [tex1]
|
|
261
187
|
});
|
|
262
|
-
ctx.renderer.pushIdentity();
|
|
263
|
-
await drawChild(ch2Media, {
|
|
264
|
-
...props,
|
|
265
|
-
virtualMedia: ch2Media,
|
|
266
|
-
renderId: `${props.renderId}-ch2`,
|
|
267
|
-
excludeTextures: [
|
|
268
|
-
...props.excludeTextures || [],
|
|
269
|
-
tex1,
|
|
270
|
-
tex2
|
|
271
|
-
]
|
|
272
|
-
}, view2, tex2, width, height);
|
|
273
|
-
ctx.renderer.popTransform();
|
|
274
|
-
ctx.renderer.popScissor();
|
|
275
188
|
args.pass.end();
|
|
276
|
-
const tex3 =
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
}, width, height, "clear").end();
|
|
289
|
-
ctx.renderer.pushScissor({
|
|
290
|
-
x: 0,
|
|
291
|
-
y: 0,
|
|
292
|
-
width,
|
|
293
|
-
height
|
|
189
|
+
const { texture: tex3, view: view3 } = await drawChildToTexture(args, ch3Media, {
|
|
190
|
+
props: {
|
|
191
|
+
...props,
|
|
192
|
+
virtualMedia: ch3Media,
|
|
193
|
+
renderId: `${props.renderId}-ch3`,
|
|
194
|
+
excludeTextures: [
|
|
195
|
+
...props.excludeTextures || [],
|
|
196
|
+
tex1,
|
|
197
|
+
tex2
|
|
198
|
+
]
|
|
199
|
+
},
|
|
200
|
+
exclude: [tex1, tex2]
|
|
294
201
|
});
|
|
295
|
-
ctx.renderer.pushIdentity();
|
|
296
|
-
await drawChild(ch3Media, {
|
|
297
|
-
...props,
|
|
298
|
-
virtualMedia: ch3Media,
|
|
299
|
-
renderId: `${props.renderId}-ch3`,
|
|
300
|
-
excludeTextures: [
|
|
301
|
-
...props.excludeTextures || [],
|
|
302
|
-
tex1,
|
|
303
|
-
tex2,
|
|
304
|
-
tex3
|
|
305
|
-
]
|
|
306
|
-
}, view3, tex3, width, height);
|
|
307
|
-
ctx.renderer.popTransform();
|
|
308
|
-
ctx.renderer.popScissor();
|
|
309
202
|
args.pass.end();
|
|
310
203
|
const tex4 = ctx.renderer.getTemporaryTexture(width, height, [
|
|
311
204
|
...props.excludeTextures || [],
|
|
@@ -387,20 +280,14 @@ const ChannelMergerWebGPURenderer = async (args) => {
|
|
|
387
280
|
}
|
|
388
281
|
]
|
|
389
282
|
});
|
|
390
|
-
const finalPass =
|
|
391
|
-
r: 0,
|
|
392
|
-
g: 0,
|
|
393
|
-
b: 0,
|
|
394
|
-
a: 0
|
|
395
|
-
}, width, height, "load");
|
|
283
|
+
const finalPass = beginTargetPass(args);
|
|
396
284
|
finalPass.setPipeline(pipeline);
|
|
397
285
|
finalPass.setBindGroup(0, uniformBindGroup);
|
|
398
286
|
finalPass.setBindGroup(1, textureBindGroup);
|
|
399
287
|
finalPass.draw(4, 1, 0, 0);
|
|
400
|
-
args.pass = finalPass;
|
|
401
288
|
};
|
|
402
289
|
var renderers_default = defineRenderer({ WebGPURenderer: ChannelMergerWebGPURenderer });
|
|
403
290
|
|
|
404
291
|
//#endregion
|
|
405
292
|
export { ChannelMergerWebGPURenderer, renderers_default as default };
|
|
406
|
-
//# sourceMappingURL=renderer-
|
|
293
|
+
//# sourceMappingURL=renderer-BO2lYmtE.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer-BO2lYmtE.mjs","names":[],"sources":["../../../nodes/node-channel-merger/dist/renderers-CFuJvvvy.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { FULLSCREEN_QUAD_WGSL, beginTargetPass, drawChildToTexture, fragmentBindGroupLayout, texturesLayout } from \"@framefields/node-sdk/gpu\";\n\n//#region src/renderers/webgpu-renderer.ts\nconst COLOR_SPACE_MAP = {\n\tRGBA: 0,\n\tHSLA: 1,\n\tCMYK: 2,\n\tLAB: 3\n};\nconst WGSL_CHANNEL_MERGER = `\nstruct MergerUniforms {\n\tcolorSpace : f32, // 0=RGBA, 1=HSLA, 2=CMYK, 3=LAB\n\thasCh4 : f32, // 0 or 1\n\tdefaultCh4 : f32, // fallback value (1.0 for alpha, 0.0 for CMYK black)\n\t_pad0 : f32,\n};\n\n@group(0) @binding(0) var<uniform> u : MergerUniforms;\n@group(1) @binding(0) var tex1 : texture_2d<f32>;\n@group(1) @binding(1) var tex2 : texture_2d<f32>;\n@group(1) @binding(2) var tex3 : texture_2d<f32>;\n@group(1) @binding(3) var tex4 : texture_2d<f32>;\n@group(1) @binding(4) var samp : sampler;\n${FULLSCREEN_QUAD_WGSL}\n\nfn hue2rgb(p: f32, q: f32, t_in: f32) -> f32 {\n\tvar t = t_in;\n\tif (t < 0.0) { t = t + 1.0; }\n\tif (t > 1.0) { t = t - 1.0; }\n\tif (t < 1.0 / 6.0) { return p + (q - p) * 6.0 * t; }\n\tif (t < 1.0 / 2.0) { return q; }\n\tif (t < 2.0 / 3.0) { return p + (q - p) * (2.0 / 3.0 - t) * 6.0; }\n\treturn p;\n}\n\nfn hsl2rgb(h: f32, s: f32, l: f32) -> vec3<f32> {\n\tif (s <= 0.00001) {\n\t\treturn vec3<f32>(l, l, l);\n\t}\n\tlet q = select(l + s - l * s, l * (1.0 + s), l < 0.5);\n\tlet p = 2.0 * l - q;\n\tlet r = hue2rgb(p, q, h + 1.0 / 3.0);\n\tlet g = hue2rgb(p, q, h);\n\tlet b = hue2rgb(p, q, h - 1.0 / 3.0);\n\treturn vec3<f32>(clamp(r, 0.0, 1.0), clamp(g, 0.0, 1.0), clamp(b, 0.0, 1.0));\n}\n\nfn inv_lab_f(t: f32) -> f32 {\n\tlet t3 = t * t * t;\n\treturn select((t - 16.0 / 116.0) / 7.787, t3, t3 > 0.008856);\n}\n\nfn lin2srgb(v: f32) -> f32 {\n\tlet c = clamp(v, 0.0, 1.0);\n\treturn select(c * 12.92, 1.055 * pow(c, 1.0 / 2.4) - 0.055, c > 0.0031308);\n}\n\n@fragment fn fs(in: VSOut) -> @location(0) vec4<f32> {\n\tlet c1 = textureSample(tex1, samp, in.uv);\n\tlet c2 = textureSample(tex2, samp, in.uv);\n\tlet c3 = textureSample(tex3, samp, in.uv);\n\tlet c4 = textureSample(tex4, samp, in.uv);\n\n\tlet v1 = c1.r;\n\tlet v2 = c2.r;\n\tlet v3 = c3.r;\n\tlet v4 = select(u.defaultCh4, c4.r, u.hasCh4 > 0.5);\n\n\tlet cs = u32(u.colorSpace + 0.5);\n\n\tif (cs == 0u) { // RGBA\n\t\treturn vec4<f32>(clamp(v1, 0.0, 1.0), clamp(v2, 0.0, 1.0), clamp(v3, 0.0, 1.0), clamp(v4, 0.0, 1.0));\n\t} else if (cs == 1u) { // HSLA\n\t\tlet rgb = hsl2rgb(fract(v1), clamp(v2, 0.0, 1.0), clamp(v3, 0.0, 1.0));\n\t\treturn vec4<f32>(rgb, clamp(v4, 0.0, 1.0));\n\t} else if (cs == 2u) { // CMYK\n\t\tlet C = clamp(v1, 0.0, 1.0);\n\t\tlet M = clamp(v2, 0.0, 1.0);\n\t\tlet Y = clamp(v3, 0.0, 1.0);\n\t\tlet K = clamp(v4, 0.0, 1.0);\n\t\tlet r = (1.0 - C) * (1.0 - K);\n\t\tlet g = (1.0 - M) * (1.0 - K);\n\t\tlet b = (1.0 - Y) * (1.0 - K);\n\t\treturn vec4<f32>(clamp(r, 0.0, 1.0), clamp(g, 0.0, 1.0), clamp(b, 0.0, 1.0), 1.0);\n\t} else { // LAB\n\t\tlet L_norm = clamp(v1, 0.0, 1.0);\n\t\tlet a_norm = clamp(v2, 0.0, 1.0);\n\t\tlet b_norm = clamp(v3, 0.0, 1.0);\n\n\t\tlet L_star = L_norm * 100.0;\n\t\tlet a_star = a_norm * 255.0 - 128.0;\n\t\tlet b_star = b_norm * 255.0 - 128.0;\n\n\t\tlet fy = (L_star + 16.0) / 116.0;\n\t\tlet fx = fy + a_star / 500.0;\n\t\tlet fz = fy - b_star / 200.0;\n\n\t\tlet x = inv_lab_f(fx);\n\t\tlet y = inv_lab_f(fy);\n\t\tlet z = inv_lab_f(fz);\n\n\t\tlet X = x * 0.95047;\n\t\tlet Y = y * 1.00000;\n\t\tlet Z = z * 1.08883;\n\n\t\tlet lr = 3.2404542 * X - 1.5371385 * Y - 0.4985314 * Z;\n\t\tlet lg = -0.9692660 * X + 1.8760108 * Y + 0.0415560 * Z;\n\t\tlet lb = 0.0556434 * X - 0.2040259 * Y + 1.0572252 * Z;\n\n\t\treturn vec4<f32>(lin2srgb(lr), lin2srgb(lg), lin2srgb(lb), clamp(v4, 0.0, 1.0));\n\t}\n}\n`;\nconst deviceResourceCache = /* @__PURE__ */ new WeakMap();\nconst uniformData = new Float32Array(4);\nfunction getDeviceLayouts(device) {\n\tlet res = deviceResourceCache.get(device);\n\tif (res) return res;\n\tres = {\n\t\tuniformLayout: fragmentBindGroupLayout(device, [\"uniform\"]),\n\t\ttextureLayout: texturesLayout(device, 4),\n\t\tpipelineCache: /* @__PURE__ */ new Map()\n\t};\n\tdeviceResourceCache.set(device, res);\n\treturn res;\n}\nfunction getPipeline(device, format) {\n\tconst resources = getDeviceLayouts(device);\n\tconst key = `merger_${format}`;\n\tlet pipeline = resources.pipelineCache.get(key);\n\tif (!pipeline) {\n\t\tconst module = device.createShaderModule({\n\t\t\tlabel: \"ChannelMergerShader\",\n\t\t\tcode: WGSL_CHANNEL_MERGER\n\t\t});\n\t\tconst layout = device.createPipelineLayout({ bindGroupLayouts: [resources.uniformLayout, resources.textureLayout] });\n\t\tpipeline = device.createRenderPipeline({\n\t\t\tlabel: \"ChannelMergerPipeline\",\n\t\t\tlayout,\n\t\t\tvertex: {\n\t\t\t\tmodule,\n\t\t\t\tentryPoint: \"vs\"\n\t\t\t},\n\t\t\tfragment: {\n\t\t\t\tmodule,\n\t\t\t\tentryPoint: \"fs\",\n\t\t\t\ttargets: [{ format }]\n\t\t\t},\n\t\t\tprimitive: { topology: \"triangle-strip\" }\n\t\t});\n\t\tresources.pipelineCache.set(key, pipeline);\n\t}\n\treturn {\n\t\tpipeline,\n\t\tresources\n\t};\n}\nconst ChannelMergerWebGPURenderer = async (args) => {\n\tconst { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props, drawChild } = args;\n\tconst op = props.virtualMedia?.operation;\n\tif (op?.op !== \"ChannelMerger\" || !op) return;\n\tconst ch1Media = op.channel1Media ?? props.virtualMedia.children?.[0];\n\tconst ch2Media = op.channel2Media;\n\tconst ch3Media = op.channel3Media;\n\tconst ch4Media = op.channel4Media;\n\tif (!ch1Media || !ch2Media || !ch3Media) return;\n\tpass.end();\n\tconst width = targetWidth;\n\tconst height = targetHeight;\n\tconst { texture: tex1, view: view1 } = await drawChildToTexture(args, ch1Media, { props: {\n\t\t...props,\n\t\tvirtualMedia: ch1Media,\n\t\trenderId: `${props.renderId}-ch1`\n\t} });\n\targs.pass.end();\n\tconst { texture: tex2, view: view2 } = await drawChildToTexture(args, ch2Media, {\n\t\tprops: {\n\t\t\t...props,\n\t\t\tvirtualMedia: ch2Media,\n\t\t\trenderId: `${props.renderId}-ch2`,\n\t\t\texcludeTextures: [...props.excludeTextures || [], tex1]\n\t\t},\n\t\texclude: [tex1]\n\t});\n\targs.pass.end();\n\tconst { texture: tex3, view: view3 } = await drawChildToTexture(args, ch3Media, {\n\t\tprops: {\n\t\t\t...props,\n\t\t\tvirtualMedia: ch3Media,\n\t\t\trenderId: `${props.renderId}-ch3`,\n\t\t\texcludeTextures: [\n\t\t\t\t...props.excludeTextures || [],\n\t\t\t\ttex1,\n\t\t\t\ttex2\n\t\t\t]\n\t\t},\n\t\texclude: [tex1, tex2]\n\t});\n\targs.pass.end();\n\tconst tex4 = ctx.renderer.getTemporaryTexture(width, height, [\n\t\t...props.excludeTextures || [],\n\t\ttargetTexture,\n\t\ttex1,\n\t\ttex2,\n\t\ttex3\n\t]);\n\tconst view4 = tex4.createView();\n\tctx.renderer.beginFrame(encoder, view4, {\n\t\tr: 0,\n\t\tg: 0,\n\t\tb: 0,\n\t\ta: 0\n\t}, width, height, \"clear\").end();\n\tconst hasCh4 = ch4Media ? 1 : 0;\n\tif (ch4Media) {\n\t\tctx.renderer.pushScissor({\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t\twidth,\n\t\t\theight\n\t\t});\n\t\tctx.renderer.pushIdentity();\n\t\tawait drawChild(ch4Media, {\n\t\t\t...props,\n\t\t\tvirtualMedia: ch4Media,\n\t\t\trenderId: `${props.renderId}-ch4`,\n\t\t\texcludeTextures: [\n\t\t\t\t...props.excludeTextures || [],\n\t\t\t\ttex1,\n\t\t\t\ttex2,\n\t\t\t\ttex3,\n\t\t\t\ttex4\n\t\t\t]\n\t\t}, view4, tex4, width, height);\n\t\tctx.renderer.popTransform();\n\t\tctx.renderer.popScissor();\n\t\targs.pass.end();\n\t}\n\tconst colorSpace = op.colorSpace ?? \"RGBA\";\n\tconst defaultCh4 = op.defaultChannel4 ?? (colorSpace === \"CMYK\" ? 0 : 1);\n\tuniformData[0] = COLOR_SPACE_MAP[colorSpace] ?? 0;\n\tuniformData[1] = hasCh4;\n\tuniformData[2] = defaultCh4;\n\tuniformData[3] = 0;\n\tconst uniformBuffer = ctx.renderer.getTemporaryBuffer(uniformData);\n\tconst { pipeline, resources } = getPipeline(ctx.device, targetTexture.format);\n\tconst uniformBindGroup = ctx.device.createBindGroup({\n\t\tlayout: resources.uniformLayout,\n\t\tentries: [{\n\t\t\tbinding: 0,\n\t\t\tresource: { buffer: uniformBuffer }\n\t\t}]\n\t});\n\tconst sampler = ctx.renderer.samplerCache.getSampler(ctx.device);\n\tconst textureBindGroup = ctx.device.createBindGroup({\n\t\tlayout: resources.textureLayout,\n\t\tentries: [\n\t\t\t{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: view1\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 1,\n\t\t\t\tresource: view2\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 2,\n\t\t\t\tresource: view3\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 3,\n\t\t\t\tresource: view4\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 4,\n\t\t\t\tresource: sampler\n\t\t\t}\n\t\t]\n\t});\n\tconst finalPass = beginTargetPass(args);\n\tfinalPass.setPipeline(pipeline);\n\tfinalPass.setBindGroup(0, uniformBindGroup);\n\tfinalPass.setBindGroup(1, textureBindGroup);\n\tfinalPass.draw(4, 1, 0, 0);\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer: ChannelMergerWebGPURenderer });\n\n//#endregion\nexport { ChannelMergerWebGPURenderer as n, renderers_default as t };\n//# sourceMappingURL=renderers-CFuJvvvy.mjs.map"],"mappings":"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"}
|