#testing #script #automatic #binaries #unsafe #binding #linux

filament-bindings

本软件包为 Windows、macOS、Linux 提供了 filament 的构建脚本和预构建二进制文件,以及由 rust-bindgen 自动生成的 unsafe 绑定接口。

7 个版本

0.2.2 2022年4月10日
0.2.1 2022年4月8日
0.1.7 2022年3月31日
0.1.0 2022年2月15日

#67 in #unsafe

Apache-2.0

6.5MB
7K SLoC

filament-bindings

本软件包提供了一组 unsafe 绑定 API、构建脚本和预构建二进制文件,用于 Windows、macOS、Linux 上的 Google/filament

为什么是 unsafe

本软件包中的所有 API 都标记为 unsafe,因为 filament 的 C++ 对象不使用引用计数来跟踪资源使用情况,该库无法知道何时释放对象,您必须手动释放资源。

预构建二进制文件

由于 filament 的构建速度非常慢且需要构建环境要求,我们为常见平台和功能提供预构建二进制文件。

发布新版本时,GitHub Action 会自动运行预构建任务,并将所有预构建二进制文件保存在 filament-binaries/releases

filament-binding 构建脚本将首先尝试从 GitHub 下载预构建二进制文件,并跳过完整源代码构建。

我们目前提供 WindowsLinuxmacOS 的预构建二进制包,并为所有平台启用 OpenGLVulkan 后端,为 macOS 启用 Metal 后端。对于 Android、iOS 和 WASM 等其他平台,支持计划中但尚未提供。

构建要求

  • cmake
  • clang
  • ninja
  • libglu1-mesa-dev
  • libxi-dev
  • libc++-dev
  • libc++abi-dev

示例

triangle

渲染一个三角形并将图像保存到 ppm 文件中

winit

使用 winit 与 filament。

运行 cargo run --example winit

依赖关系

~1.5–5MB
~99K SLoC