framefields 2.0.2
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/LICENCE +202 -0
- package/README.md +740 -0
- package/dist/audio/index.d.mts +5 -0
- package/dist/audio/index.mjs +14 -0
- package/dist/audio-Dvwwz8xU.d.mts +37 -0
- package/dist/audio-Dvwwz8xU.d.mts.map +1 -0
- package/dist/audio-TAvPwzLR.mjs +214 -0
- package/dist/audio-TAvPwzLR.mjs.map +1 -0
- package/dist/audio-x28ZgQBP.mjs +85 -0
- package/dist/audio-x28ZgQBP.mjs.map +1 -0
- package/dist/chunk-GMkBE123.mjs +47 -0
- package/dist/client-C74hb7fy.mjs +66 -0
- package/dist/client-C74hb7fy.mjs.map +1 -0
- package/dist/dist-1iUYuPct.mjs +1859 -0
- package/dist/dist-1iUYuPct.mjs.map +1 -0
- package/dist/dist-Bx6J0VcM.mjs +1859 -0
- package/dist/dist-Bx6J0VcM.mjs.map +1 -0
- package/dist/dist-C_hjvkdN.mjs +2220 -0
- package/dist/dist-C_hjvkdN.mjs.map +1 -0
- package/dist/dist-DKm2IyEJ.mjs +94 -0
- package/dist/dist-DKm2IyEJ.mjs.map +1 -0
- package/dist/dist-cjs-B5EVqDFp.mjs +85 -0
- package/dist/dist-cjs-B5EVqDFp.mjs.map +1 -0
- package/dist/dist-cjs-BGJkdexX.mjs +437 -0
- package/dist/dist-cjs-BGJkdexX.mjs.map +1 -0
- package/dist/dist-cjs-BKmGCgtm.mjs +9069 -0
- package/dist/dist-cjs-BKmGCgtm.mjs.map +1 -0
- package/dist/dist-cjs-BUc0_kg-.mjs +1091 -0
- package/dist/dist-cjs-BUc0_kg-.mjs.map +1 -0
- package/dist/dist-cjs-BUwe2XhR.mjs +153 -0
- package/dist/dist-cjs-BUwe2XhR.mjs.map +1 -0
- package/dist/dist-cjs-BWgoUCXJ.mjs +137 -0
- package/dist/dist-cjs-BWgoUCXJ.mjs.map +1 -0
- package/dist/dist-cjs-CmZEMtO6.mjs +6 -0
- package/dist/dist-cjs-D7kEM-Mj.mjs +181 -0
- package/dist/dist-cjs-D7kEM-Mj.mjs.map +1 -0
- package/dist/dist-cjs-DFUmy89O.mjs +48 -0
- package/dist/dist-cjs-DFUmy89O.mjs.map +1 -0
- package/dist/dist-cjs-Df7144zM.mjs +209 -0
- package/dist/dist-cjs-Df7144zM.mjs.map +1 -0
- package/dist/dist-cjs-DgxjcvBN.mjs +98 -0
- package/dist/dist-cjs-DgxjcvBN.mjs.map +1 -0
- package/dist/dist-cjs-DsMdld8l.mjs +5015 -0
- package/dist/dist-cjs-DsMdld8l.mjs.map +1 -0
- package/dist/dist-cjs-Dzs5P3K0.mjs +51 -0
- package/dist/dist-cjs-Dzs5P3K0.mjs.map +1 -0
- package/dist/dist-cjs-ECMuIF57.mjs +323 -0
- package/dist/dist-cjs-ECMuIF57.mjs.map +1 -0
- package/dist/dist-cjs-lYvO8aDo.mjs +64 -0
- package/dist/dist-cjs-lYvO8aDo.mjs.map +1 -0
- package/dist/dist-cjs-qEJrwjGk.mjs +66 -0
- package/dist/dist-cjs-qEJrwjGk.mjs.map +1 -0
- package/dist/dist-cjs-x5cwlqA5.mjs +43 -0
- package/dist/dist-cjs-x5cwlqA5.mjs.map +1 -0
- package/dist/dist-gjHmorxL.mjs +27479 -0
- package/dist/dist-gjHmorxL.mjs.map +1 -0
- package/dist/effects/index.d.mts +5 -0
- package/dist/effects/index.mjs +35 -0
- package/dist/effects-CHWORCYd.mjs +811 -0
- package/dist/effects-CHWORCYd.mjs.map +1 -0
- package/dist/event-streams-D-APZ7Ke.mjs +204 -0
- package/dist/event-streams-D-APZ7Ke.mjs.map +1 -0
- package/dist/fonts/index.d.mts +2 -0
- package/dist/fonts/index.mjs +3 -0
- package/dist/fonts-DrGTBJJk.mjs +188 -0
- package/dist/fonts-DrGTBJJk.mjs.map +1 -0
- package/dist/index-B0BNPEoH.d.mts +2117 -0
- package/dist/index-B0BNPEoH.d.mts.map +1 -0
- package/dist/index-BMVVmc4G.d.mts +72 -0
- package/dist/index-BMVVmc4G.d.mts.map +1 -0
- package/dist/index-D1ZsMpke.d.mts +264 -0
- package/dist/index-D1ZsMpke.d.mts.map +1 -0
- package/dist/index-D2jDC7O5.d.mts +3643 -0
- package/dist/index-D2jDC7O5.d.mts.map +1 -0
- package/dist/index-D2wJqSl5.d.mts +114 -0
- package/dist/index-D2wJqSl5.d.mts.map +1 -0
- package/dist/index-DKFGNyMB.d.mts +309 -0
- package/dist/index-DKFGNyMB.d.mts.map +1 -0
- package/dist/index-DiSKzDGR.d.mts +65 -0
- package/dist/index-DiSKzDGR.d.mts.map +1 -0
- package/dist/index.d.mts +4425 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +2623 -0
- package/dist/index.mjs.map +1 -0
- package/dist/package-C58KmGKw.mjs +6 -0
- package/dist/package-C58KmGKw.mjs.map +1 -0
- package/dist/preview/index.d.mts +90 -0
- package/dist/preview/index.d.mts.map +1 -0
- package/dist/preview/index.mjs +15 -0
- package/dist/preview-engine/audio.mjs +1 -0
- package/dist/preview-engine/child_process-AIL2NBWS.mjs +1 -0
- package/dist/preview-engine/chunk-24P6DAB3.mjs +1 -0
- package/dist/preview-engine/chunk-37EFVZWT.mjs +1 -0
- package/dist/preview-engine/chunk-3O5OKR6D.mjs +223 -0
- package/dist/preview-engine/chunk-47VT677S.mjs +8 -0
- package/dist/preview-engine/chunk-4BEJJKEU.mjs +315 -0
- package/dist/preview-engine/chunk-4GEWSUX5.mjs +1 -0
- package/dist/preview-engine/chunk-55CCFPUX.mjs +237 -0
- package/dist/preview-engine/chunk-5JD65JSJ.mjs +110 -0
- package/dist/preview-engine/chunk-5UP7FSGT.mjs +294 -0
- package/dist/preview-engine/chunk-5XDHHOF2.mjs +367 -0
- package/dist/preview-engine/chunk-6YJP57MZ.mjs +729 -0
- package/dist/preview-engine/chunk-6ZOXGAYA.mjs +112 -0
- package/dist/preview-engine/chunk-AOLAHYVV.mjs +529 -0
- package/dist/preview-engine/chunk-B6PLCMBM.mjs +1 -0
- package/dist/preview-engine/chunk-BJKH76OM.mjs +264 -0
- package/dist/preview-engine/chunk-BUIQ5TUH.mjs +104 -0
- package/dist/preview-engine/chunk-BVF64D6H.mjs +1 -0
- package/dist/preview-engine/chunk-CA5N7JRZ.mjs +138 -0
- package/dist/preview-engine/chunk-CNSHAFEA.mjs +1 -0
- package/dist/preview-engine/chunk-CURR5X7D.mjs +1 -0
- package/dist/preview-engine/chunk-CVGM2U4J.mjs +47 -0
- package/dist/preview-engine/chunk-CYY366IE.mjs +1 -0
- package/dist/preview-engine/chunk-D5PHI6ET.mjs +109 -0
- package/dist/preview-engine/chunk-D7MZHP2Y.mjs +275 -0
- package/dist/preview-engine/chunk-DPPH3NK2.mjs +182 -0
- package/dist/preview-engine/chunk-DPST2XLC.mjs +418 -0
- package/dist/preview-engine/chunk-DRLEOHN5.mjs +1 -0
- package/dist/preview-engine/chunk-EDIZNO3P.mjs +1 -0
- package/dist/preview-engine/chunk-EHIIT4ZR.mjs +52 -0
- package/dist/preview-engine/chunk-FKZ4XXPE.mjs +1 -0
- package/dist/preview-engine/chunk-G3HW4VER.mjs +60 -0
- package/dist/preview-engine/chunk-G76HSKOS.mjs +184 -0
- package/dist/preview-engine/chunk-GYG2IIBR.mjs +1 -0
- package/dist/preview-engine/chunk-H2F5NVQ6.mjs +63 -0
- package/dist/preview-engine/chunk-H5BPCY7N.mjs +188 -0
- package/dist/preview-engine/chunk-HAXK42HG.mjs +997 -0
- package/dist/preview-engine/chunk-HXMDPMLB.mjs +1 -0
- package/dist/preview-engine/chunk-HYBAPT6I.mjs +1 -0
- package/dist/preview-engine/chunk-I4FH6HYU.mjs +73 -0
- package/dist/preview-engine/chunk-IYVN2QEL.mjs +1 -0
- package/dist/preview-engine/chunk-JPXQPP6J.mjs +1 -0
- package/dist/preview-engine/chunk-JWNHTRED.mjs +164 -0
- package/dist/preview-engine/chunk-KZOLCZIV.mjs +103 -0
- package/dist/preview-engine/chunk-L62MRHGZ.mjs +89 -0
- package/dist/preview-engine/chunk-LEEZXHQO.mjs +117 -0
- package/dist/preview-engine/chunk-LKYN3BM2.mjs +1 -0
- package/dist/preview-engine/chunk-LP3EP33S.mjs +610 -0
- package/dist/preview-engine/chunk-M2GRYRLM.mjs +111 -0
- package/dist/preview-engine/chunk-MC7TZZLD.mjs +134 -0
- package/dist/preview-engine/chunk-MT2DZQHO.mjs +1 -0
- package/dist/preview-engine/chunk-MTJHQATU.mjs +1 -0
- package/dist/preview-engine/chunk-N4LHIPHZ.mjs +340 -0
- package/dist/preview-engine/chunk-N4PWLBZ7.mjs +5 -0
- package/dist/preview-engine/chunk-NQZKBFC6.mjs +40 -0
- package/dist/preview-engine/chunk-NWRSVVTF.mjs +186 -0
- package/dist/preview-engine/chunk-P3HBP725.mjs +1 -0
- package/dist/preview-engine/chunk-PIAJWALT.mjs +1 -0
- package/dist/preview-engine/chunk-PJ3DVG45.mjs +1 -0
- package/dist/preview-engine/chunk-QP2NI4XD.mjs +82 -0
- package/dist/preview-engine/chunk-SA3JUR6D.mjs +52 -0
- package/dist/preview-engine/chunk-SRT2OCQW.mjs +1 -0
- package/dist/preview-engine/chunk-SWD76532.mjs +98 -0
- package/dist/preview-engine/chunk-SXX7HX34.mjs +191 -0
- package/dist/preview-engine/chunk-SZ7YRPKO.mjs +3 -0
- package/dist/preview-engine/chunk-TMRLZV5X.mjs +1 -0
- package/dist/preview-engine/chunk-U446SQP3.mjs +292 -0
- package/dist/preview-engine/chunk-UDNCEHUI.mjs +141 -0
- package/dist/preview-engine/chunk-V3H7WWOT.mjs +271 -0
- package/dist/preview-engine/chunk-V7ZVVUQU.mjs +108 -0
- package/dist/preview-engine/chunk-VJGK7MLJ.mjs +3 -0
- package/dist/preview-engine/chunk-VSSB73UU.mjs +58 -0
- package/dist/preview-engine/chunk-VXUJWPIK.mjs +1 -0
- package/dist/preview-engine/chunk-XD4GKD6H.mjs +5 -0
- package/dist/preview-engine/chunk-XKO4RYKN.mjs +3 -0
- package/dist/preview-engine/chunk-XOEEGC4Z.mjs +1 -0
- package/dist/preview-engine/chunk-YAQFFQPG.mjs +1 -0
- package/dist/preview-engine/chunk-YKMBRUAE.mjs +1 -0
- package/dist/preview-engine/chunk-YSTLMWCG.mjs +1 -0
- package/dist/preview-engine/chunk-Z4ERCLNF.mjs +1 -0
- package/dist/preview-engine/chunk-ZEYUXJIV.mjs +1 -0
- package/dist/preview-engine/chunk-ZX6APG6E.mjs +117 -0
- package/dist/preview-engine/effects.mjs +1 -0
- package/dist/preview-engine/esbuild-GWV7CM7D.mjs +1 -0
- package/dist/preview-engine/fonts.mjs +1 -0
- package/dist/preview-engine/framefields.mjs +1959 -0
- package/dist/preview-engine/onnxruntime-node-56GSZEH3.mjs +1 -0
- package/dist/preview-engine/player.mjs +155 -0
- package/dist/preview-engine/renderers-2AUSIYZN.mjs +1 -0
- package/dist/preview-engine/renderers-2QN6KZJP.mjs +1 -0
- package/dist/preview-engine/renderers-32SKW7ML.mjs +1 -0
- package/dist/preview-engine/renderers-5QYK6766.mjs +1 -0
- package/dist/preview-engine/renderers-6BJA6MSU.mjs +251 -0
- package/dist/preview-engine/renderers-6QAF3LQ2.mjs +1 -0
- package/dist/preview-engine/renderers-7AO5746S.mjs +296 -0
- package/dist/preview-engine/renderers-AFYKNM6N.mjs +1 -0
- package/dist/preview-engine/renderers-AGMH5CRH.mjs +1 -0
- package/dist/preview-engine/renderers-AHSGP6LY.mjs +126 -0
- package/dist/preview-engine/renderers-ASTBICLA.mjs +1 -0
- package/dist/preview-engine/renderers-BHVPLYNN.mjs +1 -0
- package/dist/preview-engine/renderers-D7PVQFVU.mjs +1 -0
- package/dist/preview-engine/renderers-DB4ABTNA.mjs +1 -0
- package/dist/preview-engine/renderers-F2NFJI5L.mjs +1 -0
- package/dist/preview-engine/renderers-FI7YHNLY.mjs +1 -0
- package/dist/preview-engine/renderers-GBHULMPH.mjs +1 -0
- package/dist/preview-engine/renderers-GUKQUMGG.mjs +55 -0
- package/dist/preview-engine/renderers-HGT7QDY3.mjs +1 -0
- package/dist/preview-engine/renderers-HOYLA7ZK.mjs +1 -0
- package/dist/preview-engine/renderers-KKI2D3MZ.mjs +1 -0
- package/dist/preview-engine/renderers-KRAJNV4E.mjs +1 -0
- package/dist/preview-engine/renderers-KUGZKSVE.mjs +1 -0
- package/dist/preview-engine/renderers-L2EQQIOC.mjs +1 -0
- package/dist/preview-engine/renderers-LK3NRMGR.mjs +1 -0
- package/dist/preview-engine/renderers-LX654SZ3.mjs +1 -0
- package/dist/preview-engine/renderers-MCFQFYEL.mjs +1 -0
- package/dist/preview-engine/renderers-O6HOYIPS.mjs +1 -0
- package/dist/preview-engine/renderers-OEVXCGE2.mjs +1 -0
- package/dist/preview-engine/renderers-QVD6C4CS.mjs +1 -0
- package/dist/preview-engine/renderers-R3XEYD5V.mjs +248 -0
- package/dist/preview-engine/renderers-RBFWJWVM.mjs +1 -0
- package/dist/preview-engine/renderers-RX3VLVLO.mjs +1 -0
- package/dist/preview-engine/renderers-SM6JP64K.mjs +1 -0
- package/dist/preview-engine/renderers-TKMAATVS.mjs +1 -0
- package/dist/preview-engine/renderers-UGZUPONY.mjs +1 -0
- package/dist/preview-engine/renderers-UTFXZE3G.mjs +1 -0
- package/dist/preview-engine/renderers-UWPH7HBH.mjs +1 -0
- package/dist/preview-engine/renderers-UZGECFVO.mjs +1 -0
- package/dist/preview-engine/renderers-VGU3LNLT.mjs +1 -0
- package/dist/preview-engine/renderers-W3VVM5HB.mjs +1 -0
- package/dist/preview-engine/renderers-WJUTT5BB.mjs +1 -0
- package/dist/preview-engine/renderers-XA2M4YXK.mjs +1 -0
- package/dist/preview-engine/renderers-XIHRFEFQ.mjs +1 -0
- package/dist/preview-engine/renderers-XJTA5MFG.mjs +1 -0
- package/dist/preview-engine/renderers-XLTY5APF.mjs +1 -0
- package/dist/preview-engine/renderers-XZ3VXFGZ.mjs +1 -0
- package/dist/preview-engine/renderers-YKUQUCTO.mjs +124 -0
- package/dist/preview-engine/renderers-YVN3EIOP.mjs +1 -0
- package/dist/preview-engine/renderers-YWRP23SZ.mjs +125 -0
- package/dist/preview-engine/renderers-ZPWOUWZJ.mjs +120 -0
- package/dist/preview-engine/resvg-js-VMU4A77S.mjs +1 -0
- package/dist/preview-engine/server-utils-2FAIV45N.mjs +1 -0
- package/dist/preview-engine/sharp-V6ZTBNDW.mjs +1 -0
- package/dist/preview-engine/shims/fs-promises.mjs +1 -0
- package/dist/preview-engine/shims/fs.mjs +1 -0
- package/dist/preview-engine/shims/module.mjs +1 -0
- package/dist/preview-engine/shims/os.mjs +1 -0
- package/dist/preview-engine/shims/path.mjs +1 -0
- package/dist/preview-engine/shims/url.mjs +1 -0
- package/dist/preview-engine/signals.mjs +1 -0
- package/dist/preview-engine/webgpu-NSSANM4F.mjs +1 -0
- package/dist/preview-uQM210iy.mjs +2149 -0
- package/dist/preview-uQM210iy.mjs.map +1 -0
- package/dist/program-Dl510wmI.mjs +5183 -0
- package/dist/program-Dl510wmI.mjs.map +1 -0
- package/dist/renderer/index.d.mts +3 -0
- package/dist/renderer/index.mjs +6 -0
- package/dist/renderer-3BNskNuJ.mjs +3 -0
- package/dist/renderer-7DOcIxFG.mjs +288 -0
- package/dist/renderer-7DOcIxFG.mjs.map +1 -0
- package/dist/renderer-9dHlMQGX.mjs +3 -0
- package/dist/renderer-B1CvhW4p.mjs +677 -0
- package/dist/renderer-B1CvhW4p.mjs.map +1 -0
- package/dist/renderer-B2XzjK0z.mjs +3 -0
- package/dist/renderer-B80s47yo.mjs +166 -0
- package/dist/renderer-B80s47yo.mjs.map +1 -0
- package/dist/renderer-B9-QSJcG.mjs +479 -0
- package/dist/renderer-B9-QSJcG.mjs.map +1 -0
- package/dist/renderer-BAQmR0Zo.mjs +3 -0
- package/dist/renderer-BDLnExoP.mjs +127 -0
- package/dist/renderer-BDLnExoP.mjs.map +1 -0
- package/dist/renderer-BGXU6vcW.mjs +270 -0
- package/dist/renderer-BGXU6vcW.mjs.map +1 -0
- package/dist/renderer-BGvORwkQ.mjs +3 -0
- package/dist/renderer-BLikd6BK.mjs +3 -0
- package/dist/renderer-BMovYRoR.mjs +3 -0
- package/dist/renderer-BQHbp-Sp.mjs +243 -0
- package/dist/renderer-BQHbp-Sp.mjs.map +1 -0
- package/dist/renderer-BREIjsUU.mjs +252 -0
- package/dist/renderer-BREIjsUU.mjs.map +1 -0
- package/dist/renderer-BSbTJBWc.mjs +3 -0
- package/dist/renderer-BTu2EVhF.mjs +3 -0
- package/dist/renderer-BU1rwNRT.mjs +3 -0
- package/dist/renderer-BXMmISWG.mjs +499 -0
- package/dist/renderer-BXMmISWG.mjs.map +1 -0
- package/dist/renderer-BZJm3m4f.mjs +3 -0
- package/dist/renderer-B_NuVaIP.mjs +744 -0
- package/dist/renderer-B_NuVaIP.mjs.map +1 -0
- package/dist/renderer-BfJSUjPN.mjs +3 -0
- package/dist/renderer-BqyAgNt3.mjs +3 -0
- package/dist/renderer-BryTM2g7.mjs +3 -0
- package/dist/renderer-BsgIcBKH.mjs +391 -0
- package/dist/renderer-BsgIcBKH.mjs.map +1 -0
- package/dist/renderer-ByDhfrPE.mjs +422 -0
- package/dist/renderer-ByDhfrPE.mjs.map +1 -0
- package/dist/renderer-C-H680_l.mjs +3 -0
- package/dist/renderer-C17wL9QX.mjs +181 -0
- package/dist/renderer-C17wL9QX.mjs.map +1 -0
- package/dist/renderer-C2n-EHxg.mjs +1 -0
- package/dist/renderer-CB5aWAaf.mjs +343 -0
- package/dist/renderer-CB5aWAaf.mjs.map +1 -0
- package/dist/renderer-CB7lH5K8.mjs +3 -0
- package/dist/renderer-CDLrNgfo.mjs +3 -0
- package/dist/renderer-CDOUAN7X.mjs +454 -0
- package/dist/renderer-CDOUAN7X.mjs.map +1 -0
- package/dist/renderer-CH8sdfYX.mjs +387 -0
- package/dist/renderer-CH8sdfYX.mjs.map +1 -0
- package/dist/renderer-CIvaRnP_.mjs +261 -0
- package/dist/renderer-CIvaRnP_.mjs.map +1 -0
- package/dist/renderer-CMzEjdzi.mjs +369 -0
- package/dist/renderer-CMzEjdzi.mjs.map +1 -0
- package/dist/renderer-COkcU3db.mjs +3302 -0
- package/dist/renderer-COkcU3db.mjs.map +1 -0
- package/dist/renderer-CQCoggIa.mjs +3 -0
- package/dist/renderer-CQdVj2JS.mjs +3 -0
- package/dist/renderer-CQiTodg9.mjs +337 -0
- package/dist/renderer-CQiTodg9.mjs.map +1 -0
- package/dist/renderer-CV2m6k1V.mjs +3 -0
- package/dist/renderer-CYY-poLe.mjs +3 -0
- package/dist/renderer-CZgB5st8.mjs +3 -0
- package/dist/renderer-C_Ki91kc.mjs +3 -0
- package/dist/renderer-CclIvsLO.mjs +3 -0
- package/dist/renderer-Cj-whdVr.mjs +655 -0
- package/dist/renderer-Cj-whdVr.mjs.map +1 -0
- package/dist/renderer-CkykdR_D.mjs +3 -0
- package/dist/renderer-Cl1oUXMi.mjs +1143 -0
- package/dist/renderer-Cl1oUXMi.mjs.map +1 -0
- package/dist/renderer-CmApuKjS.mjs +3 -0
- package/dist/renderer-CpkiHRhh.mjs +269 -0
- package/dist/renderer-CpkiHRhh.mjs.map +1 -0
- package/dist/renderer-CszOjcRW.mjs +3 -0
- package/dist/renderer-CtVkU_GA.mjs +44 -0
- package/dist/renderer-CtVkU_GA.mjs.map +1 -0
- package/dist/renderer-Cu074POw.mjs +3 -0
- package/dist/renderer-CwQhzcUn.mjs +644 -0
- package/dist/renderer-CwQhzcUn.mjs.map +1 -0
- package/dist/renderer-CzPWB0Ss.mjs +273 -0
- package/dist/renderer-CzPWB0Ss.mjs.map +1 -0
- package/dist/renderer-D4qLmox-.mjs +3 -0
- package/dist/renderer-D6bWQtr-.mjs +3 -0
- package/dist/renderer-D6cJ6MSq.mjs +3 -0
- package/dist/renderer-D7EX8IjU.mjs +240 -0
- package/dist/renderer-D7EX8IjU.mjs.map +1 -0
- package/dist/renderer-DDp7_TUi.d.mts +10 -0
- package/dist/renderer-DDp7_TUi.d.mts.map +1 -0
- package/dist/renderer-DFKsLrUs.mjs +256 -0
- package/dist/renderer-DFKsLrUs.mjs.map +1 -0
- package/dist/renderer-DPSsf8-t.mjs +3 -0
- package/dist/renderer-DQLGnEFc.mjs +3 -0
- package/dist/renderer-DY2SVYUW.mjs +3 -0
- package/dist/renderer-DZGtBUCx.mjs +792 -0
- package/dist/renderer-DZGtBUCx.mjs.map +1 -0
- package/dist/renderer-DabG62XS.mjs +406 -0
- package/dist/renderer-DabG62XS.mjs.map +1 -0
- package/dist/renderer-DbaQLI4z.mjs +771 -0
- package/dist/renderer-DbaQLI4z.mjs.map +1 -0
- package/dist/renderer-DjI45OYC.mjs +71 -0
- package/dist/renderer-DjI45OYC.mjs.map +1 -0
- package/dist/renderer-Dm08-hAU.mjs +323 -0
- package/dist/renderer-Dm08-hAU.mjs.map +1 -0
- package/dist/renderer-DoAY5JbB.mjs +4 -0
- package/dist/renderer-Dp_FfvF-.mjs +401 -0
- package/dist/renderer-Dp_FfvF-.mjs.map +1 -0
- package/dist/renderer-Dt6fzgX5.mjs +756 -0
- package/dist/renderer-Dt6fzgX5.mjs.map +1 -0
- package/dist/renderer-DuplLRbp.mjs +3 -0
- package/dist/renderer-DvfUbZ31.mjs +3 -0
- package/dist/renderer-DxjVQV6f.mjs +311 -0
- package/dist/renderer-DxjVQV6f.mjs.map +1 -0
- package/dist/renderer-Fco4EmAu.mjs +23868 -0
- package/dist/renderer-Fco4EmAu.mjs.map +1 -0
- package/dist/renderer-HFfcJlmR.mjs +981 -0
- package/dist/renderer-HFfcJlmR.mjs.map +1 -0
- package/dist/renderer-I-Sw3JBB.mjs +145 -0
- package/dist/renderer-I-Sw3JBB.mjs.map +1 -0
- package/dist/renderer-OWQmmg4Z.mjs +697 -0
- package/dist/renderer-OWQmmg4Z.mjs.map +1 -0
- package/dist/renderer-Q_uUQipO.mjs +3 -0
- package/dist/renderer-Ryo2CEFD.mjs +586 -0
- package/dist/renderer-Ryo2CEFD.mjs.map +1 -0
- package/dist/renderer-Tp6OXWNZ.mjs +257 -0
- package/dist/renderer-Tp6OXWNZ.mjs.map +1 -0
- package/dist/renderer-UQFCgeNx.mjs +3 -0
- package/dist/renderer-WkVrkCVA.mjs +83 -0
- package/dist/renderer-WkVrkCVA.mjs.map +1 -0
- package/dist/renderer-XcmYTd6P.mjs +3818 -0
- package/dist/renderer-XcmYTd6P.mjs.map +1 -0
- package/dist/renderer-_uvdg48N.mjs +333 -0
- package/dist/renderer-_uvdg48N.mjs.map +1 -0
- package/dist/renderer-bZU_ndxf.mjs +8 -0
- package/dist/renderer-bZU_ndxf.mjs.map +1 -0
- package/dist/renderer-eMsnzJg9.mjs +3 -0
- package/dist/renderer-ho_jXJ0H.mjs +254 -0
- package/dist/renderer-ho_jXJ0H.mjs.map +1 -0
- package/dist/renderer-k2JL79kM.mjs +306 -0
- package/dist/renderer-k2JL79kM.mjs.map +1 -0
- package/dist/renderer-pHiz78e0.mjs +3 -0
- package/dist/renderer-pxXf9dvk.mjs +394 -0
- package/dist/renderer-pxXf9dvk.mjs.map +1 -0
- package/dist/renderer-vCFTm0oe.mjs +226 -0
- package/dist/renderer-vCFTm0oe.mjs.map +1 -0
- package/dist/renderer-vvpdx1vk.mjs +379 -0
- package/dist/renderer-vvpdx1vk.mjs.map +1 -0
- package/dist/renderer-x2s9LmVL.mjs +1121 -0
- package/dist/renderer-x2s9LmVL.mjs.map +1 -0
- package/dist/renderers-BWg16W-V-BXG_cjhM.mjs +49 -0
- package/dist/renderers-BWg16W-V-BXG_cjhM.mjs.map +1 -0
- package/dist/signals/index.d.mts +7 -0
- package/dist/signals/index.mjs +10 -0
- package/dist/signals-BwbdO3AN.mjs +224 -0
- package/dist/signals-BwbdO3AN.mjs.map +1 -0
- package/dist/signin-CZj4Oc5s.mjs +865 -0
- package/dist/signin-CZj4Oc5s.mjs.map +1 -0
- package/dist/sso-oidc-C0_31ThY.mjs +1051 -0
- package/dist/sso-oidc-C0_31ThY.mjs.map +1 -0
- package/dist/sts-DD4ggEXC.mjs +6 -0
- package/dist/sts-nXw8RDJI.mjs +1395 -0
- package/dist/sts-nXw8RDJI.mjs.map +1 -0
- package/package.json +173 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import{a as K}from"./chunk-XOEEGC4Z.mjs";import{b as J,c as Q}from"./chunk-IYVN2QEL.mjs";import{a as s}from"./chunk-NQZKBFC6.mjs";import{a as j}from"./chunk-YSTLMWCG.mjs";import{d as q}from"./chunk-6YJP57MZ.mjs";import{e as b}from"./chunk-BVF64D6H.mjs";b();b();b();b();var R=500,I=100,c=4096,Pe=s.object({id:s.string().default(()=>Math.random().toString(36).substring(7)),centerX:s.number().min(0).max(1).default(.5),centerY:s.number().min(0).max(1).default(.5),offsetX:s.number().min(-c).max(c).default(50),offsetY:s.number().min(-c).max(c).default(0),radius:s.number().min(1).max(R).default(25),sourceRadius:s.number().min(1).max(R).default(25),feather:s.number().min(0).max(I).default(50),opacity:s.number().min(0).max(1).default(1),mode:s.enum(["Clone","SeamlessHeal","TextureTransfer"]).default("SeamlessHeal")}),Ge=K().field("patches",s.array(Pe).optional(),{label:"Patches",description:"List of patch healing operations applied sequentially."}).field("centerX",s.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center X Signal",description:"Horizontal normalized position of destination patch (0.0 to 1.0)."}).field("centerY",s.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center Y Signal",description:"Vertical normalized position of destination patch (0.0 to 1.0)."}).field("offsetX",s.number().min(-c).max(c).default(50),{bindable:!0,dataTypes:["Number","Signal"],label:"Source Offset X Signal",description:"Horizontal pixel distance from destination to sample source patch."}).field("offsetY",s.number().min(-c).max(c).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Source Offset Y Signal",description:"Vertical pixel distance from destination to sample source patch."}).field("radius",s.number().min(1).max(R).default(25),{bindable:!0,dataTypes:["Number","Signal"],label:"Target Radius Signal",description:"Radius of the destination circular patch in pixels (used when no explicit Mask input is connected)."}).field("sourceRadius",s.number().min(1).max(R).default(25),{bindable:!0,dataTypes:["Number","Signal"],label:"Source Radius Signal",description:"Radius of the source sample circular patch in pixels."}).field("feather",s.number().min(0).max(I).default(50),{bindable:!0,dataTypes:["Number","Signal"],label:"Feather Signal",description:"Softness edge falloff percentage (0\u2013100%)."}).field("opacity",s.number().min(0).max(1).default(1),{bindable:!0,dataTypes:["Number","Signal"],label:"Opacity Signal",description:"Blending opacity of the healed patch (0.0\u20131.0)."}).field("mode",s.enum(["Clone","SeamlessHeal","TextureTransfer"]).default("SeamlessHeal"),{label:"Healing Mode",description:"Healing algorithm: Clone (direct stamp), SeamlessHeal (Poisson color/lighting blend), TextureTransfer (luminance structure matching)."}).build(),Ve=Ge.schema;function Z(a){if(a?.patches&&a.patches.length>0)return a.patches.map((r,P)=>({id:r.id||`patch-${P+1}`,centerX:r.centerX??.5,centerY:r.centerY??.5,offsetX:r.offsetX??50,offsetY:r.offsetY??0,radius:r.radius??25,sourceRadius:r.sourceRadius??r.radius??25,feather:r.feather??50,opacity:r.opacity??1,mode:r.mode??"SeamlessHeal"}));let e=a?.radius??25;return[{id:"patch-1",centerX:a?.centerX??.5,centerY:a?.centerY??.5,offsetX:a?.offsetX??50,offsetY:a?.offsetY??0,radius:e,sourceRadius:a?.sourceRadius??e,feather:a?.feather??50,opacity:a?.opacity??1,mode:a?.mode??"SeamlessHeal"}]}var _e=s.union([J,Q]);var Ce=`
|
|
2
|
+
struct VertexOutput {
|
|
3
|
+
@builtin(position) position : vec4<f32>,
|
|
4
|
+
@location(0) uv : vec2<f32>,
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
@vertex
|
|
8
|
+
fn vs_main(@builtin(vertex_index) vertexIndex : u32) -> VertexOutput {
|
|
9
|
+
var pos = array<vec2<f32>, 4>(
|
|
10
|
+
vec2<f32>(-1.0, 1.0),
|
|
11
|
+
vec2<f32>( 1.0, 1.0),
|
|
12
|
+
vec2<f32>(-1.0, -1.0),
|
|
13
|
+
vec2<f32>( 1.0, -1.0)
|
|
14
|
+
);
|
|
15
|
+
var uvs = array<vec2<f32>, 4>(
|
|
16
|
+
vec2<f32>(0.0, 0.0),
|
|
17
|
+
vec2<f32>(1.0, 0.0),
|
|
18
|
+
vec2<f32>(0.0, 1.0),
|
|
19
|
+
vec2<f32>(1.0, 1.0)
|
|
20
|
+
);
|
|
21
|
+
var output : VertexOutput;
|
|
22
|
+
output.position = vec4<f32>(pos[vertexIndex], 0.0, 1.0);
|
|
23
|
+
output.uv = uvs[vertexIndex];
|
|
24
|
+
return output;
|
|
25
|
+
}
|
|
26
|
+
`,Me=`
|
|
27
|
+
struct PatchHealUniforms {
|
|
28
|
+
offsetX : f32,
|
|
29
|
+
offsetY : f32,
|
|
30
|
+
centerX : f32,
|
|
31
|
+
centerY : f32,
|
|
32
|
+
|
|
33
|
+
radius : f32,
|
|
34
|
+
sourceRadius : f32,
|
|
35
|
+
feather : f32,
|
|
36
|
+
opacity : f32,
|
|
37
|
+
|
|
38
|
+
mode : f32,
|
|
39
|
+
hasMask : f32,
|
|
40
|
+
hasOffsetXSig : f32,
|
|
41
|
+
hasOffsetYSig : f32,
|
|
42
|
+
|
|
43
|
+
hasCenterXSig : f32,
|
|
44
|
+
hasCenterYSig : f32,
|
|
45
|
+
hasRadiusSig : f32,
|
|
46
|
+
hasSourceRadSig : f32,
|
|
47
|
+
|
|
48
|
+
hasFeatherSig : f32,
|
|
49
|
+
hasOpacitySig : f32,
|
|
50
|
+
pad0 : f32,
|
|
51
|
+
pad1 : f32,
|
|
52
|
+
};
|
|
53
|
+
`,Xe=`
|
|
54
|
+
${Me}
|
|
55
|
+
|
|
56
|
+
@group(0) @binding(0) var<uniform> u : PatchHealUniforms;
|
|
57
|
+
|
|
58
|
+
@group(1) @binding(0) var srcTex : texture_2d<f32>;
|
|
59
|
+
@group(1) @binding(1) var maskTex : texture_2d<f32>;
|
|
60
|
+
@group(1) @binding(2) var samp : sampler;
|
|
61
|
+
|
|
62
|
+
@group(2) @binding(0) var offsetXSigTex : texture_2d<f32>;
|
|
63
|
+
@group(2) @binding(1) var offsetYSigTex : texture_2d<f32>;
|
|
64
|
+
@group(2) @binding(2) var centerXSigTex : texture_2d<f32>;
|
|
65
|
+
@group(2) @binding(3) var centerYSigTex : texture_2d<f32>;
|
|
66
|
+
@group(2) @binding(4) var radiusSigTex : texture_2d<f32>;
|
|
67
|
+
@group(2) @binding(5) var sourceRadSigTex : texture_2d<f32>;
|
|
68
|
+
@group(2) @binding(6) var featherSigTex : texture_2d<f32>;
|
|
69
|
+
@group(2) @binding(7) var opacitySigTex : texture_2d<f32>;
|
|
70
|
+
@group(2) @binding(8) var signalSamp : sampler;
|
|
71
|
+
|
|
72
|
+
fn getLuminance(c : vec3<f32>) -> f32 {
|
|
73
|
+
return dot(c, vec3<f32>(0.2126, 0.7152, 0.0722));
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
fn sampleBoxBlur(tex : texture_2d<f32>, smp : sampler, centerUv : vec2<f32>, blurPx : f32, dims : vec2<f32>) -> vec4<f32> {
|
|
77
|
+
let texel = 1.0 / dims;
|
|
78
|
+
let stepSize = max(1.0, blurPx / 3.0);
|
|
79
|
+
var accum = vec4<f32>(0.0);
|
|
80
|
+
var count = 0.0;
|
|
81
|
+
|
|
82
|
+
for (var y = -2; y <= 2; y++) {
|
|
83
|
+
for (var x = -2; x <= 2; x++) {
|
|
84
|
+
let offset = vec2<f32>(f32(x) * stepSize, f32(y) * stepSize) * texel;
|
|
85
|
+
let sampleUv = clamp(centerUv + offset, vec2<f32>(0.0), vec2<f32>(1.0));
|
|
86
|
+
accum += textureSampleLevel(tex, smp, sampleUv, 0.0);
|
|
87
|
+
count += 1.0;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return accum / count;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@fragment
|
|
94
|
+
fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
|
|
95
|
+
let dimensions = vec2<f32>(textureDimensions(srcTex));
|
|
96
|
+
|
|
97
|
+
var offsetX = u.offsetX;
|
|
98
|
+
if (u.hasOffsetXSig > 0.5) {
|
|
99
|
+
offsetX = textureSampleLevel(offsetXSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
100
|
+
}
|
|
101
|
+
var offsetY = u.offsetY;
|
|
102
|
+
if (u.hasOffsetYSig > 0.5) {
|
|
103
|
+
offsetY = textureSampleLevel(offsetYSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
104
|
+
}
|
|
105
|
+
var centerX = u.centerX;
|
|
106
|
+
if (u.hasCenterXSig > 0.5) {
|
|
107
|
+
centerX = textureSampleLevel(centerXSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
108
|
+
}
|
|
109
|
+
var centerY = u.centerY;
|
|
110
|
+
if (u.hasCenterYSig > 0.5) {
|
|
111
|
+
centerY = textureSampleLevel(centerYSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
112
|
+
}
|
|
113
|
+
var radius = u.radius;
|
|
114
|
+
if (u.hasRadiusSig > 0.5) {
|
|
115
|
+
radius = textureSampleLevel(radiusSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
116
|
+
}
|
|
117
|
+
var sourceRadius = u.sourceRadius;
|
|
118
|
+
if (u.hasSourceRadSig > 0.5) {
|
|
119
|
+
sourceRadius = textureSampleLevel(sourceRadSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
120
|
+
}
|
|
121
|
+
var feather = u.feather;
|
|
122
|
+
if (u.hasFeatherSig > 0.5) {
|
|
123
|
+
feather = textureSampleLevel(featherSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
124
|
+
}
|
|
125
|
+
var opacity = u.opacity;
|
|
126
|
+
if (u.hasOpacitySig > 0.5) {
|
|
127
|
+
opacity = textureSampleLevel(opacitySigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
let dstCol = textureSampleLevel(srcTex, samp, in.uv, 0.0);
|
|
131
|
+
|
|
132
|
+
// Calculate mask weight (either from explicit mask or procedural circular patch)
|
|
133
|
+
var maskWeight = 0.0;
|
|
134
|
+
let targetCenterUV = vec2<f32>(centerX, centerY);
|
|
135
|
+
|
|
136
|
+
if (u.hasMask > 0.5) {
|
|
137
|
+
let maskCol = textureSampleLevel(maskTex, samp, in.uv, 0.0);
|
|
138
|
+
maskWeight = max(maskCol.a, max(maskCol.r, max(maskCol.g, maskCol.b)));
|
|
139
|
+
} else {
|
|
140
|
+
let distPx = length((in.uv - targetCenterUV) * dimensions);
|
|
141
|
+
let innerRadius = radius * max(0.0, 1.0 - feather / 100.0);
|
|
142
|
+
maskWeight = 1.0 - smoothstep(innerRadius, max(innerRadius + 0.001, radius), distPx);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
let blendWeight = clamp(maskWeight * opacity, 0.0, 1.0);
|
|
146
|
+
if (blendWeight < 1e-4) {
|
|
147
|
+
return dstCol;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// Compute source sample coordinate (scaling from sourceRadius to target radius if different)
|
|
151
|
+
let sourceCenterUV = targetCenterUV + vec2<f32>(offsetX, offsetY) / dimensions;
|
|
152
|
+
let srcScale = max(1.0, sourceRadius) / max(1.0, radius);
|
|
153
|
+
let uvFromTargetCenter = in.uv - targetCenterUV;
|
|
154
|
+
let srcUV = clamp(sourceCenterUV + uvFromTargetCenter * srcScale, vec2<f32>(0.0), vec2<f32>(1.0));
|
|
155
|
+
let srcCol = textureSampleLevel(srcTex, samp, srcUV, 0.0);
|
|
156
|
+
|
|
157
|
+
var healedCol = srcCol;
|
|
158
|
+
|
|
159
|
+
if (u.mode > 0.5 && u.mode < 1.5) {
|
|
160
|
+
// Mode 1: Seamless Heal (Poisson gradient / local illumination matching)
|
|
161
|
+
let blurRadius = max(4.0, radius * 0.4);
|
|
162
|
+
let srcBlur = sampleBoxBlur(srcTex, samp, srcUV, blurRadius, dimensions);
|
|
163
|
+
let dstBlur = sampleBoxBlur(srcTex, samp, in.uv, blurRadius, dimensions);
|
|
164
|
+
|
|
165
|
+
let srcDetail = srcCol.rgb - srcBlur.rgb;
|
|
166
|
+
let healedRgb = dstBlur.rgb + srcDetail;
|
|
167
|
+
let clampedRgb = clamp(healedRgb, vec3<f32>(0.0), vec3<f32>(srcCol.a));
|
|
168
|
+
healedCol = vec4<f32>(clampedRgb, srcCol.a);
|
|
169
|
+
} else if (u.mode >= 1.5) {
|
|
170
|
+
// Mode 2: Texture Transfer (Luminance structure matching)
|
|
171
|
+
let blurRadius = max(4.0, radius * 0.4);
|
|
172
|
+
let srcBlur = sampleBoxBlur(srcTex, samp, srcUV, blurRadius, dimensions);
|
|
173
|
+
|
|
174
|
+
let lumaSrc = getLuminance(srcCol.rgb);
|
|
175
|
+
let lumaSrcBlur = getLuminance(srcBlur.rgb);
|
|
176
|
+
let lumaDelta = lumaSrc - lumaSrcBlur;
|
|
177
|
+
|
|
178
|
+
let healedRgb = dstCol.rgb + vec3<f32>(lumaDelta);
|
|
179
|
+
let clampedRgb = clamp(healedRgb, vec3<f32>(0.0), vec3<f32>(dstCol.a));
|
|
180
|
+
healedCol = vec4<f32>(clampedRgb, dstCol.a);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
return mix(dstCol, healedCol, blendWeight);
|
|
184
|
+
}
|
|
185
|
+
`,ee=new WeakMap;function He(a,e){let r=ee.get(a);if(r)return r;let P=a.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),U=a.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"}}]}),v=a.createBindGroupLayout({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,sampler:{type:"filtering"}}]}),L=a.createShaderModule({code:`${Ce}
|
|
186
|
+
${Xe}`}),F=a.createPipelineLayout({bindGroupLayouts:[P,U,v]}),i=a.createRenderPipeline({layout:F,vertex:{module:L,entryPoint:"vs_main"},fragment:{module:L,entryPoint:"fs_main",targets:[{format:e,blend:{color:{srcFactor:"one",dstFactor:"zero",operation:"add"},alpha:{srcFactor:"one",dstFactor:"zero",operation:"add"}}}]},primitive:{topology:"triangle-strip"}});return r={uniformLayout:P,textureLayout:U,signalTextureLayout:v,pipeline:i},ee.set(a,r),r}var te=async a=>{let{ctx:e,encoder:r,pass:P,targetView:U,targetTexture:v,targetWidth:L,targetHeight:F,props:i,drawChild:E}=a,m=i.virtualMedia?.operation;if(m?.op!=="PatchHeal"||!m)return;let N=i.virtualMedia?.children?.[0];if(!N)return;P.end();let l=L,u=F,D=i.frame??0,O=i.fps||30,ae=m.inputs?Object.keys(m.inputs)[0]:"patch_heal_node",Y=q,h=e.renderer.getTemporaryTexture(l,u,[...i.excludeTextures||[],v]),V=h.createView();e.renderer.beginFrame(r,V,{r:0,g:0,b:0,a:0},l,u,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:l,height:u}),e.renderer.pushIdentity(),await E(N,{...i,virtualMedia:N,renderId:`${i.renderId}-src`,excludeTextures:[...i.excludeTextures||[],h]},V,h,l,u),e.renderer.popTransform(),e.renderer.popScissor();let f=null;if(m.maskMedia){f=e.renderer.getTemporaryTexture(l,u,[...i.excludeTextures||[],v,h]);let p=f.createView();e.renderer.beginFrame(r,p,{r:0,g:0,b:0,a:0},l,u,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:l,height:u}),e.renderer.pushIdentity(),await E(m.maskMedia,{...i,virtualMedia:m.maskMedia,renderId:`${i.renderId}-mask`,excludeTextures:[...i.excludeTextures||[],h,f]},p,f,l,u),e.renderer.popTransform(),e.renderer.popScissor()}let{pipeline:re,uniformLayout:ie,textureLayout:se,signalTextureLayout:ne}=He(e.device,e.renderer.format),W=e.renderer.samplerCache.getSampler(e.device),oe=i.elapsedMs!==void 0?i.elapsedMs/1e3:D/O,le=i.virtualMedia?.metadata?.durationMs?i.virtualMedia.metadata.durationMs/1e3:i.durationMs!==void 0?i.durationMs/1e3:0,B=Z(m),S=(p,t,d,y)=>{let H=`${p}HandleId`,G=m[H],o=G?m.inputs?.[G]:null,C=!!(o?.connectionValid&&(o.outputItem?.type==="Signal"||o.outputItem?.type==="Numeric")),T=C&&o?.outputItem?.data?o.outputItem.data:null,x=t,M=!1;if(C)T&&(x=Math.max(d,Math.min(y,Number(T.offset??0))),M=!0);else if(o?.connectionValid&&o.outputItem?.type==="Number"){let g=typeof o.outputItem.data=="number"?o.outputItem.data:o.outputItem.data?.value??t;x=Math.max(d,Math.min(y,Number(g)))}else x=Math.max(d,Math.min(y,t));return{val:x,hasStaticSig:M,sd:T}},ue=f?f.createView():V,w=h,A=e.renderer.getTemporaryTexture(l,u,[h,...f?[f]:[],v,...i.excludeTextures||[]]),ce=B.length>1?e.renderer.getTemporaryTexture(l,u,[h,A,...f?[f]:[],v,...i.excludeTextures||[]]):A;for(let p=0;p<B.length;p++){let t=B[p],d=p===0,y=d?S("centerX",t.centerX,0,1):{val:t.centerX,hasStaticSig:!1,sd:null},H=d?S("centerY",t.centerY,0,1):{val:t.centerY,hasStaticSig:!1,sd:null},G=d?S("offsetX",t.offsetX,-c,c):{val:t.offsetX,hasStaticSig:!1,sd:null},o=d?S("offsetY",t.offsetY,-c,c):{val:t.offsetY,hasStaticSig:!1,sd:null},C=d?S("radius",t.radius,1,R):{val:t.radius,hasStaticSig:!1,sd:null},T=d?S("sourceRadius",t.sourceRadius??t.radius,1,R):{val:t.sourceRadius??t.radius,hasStaticSig:!1,sd:null},x=d?S("feather",t.feather,0,I):{val:t.feather,hasStaticSig:!1,sd:null},M=d?S("opacity",t.opacity,0,1):{val:t.opacity,hasStaticSig:!1,sd:null},g=(_,Re)=>_.hasStaticSig&&_.sd&&Y?Y.getOrCreate2DTextureView(e.device,r,_.sd.nodeId??`${ae}_${Re}`,oe,le,_.sd,l,u,i.renderId,D,O):Y?Y.getDummy1x1TextureView(e.device):V,de=g(G,"offsetX_sig"),fe=g(o,"offsetY_sig"),me=g(y,"centerX_sig"),pe=g(H,"centerY_sig"),ge=g(C,"radius_sig"),he=g(T,"sourceRadius_sig"),Se=g(x,"feather_sig"),xe=g(M,"opacity_sig"),be=t.mode==="Clone"?0:t.mode==="TextureTransfer"?2:1,n=new Float32Array(20);n[0]=G.val,n[1]=o.val,n[2]=y.val,n[3]=H.val,n[4]=C.val,n[5]=T.val,n[6]=x.val,n[7]=M.val,n[8]=be,n[9]=f?1:0,n[10]=G.hasStaticSig?1:0,n[11]=o.hasStaticSig?1:0,n[12]=y.hasStaticSig?1:0,n[13]=H.hasStaticSig?1:0,n[14]=C.hasStaticSig?1:0,n[15]=T.hasStaticSig?1:0,n[16]=x.hasStaticSig?1:0,n[17]=M.hasStaticSig?1:0,n[18]=0,n[19]=0;let ve=e.renderer.getTemporaryBuffer(n),$=p%2===0?A:ce,ye=e.device.createBindGroup({layout:se,entries:[{binding:0,resource:w.createView()},{binding:1,resource:ue},{binding:2,resource:W}]}),Te=e.device.createBindGroup({layout:ne,entries:[{binding:0,resource:de},{binding:1,resource:fe},{binding:2,resource:me},{binding:3,resource:pe},{binding:4,resource:ge},{binding:5,resource:he},{binding:6,resource:Se},{binding:7,resource:xe},{binding:8,resource:W}]}),X=r.beginRenderPass({colorAttachments:[{view:$.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});X.setPipeline(re),X.setBindGroup(0,e.device.createBindGroup({layout:ie,entries:[{binding:0,resource:{buffer:ve}}]})),X.setBindGroup(1,ye),X.setBindGroup(2,Te),X.draw(4),X.end(),w=$}let z=e.renderer.beginFrame(r,U,{r:0,g:0,b:0,a:0},l,u,"load");e.renderer.drawTexture(z,w,{x:0,y:0,width:l,height:u},{opacity:1}),a.pass=z};var ze=j({WebGPURenderer:te});export{te as a,ze as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as p}from"./chunk-BVF64D6H.mjs";p();p();var h=null;function x(a){h!==null&&(a.add(h),h.deps.add(a))}function w(a){return a!==null&&typeof a=="object"&&"get"in a&&typeof a.get=="function"&&"value"in a}var S=class{_value;_subscribers=new Set;constructor(e){this._value=e}get value(){return this.get()}set value(e){this.set(e)}get(){return h!==null&&(this._subscribers.add(h),h.deps.add(this._subscribers)),this._value}peek(){return this._value}set(e){Object.is(this._value,e)||(this._value=e,this.notifySubscribers())}update(e){this.set(e(this._value))}notifySubscribers(){if(this._subscribers.size===0)return;let e=Array.from(this._subscribers);for(let t of e)t.markDirty()}valueOf(){return this.get()}[Symbol.toPrimitive](e){return e==="number"?Number(this.get()):e==="string"?String(this.get()):this.get()}},y=class{_fn;_value;_dirty=!0;_evaluating=!1;deps=new Set;_subscribers=new Set;constructor(e){this._fn=e}get value(){return this.get()}get(){return h!==null&&h!==this&&(this._subscribers.add(h),h.deps.add(this._subscribers)),this._dirty&&this.compute(),this._value}peek(){return this._dirty&&this.compute(),this._value}markDirty(){if(this._dirty)return;this._dirty=!0;let e=Array.from(this._subscribers);for(let t of e)t.markDirty()}compute(){if(this._evaluating)throw new Error("Cyclic dependency detected in computed signal");for(let t of this.deps)t.delete(this);this.deps.clear();let e=h;h=this,this._evaluating=!0;try{this._value=this._fn(),this._dirty=!1}finally{this._evaluating=!1,h=e}}valueOf(){return this.get()}[Symbol.toPrimitive](e){return e==="number"?Number(this.get()):e==="string"?String(this.get()):this.get()}},F=class{gpuBinding;fps;_samples;_cachedFrame=-1;_cachedValue=0;_seekedFrame=-1;_subscribers=new Set;constructor(e,t=24,r){this._samples=e,this.fps=t,this.gpuBinding=r,e.length>0&&(this._cachedValue=e[0])}get value(){return this.get()}get(e){h!==null&&(this._subscribers.add(h),h.deps.add(this._subscribers)),d.get();let t=e?.frame??(this._seekedFrame>=0?this._seekedFrame:d.value);if(this._cachedFrame===t)return this._cachedValue;if(this._cachedFrame=t,!this._samples||this._samples.length===0)return this._cachedValue=0,0;let r=e?.fps??this.fps,n=r!==this.fps&&r>0?t/r*this.fps:t,i=Math.max(0,Math.min(this._samples.length-1,Math.round(n)));return this._cachedValue=Number(this._samples[i])||0,this._cachedValue}peek(){return this._cachedValue}seekFrame(e){if(this._seekedFrame=e,this._cachedFrame=e,!this._samples||this._samples.length===0)this._cachedValue=0;else{let t=Math.max(0,Math.min(this._samples.length-1,Math.round(e)));this._cachedValue=Number(this._samples[t])||0}for(let t of this._subscribers)t.markDirty()}valueOf(){return this.get()}[Symbol.toPrimitive](e){return e==="number"?Number(this.get()):e==="string"?String(this.get()):this.get()}};function _(a){return new S(a)}function V(a){return new y(a)}function I(a,e=24,t){return new F(a,e,t)}var d=_(0),C=_(0),T=_(0);function q(a,e=24,t){d.set(a);let r=e>0?a/e:0;if(C.set(r),t&&t>0){let n=t/1e3;T.set(Math.max(0,Math.min(1,r/n)))}else T.set(0)}var M=class{gpuBinding;_config;constructor(e){this._config={type:"sine",frequency:1,amplitude:1,offset:0,phase:0,...e},this.gpuBinding=e.gpuBinding}get value(){return this.get()}get(e){d.get();let t=e?.frame??d.value,r=e?.fps??24,n=e?.time??(r>0?t/r:0);if(this._config.fn)return this._config.fn(e??{frame:t,fps:r,time:n,duration:0,durationMs:0,progress:0,deltaTime:r>0?1/r:0});let i=this._config.frequency??1,u=this._config.amplitude??1,s=this._config.offset??0,m=this._config.phase??0;switch(this._config.type??"sine"){case"sine":return s+u*Math.sin(2*Math.PI*i*n+m);case"triangle":return s+u*(2*Math.abs(2*(n*i+m/(2*Math.PI)-Math.floor(n*i+m/(2*Math.PI)+.5)))-1);case"sawtooth":return s+u*(2*(n*i+m/(2*Math.PI)-Math.floor(n*i+m/(2*Math.PI)+.5)));case"square":return s+(Math.sin(2*Math.PI*i*n+m)>=0?u:-u);case"bounce":{let g=n*i%1,c=Math.abs(Math.sin(Math.PI*g));return s+u*c}default:return s+u*Math.sin(2*Math.PI*i*n+m)}}peek(){return this.get()}valueOf(){return this.get()}[Symbol.toPrimitive](e){return e==="number"?Number(this.get()):e==="string"?String(this.get()):this.get()}};function k(a){return new M(a)}function O(a={}){let e=a.min,t=a.max,r=a.amplitude??1,n=a.offset??0;e!==void 0&&t!==void 0?(n=(e+t)/2,r=(t-e)/2):e!==void 0?n=e+r:t!==void 0&&(n=t-r);let i=a.period,u=a.frequency,s=a.phase??0;return k({type:"custom",fn:m=>{let o;if(i!==void 0&&i>0)o=2*Math.PI*m.frame/i+s;else{let g=u??1;o=2*Math.PI*g*m.time+s}return n+r*Math.sin(o)}})}function A(a={}){let e=a.min,t=a.max,r=a.amplitude??1,n=a.offset??0;e!==void 0&&t!==void 0?(n=(e+t)/2,r=(t-e)/2):e!==void 0?n=e+r:t!==void 0&&(n=t-r);let i=a.period,u=a.frequency,s=a.phase??0;return k({type:"custom",fn:m=>{let o;if(i!==void 0&&i>0)o=2*Math.PI*m.frame/i+s;else{let g=u??1;o=2*Math.PI*g*m.time+s}return n+r*Math.cos(o)}})}var N={state:_,computed:V,builder:k,fromArray:I,programmatic:P,frame:d,time:C,progress:T,sine:O,cosine:A};var b=class a{gpuBinding;label;_evaluator;_samples;_fps;_durationFrames;_cachedFrame=-1;_cachedValue=0;_seekedFrame=-1;_subscribers=new Set;_children=new Set;get fps(){return this._fps}constructor(e,t={}){if(this._fps=t.fps??24,this._durationFrames=t.durationFrames,this.gpuBinding=t.gpuBinding,this.label=t.label,typeof e=="number"){let r=e;this._evaluator=()=>r,this._cachedValue=r}else if(typeof e=="function")this._evaluator=e;else if(w(e))this._evaluator=r=>Number(e.get(r))||0;else{let r=e;this._samples=r instanceof Float32Array?r:new Float32Array(Array.from(r)),this._durationFrames=this._samples.length,this._cachedValue=this._samples.length>0?this._samples[0]:0,this._evaluator=n=>{if(!this._samples||this._samples.length===0)return 0;let i=n.fps??this._fps,u=i!==this._fps&&i>0?n.frame/i*this._fps:n.frame,s=Math.max(0,Math.min(this._samples.length-1,Math.round(u)));return this._samples[s]}}}get value(){return this.get()}get(e){x(this._subscribers),d.get();let t=e?.frame??(this._seekedFrame>=0?this._seekedFrame:d.value);if(this._cachedFrame===t)return this._cachedValue;let r=e?.fps??this._fps,n=e?.time??(r>0?t/r:0),i=e?.duration??this._durationFrames??100,u=e?.durationMs??i/r*1e3,s=i>0?t/i:0,m=e?.deltaTime??(r>0?1/r:.0416),o={frame:t,fps:r,time:n,duration:i,durationMs:u,progress:s,deltaTime:m};return this._cachedFrame=t,this._cachedValue=this._evaluator(o),this._cachedValue}peek(){return this._cachedValue}registerChild(e){this._children.add(e)}_derive(e,t,r){let n=new a(e,{fps:this._fps,durationFrames:this._durationFrames,...t});return this._children.add(n),r instanceof a&&r.registerChild(n),n}seekFrame(e){this._seekedFrame=e,this._cachedFrame=-1;for(let t of this._subscribers)t.markDirty();for(let t of this._children)t.seekFrame(e)}invalidate(){this._cachedFrame=-1;for(let e of this._subscribers)e.markDirty();for(let e of this._children)e.invalidate()}valueOf(){return this.get()}[Symbol.toPrimitive](e){return e==="number"?Number(this.get()):e==="string"?String(this.get()):this.get()}smooth(e){let t=Math.max(1,Math.round(e));return t<=1?this:this._derive(r=>{let n=0,i=0,u=Math.max(0,r.frame-t+1);for(let s=u;s<=r.frame;s++)n+=this.get({...r,frame:s,time:s/r.fps}),i++;return i>0?n/i:0},{label:`${this.label??"sig"}_smoothed(${t})`})}remap(e,t,r,n,i=!1){let u=t-e,s=n-r;return this._derive(m=>{let o=this.get(m),g=u!==0?(o-e)/u:0,c=r+g*s;if(i){let l=Math.min(r,n),f=Math.max(r,n);return Math.max(l,Math.min(f,c))}return c},{label:`${this.label??"sig"}_remap`})}clamp(e,t){let r=Math.min(e,t),n=Math.max(e,t);return this._derive(i=>Math.max(r,Math.min(n,this.get(i))),{label:`${this.label??"sig"}_clamped`})}gate(e,t={}){let r=t.mode??"gate",n=Math.max(1,t.debounceFrames??2),i=Math.max(1,t.holdFrames??4),u=!!t.invert;return this._derive(s=>{let m=s.frame,o=0;if(r==="gate")o=this.get(s)>=e?1:0;else if(r==="trigger"){let g=-1/0,c=Math.max(0,m-120);for(let l=c;l<=m;l++){let f=this.get({...s,frame:l,time:l/s.fps}),v=l>0?this.get({...s,frame:l-1,time:(l-1)/s.fps}):0;f>=e&&v<e&&l-g>=n&&(g=l)}o=m>=g&&m<g+i?1:0}else if(r==="toggle"){let g=0,c=-1/0;for(let l=0;l<=m;l++){let f=this.get({...s,frame:l,time:l/s.fps}),v=l>0?this.get({...s,frame:l-1,time:(l-1)/s.fps}):0;f>=e&&v<e&&l-c>=n&&(g++,c=l)}o=g%2===1?1:0}return u?1-o:o},{label:`${this.label??"sig"}_gate(${e})`})}velocity(e=1){let t=Math.max(1,Math.round(e));return this._derive(r=>{let n=this.get(r),i=Math.max(0,r.frame-t),u=this.get({...r,frame:i,time:i/r.fps}),s=t/r.fps;return s>0?(n-u)/s:n-u},{label:`${this.label??"sig"}_velocity`})}delay(e){let t=Math.max(0,Math.round(e));return this._derive(r=>{let n=Math.max(0,r.frame-t);return this.get({...r,frame:n,time:n/r.fps})},{label:`${this.label??"sig"}_delay(${t})`})}spring(e=150,t=12){return this._derive(r=>{let n=r.frame;if(n<=0)return this.get(r);let i=this.get({...r,frame:0,time:0}),u=0,s=1/Math.max(1,r.fps);for(let m=1;m<=n;m++){let o=this.get({...r,frame:m,time:m/r.fps}),g=i-o,c=-e*g-t*u;u+=c*s,i+=u*s}return i},{label:`${this.label??"sig"}_spring`})}add(e){return typeof e=="number"?this._derive(t=>this.get(t)+e):this._derive(t=>this.get(t)+(Number(e.get(t))||0),void 0,e)}subtract(e){return typeof e=="number"?this._derive(t=>this.get(t)-e):this._derive(t=>this.get(t)-(Number(e.get(t))||0),void 0,e)}multiply(e){return typeof e=="number"?this._derive(t=>this.get(t)*e):this._derive(t=>this.get(t)*(Number(e.get(t))||0),void 0,e)}invert(){return this._derive(e=>1-this.get(e),{label:`${this.label??"sig"}_inverted`})}pow(e){return this._derive(t=>this.get(t)**e)}map(e){return this._derive(t=>e(this.get(t),t))}toFrameArray(e,t){let r=Math.max(1,e),n=t??this._fps,i=new Float32Array(r);for(let u=0;u<r;u++)i[u]=this.get({frame:u,fps:n,time:u/n,duration:r,durationMs:r/n*1e3,progress:u/r,deltaTime:1/n});return i}};function P(a,e){return new b(a,e)}export{b as a,P as b,x as c,w as d,_ as e,V as f,I as g,d as h,C as i,T as j,q as k,k as l,O as m,A as n,N as o};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as r,e}from"./chunk-BVF64D6H.mjs";var s=r((i,n)=>{e();var t=()=>new Proxy(function(){},{get:(u,o)=>o==="__esModule"?!0:o===Symbol.toPrimitive?()=>"":t(),apply:()=>t(),construct:()=>t()});n.exports=t()});export{s as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as r}from"./chunk-BVF64D6H.mjs";r();function t(){return e=>{throw new Error(`Cannot require "${e}" in the browser preview.`)}}function i(){return!1}export{t as a,i as b};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import{a as N}from"./chunk-YSTLMWCG.mjs";import{d as M}from"./chunk-6YJP57MZ.mjs";import{e as T}from"./chunk-BVF64D6H.mjs";T();T();var ee=`
|
|
2
|
+
struct TileOffsetUniforms {
|
|
3
|
+
offsetX : f32,
|
|
4
|
+
offsetY : f32,
|
|
5
|
+
hasOffsetXSig : f32,
|
|
6
|
+
hasOffsetYSig : f32,
|
|
7
|
+
|
|
8
|
+
layerWidth : f32,
|
|
9
|
+
layerHeight : f32,
|
|
10
|
+
edgeMode : f32,
|
|
11
|
+
pad : f32,
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
@group(0) @binding(0) var<uniform> u : TileOffsetUniforms;
|
|
15
|
+
@group(1) @binding(0) var tex : texture_2d<f32>;
|
|
16
|
+
@group(1) @binding(1) var samp : sampler;
|
|
17
|
+
|
|
18
|
+
@group(2) @binding(0) var offsetXSigTex : texture_2d<f32>;
|
|
19
|
+
@group(2) @binding(1) var offsetYSigTex : texture_2d<f32>;
|
|
20
|
+
@group(2) @binding(2) var signalSamp : sampler;
|
|
21
|
+
|
|
22
|
+
struct VSOut {
|
|
23
|
+
@builtin(position) pos : vec4<f32>,
|
|
24
|
+
@location(0) uv : vec2<f32>,
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
@vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
|
|
28
|
+
var pos = array<vec2<f32>, 4>(
|
|
29
|
+
vec2<f32>(-1.0, 1.0),
|
|
30
|
+
vec2<f32>(1.0, 1.0),
|
|
31
|
+
vec2<f32>(-1.0, -1.0),
|
|
32
|
+
vec2<f32>(1.0, -1.0)
|
|
33
|
+
);
|
|
34
|
+
var uv = array<vec2<f32>, 4>(
|
|
35
|
+
vec2<f32>(0.0, 0.0),
|
|
36
|
+
vec2<f32>(1.0, 0.0),
|
|
37
|
+
vec2<f32>(0.0, 1.0),
|
|
38
|
+
vec2<f32>(1.0, 1.0)
|
|
39
|
+
);
|
|
40
|
+
return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
44
|
+
var offX = u.offsetX;
|
|
45
|
+
if (u.hasOffsetXSig > 0.5) {
|
|
46
|
+
let sigX = textureSampleLevel(offsetXSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
47
|
+
offX = offX + sigX;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
var offY = u.offsetY;
|
|
51
|
+
if (u.hasOffsetYSig > 0.5) {
|
|
52
|
+
let sigY = textureSampleLevel(offsetYSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
53
|
+
offY = offY + sigY;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
let normOffset = vec2<f32>(
|
|
57
|
+
offX / max(1.0, u.layerWidth),
|
|
58
|
+
offY / max(1.0, u.layerHeight)
|
|
59
|
+
);
|
|
60
|
+
var uv = in.uv - normOffset;
|
|
61
|
+
|
|
62
|
+
// Edge Modes:
|
|
63
|
+
// 0.0 = wrap (seamless modulo)
|
|
64
|
+
// 1.0 = clamp (edge smear)
|
|
65
|
+
// 2.0 = transparent (clear bounds)
|
|
66
|
+
// 3.0 = mirror (ping-pong reflection)
|
|
67
|
+
if (u.edgeMode < 0.5) {
|
|
68
|
+
uv = fract(uv);
|
|
69
|
+
} else if (u.edgeMode < 1.5) {
|
|
70
|
+
uv = clamp(uv, vec2<f32>(0.0), vec2<f32>(1.0));
|
|
71
|
+
} else if (u.edgeMode < 2.5) {
|
|
72
|
+
if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) {
|
|
73
|
+
return vec4<f32>(0.0);
|
|
74
|
+
}
|
|
75
|
+
} else {
|
|
76
|
+
uv = 1.0 - abs(fract(uv * 0.5) * 2.0 - 1.0);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
let color = textureSampleLevel(tex, samp, uv, 0.0);
|
|
80
|
+
return color;
|
|
81
|
+
}
|
|
82
|
+
`,F=new WeakMap,a=new Float32Array(8);function te(r){let e=F.get(r);if(e)return e;let t=r.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),d=r.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),o=r.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"}}]});return e={uniformLayout:t,singleTextureLayout:d,signalTextureLayout:o,pipelineCache:new Map},F.set(r,e),e}function re(r,e){let t=te(r),d=`tile_offset_${e}`,o=t.pipelineCache.get(d);if(!o){let p=r.createShaderModule({label:`tile_offset_${e}.wgsl`,code:ee});o=r.createRenderPipeline({label:`TileOffsetPipeline_${e}`,layout:r.createPipelineLayout({bindGroupLayouts:[t.uniformLayout,t.singleTextureLayout,t.signalTextureLayout]}),vertex:{module:p,entryPoint:"vs"},fragment:{module:p,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}}),t.pipelineCache.set(d,o)}return{pipeline:o,uniformLayout:t.uniformLayout,singleTextureLayout:t.singleTextureLayout,signalTextureLayout:t.signalTextureLayout}}var ie=async r=>{let{ctx:e,encoder:t,pass:d,targetView:o,targetTexture:p,targetWidth:b,targetHeight:x,props:i,drawChild:A}=r,P=i.frame??0,w=i.fps||30,n=i.virtualMedia?.operation;if(n?.op!=="TileOffset"||!n)return;let S=i.virtualMedia?.children?.[0];if(!S)return;d.end();let f=b,u=x,C=n.inputs?Object.keys(n.inputs)[0]:"tile_offset_node",R=(l,g)=>{let Q=`${l}HandleId`,_=n[Q],s=_?n.inputs?.[_]:null,B=!!(s?.connectionValid&&(s.outputItem?.type==="Signal"||s.outputItem?.type==="Numeric")),O=B&&s?.outputItem?.data?s.outputItem.data:null,y=g,V=!1;return B?O&&(y=Number(O.offset??0),V=!0):s?.connectionValid&&s.outputItem?.type==="Number"?y=Number(s.outputItem.data??g):y=Number(n[l]??g),{val:y,hasStaticSig:V,sd:O}},h=R("offsetX",0),G=R("offsetY",0),m=0,L=n.edgeMode??(n.wrap!==!1?"wrap":"transparent");L==="clamp"?m=1:L==="transparent"||n.wrap===!1?m=2:L==="mirror"&&(m=3);let v=e.renderer.getTemporaryTexture(f,u,[...i.excludeTextures||[],p]),U=v.createView();e.renderer.beginFrame(t,U,{r:0,g:0,b:0,a:0},f,u,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:f,height:u}),e.renderer.pushIdentity(),await A(S,{...i,virtualMedia:S},U,v,f,u),e.renderer.popTransform(),e.renderer.popScissor(),r.pass.end();let{pipeline:W,uniformLayout:H,singleTextureLayout:$,signalTextureLayout:k}=re(e.device,e.renderer.format),I=e.renderer.samplerCache.getSampler(e.device),j=i.elapsedMs!==void 0?i.elapsedMs/1e3:P/w,K=i.virtualMedia?.metadata?.durationMs?i.virtualMedia.metadata.durationMs/1e3:i.durationMs!==void 0?i.durationMs/1e3:0,X=(l,g)=>l.hasStaticSig&&l.sd?M.getOrCreate2DTextureView(e.device,t,l.sd.nodeId??`${C}_${g}`,j,K,l.sd,f,u,i.renderId,P,w):M.getDummy1x1TextureView(e.device),q=X(h,"offsetX_sig"),z=X(G,"offsetY_sig");a[0]=h.val,a[1]=G.val,a[2]=h.hasStaticSig?1:0,a[3]=G.hasStaticSig?1:0,a[4]=f,a[5]=u,a[6]=m,a[7]=0;let J=e.renderer.getTemporaryBuffer(a),Y=e.renderer.getTemporaryTexture(f,u,[v,p,...i.excludeTextures||[]]),c=t.beginRenderPass({colorAttachments:[{view:Y.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});c.setPipeline(W),c.setBindGroup(0,e.device.createBindGroup({layout:H,entries:[{binding:0,resource:{buffer:J}}]})),c.setBindGroup(1,e.renderer.bindGroupCache.getBindGroup(e.device,$,v,I)),c.setBindGroup(2,e.device.createBindGroup({layout:k,entries:[{binding:0,resource:q},{binding:1,resource:z},{binding:2,resource:I}]})),c.draw(4),c.end();let D=e.renderer.beginFrame(t,o,{r:0,g:0,b:0,a:0},b,x,"load");e.renderer.drawTexture(D,Y,{x:0,y:0,width:b,height:x},{opacity:n.opacity??1}),r.pass=D},E=ie;var le=N({WebGPURenderer:E});export{le as a};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import{b as T,c as C}from"./chunk-IYVN2QEL.mjs";import{a}from"./chunk-NQZKBFC6.mjs";import{a as k}from"./chunk-YSTLMWCG.mjs";import{e as l}from"./chunk-BVF64D6H.mjs";l();l();l();var U=`
|
|
2
|
+
struct ColorMatrixUniforms {
|
|
3
|
+
row0 : vec4<f32>,
|
|
4
|
+
row1 : vec4<f32>,
|
|
5
|
+
row2 : vec4<f32>,
|
|
6
|
+
row3 : vec4<f32>,
|
|
7
|
+
trans : vec4<f32>,
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
@group(0) @binding(0) var<uniform> u : ColorMatrixUniforms;
|
|
11
|
+
@group(1) @binding(0) var tex : texture_2d<f32>;
|
|
12
|
+
@group(1) @binding(1) 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
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
36
|
+
let c = textureSample(tex, samp, in.uv);
|
|
37
|
+
var rgba = vec4<f32>(c.rgb, c.a);
|
|
38
|
+
if (c.a > 0.0) {
|
|
39
|
+
rgba = vec4<f32>(c.rgb / c.a, c.a);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
let r = dot(u.row0, rgba) + u.trans.x;
|
|
43
|
+
let g = dot(u.row1, rgba) + u.trans.y;
|
|
44
|
+
let b = dot(u.row2, rgba) + u.trans.z;
|
|
45
|
+
let a = dot(u.row3, rgba) + u.trans.w;
|
|
46
|
+
|
|
47
|
+
let outAlpha = clamp(a, 0.0, 1.0);
|
|
48
|
+
let outRgb = clamp(vec3<f32>(r, g, b), vec3<f32>(0.0), vec3<f32>(1.0)) * outAlpha;
|
|
49
|
+
|
|
50
|
+
return vec4<f32>(outRgb, outAlpha);
|
|
51
|
+
}
|
|
52
|
+
`;l();var b=a.object({inBlack:a.number().min(0).max(1).default(0),inWhite:a.number().min(0).max(1).default(1),outBlack:a.number().min(0).max(1).default(0),outWhite:a.number().min(0).max(1).default(1)}).strict().superRefine((t,e)=>{t.inBlack>=t.inWhite&&e.addIssue({code:a.ZodIssueCode.custom,path:["inWhite"],message:"inWhite must be greater than inBlack"}),t.outBlack>=t.outWhite&&e.addIssue({code:a.ZodIssueCode.custom,path:["outWhite"],message:"outWhite must be greater than outBlack"})}),q=a.object({master:b.default({inBlack:0,inWhite:1,outBlack:0,outWhite:1}),red:b.default({inBlack:0,inWhite:1,outBlack:0,outWhite:1}),green:b.default({inBlack:0,inWhite:1,outBlack:0,outWhite:1}),blue:b.default({inBlack:0,inWhite:1,outBlack:0,outWhite:1})}).strict(),te=a.union([T,C]),re=q.extend({op:a.literal("Levels"),metadata:a.unknown().optional()}),s={inBlack:0,inWhite:1,outBlack:0,outWhite:1},oe={master:{...s},red:{...s},green:{...s},blue:{...s}};var V=new WeakMap,r=new Float32Array(20);function J(t,e){let n=V.get(t);if(!n){let c=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),d=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),p=t.createShaderModule({label:"color-matrix.wgsl",code:U});n={colorMatrixPipeline:t.createRenderPipeline({label:"ColorMatrixPipeline",layout:t.createPipelineLayout({bindGroupLayouts:[c,d]}),vertex:{module:p,entryPoint:"vs"},fragment:{module:p,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}}),colorMatrixUniformLayout:c,singleTextureLayout:d},V.set(t,n)}return n}function y(t){let e=Math.max(t.inWhite-t.inBlack,1e-5),c=(t.outWhite-t.outBlack)/e,d=t.outBlack-t.inBlack*c;return{scale:c,bias:d}}var I=async t=>{let{ctx:e,encoder:n,pass:c,targetView:d,targetTexture:p,targetWidth:h,targetHeight:L,props:u,drawChild:O}=t,f=u.virtualMedia?.operation;if(f?.op!=="Levels"||!u.virtualMedia?.children?.[0])return;c.end();let B=u.virtualMedia.children[0],i=y(f.master??s),G=y(f.red??s),S=y(f.green??s),W=y(f.blue??s),F=G.scale*i.scale,A=G.bias*i.scale+i.bias,N=S.scale*i.scale,z=S.bias*i.scale+i.bias,E=W.scale*i.scale,D=W.bias*i.scale+i.bias,o=[F,0,0,0,A,0,N,0,0,z,0,0,E,0,D,0,0,0,1,0],m=h,g=L,x=e.renderer.getTemporaryTexture(m,g,[...u.excludeTextures||[],p]),M=x.createView();e.renderer.beginFrame(n,M,{r:0,g:0,b:0,a:0},m,g,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:m,height:g}),e.renderer.pushIdentity(),await O(B,{...u,virtualMedia:B},M,x,m,g),e.renderer.popTransform(),e.renderer.popScissor();let{colorMatrixPipeline:_,colorMatrixUniformLayout:j,singleTextureLayout:Z}=J(e.device,e.renderer.format),H=e.renderer.samplerCache.getSampler(e.device);r[0]=o[0],r[1]=o[1],r[2]=o[2],r[3]=o[3],r[4]=o[5],r[5]=o[6],r[6]=o[7],r[7]=o[8],r[8]=o[10],r[9]=o[11],r[10]=o[12],r[11]=o[13],r[12]=o[15],r[13]=o[16],r[14]=o[17],r[15]=o[18],r[16]=o[4],r[17]=o[9],r[18]=o[14],r[19]=o[19];let Y=e.renderer.getTemporaryBuffer(r),R=e.renderer.getTemporaryTexture(m,g,[x,p,...u.excludeTextures||[]]),v=n.beginRenderPass({colorAttachments:[{view:R.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});v.setPipeline(_),v.setBindGroup(0,e.device.createBindGroup({layout:j,entries:[{binding:0,resource:{buffer:Y}}]})),v.setBindGroup(1,e.renderer.bindGroupCache.getBindGroup(e.device,Z,x,H)),v.draw(4),v.end();let w=e.renderer.beginFrame(n,d,{r:0,g:0,b:0,a:0},h,L,"load");e.renderer.drawTexture(w,R,{x:0,y:0,width:h,height:L},{opacity:u.opacity??1}),t.pass=w};var pe=k({WebGPURenderer:I});export{pe as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as m}from"./chunk-LKYN3BM2.mjs";import{e as x}from"./chunk-BVF64D6H.mjs";x();var w=class{cache=new Map;async load(r,i,l,c){let o=Math.max(1,Math.ceil(i)),t=Math.max(1,Math.ceil(l)),e=`${r}-${o}-${t}-${c}`,h=this.cache.get(e);return h||(h=(async()=>{let d;if(r.startsWith("http://")||r.startsWith("https://")||r.startsWith("data:")||!c){let a=await fetch(r);if(!a.ok)throw new Error(`Failed to fetch SVG: ${r}`);d=await a.text()}else{let a=r;if(a.startsWith("file://"))try{a=new URL(a).pathname}catch{a=a.replace(/^file:\/\//,"")}try{d=await(await import("./shims/fs-promises.mjs")).readFile(a,"utf-8")}catch{let n=await fetch(r);if(!n.ok)throw new Error(`Failed to fetch SVG: ${r}`);d=await n.text()}}if(c){let{renderAsync:a}=await import("./resvg-js-VMU4A77S.mjs"),n=await a(d,{fitTo:{mode:"width",value:o}});return{width:n.width,height:n.height,buffer:new Uint8Array(n.pixels)}}let v=new Blob([d],{type:"image/svg+xml"}),u=URL.createObjectURL(v),f=new Image;await new Promise((a,n)=>{f.onload=()=>a(),f.onerror=()=>n(new Error(`Failed to load SVG image: ${r}`)),f.src=u});let g=new OffscreenCanvas(o,t);g.getContext("2d").drawImage(f,0,0,o,t),URL.revokeObjectURL(u);let b=await createImageBitmap(g);return{width:o,height:t,bitmap:b}})(),this.cache.set(e,h),h.catch(()=>this.cache.delete(e))),h}},y=new w;async function P(s,r,i){let l=Math.max(1,Math.ceil(i.dstRect.width)),c=Math.max(1,Math.ceil(i.dstRect.height)),o=`${i.src}-${l}-${c}`,t=m.acquire(o);if(!t)try{let e=await y.load(i.src,l,c,i.isHeadless??!1);t=m.acquire(o),t||(t=s.device.createTexture({size:[e.width,e.height],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}),e.bitmap?s.device.queue.copyExternalImageToTexture({source:e.bitmap},{texture:t},[e.width,e.height]):e.buffer&&s.device.queue.writeTexture({texture:t},e.buffer,{bytesPerRow:e.width*4},[e.width,e.height]),m.set(o,t,s.device))}catch(e){console.error("Failed to load SVG texture:",e);return}s.renderer.drawTexture(r,t,i.dstRect,{opacity:i.opacity??1,transform:i.matrix}),m.release(o)}export{P as a};
|