3 个版本 (破坏性更新)
使用旧的Rust 2015
0.3.0 | 2019年2月4日 |
---|---|
0.2.0 | 2019年2月3日 |
0.1.0 | 2019年1月10日 |
在图像类别中排名第601
105KB
3.5K SLoC
OpenFX 绑定
替换客户端支持 C++ 层,仅通过 bindgen 使用原始 ofx* ABI。
2019年1月状态:尚未准备好用于生产使用,但已实现基本功能,可通过 crates.io
获取。
设计目标
- 数据类型安全
- 为图像效果插件编写者提供易于使用的 API
- 一个 dll/so 包可以包含多个插件
- 每个插件在其自己的 Rust 模块中
- 每个包集中式插件注册表
Cargo.toml
[dependencies]
ofx = "0.1"
示例代码
位于 https://github.com/itadinanta/ofx-rs/examples/basic 的示例几乎逐行翻译了 OpenFX 中的 basic.cpp
(https://github.com/NatronGitHub/openfx/tree/4fc7b53bc9ad86bb323e971d553b8482916a62d9/Examples/Basic) 示例。
仅在 Linux 上使用 (Natron)https://natron.fr/ 作为宿主应用程序进行测试。请参阅 test_in_natron.sh
中的示例。需要配置 Natron OFX 插件路径。
示例插件骨架
lib.rs
extern crate ofx;
mod simple_plugin;
use ofx::*;
register_modules!(simple_plugin);
simple_plugin.rs
use ofx::*;
// plugin declaration
plugin_module!(
"net.itadinanta.ofx-rs.simple_plugin_1",
ApiVersion(1),
PluginVersion(1, 0),
SimplePlugin::new
);
// custom plugin data goes here
struct SimplePlugin {}
impl SimplePlugin {
pub fn new() -> SimplePlugin {
SimplePlugin {}
}
}
impl Execute for SimplePlugin {
// plugin logic goes here
}
依赖项
~0.5–2.5MB
~48K SLoC