3 个版本 (破坏性更新)

使用旧的Rust 2015

0.3.0 2019年2月4日
0.2.0 2019年2月3日
0.1.0 2019年1月10日

图像类别中排名第601

Apache-2.0

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