2 个不稳定版本

使用旧 Rust 2015

0.2.0 2019年2月4日
0.1.1 2019年1月10日
0.1.0 2019年1月10日

5#effects 中排名

Download history 2/week @ 2024-02-16 15/week @ 2024-02-23 10/week @ 2024-03-01 3/week @ 2024-03-08 5/week @ 2024-03-15 50/week @ 2024-03-29 16/week @ 2024-04-05

每月下载量66次
用于 ofx

Apache-2.0

135KB

OpenFX 绑定

替换客户端支持 C++ 层,仅通过 bindgen 使用原始 ofx* ABI。

2019年1月状态:尚未准备好生产使用,但基本功能已实现,可通过 crates.io 获取。

设计目标

  • 数据类型安全
  • 为图像效果插件编写者提供良好的 API
  • 一个 dll/so crate 可以包含多个插件
  • 每个插件都在其 Rust 模块中
  • 每个 crate 有一个集中的插件注册表

Cargo.toml

[dependencies]
ofx = "0.1"

示例代码

https://github.com/itadinanta/ofx-rs/examples/basic 中的示例是 OpenFX 中 basic.cpp 示例的几乎逐行翻译。

仅在 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–2MB
~38K SLoC