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

filament-bindings

This package provides build scripts and prebuilt binaries for filament on Windows, macOS, Linux, and the unsafe binding interface automatically generated by rust-bindgen

7 releases

0.2.2 Apr 10, 2022
0.2.1 Apr 8, 2022
0.1.7 Mar 31, 2022
0.1.0 Feb 15, 2022

#65 in #unsafe

39 downloads per month

Apache-2.0

6.5MB
7K SLoC

filament-bindings

This package provides a set of unsafe binding api, build scripts and prebuilt binaries for Google/filament on Windows, macOS, Linux.

Why unsafe

All api's of this package are marked as unsafe, because the c++ objects of filament do not use reference counting to track resource usage, this library has no way of knowing when to release objects, you have to release resources manually.

Prebuilt Binaries

Because filament builds are very slow and have build environment requirements. We provide prebuilt binaries for common platforms and features.

When a new version is released, github action automatically runs pre-build tasks, and all prebuilt binaries are saved in filament-binaries/releases.

The filament-binding build script will try to download the prebuilt binaries from github first, and skip the full source build.

We currently provide pre-built binary packages for Windows, Linux, macOS, and enable OpenGL, Vulkan backend for all platforms and Metal backend for macOS. For other platforms such as Android, iOS and WASM support is planned but not yet available.

Build requirement

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

Examples

triangle

Render a triangle and save the image to a ppm file

winit

Use filament with winit.

run cargo run --example winit

Dependencies

~1.5–5MB
~100K SLoC