mirror of
https://github.com/storytold/effectcraft.git
synced 2026-11-09 15:27:53 +00:00
* WebAssembly ABI 2: neighbouring frames for effect plug-ins (#2773) A wasm plug-in can export ec_api_version 2 and ec_render2 to receive the layer's previous and next frames, their layer times and validity flags. Neighbours come from PluginHost::input_at, are resampled onto the current grid, and are zeroed when absent. ABI 1 modules (ec_render) load and render unchanged; the manifest api stays independent. A layer with an ABI 2 plug-in keys the render cache on layer time; the Plug-in Library accepts ABI 1-2 releases. Docs, help text and tests updated. * Fix ABI 2 neighbour times on NTSC frame boundaries ime * fps is often a few ulps off an integer at rates such as 24000/1001. The old boundary test then took the bracket branch and passed the current frame back as prev (or ext). Treat a near-integer as a frame boundary within 1e-6 frames, and test 2400 frames at 24000/1001: every boundary must get the frames either side. Also document the loader helpers for the docstring coverage check. --------- Co-authored-by: justanshh <294019246+justanshh@users.noreply.github.com>
26 lines
794 B
TOML
26 lines
794 B
TOML
[package]
|
|
name = "effectcraft-plugin"
|
|
description = "EffectCraft effect plug-ins: loads sandboxed WebAssembly effect modules (WebAssembly ABI v1 and v2) into the effect registry"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
rust-version.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[features]
|
|
# The WebAssembly runtime (wasmi, a pure-Rust interpreter). Hosts enable it on native; without
|
|
# it `load_wasm` reports that WebAssembly plug-ins are unavailable.
|
|
wasm = ["dep:wasmi"]
|
|
|
|
[dependencies]
|
|
effectcraft-effects = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
wasmi = { workspace = true, optional = true }
|
|
|
|
[dev-dependencies]
|
|
effectcraft-keyframe = { workspace = true }
|
|
effectcraft-project = { workspace = true }
|
|
effectcraft-raster = { workspace = true }
|