@omnimedia/omnitool 1.1.0-8 → 1.1.0-80
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 +293 -76
- package/package.json +19 -17
- package/s/context.ts +0 -7
- package/s/demo/demo.bundle.ts +104 -43
- package/s/demo/demo.css +244 -14
- package/s/demo/routines/export-test.ts +16 -0
- package/s/demo/routines/filmstrip-test.ts +22 -18
- package/s/demo/routines/load-video.ts +2 -3
- package/s/demo/routines/playback-test.ts +61 -0
- package/s/demo/routines/timeline-setup.ts +50 -0
- package/s/demo/routines/transcode-test.ts +19 -5
- package/s/demo/routines/transitions-test.ts +2 -2
- package/s/demo/routines/waveform-test.ts +35 -8
- package/s/driver/driver-worker.ts +9 -0
- package/s/driver/driver.test.ts +1 -1
- package/s/driver/driver.ts +43 -42
- package/s/driver/fns/schematic.ts +26 -6
- package/s/driver/fns/work.ts +65 -189
- package/s/driver/parts/compositor.ts +316 -0
- package/s/driver/parts/machina.ts +19 -20
- package/s/driver/utils/find-pixi-filter.ts +24 -0
- package/s/index.html.ts +103 -25
- package/s/index.ts +1 -0
- package/s/tests.bundle.ts +11 -0
- package/s/tests.html.ts +28 -0
- package/s/timeline/index.ts +8 -2
- package/s/timeline/parts/animations.ts +56 -0
- package/s/timeline/parts/filmstrip.ts +43 -16
- package/s/timeline/parts/filters.ts +453 -0
- package/s/timeline/parts/item.ts +70 -7
- package/s/timeline/parts/media.ts +12 -2
- package/s/timeline/parts/resource-pool.ts +8 -5
- package/s/timeline/parts/resource.ts +3 -0
- package/s/timeline/parts/waveform/parts/collect.ts +72 -0
- package/s/timeline/parts/waveform/parts/render.ts +45 -0
- package/s/timeline/parts/waveform/parts/types.ts +24 -0
- package/s/timeline/parts/waveform/waveform.ts +161 -0
- package/s/timeline/renderers/export/parts/audio-gain.ts +17 -0
- package/s/timeline/renderers/export/parts/audio-mix.ts +133 -0
- package/s/timeline/renderers/export/parts/cursor.ts +129 -0
- package/s/timeline/renderers/export/parts/produce-audio.ts +64 -0
- package/s/timeline/renderers/export/parts/produce-video.ts +49 -0
- package/s/timeline/renderers/export/parts/resamplers.ts +48 -0
- package/s/timeline/renderers/export/produce.ts +28 -0
- package/s/timeline/renderers/parts/handy.ts +377 -0
- package/s/timeline/renderers/parts/samplers/audio/parts/find.ts +19 -0
- package/s/timeline/renderers/parts/samplers/audio/parts/init.ts +60 -0
- package/s/timeline/renderers/parts/samplers/audio/parts/sink.ts +38 -0
- package/s/timeline/renderers/parts/samplers/audio/parts/types.ts +16 -0
- package/s/timeline/renderers/parts/samplers/audio/sampler.ts +35 -0
- package/s/timeline/renderers/parts/samplers/visual/parts/defaults.ts +16 -0
- package/s/timeline/renderers/parts/samplers/visual/parts/sample.ts +69 -0
- package/s/timeline/renderers/parts/samplers/visual/parts/sequence.ts +111 -0
- package/s/timeline/renderers/parts/samplers/visual/parts/sink.ts +38 -0
- package/s/timeline/renderers/parts/samplers/visual/parts/transition.ts +28 -0
- package/s/timeline/renderers/parts/samplers/visual/parts/types.ts +10 -0
- package/s/timeline/renderers/parts/samplers/visual/sampler.ts +28 -0
- package/s/timeline/renderers/parts/schedulers.ts +96 -0
- package/s/timeline/renderers/player/parts/playback.ts +159 -0
- package/s/timeline/renderers/player/player.ts +77 -0
- package/s/timeline/renderers/renderers.test.ts +385 -0
- package/s/timeline/sugar/helpers.ts +190 -0
- package/s/timeline/sugar/o.ts +271 -59
- package/s/timeline/sugar/omni.test.ts +210 -0
- package/s/timeline/sugar/omni.ts +35 -12
- package/s/timeline/types.ts +28 -3
- package/s/timeline/utils/anim.ts +71 -0
- package/s/timeline/utils/checksum.ts +3 -1
- package/s/timeline/utils/datafile.ts +15 -4
- package/s/timeline/utils/dummy-data.ts +3 -3
- package/s/timeline/utils/matrix.ts +21 -0
- package/s/timeline/utils/terps.ts +81 -0
- package/s/units/fps.ts +8 -0
- package/s/units/ms.ts +8 -0
- package/s/units/seconds.ts +8 -0
- package/x/WebGLRenderer-4CHIZDHY.js +2 -0
- package/x/WebGLRenderer-4CHIZDHY.js.map +7 -0
- package/x/WebGPURenderer-O6WXU2QR.js +2 -0
- package/x/WebGPURenderer-O6WXU2QR.js.map +7 -0
- package/x/browserAll-WNIOTNNP.js +2 -0
- package/x/browserAll-WNIOTNNP.js.map +7 -0
- package/x/chunk-23FOBGX6.js +2 -0
- package/x/chunk-23FOBGX6.js.map +7 -0
- package/x/chunk-73XOWA4F.js +393 -0
- package/x/chunk-73XOWA4F.js.map +7 -0
- package/x/chunk-IAWJKNX5.js +42 -0
- package/x/chunk-IAWJKNX5.js.map +7 -0
- package/x/chunk-KCMVLWBS.js +157 -0
- package/x/chunk-KCMVLWBS.js.map +7 -0
- package/x/chunk-MR32SQ27.js +2 -0
- package/x/chunk-MR32SQ27.js.map +7 -0
- package/x/chunk-VCUJJYRJ.js +327 -0
- package/x/chunk-VCUJJYRJ.js.map +7 -0
- package/x/chunk-XNIZ4L5W.js +269 -0
- package/x/chunk-XNIZ4L5W.js.map +7 -0
- package/x/chunk-ZLGNQFUI.js +15 -0
- package/x/chunk-ZLGNQFUI.js.map +7 -0
- package/x/context.d.ts +1 -4
- package/x/context.js +1 -5
- package/x/context.js.map +1 -1
- package/x/demo/WebGLRenderer-RSJAHIG2.js +2 -0
- package/x/demo/WebGLRenderer-RSJAHIG2.js.map +7 -0
- package/x/demo/WebGPURenderer-MGFAJCYY.js +2 -0
- package/x/demo/WebGPURenderer-MGFAJCYY.js.map +7 -0
- package/x/demo/browserAll-PTRBXBRP.js +2 -0
- package/x/demo/browserAll-PTRBXBRP.js.map +7 -0
- package/x/demo/chunk-CUYOGHWU.js +42 -0
- package/x/demo/chunk-CUYOGHWU.js.map +7 -0
- package/x/demo/chunk-DGTDNJ7W.js +2 -0
- package/x/demo/chunk-DGTDNJ7W.js.map +7 -0
- package/x/demo/chunk-FZ5BYF63.js +15 -0
- package/x/demo/chunk-FZ5BYF63.js.map +7 -0
- package/x/demo/chunk-KWN4NNES.js +269 -0
- package/x/demo/chunk-KWN4NNES.js.map +7 -0
- package/x/demo/chunk-OJ3FPXW7.js +157 -0
- package/x/demo/chunk-OJ3FPXW7.js.map +7 -0
- package/x/demo/chunk-PSLUOGTZ.js +393 -0
- package/x/demo/chunk-PSLUOGTZ.js.map +7 -0
- package/x/demo/chunk-VLCVEIFU.js +327 -0
- package/x/demo/chunk-VLCVEIFU.js.map +7 -0
- package/x/demo/chunk-ZWCPT5FR.js +2 -0
- package/x/demo/chunk-ZWCPT5FR.js.map +7 -0
- package/x/demo/demo.bundle.js +94 -40
- package/x/demo/demo.bundle.js.map +1 -1
- package/x/demo/demo.bundle.min.js +7340 -90
- package/x/demo/demo.bundle.min.js.map +4 -4
- package/x/demo/demo.css +244 -14
- package/x/demo/routines/export-test.d.ts +2 -0
- package/x/demo/routines/export-test.js +10 -0
- package/x/demo/routines/export-test.js.map +1 -0
- package/x/demo/routines/filmstrip-test.d.ts +1 -1
- package/x/demo/routines/filmstrip-test.js +20 -17
- package/x/demo/routines/filmstrip-test.js.map +1 -1
- package/x/demo/routines/load-video.d.ts +1 -1
- package/x/demo/routines/load-video.js +1 -2
- package/x/demo/routines/load-video.js.map +1 -1
- package/x/demo/routines/playback-test.d.ts +2 -0
- package/x/demo/routines/playback-test.js +51 -0
- package/x/demo/routines/playback-test.js.map +1 -0
- package/x/demo/routines/timeline-setup.d.ts +6 -0
- package/x/demo/routines/timeline-setup.js +32 -0
- package/x/demo/routines/timeline-setup.js.map +1 -0
- package/x/demo/routines/transcode-test.js +15 -5
- package/x/demo/routines/transcode-test.js.map +1 -1
- package/x/demo/routines/transitions-test.js +2 -2
- package/x/demo/routines/transitions-test.js.map +1 -1
- package/x/demo/routines/waveform-test.d.ts +2 -1
- package/x/demo/routines/waveform-test.js +29 -8
- package/x/demo/routines/waveform-test.js.map +1 -1
- package/x/demo/webworkerAll-JENRT6BT.js +2 -0
- package/x/demo/webworkerAll-JENRT6BT.js.map +7 -0
- package/x/driver/driver-worker.d.ts +1 -0
- package/x/driver/driver-worker.js +6 -0
- package/x/driver/driver-worker.js.map +1 -0
- package/x/driver/driver.d.ts +25 -8
- package/x/driver/driver.js +43 -39
- package/x/driver/driver.js.map +1 -1
- package/x/driver/driver.test.js +1 -1
- package/x/driver/driver.test.js.map +1 -1
- package/x/driver/driver.worker.bundle.min.js +117 -3506
- package/x/driver/driver.worker.bundle.min.js.map +4 -4
- package/x/driver/fns/host.d.ts +3 -2
- package/x/driver/fns/schematic.d.ts +25 -4
- package/x/driver/fns/work.d.ts +4 -4
- package/x/driver/fns/work.js +55 -155
- package/x/driver/fns/work.js.map +1 -1
- package/x/driver/parts/compositor.d.ts +39 -0
- package/x/driver/parts/compositor.js +261 -0
- package/x/driver/parts/compositor.js.map +1 -0
- package/x/driver/parts/machina.d.ts +0 -20
- package/x/driver/parts/machina.js +6 -10
- package/x/driver/parts/machina.js.map +1 -1
- package/x/driver/utils/find-pixi-filter.d.ts +5 -0
- package/x/driver/utils/find-pixi-filter.js +13 -0
- package/x/driver/utils/find-pixi-filter.js.map +1 -0
- package/x/features/speech/transcribe/parts/prep-audio.d.ts +1 -1
- package/x/features/speech/transcribe/worker.bundle.min.js +899 -899
- package/x/features/speech/transcribe/worker.bundle.min.js.map +4 -4
- package/x/index.d.ts +1 -0
- package/x/index.html +347 -38
- package/x/index.html.js +103 -24
- package/x/index.html.js.map +1 -1
- package/x/index.js +1 -0
- package/x/index.js.map +1 -1
- package/x/tests.bundle.js +8 -0
- package/x/tests.bundle.js.map +1 -0
- package/x/tests.bundle.min.js +7374 -0
- package/x/tests.bundle.min.js.map +7 -0
- package/x/tests.html +316 -0
- package/x/tests.html.d.ts +2 -0
- package/x/tests.html.js +22 -0
- package/x/tests.html.js.map +1 -0
- package/x/timeline/index.d.ts +7 -1
- package/x/timeline/index.js +7 -1
- package/x/timeline/index.js.map +1 -1
- package/x/timeline/parts/animations.d.ts +105 -0
- package/x/timeline/parts/animations.js +28 -0
- package/x/timeline/parts/animations.js.map +1 -0
- package/x/timeline/parts/filmstrip.d.ts +4 -3
- package/x/timeline/parts/filmstrip.js +29 -10
- package/x/timeline/parts/filmstrip.js.map +1 -1
- package/x/timeline/parts/filters.d.ts +108 -0
- package/x/timeline/parts/filters.js +340 -0
- package/x/timeline/parts/filters.js.map +1 -0
- package/x/timeline/parts/item.d.ts +56 -4
- package/x/timeline/parts/item.js +5 -1
- package/x/timeline/parts/item.js.map +1 -1
- package/x/timeline/parts/media.d.ts +2 -0
- package/x/timeline/parts/media.js +11 -2
- package/x/timeline/parts/media.js.map +1 -1
- package/x/timeline/parts/resource-pool.d.ts +3 -0
- package/x/timeline/parts/resource-pool.js +7 -4
- package/x/timeline/parts/resource-pool.js.map +1 -1
- package/x/timeline/parts/resource.d.ts +3 -0
- package/x/timeline/parts/waveform/parts/collect.d.ts +11 -0
- package/x/timeline/parts/waveform/parts/collect.js +56 -0
- package/x/timeline/parts/waveform/parts/collect.js.map +1 -0
- package/x/timeline/parts/waveform/parts/render.d.ts +5 -0
- package/x/timeline/parts/waveform/parts/render.js +29 -0
- package/x/timeline/parts/waveform/parts/render.js.map +1 -0
- package/x/timeline/parts/waveform/parts/types.d.ts +21 -0
- package/x/timeline/parts/waveform/parts/types.js.map +1 -0
- package/x/timeline/parts/waveform/waveform.d.ts +19 -0
- package/x/timeline/parts/waveform/waveform.js +133 -0
- package/x/timeline/parts/waveform/waveform.js.map +1 -0
- package/x/timeline/renderers/export/parts/audio-gain.d.ts +1 -0
- package/x/timeline/renderers/export/parts/audio-gain.js +13 -0
- package/x/timeline/renderers/export/parts/audio-gain.js.map +1 -0
- package/x/timeline/renderers/export/parts/audio-mix.d.ts +21 -0
- package/x/timeline/renderers/export/parts/audio-mix.js +89 -0
- package/x/timeline/renderers/export/parts/audio-mix.js.map +1 -0
- package/x/timeline/renderers/export/parts/cursor.d.ts +18 -0
- package/x/timeline/renderers/export/parts/cursor.js +99 -0
- package/x/timeline/renderers/export/parts/cursor.js.map +1 -0
- package/x/timeline/renderers/export/parts/produce-audio.d.ts +6 -0
- package/x/timeline/renderers/export/parts/produce-audio.js +41 -0
- package/x/timeline/renderers/export/parts/produce-audio.js.map +1 -0
- package/x/timeline/renderers/export/parts/produce-video.d.ts +10 -0
- package/x/timeline/renderers/export/parts/produce-video.js +26 -0
- package/x/timeline/renderers/export/parts/produce-video.js.map +1 -0
- package/x/timeline/renderers/export/parts/resamplers.d.ts +12 -0
- package/x/timeline/renderers/export/parts/resamplers.js +29 -0
- package/x/timeline/renderers/export/parts/resamplers.js.map +1 -0
- package/x/timeline/renderers/export/produce.d.ts +13 -0
- package/x/timeline/renderers/export/produce.js +15 -0
- package/x/timeline/renderers/export/produce.js.map +1 -0
- package/x/timeline/renderers/parts/handy.d.ts +36 -0
- package/x/timeline/renderers/parts/handy.js +221 -0
- package/x/timeline/renderers/parts/handy.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/find.d.ts +6 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/find.js +15 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/find.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/init.d.ts +5 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/init.js +40 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/init.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/sink.d.ts +8 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/sink.js +24 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/sink.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/types.d.ts +14 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/types.js +2 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/types.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/audio/sampler.d.ts +11 -0
- package/x/timeline/renderers/parts/samplers/audio/sampler.js +22 -0
- package/x/timeline/renderers/parts/samplers/audio/sampler.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/defaults.d.ts +5 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/defaults.js +10 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/defaults.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/sample.d.ts +6 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/sample.js +48 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/sample.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/sequence.d.ts +6 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/sequence.js +75 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/sequence.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/sink.d.ts +8 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/sink.js +24 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/sink.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/transition.d.ts +3 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/transition.js +18 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/transition.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/types.d.ts +8 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/types.js +2 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/types.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/visual/sampler.d.ts +7 -0
- package/x/timeline/renderers/parts/samplers/visual/sampler.js +17 -0
- package/x/timeline/renderers/parts/samplers/visual/sampler.js.map +1 -0
- package/x/timeline/renderers/parts/schedulers.d.ts +17 -0
- package/x/timeline/renderers/parts/schedulers.js +64 -0
- package/x/timeline/renderers/parts/schedulers.js.map +1 -0
- package/x/timeline/renderers/player/parts/playback.d.ts +36 -0
- package/x/timeline/renderers/player/parts/playback.js +113 -0
- package/x/timeline/renderers/player/parts/playback.js.map +1 -0
- package/x/timeline/renderers/player/player.d.ts +25 -0
- package/x/timeline/renderers/player/player.js +56 -0
- package/x/timeline/renderers/player/player.js.map +1 -0
- package/x/timeline/renderers/renderers.test.d.ts +32 -0
- package/x/timeline/renderers/renderers.test.js +305 -0
- package/x/timeline/renderers/renderers.test.js.map +1 -0
- package/x/timeline/sugar/helpers.d.ts +56 -0
- package/x/timeline/sugar/helpers.js +104 -0
- package/x/timeline/sugar/helpers.js.map +1 -0
- package/x/timeline/sugar/o.d.ts +48 -14
- package/x/timeline/sugar/o.js +213 -54
- package/x/timeline/sugar/o.js.map +1 -1
- package/x/timeline/sugar/omni.d.ts +11 -6
- package/x/timeline/sugar/omni.js +28 -8
- package/x/timeline/sugar/omni.js.map +1 -1
- package/x/timeline/sugar/omni.test.d.ts +27 -0
- package/x/timeline/sugar/omni.test.js +128 -0
- package/x/timeline/sugar/omni.test.js.map +1 -0
- package/x/timeline/types.d.ts +12 -2
- package/x/timeline/utils/anim.d.ts +5 -0
- package/x/timeline/utils/anim.js +44 -0
- package/x/timeline/utils/anim.js.map +1 -0
- package/x/timeline/utils/checksum.d.ts +3 -2
- package/x/timeline/utils/checksum.js.map +1 -1
- package/x/timeline/utils/datafile.d.ts +5 -3
- package/x/timeline/utils/datafile.js +18 -5
- package/x/timeline/utils/datafile.js.map +1 -1
- package/x/timeline/utils/dummy-data.d.ts +1 -2
- package/x/timeline/utils/dummy-data.js +4 -2
- package/x/timeline/utils/dummy-data.js.map +1 -1
- package/x/timeline/utils/matrix.d.ts +9 -0
- package/x/timeline/utils/matrix.js +10 -0
- package/x/timeline/utils/matrix.js.map +1 -1
- package/x/timeline/utils/terps.d.ts +11 -0
- package/x/timeline/utils/terps.js +57 -0
- package/x/timeline/utils/terps.js.map +1 -0
- package/x/units/fps.d.ts +6 -0
- package/x/units/fps.js +2 -0
- package/x/units/fps.js.map +1 -0
- package/x/units/ms.d.ts +6 -0
- package/x/units/ms.js +2 -0
- package/x/units/ms.js.map +1 -0
- package/x/units/seconds.d.ts +6 -0
- package/x/units/seconds.js +2 -0
- package/x/units/seconds.js.map +1 -0
- package/x/webworkerAll-RLCTMSDD.js +2 -0
- package/x/webworkerAll-RLCTMSDD.js.map +7 -0
- package/s/tests.test.ts +0 -8
- package/s/timeline/parts/compositor/export.ts +0 -77
- package/s/timeline/parts/compositor/parts/html-tree.ts +0 -37
- package/s/timeline/parts/compositor/parts/schedulers.ts +0 -85
- package/s/timeline/parts/compositor/parts/tree-builder.ts +0 -184
- package/s/timeline/parts/compositor/parts/webcodecs-tree.ts +0 -30
- package/s/timeline/parts/compositor/playback.ts +0 -81
- package/s/timeline/parts/compositor/samplers/html.ts +0 -115
- package/s/timeline/parts/compositor/samplers/webcodecs.ts +0 -60
- package/s/timeline/parts/waveform.ts +0 -62
- package/s/timeline/sugar/builders.ts +0 -102
- package/s/timeline/sugar/omni-test.ts +0 -38
- package/s/timeline/timeline.ts +0 -22
- package/s/timeline/utils/audio-stream.ts +0 -15
- package/s/timeline/utils/video-cursor.ts +0 -40
- package/s/tools/common/loader.ts +0 -26
- package/s/tools/common/transformer-pipeline.ts +0 -26
- package/s/tools/speech-recognition/common/model.ts +0 -26
- package/s/tools/speech-recognition/whisper/fns/host.ts +0 -25
- package/s/tools/speech-recognition/whisper/fns/schematic.ts +0 -23
- package/s/tools/speech-recognition/whisper/fns/work.ts +0 -91
- package/s/tools/speech-recognition/whisper/parts/types.ts +0 -38
- package/s/tools/speech-recognition/whisper/parts/worker.bundle.ts +0 -7
- package/s/tools/speech-recognition/whisper/tool.ts +0 -70
- package/x/tests.test.js +0 -6
- package/x/tests.test.js.map +0 -1
- package/x/timeline/parts/compositor/export.d.ts +0 -9
- package/x/timeline/parts/compositor/export.js +0 -64
- package/x/timeline/parts/compositor/export.js.map +0 -1
- package/x/timeline/parts/compositor/parts/html-tree.d.ts +0 -3
- package/x/timeline/parts/compositor/parts/html-tree.js +0 -40
- package/x/timeline/parts/compositor/parts/html-tree.js.map +0 -1
- package/x/timeline/parts/compositor/parts/schedulers.d.ts +0 -15
- package/x/timeline/parts/compositor/parts/schedulers.js +0 -64
- package/x/timeline/parts/compositor/parts/schedulers.js.map +0 -1
- package/x/timeline/parts/compositor/parts/tree-builder.d.ts +0 -37
- package/x/timeline/parts/compositor/parts/tree-builder.js +0 -147
- package/x/timeline/parts/compositor/parts/tree-builder.js.map +0 -1
- package/x/timeline/parts/compositor/parts/webcodecs-tree.d.ts +0 -3
- package/x/timeline/parts/compositor/parts/webcodecs-tree.js +0 -28
- package/x/timeline/parts/compositor/parts/webcodecs-tree.js.map +0 -1
- package/x/timeline/parts/compositor/playback.d.ts +0 -19
- package/x/timeline/parts/compositor/playback.js +0 -71
- package/x/timeline/parts/compositor/playback.js.map +0 -1
- package/x/timeline/parts/compositor/samplers/html.d.ts +0 -3
- package/x/timeline/parts/compositor/samplers/html.js +0 -106
- package/x/timeline/parts/compositor/samplers/html.js.map +0 -1
- package/x/timeline/parts/compositor/samplers/webcodecs.d.ts +0 -2
- package/x/timeline/parts/compositor/samplers/webcodecs.js +0 -55
- package/x/timeline/parts/compositor/samplers/webcodecs.js.map +0 -1
- package/x/timeline/parts/waveform.d.ts +0 -8
- package/x/timeline/parts/waveform.js +0 -51
- package/x/timeline/parts/waveform.js.map +0 -1
- package/x/timeline/sugar/builders.d.ts +0 -96
- package/x/timeline/sugar/builders.js +0 -108
- package/x/timeline/sugar/builders.js.map +0 -1
- package/x/timeline/sugar/omni-test.d.ts +0 -1
- package/x/timeline/sugar/omni-test.js +0 -22
- package/x/timeline/sugar/omni-test.js.map +0 -1
- package/x/timeline/timeline.d.ts +0 -9
- package/x/timeline/timeline.js +0 -22
- package/x/timeline/timeline.js.map +0 -1
- package/x/timeline/utils/audio-stream.d.ts +0 -6
- package/x/timeline/utils/audio-stream.js +0 -17
- package/x/timeline/utils/audio-stream.js.map +0 -1
- package/x/timeline/utils/video-cursor.d.ts +0 -10
- package/x/timeline/utils/video-cursor.js +0 -36
- package/x/timeline/utils/video-cursor.js.map +0 -1
- package/x/tools/common/loader.d.ts +0 -19
- package/x/tools/common/loader.js +0 -18
- package/x/tools/common/loader.js.map +0 -1
- package/x/tools/common/transformer-pipeline.d.ts +0 -8
- package/x/tools/common/transformer-pipeline.js +0 -24
- package/x/tools/common/transformer-pipeline.js.map +0 -1
- package/x/tools/speech-recognition/common/model.d.ts +0 -14
- package/x/tools/speech-recognition/common/model.js +0 -16
- package/x/tools/speech-recognition/common/model.js.map +0 -1
- package/x/tools/speech-recognition/whisper/fns/host.d.ts +0 -13
- package/x/tools/speech-recognition/whisper/fns/host.js +0 -19
- package/x/tools/speech-recognition/whisper/fns/host.js.map +0 -1
- package/x/tools/speech-recognition/whisper/fns/schematic.d.ts +0 -19
- package/x/tools/speech-recognition/whisper/fns/schematic.js +0 -2
- package/x/tools/speech-recognition/whisper/fns/schematic.js.map +0 -1
- package/x/tools/speech-recognition/whisper/fns/work.d.ts +0 -12
- package/x/tools/speech-recognition/whisper/fns/work.js +0 -74
- package/x/tools/speech-recognition/whisper/fns/work.js.map +0 -1
- package/x/tools/speech-recognition/whisper/parts/types.d.ts +0 -31
- package/x/tools/speech-recognition/whisper/parts/types.js.map +0 -1
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.d.ts +0 -1
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.js +0 -4
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.js.map +0 -1
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js +0 -8
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js.map +0 -7
- package/x/tools/speech-recognition/whisper/tool.d.ts +0 -12
- package/x/tools/speech-recognition/whisper/tool.js +0 -63
- package/x/tools/speech-recognition/whisper/tool.js.map +0 -1
- /package/x/{tests.test.d.ts → tests.bundle.d.ts} +0 -0
- /package/x/{tools/speech-recognition/whisper → timeline/parts/waveform}/parts/types.js +0 -0
package/s/timeline/types.ts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
import {Item, VisualAnimatableItem} from "./parts/item.js"
|
|
2
|
+
|
|
3
|
+
export type Interpolation =
|
|
4
|
+
| "linear"
|
|
5
|
+
| "ease"
|
|
6
|
+
| "easeIn"
|
|
7
|
+
| "easeOut"
|
|
8
|
+
| "bounce"
|
|
9
|
+
| "catmullRom"
|
|
10
|
+
|
|
2
11
|
export type Keyframe<Value = number> = [time: number, value: Value]
|
|
3
12
|
export type Keyframes<Value = number> = Keyframe<Value>[]
|
|
4
13
|
export type Vec2 = [x: number, y: number]
|
|
@@ -14,16 +23,32 @@ export type Anim<T> = {
|
|
|
14
23
|
track: T
|
|
15
24
|
}
|
|
16
25
|
|
|
17
|
-
export type Animations = Anim<TrackTransform>
|
|
18
|
-
|
|
19
26
|
export type TrackTransform = {
|
|
20
27
|
position: TrackVec2
|
|
21
28
|
scale: TrackVec2
|
|
22
29
|
rotation: Keyframes
|
|
23
30
|
}
|
|
24
31
|
|
|
32
|
+
export type ScalarAnimation = Anim<Keyframes>
|
|
33
|
+
export type Vec2Animation = Anim<TrackVec2>
|
|
34
|
+
export type TransformAnimation = Anim<TrackTransform>
|
|
35
|
+
export type VisualAnimations = {
|
|
36
|
+
opacity?: ScalarAnimation
|
|
37
|
+
}
|
|
38
|
+
export interface AnimateAction {
|
|
39
|
+
<T extends VisualAnimatableItem>(
|
|
40
|
+
item: T,
|
|
41
|
+
terp: Interpolation,
|
|
42
|
+
track: Keyframes
|
|
43
|
+
): T
|
|
44
|
+
make(terp: Interpolation, track: Keyframes): Item.Animation
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// export type Animations = Anim<TrackTransform>
|
|
48
|
+
|
|
25
49
|
export type TransformOptions = {
|
|
26
50
|
position?: Vec2
|
|
27
51
|
scale?: Vec2
|
|
28
52
|
rotation?: number
|
|
29
53
|
}
|
|
54
|
+
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
|
|
2
|
+
import {resolveTerp} from "./terps.js"
|
|
3
|
+
import {Item, Kind} from "../parts/item.js"
|
|
4
|
+
import {Anim, Keyframes, ScalarAnimation, TrackTransform, Transform} from "../types.js"
|
|
5
|
+
|
|
6
|
+
const resolveScalar =(
|
|
7
|
+
time: number,
|
|
8
|
+
keys: Keyframes,
|
|
9
|
+
terp: Anim<Keyframes>["terp"],
|
|
10
|
+
): number => {
|
|
11
|
+
if (keys.length === 0)
|
|
12
|
+
return 0
|
|
13
|
+
|
|
14
|
+
if (keys.length === 1)
|
|
15
|
+
return keys[0][1]
|
|
16
|
+
|
|
17
|
+
const sorted = [...keys].sort((a, b) => a[0] - b[0])
|
|
18
|
+
|
|
19
|
+
if (time <= sorted[0][0])
|
|
20
|
+
return sorted[0][1]
|
|
21
|
+
|
|
22
|
+
const last = sorted[sorted.length - 1]
|
|
23
|
+
if (time >= last[0])
|
|
24
|
+
return last[1]
|
|
25
|
+
|
|
26
|
+
let index = 0
|
|
27
|
+
for (let i = 0; i < sorted.length - 1; i++) {
|
|
28
|
+
const a = sorted[i]
|
|
29
|
+
const b = sorted[i + 1]
|
|
30
|
+
if (time >= a[0] && time <= b[0]) {
|
|
31
|
+
index = i
|
|
32
|
+
break
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const [t2] = sorted[index]
|
|
37
|
+
const [t3] = sorted[index + 1]
|
|
38
|
+
const span = t3 - t2
|
|
39
|
+
const x = span === 0 ? 0 : (time - t2) / span
|
|
40
|
+
|
|
41
|
+
return resolveTerp(terp, x, sorted, index)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export const resolveTransformAnimation =(
|
|
45
|
+
time: number,
|
|
46
|
+
anim: Anim<TrackTransform>,
|
|
47
|
+
): Transform => ([
|
|
48
|
+
[
|
|
49
|
+
resolveScalar(time, anim.track.position.x, anim.terp),
|
|
50
|
+
resolveScalar(time, anim.track.position.y, anim.terp),
|
|
51
|
+
],
|
|
52
|
+
[
|
|
53
|
+
resolveScalar(time, anim.track.scale.x, anim.terp),
|
|
54
|
+
resolveScalar(time, anim.track.scale.y, anim.terp),
|
|
55
|
+
],
|
|
56
|
+
resolveScalar(time, anim.track.rotation, anim.terp),
|
|
57
|
+
])
|
|
58
|
+
|
|
59
|
+
export const resolveScalarAnimation =(
|
|
60
|
+
time: number,
|
|
61
|
+
anim: ScalarAnimation,
|
|
62
|
+
): number => resolveScalar(time, anim.track, anim.terp)
|
|
63
|
+
|
|
64
|
+
export const resolveSpatialTransform =(
|
|
65
|
+
spatial: Item.Spatial | Item.AnimatedSpatial,
|
|
66
|
+
time: number,
|
|
67
|
+
): Transform =>
|
|
68
|
+
spatial.kind === Kind.AnimatedSpatial
|
|
69
|
+
? resolveTransformAnimation(time, spatial.anim)
|
|
70
|
+
: spatial.transform
|
|
71
|
+
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
|
|
2
2
|
import {Hex, Thumbprint} from "@e280/stz"
|
|
3
3
|
|
|
4
|
+
import {Hash} from "../parts/basics.js"
|
|
5
|
+
|
|
4
6
|
export class Checksum {
|
|
5
7
|
constructor(
|
|
6
8
|
public data: Uint8Array,
|
|
7
9
|
public bytes: Uint8Array,
|
|
8
|
-
public hash:
|
|
10
|
+
public hash: Hash,
|
|
9
11
|
public nickname: string,
|
|
10
12
|
) {}
|
|
11
13
|
|
|
@@ -3,19 +3,30 @@ import {Checksum} from "./checksum.js"
|
|
|
3
3
|
|
|
4
4
|
export class Datafile {
|
|
5
5
|
constructor(
|
|
6
|
+
public url: string,
|
|
6
7
|
public bytes: Uint8Array,
|
|
8
|
+
public blob: Blob,
|
|
7
9
|
public filename: string,
|
|
8
10
|
public checksum: Checksum,
|
|
9
11
|
) {}
|
|
10
12
|
|
|
11
|
-
static async make(
|
|
13
|
+
static async make(file: Blob, name?: string) {
|
|
14
|
+
const buffer = await file.arrayBuffer()
|
|
15
|
+
const bytes = new Uint8Array(buffer)
|
|
12
16
|
const checksum = await Checksum.make(bytes)
|
|
13
17
|
const filename = name ?? checksum.nickname
|
|
14
|
-
|
|
18
|
+
const url = URL.createObjectURL(file)
|
|
19
|
+
return new this(url, bytes, file, filename, checksum)
|
|
15
20
|
}
|
|
16
21
|
|
|
17
|
-
static async load(
|
|
18
|
-
|
|
22
|
+
static async load(path: string) {
|
|
23
|
+
// const file = await fetch(path)
|
|
24
|
+
// const buffer = await file.arrayBuffer()
|
|
25
|
+
// const bytes = new Uint8Array(buffer)
|
|
26
|
+
// const filename = file?.headers.get('Content-Disposition')?.split('filename=')[1] ?? "file"
|
|
27
|
+
// console.log(filename)
|
|
28
|
+
// const checksum = await Checksum.make(bytes)
|
|
29
|
+
// return new this(path, bytes, filename, checksum)
|
|
19
30
|
}
|
|
20
31
|
}
|
|
21
32
|
|
|
@@ -29,5 +29,26 @@ export const mul6 = (local: Mat6, parent: Mat6): Mat6 => {
|
|
|
29
29
|
]
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
export const mat6ToTransform = (mat: Mat6Obj): Transform => {
|
|
33
|
+
const scaleX = Math.hypot(mat.a, mat.b)
|
|
34
|
+
const scaleY = Math.hypot(mat.c, mat.d)
|
|
35
|
+
const rotation = Math.atan2(mat.b, mat.a) * (180 / Math.PI)
|
|
36
|
+
|
|
37
|
+
return [
|
|
38
|
+
[mat.tx, mat.ty],
|
|
39
|
+
[scaleX, scaleY],
|
|
40
|
+
rotation,
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface Mat6Obj {
|
|
45
|
+
a: number
|
|
46
|
+
b: number
|
|
47
|
+
c: number
|
|
48
|
+
d: number
|
|
49
|
+
tx: number
|
|
50
|
+
ty: number
|
|
51
|
+
}
|
|
52
|
+
|
|
32
53
|
export const I6: Mat6 = [1, 0, 0, 1, 0, 0]
|
|
33
54
|
export type Mat6 = [a: number, b: number, c: number, d: number, tx: number, ty: number]
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
|
|
2
|
+
import {Interpolation, Keyframes} from "../types.js"
|
|
3
|
+
|
|
4
|
+
type EasingFn = (x: number, a: number, b: number) => number
|
|
5
|
+
|
|
6
|
+
class TerpKeys {
|
|
7
|
+
constructor(
|
|
8
|
+
private keys: Keyframes,
|
|
9
|
+
private index: number,
|
|
10
|
+
) {}
|
|
11
|
+
|
|
12
|
+
near(offset: number): number {
|
|
13
|
+
const next = this.keys[Math.max(0, Math.min(this.keys.length - 1, this.index + offset))]
|
|
14
|
+
return next[1]
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
type TerpFn = (x: number, keys: TerpKeys) => number
|
|
19
|
+
|
|
20
|
+
const asTerp = (fn: TerpFn): TerpFn => fn
|
|
21
|
+
|
|
22
|
+
const fromEasingFn = (easing: EasingFn): TerpFn =>
|
|
23
|
+
asTerp((x, keys) => easing(x, keys.near(0), keys.near(1)))
|
|
24
|
+
|
|
25
|
+
const lerp = (x: number, a: number, b: number) => a + (b - a) * x
|
|
26
|
+
|
|
27
|
+
export const terps: Record<Interpolation, TerpFn> = {
|
|
28
|
+
linear: fromEasingFn(lerp),
|
|
29
|
+
|
|
30
|
+
ease: fromEasingFn((x, a, b) => {
|
|
31
|
+
const eased = x < 0.5
|
|
32
|
+
? 4 * x * x * x
|
|
33
|
+
: 1 - Math.pow(-2 * x + 2, 3) / 2
|
|
34
|
+
return lerp(eased, a, b)
|
|
35
|
+
}),
|
|
36
|
+
|
|
37
|
+
easeIn: fromEasingFn((x, a, b) => lerp(x * x * x, a, b)),
|
|
38
|
+
|
|
39
|
+
easeOut: fromEasingFn((x, a, b) => lerp(1 - Math.pow(1 - x, 3), a, b)),
|
|
40
|
+
|
|
41
|
+
bounce: fromEasingFn((x, a, b) => {
|
|
42
|
+
const n1 = 7.5625
|
|
43
|
+
const d1 = 2.75
|
|
44
|
+
const eased = x < 1 / d1
|
|
45
|
+
? n1 * x * x
|
|
46
|
+
: x < 2 / d1
|
|
47
|
+
? n1 * (x - 1.5 / d1) ** 2 + 0.75
|
|
48
|
+
: x < 2.5 / d1
|
|
49
|
+
? n1 * (x - 2.25 / d1) ** 2 + 0.9375
|
|
50
|
+
: n1 * (x - 2.625 / d1) ** 2 + 0.984375
|
|
51
|
+
return lerp(eased, a, b)
|
|
52
|
+
}),
|
|
53
|
+
|
|
54
|
+
catmullRom: asTerp((x, keys) => {
|
|
55
|
+
const p1 = keys.near(-1)
|
|
56
|
+
const p2 = keys.near(0)
|
|
57
|
+
const p3 = keys.near(1)
|
|
58
|
+
const p4 = keys.near(2)
|
|
59
|
+
const x2 = x * x
|
|
60
|
+
const x3 = x2 * x
|
|
61
|
+
return 0.5 * (
|
|
62
|
+
(2 * p2) +
|
|
63
|
+
(-p1 + p3) * x +
|
|
64
|
+
(2 * p1 - 5 * p2 + 4 * p3 - p4) * x2 +
|
|
65
|
+
(-p1 + 3 * p2 - 3 * p3 + p4) * x3
|
|
66
|
+
)
|
|
67
|
+
}),
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export const resolveTerp =(
|
|
71
|
+
terp: Interpolation,
|
|
72
|
+
x: number,
|
|
73
|
+
keys: Keyframes,
|
|
74
|
+
index: number,
|
|
75
|
+
): number => {
|
|
76
|
+
const fn = terps[terp]
|
|
77
|
+
if (!fn)
|
|
78
|
+
throw new Error(`unknown terp "${terp}"`)
|
|
79
|
+
|
|
80
|
+
return fn(x, new TerpKeys(keys, index))
|
|
81
|
+
}
|
package/s/units/fps.ts
ADDED
package/s/units/ms.ts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as i,b as o,c as m,d as p,e}from"./chunk-ZLGNQFUI.js";import"./chunk-MR32SQ27.js";import"./chunk-73XOWA4F.js";import"./chunk-23FOBGX6.js";import{P as t,e as r}from"./chunk-XNIZ4L5W.js";r.add(i);r.mixin(t,o);r.add(m);r.mixin(t,p);r.add(e);
|
|
2
|
+
//# sourceMappingURL=browserAll-WNIOTNNP.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../node_modules/pixi.js/src/accessibility/init.ts", "../node_modules/pixi.js/src/events/init.ts", "../node_modules/pixi.js/src/dom/init.ts"],
|
|
4
|
+
"sourcesContent": ["import { extensions } from '../extensions/Extensions';\nimport { Container } from '../scene/container/Container';\nimport { AccessibilitySystem } from './AccessibilitySystem';\nimport { accessibilityTarget } from './accessibilityTarget';\n\nextensions.add(AccessibilitySystem);\nextensions.mixin(Container, accessibilityTarget);\n", "import { extensions } from '../extensions/Extensions';\nimport { Container } from '../scene/container/Container';\nimport { EventSystem } from './EventSystem';\nimport { FederatedContainer } from './FederatedEventTarget';\n\nextensions.add(EventSystem);\nextensions.mixin(Container, FederatedContainer);\n", "import { extensions } from '../extensions/Extensions';\nimport { DOMPipe } from './DOMPipe';\n\nexport * from './index';\n\nextensions.add(DOMPipe);\n"],
|
|
5
|
+
"mappings": "kMAKAA,EAAW,IAAIC,CAAmB,EAClCD,EAAW,MAAME,EAAWC,CAAmB,ECD/CC,EAAW,IAAIC,CAAW,EAC1BD,EAAW,MAAME,EAAWC,CAAkB,ECD9CC,EAAW,IAAIC,CAAO",
|
|
6
|
+
"names": ["extensions", "AccessibilitySystem", "Container", "accessibilityTarget", "extensions", "EventSystem", "Container", "FederatedContainer", "extensions", "DOMPipe"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{D as a,J as f,T as v,X as x,q as p}from"./chunk-XNIZ4L5W.js";var h={};function G(c,t,r){let e=2166136261;for(let o=0;o<t;o++)e^=c[o].uid,e=Math.imul(e,16777619),e>>>=0;return h[e]||d(c,t,e,r)}function d(c,t,r,e){let o={},s=0;for(let n=0;n<e;n++){let i=n<t?c[n]:f.EMPTY.source;o[s++]=i.source,o[s++]=i.style}let l=new x(o);return h[r]=l,l}var u=class{constructor(t){this._canvasPool=Object.create(null),this.canvasOptions=t||{},this.enableFullScreen=!1}_createCanvasAndContext(t,r){let e=v.get().createCanvas();e.width=t,e.height=r;let o=e.getContext("2d");return{canvas:e,context:o}}getOptimalCanvasAndContext(t,r,e=1){t=Math.ceil(t*e-1e-6),r=Math.ceil(r*e-1e-6),t=a(t),r=a(r);let o=(t<<17)+(r<<1);this._canvasPool[o]||(this._canvasPool[o]=[]);let s=this._canvasPool[o].pop();return s||(s=this._createCanvasAndContext(t,r)),s}returnCanvasAndContext(t){let r=t.canvas,{width:e,height:o}=r,s=(e<<17)+(o<<1);t.context.resetTransform(),t.context.clearRect(0,0,e,o),this._canvasPool[s].push(t)}clear(){this._canvasPool={}}},P=new u;p.register(P);export{G as a,P as b};
|
|
2
|
+
//# sourceMappingURL=chunk-23FOBGX6.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../node_modules/pixi.js/src/rendering/batcher/gpu/getTextureBatchBindGroup.ts", "../node_modules/pixi.js/src/rendering/renderers/shared/texture/CanvasPool.ts"],
|
|
4
|
+
"sourcesContent": ["import { BindGroup } from '../../renderers/gpu/shader/BindGroup';\nimport { Texture } from '../../renderers/shared/texture/Texture';\n\nimport type { TextureSource } from '../../renderers/shared/texture/sources/TextureSource';\n\nconst cachedGroups: Record<number, BindGroup> = {};\n\n/**\n * @param textures\n * @param size\n * @param maxTextures\n * @internal\n */\nexport function getTextureBatchBindGroup(textures: TextureSource[], size: number, maxTextures: number)\n{\n let uid = 2166136261; // FNV-1a 32-bit offset basis\n\n for (let i = 0; i < size; i++)\n {\n uid ^= textures[i].uid;\n uid = Math.imul(uid, 16777619);\n uid >>>= 0;\n }\n\n return cachedGroups[uid] || generateTextureBatchBindGroup(textures, size, uid, maxTextures);\n}\n\nfunction generateTextureBatchBindGroup(textures: TextureSource[], size: number, key: number, maxTextures: number): BindGroup\n{\n const bindGroupResources: Record<string, any> = {};\n\n let bindIndex = 0;\n\n for (let i = 0; i < maxTextures; i++)\n {\n const texture = i < size ? textures[i] : Texture.EMPTY.source;\n\n bindGroupResources[bindIndex++] = texture.source;\n bindGroupResources[bindIndex++] = texture.style;\n }\n\n // pad out with empty textures\n const bindGroup = new BindGroup(bindGroupResources);\n\n cachedGroups[key] = bindGroup;\n\n return bindGroup;\n}\n\n", "import { DOMAdapter } from '../../../../environment/adapter';\nimport { nextPow2 } from '../../../../maths/misc/pow2';\nimport { GlobalResourceRegistry } from '../../../../utils/pool/GlobalResourceRegistry';\n\nimport type { ICanvas, ICanvasRenderingContext2DSettings } from '../../../../environment/canvas/ICanvas';\nimport type { ICanvasRenderingContext2D } from '../../../../environment/canvas/ICanvasRenderingContext2D';\n\n/**\n * A utility type that represents a canvas and its rendering context.\n * @category rendering\n * @internal\n */\nexport interface CanvasAndContext\n{\n /** The canvas element. */\n canvas: ICanvas;\n /** The rendering context of the canvas. */\n context: ICanvasRenderingContext2D;\n}\n\n/**\n * CanvasPool is a utility class that manages a pool of reusable canvas elements\n * @category rendering\n * @internal\n */\nexport class CanvasPoolClass\n{\n public canvasOptions: ICanvasRenderingContext2DSettings;\n\n /**\n * Allow renderTextures of the same size as screen, not just pow2\n *\n * Automatically sets to true after `setScreenSize`\n * @default false\n */\n public enableFullScreen: boolean;\n private _canvasPool: {[x in string | number]: CanvasAndContext[]};\n\n constructor(canvasOptions?: ICanvasRenderingContext2DSettings)\n {\n this._canvasPool = Object.create(null);\n this.canvasOptions = canvasOptions || {};\n this.enableFullScreen = false;\n }\n\n /**\n * Creates texture with params that were specified in pool constructor.\n * @param pixelWidth - Width of texture in pixels.\n * @param pixelHeight - Height of texture in pixels.\n */\n private _createCanvasAndContext(pixelWidth: number, pixelHeight: number): CanvasAndContext\n {\n const canvas = DOMAdapter.get().createCanvas();\n\n canvas.width = pixelWidth;\n canvas.height = pixelHeight;\n\n const context = canvas.getContext('2d');\n\n return { canvas, context };\n }\n\n /**\n * Gets a Power-of-Two render texture or fullScreen texture\n * @param minWidth - The minimum width of the render texture.\n * @param minHeight - The minimum height of the render texture.\n * @param resolution - The resolution of the render texture.\n * @returns The new render texture.\n */\n public getOptimalCanvasAndContext(minWidth: number, minHeight: number, resolution = 1): CanvasAndContext\n {\n minWidth = Math.ceil((minWidth * resolution) - 1e-6);\n minHeight = Math.ceil((minHeight * resolution) - 1e-6);\n minWidth = nextPow2(minWidth);\n minHeight = nextPow2(minHeight);\n\n const key = (minWidth << 17) + (minHeight << 1);\n\n if (!this._canvasPool[key])\n {\n this._canvasPool[key] = [];\n }\n\n let canvasAndContext = this._canvasPool[key].pop();\n\n if (!canvasAndContext)\n {\n canvasAndContext = this._createCanvasAndContext(minWidth, minHeight);\n }\n\n return canvasAndContext;\n }\n\n /**\n * Place a render texture back into the pool.\n * @param canvasAndContext\n */\n public returnCanvasAndContext(canvasAndContext: CanvasAndContext): void\n {\n const canvas = canvasAndContext.canvas;\n const { width, height } = canvas;\n\n const key = (width << 17) + (height << 1);\n\n canvasAndContext.context.resetTransform();\n canvasAndContext.context.clearRect(0, 0, width, height);\n\n this._canvasPool[key].push(canvasAndContext);\n }\n\n public clear(): void\n {\n this._canvasPool = {};\n }\n}\n\n/**\n * CanvasPool is a utility class that manages a pool of reusable canvas elements\n * @category rendering\n * @internal\n */\nexport const CanvasPool = new CanvasPoolClass();\nGlobalResourceRegistry.register(CanvasPool);\n"],
|
|
5
|
+
"mappings": "oEAKA,IAAMA,EAA0C,CAAA,EAQhC,SAAAC,EAAyBC,EAA2BC,EAAcC,EAClF,CACI,IAAIC,EAAM,WAEV,QAASC,EAAI,EAAGA,EAAIH,EAAMG,IAEfD,GAAAH,EAASI,CAAC,EAAE,IACbD,EAAA,KAAK,KAAKA,EAAK,QAAQ,EACpBA,KAAA,EAGb,OAAOL,EAAaK,CAAG,GAAKE,EAA8BL,EAAUC,EAAME,EAAKD,CAAW,CAC9F,CAEA,SAASG,EAA8BL,EAA2BC,EAAcK,EAAaJ,EAC7F,CACI,IAAMK,EAA0C,CAAA,EAE5CC,EAAY,EAEhB,QAASJ,EAAI,EAAGA,EAAIF,EAAaE,IACjC,CACI,IAAMK,EAAUL,EAAIH,EAAOD,EAASI,CAAC,EAAIM,EAAQ,MAAM,OAEpCH,EAAAC,GAAW,EAAIC,EAAQ,OACvBF,EAAAC,GAAW,EAAIC,EAAQ,KAAA,CAIxC,IAAAE,EAAY,IAAIC,EAAUL,CAAkB,EAElD,OAAAT,EAAaQ,CAAG,EAAIK,EAEbA,CACX,CCtBO,IAAME,EAAN,KACP,CAYI,YAAYC,EACZ,CACS,KAAA,YAAqB,OAAA,OAAO,IAAI,EAChC,KAAA,cAAgBA,GAAiB,CAAA,EACtC,KAAK,iBAAmB,EAAA,CAQpB,wBAAwBC,EAAoBC,EACpD,CACI,IAAMC,EAASC,EAAW,IAAI,EAAE,aAAa,EAE7CD,EAAO,MAAQF,EACfE,EAAO,OAASD,EAEV,IAAAG,EAAUF,EAAO,WAAW,IAAI,EAE/B,MAAA,CAAE,OAAAA,EAAQ,QAAAE,CAAQ,CAAA,CAUtB,2BAA2BC,EAAkBC,EAAmBC,EAAa,EACpF,CACIF,EAAW,KAAK,KAAMA,EAAWE,EAAc,IAAI,EACnDD,EAAY,KAAK,KAAMA,EAAYC,EAAc,IAAI,EACrDF,EAAWG,EAASH,CAAQ,EAC5BC,EAAYE,EAASF,CAAS,EAExB,IAAAG,GAAOJ,GAAY,KAAOC,GAAa,GAExC,KAAK,YAAYG,CAAG,IAEhB,KAAA,YAAYA,CAAG,EAAI,CAAA,GAG5B,IAAIC,EAAmB,KAAK,YAAYD,CAAG,EAAE,IAAI,EAEjD,OAAKC,IAEkBA,EAAA,KAAK,wBAAwBL,EAAUC,CAAS,GAGhEI,CAAA,CAOJ,uBAAuBA,EAC9B,CACI,IAAMR,EAASQ,EAAiB,OAC1B,CAAE,MAAAC,EAAO,OAAAC,CAAA,EAAWV,EAEpBO,GAAOE,GAAS,KAAOC,GAAU,GAEvCF,EAAiB,QAAQ,eAAe,EACxCA,EAAiB,QAAQ,UAAU,EAAG,EAAGC,EAAOC,CAAM,EAEtD,KAAK,YAAYH,CAAG,EAAE,KAAKC,CAAgB,CAAA,CAGxC,OACP,CACI,KAAK,YAAc,CAAA,CAAC,CAE5B,EAOaG,EAAa,IAAIf,EAC9BgB,EAAuB,SAASD,CAAU",
|
|
6
|
+
"names": ["cachedGroups", "getTextureBatchBindGroup", "textures", "size", "maxTextures", "uid", "i", "generateTextureBatchBindGroup", "key", "bindGroupResources", "bindIndex", "texture", "Texture", "bindGroup", "BindGroup", "CanvasPoolClass", "canvasOptions", "pixelWidth", "pixelHeight", "canvas", "DOMAdapter", "context", "minWidth", "minHeight", "resolution", "nextPow2", "key", "canvasAndContext", "width", "height", "CanvasPool", "GlobalResourceRegistry"]
|
|
7
|
+
}
|