#接口 #绑定 #自动生成 #场景 #3delight #光照 #研究

sys nsi-sys

为光照研究公司的节点场景接口(Nodal Scene Interface)自动生成的绑定 – ɴꜱɪ

18个版本

0.8.0 2023年10月27日
0.7.1 2023年5月1日
0.7.0 2023年4月16日
0.2.1 2022年10月19日
0.1.0 2020年3月11日

#3 in #光照

Download history 19/week @ 2024-03-11 18/week @ 2024-03-18 23/week @ 2024-03-25 48/week @ 2024-04-01 7/week @ 2024-04-08 9/week @ 2024-04-15 13/week @ 2024-04-22 13/week @ 2024-04-29 15/week @ 2024-05-06 13/week @ 2024-05-13 30/week @ 2024-05-20 14/week @ 2024-05-27 9/week @ 2024-06-03 19/week @ 2024-06-10 14/week @ 2024-06-17 14/week @ 2024-06-24

每月 57 次下载
7 个crate中使用(通过 nsi-core

Apache-2.0…

13KB
118 代码行

nsi-sys

Build Documentation Crate Chat Maintenance

Illumination ResearchNodal Scene Interface 自动生成的Rust绑定 – ɴsɪ。

除非有特殊情况,否则您不需要直接使用此crate。您可能是以下两种情况之一:

  • 一个希望直接从Rust使用C-API的受虐狂。
  • 对您的高级Rust绑定不满意(见下文) – 考虑在此处打开一个问题
  • 编写一个暴露ɴsɪ C-API的渲染器。

高级绑定

ɴsɪ crate 中提供了此API的高级Rust绑定。

与C API的差异

所有 enum 都已经转换为Rust enum

去除了枚举和结构体类型名称的词缀。

NSIParam_tNSIParam

去除了枚举变体的前缀和后缀。

NSIType_t::NSITypeInvalidNSIType::Invalid

原因:使用绑定使代码更简洁、更易于阅读。

最后,NSIParamFlags 是一个包装C-API标志的 bitflags 结构体,用于提高可读性。

编译-与运行时

crate以默认功能构建。

然而,在运行时此crate需要实现ɴsɪ C-API的库/渲染器进行链接。目前唯一的渲染器是 3Delight

功能

  • download_lib3delight – 获取Linux、macOS或Windows的 3Delight 2.1.2 的动态库版本。

    这可以作为后备选项,在没有在您的系统上安装渲染器的情况下构建。但这是一个3Delight的老版本,首先是CI功能。

    建议您下载适用于您平台的3Delight并安装它。这将设置构建脚本正在寻找的DELIGHT环境变量,以查找本地安装的库进行链接。免费版本可渲染至多12个核心。

    这还将安装3Delight Display,您可以将渲染输出到其中,这有助于调试。

  • link_lib3delight – 链接到3Delight的动态库版本。需要设置DELIGHT环境变量。

  • omit_functions – 省略为API函数生成绑定。这适用于您想从渲染器中公开自己的C-API钩子的情况。

许可证

Apache-2.0 OR BSD-3-Clause OR MIT OR Zlib

任选其一。

依赖项

~0–2MB
~38K SLoC